Last reviewed: 2026-07-30
Posting and Reversal
Purpose
Posting and reversal define how accounting records become durable and how corrections are managed.
Canonical rules
- Posting creates durable accounting records.
- Posting assigns human-visible journal entry numbers for posted journal entries through the central posting path.
- Posting must respect period status.
- Posting must flow through one central posting path.
- Posting policy enforcement is centralized.
- No screen, import, background task, close workflow, or feature-specific component may write ledger effects directly.
- The posting path must enforce balanced entries, valid posting accounts, effective dates, period status, source requirements, attribution, and idempotency where applicable.
- Formal accounting reports derive from the canonical ledger, not from workflow support tables.
- Corrections use a distinct protected Accounting workflow and still post ledger effects through central Accounting.
- Reversal fully neutralizes one eligible posted entry by exchanging each target line's debit and credit while preserving its immutable account, currency, amount, and line relationship.
- Launch reversal is full-entry only. Partial reversal is deferred.
- An adjustment is a new balanced entry that changes or reclassifies the accounting position without erasing or replacing its target.
- Reversal and adjustment must preserve their direct target relationship, reason, active correction evidence, authorization, and audit result.
- A posted target remains immutable; reversed and corrected state is derived from the posted correction chain.
- Correction posting uses the correction posting date and respects the correction-specific period rules in the Accounting Correction Contract.
- A seller-owned sales-tax remittance posts only after protected approval and recorded external-payment evidence under the Sales Tax Accounting and Remittance Contract. It uses central Accounting to debit Sales Tax Payable and credit the reviewed bank or cash account; BooksPlus never initiates the payment.
User implications
- Users can post routine transactions when the period is open.
- Users preview reversals and adjustments and supply their reasons and correction evidence before the protected posting action.
Developer implications
- Enforce period checks inside the posting path.
- Track relationships between original and reversal entries.
- Require explanations for adjustments.
- Derive full reversal lines from the immutable target entry rather than descriptions, provider fields, or current account labels.
- Keep correction staging and previews outside ledger and report truth.
- Keep posting rules independent of UI, import, close, and report implementation details.
- Let feature workflows prepare posting requests, but require the accounting posting path to accept or reject them.
Related contracts
../contracts/kernel.contract.md../contracts/journal-entry.contract.md../contracts/accounting-correction.contract.md../contracts/account.contract.md../contracts/sales-tax-accounting-and-remittance.contract.md
Related documentation
../../user/period-close.md