Last reviewed: 2026-06-16
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 codes are strings and may 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.
- 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.
- Historical entries must retain their original account reference.
- Historical journal lines display current account code and name unless a future report snapshot explicitly preserves historical labels.
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.
- Record material account changes in account history.
- Enforce role cardinality explicitly for semantic account roles.
Related contracts
../contracts/account.contract.md
Related documentation
../../shared/terminology.md../../user/chart-of-accounts.md