The category map separates specified examples from recorded gaps. The table lists a scenario or finding for each rule requiring proof; a listed scenario may still be proposed. Executable bindings cover their cited assertions, while the transition, permission and invariant registers identify combinations that need further proof.
Commerce creates an 80.00 bill. Staff add an eligible 20.00 charge before posting, inspect available actions, render the revised bill and submit it for delivery.
The customer document shows 100.00 and the revised content; the action list reflects the issued bill; the service retry creates no second bill. The complete chain remains proposed until one executable run proves its combined outcomes.
Coverage
Rulecovered
Transitiongap: FND-ACC-TRX-066
Validationcovered
Permissiongap: FND-ACC-TRX-066
Edgegap: FND-ACC-TRX-066
Failurecovered
Boundarycovered
Concurrencycovered
Invariantcovered
Interactioncovered
Test Scenarios
18 scenarios proving CAP-ACC-TRX-001; 15 bound to an existing test.
01Obsolete draft saves preserve the newer statevalidationapinegativetest
Version two already supersedes the editor’s version one.
Steps
[
{
"do": "Submit a replacement using the first version.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/update-draft.integration.spec.js#it refuses an update at a version the draft has moved past (stale)"
}
]
[
{
"do": "Save it against Beta instead.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/update-draft.integration.spec.js#it refuses a change of business unit: a draft keeps its unit (business_unit_mismatch)"
}
]
JPY and KWD pricing support fractional extensions.
Steps
[
{
"do": "Issue half-unit extensions, then submit noninteger money and excessive discount.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/rounding.integration.spec.js#it totals the rounded lines (3422), not a rounding of the unrounded sum (3421)"
}
]
Expected
Extensions round away from zero once and sum exactly; invalid money and discount fail.
Thirty-day terms exist and one customer defaults to forty-five days.
Steps
[
{
"do": "Create requested-terms, customer-default, explicit-date and earlier-date drafts.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/customer-terms-precedence.integration.spec.js#it takes the bill-to’s default terms when the request names none, the due date 45 days after the invoice date"
}
]
Expected
Dates follow the selected precedence and the earlier date is rejected.
[
{
"do": "Submit an end before its start, then omit the end.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/service-period-order.integration.spec.js#it refuses a period ending before it starts with a 400 naming the service period"
}
]
Expected
Neither draft is retained and each refusal identifies its period.
Available cases include closed and foreign batches, uncovered dates and no assignment rule.
Steps
[
{
"do": "Attempt issue in each invalid context.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/issue.integration.spec.js#it refuses the issue when the unit has no assignment rules (batch_required), the draft unchanged"
}
]
Expected
Batch and period refusals preserve draft status without numbering.
[
{
"do": "Issue two separate bills.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/issue.integration.spec.js#it numbers the tenant’s first invoice 1,000,000"
}
]
Expected
Their references are one million and one million plus one.
One product has account setup and another lacks it.
Steps
[
{
"do": "Issue both as lines of the same invoice.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/issue.integration.spec.js#it resolves no account on a line of a product with no setup either (the unit’s defaults are the posting’s to read)"
}
]
Expected
Neither line receives ledger accounts during issue.
[
{
"do": "Attempt application-role changes to product, amounts and tax class, then delete its line and header.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/db/invoices.table.integration.spec.js#it refuses a change of an issued line’s amounts (RHA04)"
}
]
Separate invoices are unpaid, partly settled, fully settled and zero-total.
Steps
[
{
"do": "Read each after the relevant financial action.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/issue.integration.spec.js#it is paid at once, its line with it"
}
]
Expected
The first two remain open and the latter two are paid.
[
{
"do": "Issue and convert it, retry conversion, and compare deletion of an unconverted quote and real bill.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/issue.integration.spec.js#it gives it no batch, no accounting date and no recognition (FC-06)"
}
]
Expected
Quote issue creates no debt; conversion keeps the number; repeat conversion and real-bill deletion fail.
New York tax rules, an exempt organization and an addressless party exist.
Steps
[
{
"do": "Issue ordinary, shipped, exempt and addressless staff charges.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/issue-tax.integration.spec.js#it writes one tax line per rate on the dues line, naming the zone and the rate and no account"
}
]
Expected
Frozen per-rate tax follows the applicable address, exemption produces no tax and the addressless taxable case fails.
[
{
"do": "Create required-policy, unspecified-policy and invalid-policy invoices.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/e2e/card-fees.e2e.spec.js#it stamps the body’s policy on the invoice, and the unit’s default (optional) when the body names none"
}
]
Expected
The first retains required, the next optional, and invalid policy fails.
A foreign-currency draft can use a stored or configured dated rate.
Steps
[
{
"do": "Issue separate drafts with both, configured only and neither.",
"provenance": "proposed",
"source": "services-accounting:modules/transactions/services/invoices/invoice-issue.ts:exchangeRateOf"
}
]
Expected
Stored rate wins, inverse configured rate follows, and no available rate leaves none stored.
An isolated workspace has eligible customers, products, matching accounts, an open period and two open batches. Each branch owns separate financial records.
Steps
[
{
"do": "Commerce creates an 80.00 bill. Staff add an eligible 20.00 charge before posting, inspect available actions, render the revised bill and submit it for delivery.",
"provenance": "proposed",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/update-draft.integration.spec.js#it refuses an update at a version the draft has moved past (stale); services-accounting:modules/transactions/tests/integration/services/invoices/issue.integration.spec.js#it refuses the issue when the unit has no assignment rules (batch_required), the draft unchanged; services-accounting:modules/transactions/tests/integration/db/invoices.table.integration.spec.js#it refuses a change of an issued line’s amounts (RHA04); services-accounting:modules/transactions/tests/integration/services/invoices/issue.integration.spec.js#it gives it no batch, no accounting date and no recognition (FC-06); rhythm-v2-docs:specs/accounting/transactions/design/workflows/WF-ACC-TRX-001-create-and-issue-an-invoice.md#WF-ACC-TRX-001; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-001-bill-a-customer-with-an-invoice.md#BR-CAP-ACC-TRX-001-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-001-bill-a-customer-with-an-invoice.md#BR-CAP-ACC-TRX-001-07; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-001-bill-a-customer-with-an-invoice.md#BR-CAP-ACC-TRX-001-10; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-001-bill-a-customer-with-an-invoice.md#BR-CAP-ACC-TRX-001-12; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-002-correct-or-cancel-an-issued-invoice-before-its-batch-posts.md#BR-CAP-ACC-TRX-002-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-002-correct-or-cancel-an-issued-invoice-before-its-batch-posts.md#BR-CAP-ACC-TRX-002-03; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-005-send-a-customer-their-invoice.md#BR-CAP-ACC-TRX-005-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-005-send-a-customer-their-invoice.md#BR-CAP-ACC-TRX-005-06; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-016-find-transactions-and-see-what-can-be-done-next.md#BR-CAP-ACC-TRX-016-01; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-016-find-transactions-and-see-what-can-be-done-next.md#BR-CAP-ACC-TRX-016-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-020-let-commerce-and-the-processor-work-with-accounting-safely.md#BR-CAP-ACC-TRX-020-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-020-let-commerce-and-the-processor-work-with-accounting-safely.md#BR-CAP-ACC-TRX-020-03"
}
]
Expected
The customer document shows 100.00 and the revised content; the action list reflects the issued bill; the service retry creates no second bill.
Data
Separate command keys, two customers, invoice lines, receipts and credit; controlled processor outcomes and a fixed calendar where the branch requires them.
Two callers hold the same eligible draft and submit the same issue key at once.
Steps
[
{
"do": "Race the two issue requests and inspect the invoice’s issue events and receivable facts.",
"provenance": "test",
"source": "services-accounting:modules/transactions/tests/integration/services/invoices/idempotency.integration.spec.js#it issues the invoice once and refuses the other issue invoice_not_draft; services-accounting:modules/transactions/tests/integration/services/invoices/idempotency.integration.spec.js#it appends one set of facts"
}
]
Expected
One request issues the invoice and the other is refused because the draft has already moved; only one set of financial facts remains.
Data
Branch-owned records in one configured workspace, valid accounting context and controlled requests at the stated boundary.