The Lever Ledger
Read the ledger of recoverable money: levers with their cited rows, direct and signal totals, the roles that were read, and how a build or a 503 is handled.
GET /v1/money-found/levers returns the ledger: the levers with their rows, the totals and the roles that were read. Builds run on a worker and are stored. A stored ledger is answered at once and refreshed in the background when it is stale. When none is stored, the call waits for the build and answers 503 while it is still running; retry in a few minutes. Decisions recorded on rows apply on every read.
The headline is direct_entitlement_total: the open owed entitlement on direct levers whose headline is not false. The other totals are reported next to it and never mixed in: estimated_total and potential_total for open exposure of those tiers on headline direct levers, signal_exposure_total for signal levers, further_direct_total for direct levers configured out of the headline, upside_total for upside levers, and resolved_total for entitlement on rows a person resolved or dismissed. Contract price rows the screen flagged or a review held count in held_for_review_total, and rows a review found to rest on a misread contract in not_finding_total. Both stay out of every other total.
/v1/money-found/leversLedger fields
levers[] fields
levers[].rows[] fields
cURL: Read the ledger
curl "https://api.talonic.com/v1/money-found/levers" \
-H "Authorization: Bearer $TALONIC_API_KEY"Response: Ledger (abridged)
{
"engine": "standard",
"currency": "USD",
"generated_at": "2026-10-21T07:40:02.000Z",
"direct_entitlement_total": 48210.5,
"signal_exposure_total": 12400,
"held_for_review_total": 3100,
"held_for_review_rows": 2,
"levers": [
{
"id": "contract_price_underbilled",
"name": "Underbilled against contract price",
"kind": "direct",
"entitlement": 48210.5,
"exposure": 0,
"rows": [
{
"key": "r_3f9a1c",
"explanation": "Invoice 20411 bills 0.082 per kWh against a contract price of 0.091.",
"tier": "owed",
"entitlement": 1204.5,
"exposure": 0,
"evidence": [{ "document_id": "7c1e2b94-3a5d-4f08-9b6a-52d8c0e1a4f3", "field": "unit_price", "label": "Invoice 20411" }]
}
]
}
],
"roles": [{ "role": "invoices", "kind": "pipeline", "id": "9d8c...", "name": "Customer invoices", "rows": 412 }],
"skipped": []
}503 from this route means the ledger is still building and no earlier build is stored. It is retryable and not a failure of the request. The same applies to GET /v1/money-found/evidence-requests and POST /v1/money-found/reviews/run, which read the ledger too.