Get Batch
GET/api/ledger/batches/:batch
Batch detail: the batch resource (under the batch key) plus totals_by_account — the aggregate journal entry's GL impact grouped by nominal code, one row per account with its debit and credit sums (4-decimal strings).
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Authentication: Requires Bearer token.
totals_by_account is an empty array when the batch's aggregate entry has not been built yet. Returns 404 when the batch does not exist.
Provider sync (entry object): each batch's entry includes provider_status — the accounting provider's own status for the synced document (e.g. AUTHORISED, POSTED, PAID; null when never synced) — and provider_link, the linked provider document (provider, label, link_route, remote_url; null when never synced).
members_count counts the batch's member documents; member_entries_count counts the journal entries stamped with the batch id. They match for a batch built by the posting rule, and differ when the batch was carried over whole at the accounting cutover (is_sealed_import: true), in which case the period's aggregate exists but the per-member entries do not. Read membership with GET /api/ledger/batches/{batch}/members in either case.
Overdue: is_overdue is true when the batch has not closed and its settle_deadline has passed. The settle deadline is the period end plus a grace window that lets late documents still join the batch (72 hours for monthly, 24 for daily). A batch past it should have closed and posted: its figures sit in the books as a re-derivable draft that has not reached the accounting provider.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.