Skip to content

Accounts and financial records

Module id: accounts

Who holds the account, kept apart from how money was posted.

Account services hold relationships. Ledger and general-ledger services hold movements and books. An institution core that remains the book of record connects through an adapter.

Accounts, read top to bottom: account opening, then relationships, then ledger and general ledger
Read top to bottom. The channel opens the account. The domain holds the relationship. The core holds the account record, the ledger, and the general ledger.

exp-accounts is the channel. domain-banking-accounts coordinates the relationship. Three core services split the record: core-banking-accounts, core-banking-ledger, and core-common-accounting-gl. There is no domain-banking-ledger and no exp-ledger.

What it owns

  • Account relationships, holders, spaces, balances, and restrictions
  • Account opening for a channel
  • Ledger transactions and the lines that make a posting
  • General-ledger accounts, journal batches, entries, and lines

What it does not own

  • The party. That is customers.
  • Payment orders and card records. Those are payments.
  • Loan schedules. Those are lending.
  • An institution core that remains the book of record. That stays behind an adapter.

Repositories

Repository Layer What it holds OpenAPI
exp-accounts Experience Account opening journey and accounts by party openapi.yml
domain-banking-accounts Domain Holders, accounts, spaces, restrictions, back office openapi.yml
core-banking-accounts Core Account relationships, balances, restrictions, spaces openapi.yml
core-banking-ledger Core Transactions, lines, statements openapi.yml
core-common-accounting-gl Core GL accounts and journal batches openapi.yml

How the pieces fit

exp-accounts exposes the account-opening journey and accounts for a party. That is the channel edge.

domain-banking-accounts coordinates holders, accounts, spaces, and restrictions, including a back-office view. It does not post the ledger.

core-banking-accounts persists the relationship: accounts, spaces, balances, restrictions, parameters, and status. core-banking-ledger persists transactions and typed lines (transfers, fees, interest, deposits, withdrawals, and scheme-specific lines listed in that spec). core-common-accounting-gl persists GL accounts, journal batches, entries, and lines.

A payment or a loan keeps its own record and posts here when the movement belongs on the books. The three cores are not one table.