---
id: TST-ACC-REC-078
title: Payment effect recording and eligibility
kind: integration
product_area: accounting
module: reconciliation
revision: 1
status: draft
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
repository: services-accounting
files:
  - >-
    modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js
implements:
  - ATS-ACC-REC-005-01
  - ATS-ACC-REC-005-02
  - ATS-ACC-REC-005-04
  - ATS-ACC-REC-005-05
  - ATS-ACC-REC-005-06
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 5
isolation: Suite-owned workspace fixtures and deterministic records removed by suite cleanup.
evidence:
  - >-
    services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js
bindings:
  - scenario: ATS-ACC-REC-005-01
    assertions:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#records
        the item inside the transaction
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#leaves
        no row once the caller’s transaction rolls back
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#refuses
        outside a transaction
  - scenario: ATS-ACC-REC-005-02
    assertions:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#answers
        the first item with created false
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#leaves
        one row
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#refuses
        the same key for another amount
  - scenario: ATS-ACC-REC-005-04
    assertions:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#refuses
        another unit’s merchant account, naming the merchant account
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#refuses
        another currency than the merchant account’s, naming the currency
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#refuses
        another processor than the merchant account’s, naming the processor
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#refuses
        an item naming two documents
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#writes
        no row for a refused item
  - scenario: ATS-ACC-REC-005-05
    assertions:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#records
        a capture at 11:00 Eastern on Tuesday, eligible that day and expected Thursday, every field answered
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#records
        a capture after the 21:00 cut-off as eligible the next business day
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#records
        a capture exactly at the 21:00 cut-off as eligible that day
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#records
        a capture on Friday after the cut-off as eligible Tuesday, past the Columbus Day holiday
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#uses
        the merchant account’s own lead time and cut-off over the processor’s
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#counts
        business days in the merchant account’s own calendar
  - scenario: ATS-ACC-REC-005-06
    assertions:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#records
        it with no dates
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#marks
        it eligible that day, expected four business days later past Columbus Day
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#answers
        a second mark unchanged
---

# Payment effect recording and eligibility

## Verification Boundary

This suite calls production services over the real test database. Fixture setup may write records directly; the exercised commands and queries retain their normal database enforcement.

## What This Suite Proves

The executable assertions identified in the binding records supply the registered scenario observations. When a scenario names several suites, this suite supplies its listed assertions and does not independently establish every clause.

## What It Does Not Prove

Deployed infrastructure, live console behavior and shared scheduling delivery are outside this local boundary.

## Real Dependencies and Test Doubles

PostgreSQL, migrations and the exercised production code are real. Fixtures supply the financial world and caller context; deterministic setup and owner-side inspection do not replace database enforcement.

## Must Not Be Doubled

The exercised database constraints, transactional services and route enforcement remain real. Replacing them would remove the boundary this suite registers.
