Skip to main content
Where a workspace has the ledger enabled, the reservations spend control takes are mirrored into it as balanced postings your finance team can reconcile. You do not write those postings, and you do not need to read the ledger docs to use spend control. What that buys you is that “what did this agent spend last month” becomes a balance query rather than an archaeology project across application logs. It is a capability you switch on, not a property of the platform: without it, authorization is unchanged and there are no postings.

The account layout

Each workspace owns its own books, and each agent owns an account inside them, named spend:{agent_id}, so the accounting graph mirrors your agent topology without you designing one.
200 OK

Reading the figures

unprojected_cents is the one to understand. It is normally near zero and transiently non-zero while projections settle. A persistently growing value means projections are backing up. That is worth an alert, and never a reason to distrust committed_cents, which does not depend on the ledger at all.

The projection is never in the authorization path

A slow or unavailable ledger can delay a posting. It can never delay or change a decision. If the ledger is unreachable, this endpoint degrades rather than failing: ledger_ready comes back false, accounts is empty, and ledger_committed_cents reads zero. The control-plane figures above it stay correct throughout.
ledger_ready: false means “we could not read the books”, not “the books are wrong”. Treat it as a monitoring signal, not a spend signal.

Using the books directly

The projected postings are ordinary ledger transactions, so everything in the ledger concepts applies to them: balances at any instant, statements over a window, reconciliation against an external snapshot, and the reports. Two things are worth knowing before you query them:
  • Intents carry ledger_transaction_id once projected, so you can go from a decision to its postings directly rather than matching on amount and timestamp.
  • The ledger knows nothing about agents. It speaks accounts, postings, transactions and balances. spend:{agent_id} is just an account id we chose; no ledger code path treats it specially.

Availability

Check Billing in the console for whether the ledger is on for your workspace. Kordio Control works either way. Without it, decisions, reservations and the audit trail all behave exactly as documented. What you lose is the projected postings and the ledger-side figures on workspace funds, not any part of authorization.

Next steps

Ledger: post your first transaction

Write to the books yourself, alongside the projection.

Ledger: reconciliation

Match projected spend against what the rail actually charged.