API reference

Account reviews

Each balance-sheet account a month's close checks against its support, with the difference and the evidence.

Guides: Close the month

List every account review of every close

GET/v1/account_reviews

client.accountReviews.list()

Every account review of every close, newest first: the reviews being worked, and the record of each close before.

Parameters

NameTypeDescription
periodQuerystring or null

Only the reviews of this month, like 2026-09.

account_idQuerystring or null

An id that starts with gla_.

statusQuerystring or null

Only reviews in this state.

One of open, reviewed
limitQueryinteger

Page size, 1–200.

Default 50
cursorQuerystring or null

The next_cursor of the previous page.

Response

200AccountReviewPage

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/account_reviews" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN"

Review an account against its support for a month

POST/v1/account_reviews· Idempotent

client.accountReviews.create()

Review an account for a month's close, starting the month's close run if it has none. The ledger's balance at the month's end is read now. Refused with account_not_reviewable for a bank, card, header, income or expense account, with account_review_exists when the close already reviews it, with account_review_incomplete when marked reviewed without its support, and with period_closed in a closed month.

Request body

NewAccountReview

Response

201AccountReviewOut

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/account_reviews" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"account_id":"…","period":"…"}'

Get an account review

GET/v1/account_reviews/{review_id}

client.accountReviews.get()

One account review: both balances, the difference and the evidence.

Parameters

NameTypeDescription
review_idPath · Requiredstring

An id that starts with gla_review_.

Response

200AccountReviewOut

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/account_reviews/{review_id}" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN"

Change an account review or mark it reviewed

PATCH/v1/account_reviews/{review_id}· Idempotent

client.accountReviews.update()

Change a review: enter the support's balance, say where it is, mark it reviewed or take that back. Every change reads the ledger's balance again, and a reviewed review must still hold up. Refused with account_review_incomplete when it would not, and with period_closed once the month is closed.

Parameters

NameTypeDescription
review_idPath · Requiredstring

An id that starts with gla_review_.

Request body

AccountReviewChanges

Response

200AccountReviewOut

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 PATCH "https://api.ledgerit.ai/v1/account_reviews/{review_id}" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Take an account review out of its close

DELETE/v1/account_reviews/{review_id}

client.accountReviews.delete()

Take an account's review out of its month's close. Refused with period_closed once the month is closed: the review is then the record.

Parameters

NameTypeDescription
review_idPath · Requiredstring

An id that starts with gla_review_.

Response

204No content

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 DELETE "https://api.ledgerit.ai/v1/account_reviews/{review_id}" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN"

List the accounts a month's close reviews

GET/v1/periods/{key}/account_reviews

client.accountReviews.listForPeriod()

Every account a month's close reviews against its support: each asset and liability with a balance at the month's end (bank and card accounts are reconciled instead), with its review when it has one.

Parameters

NameTypeDescription
keyPath · Requiredstring

Response

200MonthReviewsOut

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/periods/{key}/account_reviews" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN"

Objects

The objects these operations take and return.

AccountReviewPage

NameTypeDescription
dataRequiredarray of AccountReviewOut
has_moreRequiredboolean
next_cursorRequiredstring or null

NewAccountReview

NameTypeDescription
account_idRequiredstring

An asset or liability account of these books that takes postings, other than a bank or card account.

evidencestring or null

Where the support is, and what explains any difference.

periodRequiredstring

The month the review is for, like 2026-09.

statusstring

reviewed to mark it reviewed at once, which needs support_balance, and evidence when the two balances differ. Defaults to open.

One of open, reviewedDefault open
support_balancenumber | string or null

What the support says the account holds at the month's end.

AccountReviewOut

One account, checked against its support for one month's close.

NameTypeDescription
account_codeRequiredstring

The account's code in the chart.

account_idRequiredstring

The account reviewed.

account_nameRequiredstring

The account's name.

close_run_idRequiredstring

The close run it belongs to.

created_atRequiredstring (date-time)

When the review was first written.

differenceRequiredstring or null

gl_balance less support_balance. Null without a support balance.

editableRequiredboolean

Whether its close is still open, so the review can change.

evidenceRequiredstring or null

Where the support is, and what explains any difference.

gl_balanceRequiredstring

The account's balance at the month's end, as the ledger said when the review was last written: positive in the direction the account normally grows.

idRequiredstring

The review's id.

periodRequiredstring

The month it reviews, like 2026-09.

reviewed_atRequiredstring (date-time) or null

When it was marked reviewed.

reviewed_byRequiredstring or null

An id that starts with usr_.

reviewed_by_emailRequiredstring or null

Their address, while they are a member of these books.

statusRequiredstring

open while the support is still being gathered, reviewed once someone stands behind it. An open review holds the month's close.

One of open, reviewed
support_balanceRequiredstring or null

What the support says the account holds: the aging, the payroll register, the lender's statement. Null until someone enters it.

through_sequenceRequiredinteger

The posting sequence gl_balance reflects.

updated_atRequiredstring (date-time)

When it last changed.

AccountReviewChanges

Only the fields sent change. support_balance and evidence are cleared by sending null.

NameTypeDescription
evidencestring or null

Where the support is; null clears it.

statusstring

reviewed to mark it reviewed, open to take that back.

One of open, reviewed
support_balancenumber | string or null

What the support says the account holds; null clears it.

MonthReviewsOut

Every account a month's close reviews.

NameTypeDescription
close_run_idRequiredstring or null

An id that starts with close_run_.

dataRequiredarray of AccountUnderReviewOut

Each asset and liability account with a balance at the month's end, or with a review, other than bank and card accounts (those are reconciled), in the chart's order.

editableRequiredboolean

Whether the month is open, so reviews can be written.

openRequiredinteger

How many reviews are written and not yet marked reviewed.

periodRequiredstring

The month, like 2026-09.

reviewedRequiredinteger

How many of its accounts are marked reviewed.

AccountUnderReviewOut

An account a month's close reviews, and its review if it has one.

NameTypeDescription
account_codeRequiredstring

Its code in the chart.

account_idRequiredstring

The account.

account_nameRequiredstring

Its name.

account_typeRequiredstring

asset or liability.

balanceRequiredstring

Its balance at the month's end, as the ledger says now.

movedRequiredboolean

Reviewed, and the ledger's balance has changed since: worth looking at again.

reviewRequiredAccountReviewOut or null

Its review in the month's close, or null.