Skip to main content
POST
Batch post-to-ledger for many statements
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

POST /publisher/statements/bulk-post Statement-scoped, not publisher-scoped — each id in statementIds resolves its own publisher inside the ledger bridge, so a single batch can span multiple publishers. Runs the same bridge as the single-statement POST /publisher/statements/{id}/post-to-ledger for each id, cap 50 ids per request. dryRun: true previews every statement’s outcome (outcome: "dry_run") with nothing written and no writer statements generated. On a real run, after every statement in the batch has posted, one writer-statement generation is attempted per distinct (writer × tenant-grain window) pair that received a posting this batch — reported in writerStatements. summary.totalsByCurrency is keyed by statement currency — amounts across different currencies are never summed into one number. Authorization: admin role + publisher addon.

Code Examples

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"

Body

application/json
statementIds
string<uuid>[]
required

Non-empty PublisherStatement IDs, capped at 50 per request.

Required array length: 1 - 50 elements
dryRun
boolean

Preview every statement's outcome with nothing written and no writer statements generated.

Response

Batch processed (see summary/results for per-statement outcomes; a per-statement error does not fail the request).

Standard server envelope used by the statement, reconciliation, sub-publishing, and analytics endpoints.

status
enum<string>
Available options:
success,
error
message
string
data
object