Skip to main content
POST
Bulk-render writer and/or publisher statement PDFs as one zip
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

POST /publisher/statements/bulk-render Scopes and renders statement PDFs for a period window, zipping the results (application/zip) rather than returning JSON. kind selects which PDF families render: writer (per-writer statements), publisher (per-publisher statements), or both. Optional statementIds/tenantUserIds narrow the scope further within the period; omitted, every eligible statement/writer in the tenant for the window is rendered. Capped at 100 PDFs total across the batch — once reached, the remaining eligible entries are skipped (not erred) and a PDF cap (100) reached warning is added. Any per-entry render failure is likewise a warning, not a request failure: the zip only ever contains successful renders. If warnings is non-empty, the response also carries an X-Bulk-Render-Warnings header (count) so a client can detect partial failure without parsing the zip body. A request whose scope produces zero renderable PDFs returns 400 instead of an empty zip. 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
periodStart
string<date>
required
periodEnd
string<date>
required

Must be strictly after periodStart.

kind
enum<string>
required
Available options:
writer,
publisher,
both
statementIds
string<uuid>[]

Optional narrowing within the period window.

tenantUserIds
string[]

Optional narrowing to specific writer TenantUsers within the period window.

Response

Zip of rendered PDFs. Check the X-Bulk-Render-Warnings header for partial per-entry failures.

The response is of type file.