Cross-publisher statements list
Cross-publisher PublisherStatement list
Description
Cross-publisher PublisherStatement list ListsPublisherStatement rows across ALL publishers for the active
tenant (Phase 2 backfill). Distinct from the per-user Statement
roster documented throughout the rest of this file — this reads the
publisher-royalty-statement resource whose per-publisher CRUD and
reconciliation surface lives at
/publisher/publishers/{id}/statements/... (see publishers.yaml).
Registered as /statements/publisher (not nested under
/publisher/...) because it belongs to the statementRoutes router,
mounted at /statements.
Requires an active publisher add-on for the tenant
(requireCapability('publisher')) in addition to the admin role.
Authorization:
- Required role:
adminor higher
Code Examples
Authorizations
JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"
Query Parameters
Single status or comma-separated list. external is not a lifecycle state — it marks a statement read from a PRO feed, which this system did not originate and cannot advance; it is accepted so the list can be narrowed to (or away from) that reading. unposted is a virtual value, not a stored status: it expands to draft + pending (everything not yet posted to the ledger) and may be combined with real statuses. Because the expansion never contains external, asking for unposted excludes the PRO-feed reading.
draft, pending, approved, paid, external, unposted "USD"
Inclusive lower bound on periodStart.
Inclusive upper bound on periodEnd.
Default 20, max 100.
Response
Statements fetched, ordered by periodStart DESC. Omit page/size for the unpaginated { count, PublisherStatements } shape.