Skip to content

ATS-ACC-TRX-010Record a remitter’s combined customer receipt: Capability Test Specification

Markdown

ATS-ACC-TRX-010

Record a remitter’s combined customer receipt: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaAccountingModuleTransactionsRevision2

Read atservices-accounting f47cb263

Coverage

  • Rule gap: FND-ACC-TRX-075
  • Transition gap: FND-ACC-TRX-075
  • Validation covered
  • Permission covered
  • Edge gap: FND-ACC-TRX-075
  • Failure covered
  • Boundary covered
  • Concurrency gap: FND-ACC-TRX-075
  • Invariant gap: FND-ACC-TRX-075
  • Interaction covered

Test Scenarios

8 scenarios proving CAP-ACC-TRX-010; 6 bound to an existing test.

01 Remittance authority also requires payment accesspermissionapinegativetest
Proves
BR-CAP-ACC-TRX-010-01
Preconditions
A reader and remittance-only identity exist.
Steps
[ { "do": "Attempt entry and void as reader and inspect with remittance access alone.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/e2e/remittances.e2e.spec.js#it is refused recording and voiding as a reader, and reading as one without the payments’ key (403)" } ]
Expected
Combined authority checks deny each operation.
Data
Read-only and incomplete-access personas.
Bound to
services-accounting:modules/transactions/tests/e2e/remittances.e2e.spec.js#it is refused recording and voiding as a reader, and reading as one without the payments’ key (403)
Source
services-accounting:modules/transactions/tests/e2e/remittances.e2e.spec.js#it is refused recording and voiding as a reader, and reading as one without the payments’ key (403)
02 Unstated excess is a total mismatchvalidationapinegativetest
Proves
BR-CAP-ACC-TRX-010-03 INV-DOM-ACC-TRX-003-17
Preconditions
The selected target value is 180.00.
Steps
[ { "do": "Send 190.00 with no remainder and 200.00 with 10.00 remainder.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a total that is not the lines plus the remainder, writing nothing: remittance_total_mismatch" } ]
Expected
Both mismatched totals fail without recording.
Data
An expected invoice.
Bound to
services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a total that is not the lines plus the remainder, writing nothing: remittance_total_mismatch
services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a remainder left unstated: the total of 200.00 over a line of 180.00 is a mismatch, not an inferred remainder
Source
services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a total that is not the lines plus the remainder, writing nothing: remittance_total_mismatch
03 Remittance method must be offline and validvalidationapinegativetest
Proves
BR-CAP-ACC-TRX-010-04
Preconditions
Card and directly selected reference-required check methods exist.
Steps
[ { "do": "Record with card, then with check lacking its number.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a card method: remittance_method_not_offline" } ]
Expected
Method and reference checks reject the requests.
Data
Configured receipt methods.
Bound to
Source
services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a card method: remittance_method_not_offline
04 Invalid member lines roll back the receiptfailureapinegativetest
Proves
BR-CAP-ACC-TRX-010-05
Preconditions
Cases include paid, foreign-currency, foreign-member, duplicate and excessive targets.
Steps
[ { "do": "Record each case, placing excessive value after earlier valid members.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a line whose stated bill-to is not its invoice’s: business_unit_mismatch" } ]
Expected
Every invalid request fails and earlier generated payments roll back.
Data
Expected invoices across several members.
Bound to
services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a line whose stated bill-to is not its invoice’s: business_unit_mismatch
services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a line for more than its invoice owes after another bill-to’s payment was made, rolling that payment back too: over_application
Source
services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a line whose stated bill-to is not its invoice’s: business_unit_mismatch
05 Employer excess stays with the employerinteractionapitest
Proves
BR-CAP-ACC-TRX-010-06
Preconditions
Payroll expects 212 invoices but four members have left.
Steps
[ { "do": "Record the 208 selected invoices and an explicit remainder.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/remittances/record-remittance.integration.spec.js#it allocates each member’s payment wholly to that member’s invoice, and leaves the remainder unapplied on Metro Transit" } ]
Expected
One transaction creates 208 member receipts and one employer-held remainder receipt with payer attribution.
Data
A payroll remittance population.
Bound to
services-accounting:modules/transactions/tests/integration/services/remittances/record-remittance.integration.spec.js#it writes 209 payments in the one transaction: 208 members’ and the remainder on Metro Transit
services-accounting:modules/transactions/tests/integration/services/remittances/record-remittance.integration.spec.js#it allocates each member’s payment wholly to that member’s invoice, and leaves the remainder unapplied on Metro Transit
services-accounting:modules/transactions/tests/integration/services/remittances/record-remittance.integration.spec.js#it allocates every member payment to its own member’s invoice and to no one else’s
services-accounting:modules/transactions/tests/e2e/remittances.e2e.spec.js#it records three payments, the members’ allocated and the remainder unapplied on Metro Transit, each paid by Metro
Source
services-accounting:modules/transactions/tests/integration/services/remittances/record-remittance.integration.spec.js#it allocates each member’s payment wholly to that member’s invoice, and leaves the remainder unapplied on Metro Transit
06 Whole-receipt void requires untouched moneytransitionapitest
Proves
BR-CAP-ACC-TRX-010-07
Preconditions
Separate remittances are reusable, externally allocated and posted.
Steps
[ { "do": "Void each and repeat the first void.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/remittances/void-remittance.integration.spec.js#it voids every payment it made, taking their allocations back and returning the remainder" } ]
Expected
Only the untouched receipt restores all debt; other and repeat requests preserve records.
Data
Posted and reused-money variants.
Bound to
services-accounting:modules/transactions/tests/integration/services/remittances/void-remittance.integration.spec.js#it voids every payment it made, taking their allocations back and returning the remainder
Source
services-accounting:modules/transactions/tests/integration/services/remittances/void-remittance.integration.spec.js#it voids every payment it made, taking their allocations back and returning the remainder
07 Remitter allocation changes customer standing togetherinteractionapiproposed
Proves
BR-CAP-ACC-TRX-010-05 BR-CAP-ACC-TRX-010-06 BR-CAP-ACC-TRX-010-07 BR-CAP-ACC-TRX-008-01 BR-CAP-ACC-TRX-008-02 BR-CAP-ACC-TRX-017-01 BR-CAP-ACC-TRX-017-04
Preconditions
An isolated workspace has eligible customers, products, matching accounts, an open period and two open batches. Each branch owns separate financial records.
Steps
[ { "do": "Record a combined receipt for two members with 80.00 and 40.00 debt and an explicit 20.00 remitter remainder. Read member and remitter standing, then void the untouched remittance.", "provenance": "proposed", "source": "services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a line whose stated bill-to is not its invoice’s: business_unit_mismatch; services-accounting:modules/transactions/tests/integration/services/remittances/record-remittance.integration.spec.js#it allocates each member’s payment wholly to that member’s invoice, and leaves the remainder unapplied on Metro Transit; services-accounting:modules/transactions/tests/integration/services/remittances/void-remittance.integration.spec.js#it voids every payment it made, taking their allocations back and returning the remainder; rhythm-v2-docs:specs/accounting/transactions/design/workflows/WF-ACC-TRX-012-record-and-void-a-remittance.md#WF-ACC-TRX-012; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-010-record-one-remitter-s-money-for-many-customers.md#BR-CAP-ACC-TRX-010-05; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-010-record-one-remitter-s-money-for-many-customers.md#BR-CAP-ACC-TRX-010-06; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-010-record-one-remitter-s-money-for-many-customers.md#BR-CAP-ACC-TRX-010-07; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-008-put-a-payment-s-money-on-the-right-invoices.md#BR-CAP-ACC-TRX-008-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-008-put-a-payment-s-money-on-the-right-invoices.md#BR-CAP-ACC-TRX-008-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-04" } ]
Expected
Member receipts settle only their own debt; the remitter holds 20.00; the combined void restores both debts and removes the held remainder.
Data
Separate command keys, two customers, invoice lines, receipts and credit; controlled processor outcomes and a fixed calendar where the branch requires them.
Source
services-accounting:modules/transactions/tests/integration/services/remittances/remittance-refusals.integration.spec.js#it refuses a line whose stated bill-to is not its invoice’s: business_unit_mismatch; services-accounting:modules/transactions/tests/integration/services/remittances/record-remittance.integration.spec.js#it allocates each member’s payment wholly to that member’s invoice, and leaves the remainder unapplied on Metro Transit; services-accounting:modules/transactions/tests/integration/services/remittances/void-remittance.integration.spec.js#it voids every payment it made, taking their allocations back and returning the remainder; rhythm-v2-docs:specs/accounting/transactions/design/workflows/WF-ACC-TRX-012-record-and-void-a-remittance.md#WF-ACC-TRX-012; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-010-record-one-remitter-s-money-for-many-customers.md#BR-CAP-ACC-TRX-010-05; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-010-record-one-remitter-s-money-for-many-customers.md#BR-CAP-ACC-TRX-010-06; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-010-record-one-remitter-s-money-for-many-customers.md#BR-CAP-ACC-TRX-010-07; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-008-put-a-payment-s-money-on-the-right-invoices.md#BR-CAP-ACC-TRX-008-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-008-put-a-payment-s-money-on-the-right-invoices.md#BR-CAP-ACC-TRX-008-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-04
08 Remittance line count is tested at the accepted limitboundaryapinegativeproposed
Proves
BR-CAP-ACC-TRX-010-08
Preconditions
Two independently keyed offline receipt requests contain distinct eligible member invoices with matching total amounts.
Steps
[ { "do": "Submit the first with two hundred and fifty lines and the second with two hundred and fifty-one.", "provenance": "proposed", "source": "services-accounting:modules/transactions/aws/api/remittances.schemas.ts; services-accounting:modules/transactions/tests/unit/api/remittances-schemas.spec.js" } ]
Expected
The first records the receipt; the second is refused during input validation without creating member payments.
Data
Branch-owned records in one configured workspace, valid accounting context and controlled requests at the stated boundary.
Source
services-accounting:modules/transactions/aws/api/remittances.schemas.ts; services-accounting:modules/transactions/tests/unit/api/remittances-schemas.spec.js

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.