Events · Billing
credits.low
Credits low
The credit balance of the period crossed a usage threshold (data.threshold, percent of the allowance used). Sent once per threshold and period.
- Object type
- org
- Delivered to
- Endpoints with the admin role
Payload
idstringrequiredEvent ID (
evt_…), also sent as thewebhook-idheader. Use it to drop duplicate deliveries.typestringrequiredAllowed values:
credits.lowcreated_atstring (date-time)requiredWhen the change happened (UTC).
org_idintegerrequiredapi_versionstringrequiredContract version of the
dataschema.sequenceintegerDelivery sequence number within the endpoint (absent for a test event).
payloadstringrequiredthinmeans nodata: read the object through the API.Allowed values:
fullthindataobjectFields
thresholdintegerrequiredThreshold in percent of the allowance used: 80 or 100.
period_startstring (date)requiredbalancenumberallowancenumber
testbooleanrequiredA test event sent by
POST /v1/webhooks/{webhook_id}/test.
Example delivery
{
"id": "evt_0123456789abcdef0123456789abcdef",
"type": "credits.low",
"created_at": "2026-10-24T10:00:03Z",
"org_id": 1,
"api_version": "1.62.0",
"sequence": 1042,
"object": {
"type": "org",
"id": "1"
},
"payload": "full",
"data": {
"threshold": 80,
"period_start": "2026-10-01",
"balance": 1000,
"allowance": 5000
},
"test": false
}Receiving events
Each delivery is a POST request with this JSON body to your endpoint. Verify the webhook-signature header (Standard Webhooks) before you trust the body, answer with a 2xx status within a few seconds, and do the work afterwards. Deliveries to one endpoint keep the order of events; a failed delivery is retried with growing pauses.
New event types and new fields can appear at any time: skip the types and fields you do not know.