Skip to content

ATS-ACC-REC-005Track payment effects and expected processor settlement: Capability Test Specification

Markdown

ATS-ACC-REC-005

Track payment effects and expected processor settlement: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaAccountingModuleReconciliationRevision3

Read atservices-accounting f47cb263

Coverage

  • Rule covered
  • Transition covered
  • Validation covered
  • Permission not-applicable
  • Failure covered
  • Boundary covered
  • Invariant covered
  • Interaction covered
  • Edge gap: FND-ACC-REC-050
  • Concurrency gap: FND-ACC-REC-050

Test Scenarios

14 scenarios proving CAP-ACC-REC-005; 9 bound to an existing test.

01 Effect records share the payment transactioninvariantapinegativetest
Proves
BR-CAP-ACC-REC-005-01
Preconditions
A payment transaction is open.
Steps
Record and commit an item, record and roll back another, then record without a transaction.
Expected
Commit keeps the item, rollback removes it and the outside call is refused.
Data
Provide settlement world for this case.
Bound to
Source
services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#records the item inside the transaction
02 Effect-key identity and mismatchruleapinegativetest
Proves
BR-CAP-ACC-REC-005-02
Preconditions
One item is recorded under an effect key.
Steps
Record the same effect again and reuse its key for another amount.
Expected
Replay returns the original without another row; changed money fails.
Data
No additional fixture beyond the case setup.
Bound to
Source
services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#answers the first item with created false
03 Kind-specific signsvalidationapinegativetest
Proves
BR-CAP-ACC-REC-005-03
Preconditions
No persisted setup is required for sign calculation.
Steps
Evaluate positive, negative and zero amounts for every item kind and representative table writes.
Expected
Only each kind’s allowed sign passes, with zero adjustments rejected.
Data
No additional fixture beyond the case setup.
Bound to
Source
services-accounting:modules/reconciliation/tests/unit/rules/item-kinds.spec.js#refuses a negative capture
04 Item context and one causing documentvalidationapinegativetest
Proves
BR-CAP-ACC-REC-005-04
Preconditions
Two units and currencies have configured merchants.
Steps
Record a wrong-unit merchant, wrong currency, conflicting processor and two-document item.
Expected
Each request identifies the conflict without writing an item.
Data
Configure both business units used by the case.
Bound to
Source
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
05 Business-day timing boundariesboundaryapitest
Proves
BR-CAP-ACC-REC-005-05 BR-CAP-ACC-REC-005-06 BR-CAP-ACC-REC-005-07
Preconditions
Captures surround the evening cut-off, weekends and a bank holiday.
Steps
Calculate and record eligibility under the supplied zones, calendars and merchant overrides.
Expected
Cut-off, roll-forward and lead-time cases produce their expected local business days.
Data
Provide Federal Reserve calendar for this case.
Bound to
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 on Friday after the cut-off as eligible Tuesday, past the Columbus Day holiday
services-accounting:modules/reconciliation/tests/unit/rules/business-days.spec.js#moves a capture one second after the cut-off to the next business day
services-accounting:modules/reconciliation/tests/unit/rules/business-days.spec.js#is true for Friday 2026-07-03, since a Saturday holiday is not moved
Source
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
06 Pending check clearing fills dates oncetransitionapitest
Proves
BR-CAP-ACC-REC-005-08
Preconditions
An electronic check has not cleared.
Steps
Record it pending, mark it cleared and repeat the mark.
Expected
Dates start empty, then reflect the four-business-day lead and remain unchanged on repeat.
Data
No additional fixture beyond the case setup.
Bound to
Source
services-accounting:modules/reconciliation/tests/integration/services/settlement-items/settlement-item-recording.integration.spec.js#records it with no dates
07 Write-once settlement factsinvariantapinegativetest
Proves
BR-CAP-ACC-REC-005-09
Preconditions
A settlement item exists.
Steps
Change amount or kind, fill then replace a processor reference and attempt deletion.
Expected
Financial changes and deletion fail; a reference can be filled once only.
Data
No additional fixture beyond the case setup.
Bound to
Source
services-accounting:modules/reconciliation/tests/integration/db/settlement-items.table.integration.spec.js#refuses a change to the amount (write-once)
08 Seeded timing data are read-onlyboundaryapinegativetest
Proves
BR-CAP-ACC-REC-005-11
Preconditions
Bank calendars and processor timing seeds are installed.
Steps
Read the seeds and try application writes or an out-of-range lead.
Expected
Expected holidays and timing rows are readable; writes and excessive lead values fail.
Data
No additional fixture beyond the case setup.
Bound to
services-accounting:modules/reconciliation/tests/integration/db/bank-holidays.table.integration.spec.js#holds the Federal Reserve’s 22 holidays of 2026 and 2027 as observed, readable by the application role
services-accounting:modules/reconciliation/tests/integration/db/settlement-lead-times.table.integration.spec.js#holds the four seeded lead times, ordered by processor then method, readable by the application role
Source
services-accounting:modules/reconciliation/tests/integration/db/bank-holidays.table.integration.spec.js#holds the Federal Reserve’s 22 holidays of 2026 and 2027 as observed, readable by the application role
09 Payment effects cannot be entered manuallyvalidationapinegativetest
Proves
BR-CAP-ACC-REC-005-12
Preconditions
An open reconciliation is available.
Steps
Attempt a manual capture insert.
Expected
The payment-only kind is refused.
Data
No additional fixture beyond the case setup.
Bound to
services-accounting:modules/reconciliation/tests/integration/db/settlement-items.table.integration.spec.js#refuses a manual capture: a person enters fees, reserves and adjustments only
Source
services-accounting:modules/reconciliation/tests/integration/db/settlement-items.table.integration.spec.js#refuses a manual capture: a person enters fees, reserves and adjustments only
10 Existing dates survive timing changesinteractionapiproposed
Proves
BR-CAP-ACC-REC-005-10
Preconditions
Existing items use a zero-day lead.
Steps
Change the merchant lead, reread old items and record a new capture.
Expected
Old dates remain fixed and the new item uses the revised policy.
Data
Provide merchant account override for this case.
Source
services-accounting:docs/reconciliation/architecture.md#12.2 Expected settlement date
11 Missing timing and reserved effect keysfailureapinegativeproposed
Proves
BR-CAP-ACC-REC-005-13
Preconditions
A merchant lacks usable lead and cut-off defaults.
Steps
Record an eligible effect and attempt a source key reserved for manual entry.
Expected
Both invalid recordings fail without an item.
Data
Provide Isolated records for the cases described for this case.
Source
services-accounting:modules/reconciliation/services/settlement-items/settlement-item-recording.ts
12 Saved timing determines outstanding aginginteractionapiproposed
Proves
BR-CAP-ACC-REC-005-05 BR-CAP-ACC-REC-005-06 BR-CAP-ACC-REC-005-07 BR-CAP-ACC-REC-006-02 BR-CAP-ACC-REC-006-03
Preconditions
Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
Steps
[ { "do": "Record a capture around a holiday cut-off and inspect standing at arrival and beyond grace.", "expect": "The saved expected day drives aging without changing the capture amount.", "provenance": "proposed", "source": [ "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-005-capture-every-money-movement-a-processor-should-pay-out-with.md", "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-006-see-what-money-is-in-transit-late-or-missing.md" ] } ]
Expected
The saved expected day drives aging without changing the capture amount.
Data
Local merchant and bank accounts, an open operational batch and distinct preparation and approval callers.
Source
specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-005-capture-every-money-movement-a-processor-should-pay-out-with.md,specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-006-see-what-money-is-in-transit-late-or-missing.md
13 Clearing changes candidate eligibilityinteractionapiproposed
Proves
BR-CAP-ACC-REC-005-08 BR-CAP-ACC-REC-008-04
Preconditions
Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
Steps
[ { "do": "Record an uncleared electronic check, inspect candidates, clear it and inspect again.", "expect": "The same effect becomes eligible for the explanation after clearing supplies its timing.", "provenance": "proposed", "source": [ "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-005-capture-every-money-movement-a-processor-should-pay-out-with.md", "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-008-open-a-reconciliation-over-a-deposit-and-see-what-explains.md" ] } ]
Expected
The same effect becomes eligible for the explanation after clearing supplies its timing.
Data
Local merchant and bank accounts, an open operational batch and distinct preparation and approval callers.
Source
specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-005-capture-every-money-movement-a-processor-should-pay-out-with.md,specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-008-open-a-reconciliation-over-a-deposit-and-see-what-explains.md
14 Expected arrival determines detectioninteractionapiproposed
Proves
BR-CAP-ACC-REC-005-05 BR-CAP-ACC-REC-005-06 BR-CAP-ACC-REC-005-07 BR-CAP-ACC-REC-017-02 BR-CAP-ACC-REC-017-03 BR-CAP-ACC-REC-017-10
Preconditions
Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
Steps
[ { "do": "Record a timed capture, run detection at arrival and beyond grace, then repeat that day.", "expect": "Arrival creates no overdue concern; the later pass creates one and repeat delivery adds none.", "provenance": "proposed", "source": [ "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-005-capture-every-money-movement-a-processor-should-pay-out-with.md", "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-017-catch-overdue-money-stale-deposits-and-drifting-totals-every.md" ] } ]
Expected
Arrival creates no overdue concern; the later pass creates one and repeat delivery adds none.
Data
Local merchant and bank accounts, an open operational batch and distinct preparation and approval callers.
Source
specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-005-capture-every-money-movement-a-processor-should-pay-out-with.md,specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-017-catch-overdue-money-stale-deposits-and-drifting-totals-every.md

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.