01must proveConfirmed | Ledger requests join the operational batch selected by the unit’s default assignment for that merchant, and fail without writes when the batch cannot accept work or its period is closed. | policy | service | test |
02must proveConfirmed | Request accounting dates follow the operational batch, document dates preserve the original effect and lines distinguish bank, clearing, fee, reserve, adjustment and write-off roles. | calculation | service | test |
03must proveConfirmed | An effect generating no posting plan needs no operational batch, including a zero transfer without fees. | policy | service | test |
04must proveConfirmed | Requests are append-only, remain within one unit, balance by currency and contain one to twenty lines with exactly one debit or credit side each. | invariant | database | test |
05must proveConfirmed | Each accounting effect uses a workspace-unique key that distinguishes finalization, reversal, write-off and successive item recognitions. | invariant | database | test |
06must proveConfirmed | Bank and clearing lines use their bank and merchant ledger accounts, while fees, reserves and write-offs resolve the unit’s purpose defaults. | calculation | service | test |
07must proveConfirmed | Posted status is calculated from an unreversed batch posting containing the request’s reconciliation entry; reversing that posting makes the request pending again. | calculation | service | test |
08must proveConfirmed | Operational batch posting creates the reconciliation entries, one per request, and unposting removes those entries; reconciliation does not post directly. | policy | service | test |
09must proveConfirmed | Posting requests support two-decimal currencies only and reject other exponents without writes until batch posting supports minor units. | validation | service | test |
10must proveConfirmed | Pending batch requests are read in creation order with event-key tie breaking and pages capped at five hundred. | policy | service | test |
11must proveConfirmed | Request creation requires the causing command’s transaction, and its operational batch cannot be deleted while the request refers to it. | invariant | service, database | test |