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.
Related contracts
../contracts/account.contract.md../contracts/accounting-correction.contract.md../contracts/reporting.contract.md
Related documentation
../../shared/terminology.md../../user/chart-of-accounts.md