How the primitives relate
Midaz turns business events into balanced ledger postings. A small set of primitives builds on each other:
Chart of Accounts
This is the structure of balances your product needs. Midaz has no dedicated Chart of Accounts API. Instead, you model it on a ledger from assets, accounts, segments, portfolios, and account types. Thecode field on an Accounting Entry (for example 1.1.1.001) carries the traditional account number for each posting.
Account Types
These are reusable classifications that you assign to accounts. Each account type has a name, a key value, and a description. You use account types to group accounts in your financial structure.Accounting Entries (Rubricas)
A route does not need an entry for every transaction action. When it emits an action, the entry must satisfy the route-specific debit and credit requirements. Each configured entry contains the debit and/or credit rubric required by its operation route; every present rubric has acode and description. With route validation (accounting.validateRoutes) enabled, Midaz stamps the matching rubric onto each operation, based on the operation’s action and direction.
Operations
A transaction produces ledger movements. An Operation is a single leg of a transaction — one debit or one credit on a specific account. Midaz validates that the original transaction’s source, destination, and send totals agree. Its returned operation set is not always a debit/credit pair: pending creation and cancellation process only source-side legs. Each operation carries atransactionId, an amount, and an assetCode. When route validation (accounting.validateRoutes) is enabled on the ledger and the operation route defines accounting entries, the operation also carries a routeCode and a routeDescription from the resolved rubric.
With
accounting.validateRoutes enabled, when an operation route defines an accounting entry, Midaz resolves a rubric for the operation’s action and direction. It writes the rubric code to the operation’s routeCode and links the operation with a transactionId. Together, these fields give a complete audit trail: transaction → operation → rubric. Your teams trace which accounting rule applied to each movement, without extra lookups.Accounting primitives workflow

