Skip to content

Last reviewed: 2026-08-02

Accounts

Purpose

Accounts classify accounting activity and preserve the meaning of historical entries.

Canonical rules

  • Accounts classify activity by type, code, and normal balance.
  • Account codes must be unique within a company.
  • Account identity is the immutable internal account id, not the visible account code.
  • Account origin and standard-chart adoption are independent. Reviewed adoption preserves the account id, source, and history.
  • Account codes are strings and must preserve leading zeros.
  • Financial behavior must depend on explicit account properties, not account-number patterns.
  • BooksPlus standard account-number ranges are conventions for standard charts only.
  • Posting accounts are distinct from report headings and presentation groups.
  • Report headings and financial statement groupings belong to Reporting, not account master data.
  • Used accounts may be retired but not deleted.
  • Used accounts may be renamed or renumbered with audit history, but their account id remains unchanged.
  • Account maintenance retirement requires an active replacement account.
  • Posting requires an active account unless an authorized historical or correction process allows otherwise.
  • Routine posting requires an active account that is configured for posting and direct posting.
  • Correction adjustments require active direct-posting accounts.
  • A full reversal reuses the exact immutable account ids on the target lines even when those accounts are now inactive or retired; current replacement mappings, codes, names, or roles must not redirect the reversal.
  • Historical entries must retain their original account reference.
  • Live reports and historical journal-line review display current account code and name. A persisted Reporting snapshot preserves the account code, name, type, and normal balance reviewed at capture without changing account or ledger history.

User implications

  • Users choose an account to categorize each transaction.
  • Retired accounts remain visible for history and audit.
  • Active accounts are required for new postings.
  • Startup companies may install the BooksPlus starter chart.
  • Existing companies may import a chart of accounts through a staged review process.

Developer implications

  • Enforce unique account codes per company.
  • Preserve references to retired accounts in existing entries.
  • Differentiate active, inactive, and retired records.
  • Treat account code lookup as exact-match first; shorthand padding is a chart-level convention.
  • Reject ambiguous account resolution rather than selecting silently.
  • Preflight every starter-chart code collision and require an explicit reviewed resolution before assigning standard-chart identity.
  • Record material account changes in account history.
  • Enforce role cardinality explicitly for semantic account roles.
  • Validate historical account exceptions only against the target journal-entry lines and immutable same-company account identity.
  • ../contracts/account.contract.md
  • ../contracts/accounting-correction.contract.md
  • ../contracts/reporting.contract.md
  • ../../shared/terminology.md
  • ../../user/chart-of-accounts.md