Lists the organization's billing rows newest first (50 by default, at most 200, paged with limit and skip), grouped by case; org-wide charges such as the plan base fee come in a group with caseId: 'organization' and chargeScope: 'platform'. Each group's subtotalChargedCents covers all of its rows, not just the page, and each row carries its Stripe invoice id and hosted invoice link once invoiced. Requires an org admin, owner or billing role.
GET
/billing/reconciliation
curl \
--request GET 'http://api.example.com/billing/reconciliation' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "organization: string"
Response examples (200)
{
"data": {
"groups": [
{
"caseId": "65a1b2c3d4e5f6a7b8c9d0e2",
"chargeScope": "case",
"rows": [
{
"id": "65a1b2c3d4e5f6a7b8c9d0e4",
"skuKey": "collection.phone",
"description": "Phone collection",
"quantity": 1,
"amountCents": 17900,
"informational": false,
"listAmountCents": 17900,
"status": "INVOICED",
"hostedInvoiceUrl": "https://invoice.stripe.com/i/acct_Example/test_Example",
"invoiceId": "in_1PExample",
"chargeScope": "case",
"createdAt": "2026-01-15T10:15:00.000Z"
}
],
"subtotalChargedCents": 17900
}
]
},
"statusCode": 200,
"timestamp": "2026-01-15T10:15:00.000Z"
}