Changes the tier, billing mode, billing email, card-on-file flag, charge trigger or price overrides of an organization already on case billing. Only the fields sent change; overrides merge into the existing ones, and a null SKU price removes that override. Returns the saved profile with warnings, for example when an override will bill a SKU the tier normally includes. Returns 404 when the organization has no billing profile and 400 for an invalid tier, mode and cadence combination or any change of cadence. Super admin only.
Body
Required
-
Values are
public,solo,firm, orfirm-plus. -
Values are
payg,per-source, orflat-case. -
Values are
monthlyorannual. -
When this org's phone collections are charged.
nullclears the override and returns the org to the platform-wide flag;importPINS it to import-time charging even after that flag flips.Values are
backuporimport. -
Required audit reason — persisted on the BillingEvent
curl \
--request PATCH 'http://api.example.com/admin/orgs/{orgId}/billing-profile' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"tier": "public",
"billingMode": "payg",
"cadence": "monthly",
"billingEmail": "string",
"paymentMethodOnFile": true,
"chargeTrigger": "backup",
"overrides": {
"storageIncludedGB": 42.0,
"skuUnitAmountCents": {},
"perCaseSourceCap": 42.0
},
"reason": "string"
}'
{
"tier": "public",
"billingMode": "payg",
"cadence": "monthly",
"billingEmail": "string",
"paymentMethodOnFile": true,
"chargeTrigger": "backup",
"overrides": {
"storageIncludedGB": 42.0,
"skuUnitAmountCents": {},
"perCaseSourceCap": 42.0
},
"reason": "string"
}
{
"data": {
"organization": "65a1b2c3d4e5f6a7b8c9d0e3",
"tier": "firm",
"billingMode": "payg",
"cadence": "monthly",
"billingEmail": "billing@example.com",
"paymentMethodOnFile": true,
"chargeTrigger": "backup",
"overrides": {
"storageIncludedGB": 100,
"skuUnitAmountCents": {
"collection.phone": 10000
}
},
"warnings": [
"string"
]
},
"statusCode": 200,
"timestamp": "2026-01-15T10:15:00.000Z"
}