Skip to main content

Chart of accounts / posting overview

Kandra.Persistence/Accounting is a second, independent accounting engine (Acc_ tables in PlatformDbContext) — deliberately not built on top of the Balance/Movement register engine described under Register Engine. This is a directed design choice: don't attempt to unify the two.

Core pieces:

  • Chart of accounts — account codes, hierarchy.
  • Subconto — dimension/analytics slots attached to an account. ISubconto implementors are narrow by design (Item, Warehouse, Counterparty, Waybill, GoodsReceipt in the reference configuration) — grep , ISubconto in the source rather than assuming broader coverage. SubcontoSlot is the EntityRef in ISubcontoSet.Values (no separate IRootEntity instances); build one with chart.AsOf(code).With(...).Build() (AccountWithSubcontoBuilder).
  • Posting batchesIPostingService, called only from a document's OnSubmitAsync via ISubmitScope, same as register writers.
  • Balance updater and query service — for reading posted balances/turnovers and the posted ledger (see the account transactions viewer in the practical guide's Chart of accounts page).

Full design: see the platform's docs/chart-of-accounts-posting-subsystem.md.