Skip to main content
GET
Run an on-demand ledger reconciliation
Reconciles the tenant’s invoices against its PostgreSQL ledger entries — and, when TigerBeetle is connected, diffs the Postgres ledger (authoritative) against TigerBeetle transfers — returning the computed drift report. The same check runs automatically once a day; discrepancies are logged as Ledger reconciliation found discrepancies.

Example Request

Response

Report Fields

Discrepancy Types

Each discrepancy carries the relevant identifier (invoice_id, transaction_id, or reference_id) plus expected_amount and found_amount in minor units.

tb_skip_reason

The TigerBeetle pass never fails the report — when it cannot run, tb_compared is false and tb_skip_reason says why:
  • Not connected — TigerBeetle is not configured for this deployment (normal: PostgreSQL is the authoritative ledger)
  • Above the memory guard — the tenant has more than 100,000 ledger transactions or transfers; the in-memory diff is skipped rather than risking an OOM
  • Read failure — enumerating transfers or loading transaction summaries errored (the message includes the underlying error)
This GET is computed on demand and never persisted — it only reads. Correcting drift (e.g. with a reversing entry) is a deliberate human action. If you want an audit trail of when reconciliation ran and what it found, use Reconciliation Run History to run and record a summary. See the ledger guide and the incident runbook’s SEV1 procedure for how to act on a non-zero report.

Authorizations

Authorization
string
header
required

Tenant API key obtained from POST /auth/register or POST /v1/developer/keys.

Response

Reconciliation report.

data
object