The signed-in ambassador's payout statements
const url = 'http://localhost:8000/api/partner/statements/';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:8000/api/partner/statements/ \ --header 'Authorization: Bearer <token>'Every monthly statement, newest first: what the month adds up to and where it stands — drafted, approved, paid, or carried into the next month because it fell under the minimum payout. Paged with limit / offset like /ledger/; count is every statement. 404 without an ambassador record; 401 without a session; 403 for a partner API key; 400 on a bad page. A platform admin passes ?ambassador=<slug> to read any ambassador’s page (#2517).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”A platform admin (the support account) reads THIS ambassador’s page, exactly as the ambassador sees it, and the read is written to the admin_action trail. Anyone else may pass only their own slug; any other value is the same 404 as having no record.
Rows per page, 1–500 (default 200).
Rows to skip (default 0).
Responses
Section titled “Responses”GET /api/partner/statements/ — the ambassador’s statements, newest month first.
object
One monthly payout statement, as the partner tab lists it.
object
YYYY-MM, the month the statement covers (UTC).
Carried in from an earlier month that fell under the minimum payout, USD cents.
Commission on the month’s invoices plus any adjustments, USD cents.
One-off payouts — fixed fees, institutional referrals, conversion bonuses — USD cents.
Commission taken back on refunded or disputed invoices, USD cents (negative).
What the month pays out, USD cents.
draft — drafted, being checked; approved — payable by due_date; paid — on paid_on; carried — under the minimum, rolls into the next month.
draft- Draftapproved- Approvedpaid- Paidcarried- Carried
Net-30: the last day of the month after the period; null when carried.
The day it was paid, UTC; null until then.
Statements in all, for paging.
The page size applied.
The offset applied.
Examples
A paid month, an approved one and one carried forward
{ "rows": [ { "period": "2026-08", "opening_carry_cents": 0, "accrued_cents": 3515, "fees_cents": 5000, "reversals_cents": -1485, "total_cents": 7030, "status": "approved", "due_date": "2026-09-30", "paid_on": null }, { "period": "2026-07", "opening_carry_cents": 2500, "accrued_cents": 8092, "fees_cents": 0, "reversals_cents": 0, "total_cents": 10592, "status": "paid", "due_date": "2026-08-31", "paid_on": "2026-08-18" }, { "period": "2026-06", "opening_carry_cents": 0, "accrued_cents": 2500, "fees_cents": 0, "reversals_cents": 0, "total_cents": 2500, "status": "carried", "due_date": null, "paid_on": null } ], "count": 3, "limit": 200, "offset": 0}object
Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).
Example generated
{ "detail": "example"}object
Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).
Example generated
{ "detail": "example"}object
Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).
Example generated
{ "detail": "example"}object
Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).
Examples
No ambassador record on this account
{ "detail": "No ambassador record is linked to this account."}