Skip to content

Last reviewed: 2026-06-16

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 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.
  • Reversal should preserve the original entry relationship.
  • Adjustments should explain their reason and source.

User implications

  • Users can post transactions when the period is open.
  • Reversals and adjustments should be documented with reasons.

Developer implications

  • Enforce period checks inside the posting path.
  • Track relationships between original and reversal entries.
  • Require explanations for adjustments.
  • 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/account.contract.md
  • ../../user/period-close.md