List Batch Members
GET/api/ledger/batches/:batch/members
Paginated member documents of a batch — the A2X-style lineage view. Each member row carries:
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
member— the cross-link view-model for the member document (morph type + ID, friendly label/reference, link_type_label, the application UI link_route when a detail page exists)contribution— the member's debit/credit contribution inside this batch (its journal lines summed by direction, 4-decimal strings)added_at— when the document joined the batch
Authentication: Requires Bearer token.
Pagination: per_page default 10, clamped to max 100. Newest members first.
Returns 404 when the batch does not exist.
Advanced filters (filter_groups): base64-encoded JSON tree of AND/OR groups via GroupedFilterSupport.
Filterable columns: member_type (text operators); member_id, id (numeric operators); added_at (datetime operators). Unregistered columns are rejected with HTTP 400.
Search: filter[search] matches the member's morph type and (when numeric, # prefix allowed) the document id.
Sorts: id, member_id, member_type, added_at, member (alias of member_id), debit, credit, document_date (contribution sums via correlated subquery) — prefix with - for DESC; default -id.
Response field document_date: the member's accounting date, distinct from added_at (when the membership row was created). It is the member's own journal entry's effective date; when the member has no entry of its own — a batch carried over whole at the accounting cutover never had per-member entries generated — it falls back to the source document's own date, so the field is populated either way. Null only for member types whose accounting date is derived rather than stored. Sortable via sort=document_date, which sorts on the entry-derived value.
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.