Skip to content
Ledgerline Help

Statements and exports

Updated 2 September 20263 min read

On this page

A statement is a fixed, signed-off record of one ledger over one calendar month. Finance teams use statements for close, audit and to compare against bank records. Ledgerline generates them automatically and also lets you export any date range on demand.

Monthly statements

On the first business day of each month, Ledgerline closes the previous month and produces a statement for every ledger. They are ready by 06:00 UTC, and a statement.ready event is sent to your webhook endpoints.

A statement contains:

  • Opening and closing balance for every account, by balance type.
  • Every posted entry in the period, in order of effective_at.
  • Totals of debits and credits per currency, which always match.
  • Payout summaries grouped by rail, with fees.
  • FX conversions with the rate and the quote id used.

Once issued, a statement is immutable. A correction made later appears in the next period as a reversing transaction, which is why transactions cannot be backdated more than 90 days. See Transactions and entries.

Formats

Format Best for
PDF Reading, sharing with auditors and archiving.
CSV Spreadsheets and quick analysis.
CAMT.053 ISO 20022 bank-to-customer statements, for ERPs in Europe.
MT940 Legacy SWIFT format that many treasury systems still expect.
BAI2 The common format for US banks and treasury software.

Request a format with the format parameter. CAMT.053, MT940 and BAI2 describe one account per statement, so a ledger export in those formats returns one file per account in a zip.

Download a statement

curl "https://api.ledgerline.dev/v1/statements?ledger_id=led_01J9QK3ZV8&period=2026-08" \
  -H "Authorization: Bearer $LEDGERLINE_API_KEY"
{
  "id": "stm_01J9ZW8N5T",
  "ledger_id": "led_01J9QK3ZV8",
  "period": "2026-08",
  "status": "ready",
  "files": [
    { "format": "pdf", "url": "https://files.ledgerline.dev/stm_01J9ZW8N5T.pdf", "expires_at": "2026-09-02T10:00:00Z" }
  ]
}

File URLs are signed and expire after one hour. Request the statement again to get a fresh link. Reading statements needs the reports:read scope.

Custom exports

Use an export for a period that is not a calendar month, or for data that has not been closed yet.

curl https://api.ledgerline.dev/v1/exports \
  -H "Authorization: Bearer $LEDGERLINE_API_KEY" \
  -H "Idempotency-Key: 1f6b3d9a-0c52-4e18-97a4-8b2e5d7c3a60" \
  -d ledger_id=led_01J9QK3ZV8 \
  -d from=2026-07-01 \
  -d to=2026-09-30 \
  -d format=csv

An export can cover at most 12 months. Larger ranges must be split. Exports are asynchronous and return 202; you receive a statement.ready event when the file is ready. Export endpoints are limited to 10 requests per minute per key. See Rate limits.

Intraday exports are marked provisional, since pending transactions can still post or void.

Daily balance snapshots

At 00:00 UTC every day Ledgerline records the balance of every account. Snapshots are kept for seven years and are what the as_of balance parameter reads from. See Account balances and Data residency and retention.

Statements and reconciliation

A statement tells you what Ledgerline recorded. Reconciliation compares it with what the bank recorded. Import your bank's statement and let Ledgerline match them: see Reconciliation.

Time zones

All periods are in UTC. A transaction effective at 23:30 on the last day of a month in New York falls on the first day of the next month in UTC. If your books close in local time, export by explicit from and to timestamps instead of using the calendar month.