API reference
Account reviews
Each balance-sheet account a month's close checks against its support, with the difference and the evidence.
- GET
/v1/account_reviewsList every account review of every close - POST
/v1/account_reviewsReview an account against its support for a month - GET
/v1/account_reviews/{review_id}Get an account review - PATCH
/v1/account_reviews/{review_id}Change an account review or mark it reviewed - DELETE
/v1/account_reviews/{review_id}Take an account review out of its close - GET
/v1/periods/{key}/account_reviewsList the accounts a month's close reviews
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
| Name | Type | Description |
|---|---|---|
periodQuery | string or null | Only the reviews of this month, like 2026-09. |
account_idQuery | string or null | An id that starts with |
statusQuery | string or null | Only reviews in this state. open, reviewed |
limitQuery | integer | Page size, 1–200. |
cursorQuery | string or null | The |
Response
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 "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
Response
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 -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
| Name | Type | Description |
|---|---|---|
review_idPath · Required | string | An id that starts with |
Response
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 "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
| Name | Type | Description |
|---|---|---|
review_idPath · Required | string | An id that starts with |
Request body
Response
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 -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
| Name | Type | Description |
|---|---|---|
review_idPath · Required | string | An id that starts with |
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 -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
| Name | Type | Description |
|---|---|---|
keyPath · Required | string |
Response
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 "https://api.ledgerit.ai/v1/periods/{key}/account_reviews" \
-H "Authorization: Bearer $LEDGERIT_TOKEN"Objects
The objects these operations take and return.
AccountReviewPage
| Name | Type | Description |
|---|---|---|
dataRequired | array of AccountReviewOut | |
has_moreRequired | boolean | |
next_cursorRequired | string or null |
NewAccountReview
| Name | Type | Description |
|---|---|---|
account_idRequired | string | An asset or liability account of these books that takes postings, other than a bank or card account. |
evidence | string or null | Where the support is, and what explains any difference. |
periodRequired | string | The month the review is for, like 2026-09. |
status | string |
open, reviewedDefault open |
support_balance | number | 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.
| Name | Type | Description |
|---|---|---|
account_codeRequired | string | The account's code in the chart. |
account_idRequired | string | The account reviewed. |
account_nameRequired | string | The account's name. |
close_run_idRequired | string | The close run it belongs to. |
created_atRequired | string (date-time) | When the review was first written. |
differenceRequired | string or null |
|
editableRequired | boolean | Whether its close is still open, so the review can change. |
evidenceRequired | string or null | Where the support is, and what explains any difference. |
gl_balanceRequired | string | 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. |
idRequired | string | The review's id. |
periodRequired | string | The month it reviews, like 2026-09. |
reviewed_atRequired | string (date-time) or null | When it was marked reviewed. |
reviewed_byRequired | string or null | An id that starts with |
reviewed_by_emailRequired | string or null | Their address, while they are a member of these books. |
statusRequired | string |
open, reviewed |
support_balanceRequired | string or null | What the support says the account holds: the aging, the payroll register, the lender's statement. Null until someone enters it. |
through_sequenceRequired | integer | The posting sequence |
updated_atRequired | string (date-time) | When it last changed. |
AccountReviewChanges
Only the fields sent change. support_balance and evidence are
cleared by sending null.
| Name | Type | Description |
|---|---|---|
evidence | string or null | Where the support is; null clears it. |
status | string |
open, reviewed |
support_balance | number | string or null | What the support says the account holds; null clears it. |
MonthReviewsOut
Every account a month's close reviews.
| Name | Type | Description |
|---|---|---|
close_run_idRequired | string or null | An id that starts with |
dataRequired | array 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. |
editableRequired | boolean | Whether the month is open, so reviews can be written. |
openRequired | integer | How many reviews are written and not yet marked reviewed. |
periodRequired | string | The month, like 2026-09. |
reviewedRequired | integer | How many of its accounts are marked reviewed. |
AccountUnderReviewOut
An account a month's close reviews, and its review if it has one.
| Name | Type | Description |
|---|---|---|
account_codeRequired | string | Its code in the chart. |
account_idRequired | string | The account. |
account_nameRequired | string | Its name. |
account_typeRequired | string |
|
balanceRequired | string | Its balance at the month's end, as the ledger says now. |
movedRequired | boolean | Reviewed, and the ledger's balance has changed since: worth looking at again. |
reviewRequired | AccountReviewOut or null | Its review in the month's close, or null. |