Skip to content

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.
  • ../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
  • ../../user/period-close.md