Turns the unpaid override on or off for an organization on prepaid billing: with allowUnpaid its collections go through without prepaid units, and reason is stored while the override is on. Returns the prepaid state with the latest 20 ledger entries. Returns 404 when the organization has no billing profile and 400 when it is not on prepaid billing. Super admin only.
Body
Required
-
Waive the prepaid unit requirement for this org when true; setting it back to false also clears the stored reason
-
Required audit reason — persisted on the profile while the override is set and shown on the statement. The override lets collections through unpaid, so an unexplained one is indistinguishable from a bug six months later.
POST
/admin/orgs/{orgId}/prepaid/override
curl \
--request POST 'http://api.example.com/admin/orgs/{orgId}/prepaid/override' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"allowUnpaid": true,
"reason": "string"
}'
Request examples
{
"allowUnpaid": true,
"reason": "string"
}
Response examples (200)
{
"data": {
"prepaid": {
"enabled": true,
"allowUnpaid": false,
"allowUnpaidReason": "string"
},
"balances": [
{
"skuKey": "collection.phone",
"unitsRemaining": 3
}
],
"ledger": [
{
"skuKey": "collection.phone",
"deltaUnits": 5,
"balanceAfterUnits": 5,
"balanceApplied": true,
"reason": "grant",
"description": "Purchased 5 phone collections",
"productKey": "string",
"quantity": 5,
"amountPaidCents": 50000,
"currency": "usd",
"sourceCase": "string",
"sourceExtractionCode": "string",
"stripeChargeId": "ch_3Q2w3E4r5T6y7U8i",
"createdBy": "string",
"createdAt": "2026-01-15T10:15:00.000Z"
}
]
},
"statusCode": 200,
"timestamp": "2026-01-15T10:15:00.000Z"
}