API reference

Reconciliations

An account's balance held against its statement.

Guides: Close the month

List an account's reconciliations

GET/v1/reconciliations

client.reconciliations.list()

Every comparison of an account against a statement, newest first: the two balances, the difference and whether they agreed. An attempt is never edited; a later one for the same date stands in its place and both stay.

Parameters

NameTypeDescription
limitQueryinteger

Page size, 1–200.

Default 50
cursorQuerystring or null

The next_cursor of the previous page.

account_idQuerystring or null

An id that starts with gla_.

Response

200ReconciliationPage

Errors

400
The request was malformed or a parameter is invalid.
401
No valid credential was sent.
403
The credential or the member's role does not allow this.
404
No such resource in this ledger.
409
A conflicting request, e.g. one with the same Idempotency-Key still running.
422
A well-formed request a business rule refused.
429
Too many requests; retry after the Retry-After header.
500
Something failed on our side; the request_id identifies it.

Example

curl
curl "https://api.ledgerit.ai/v1/reconciliations" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN"

Reconcile an account against its statement

POST/v1/reconciliations· Idempotent

client.reconciliations.create()

Compare an account against a statement figure, and record the result.

A difference raises an exception that blocks the close. That is the point: it is the only check in the system that can catch a transaction the ledger never saw.

Request body

ReconcileRequest

Response

201ReconcileResponse

Errors

400
The request was malformed or a parameter is invalid.
401
No valid credential was sent.
403
The credential or the member's role does not allow this.
404
No such resource in this ledger.
409
A conflicting request, e.g. one with the same Idempotency-Key still running.
422
A well-formed request a business rule refused.
429
Too many requests; retry after the Retry-After header.
500
Something failed on our side; the request_id identifies it.

Example

curl
curl -X POST "https://api.ledgerit.ai/v1/reconciliations" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"account_id":"…","as_of":"2026-09-30","statement_balance":0}'

Objects

The objects these operations take and return.

ReconciliationPage

NameTypeDescription
dataRequiredarray of ReconciliationOut
has_moreRequiredboolean
next_cursorRequiredstring or null

ReconcileRequest

NameTypeDescription
account_idRequiredstring

An id that starts with gla_.

as_ofRequiredstring (date)
include_descendantsbooleanDefault false
statement_balanceRequirednumber | string

ReconcileResponse

NameTypeDescription
account_idRequiredstring

An id that starts with gla_.

as_ofRequiredstring (date)
differenceRequiredstring
is_balancedRequiredboolean
ledger_balanceRequiredstring
statement_balanceRequiredstring

ReconciliationOut

One time an account was compared against a statement, and what it found.

NameTypeDescription
account_codeRequiredstring
account_idRequiredstring

An id that starts with gla_.

account_nameRequiredstring
as_ofRequiredstring (date)

The date the statement balance is as of.

by_personRequiredboolean

True when a person entered the statement balance; false when a month's close compared against the balance a connected source reported.

created_atRequiredstring (date-time)
differenceRequiredstring

Statement less ledger; zero when they agree.

idRequiredstring

An id that starts with recon_.

includes_descendantsRequiredboolean

Whether the comparison covered the account and every account under it.

is_balancedRequiredboolean
ledger_balanceRequiredstring

What the ledger held on that date.

statement_balanceRequiredstring