Skip to content

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.
  • ../contracts/account.contract.md
  • ../../shared/terminology.md
  • ../../user/chart-of-accounts.md