Skip to main content
A webhook delivery is the durable record of an event being sent to a specific URL. There is one delivery row per (event, destination) pair — if three endpoints are subscribed to call.completed and the call also has an inline webhook_url, one event creates four deliveries.

Fields

FieldTypeDescription
iduuidDelivery id. Sent in the CallingBox-Event-Id header; use as an idempotency key.
org_iduuid
endpoint_iduuid | nullThe endpoint this delivery targets. null means this is an inline delivery from a call’s webhook_url.
call_iduuid | nullThe call that triggered the event. null is reserved for future non-call events.
event_typestringOne of the event types.
urlstringThe destination URL, snapshotted at enqueue time.
statuspending | delivered | exhaustedCurrent lifecycle state.
attempt_countintegerNumber of automatic attempts so far.
manual_retry_countintegerTimes you’ve called /redeliver.
next_attempt_attimestampWhen the worker will pick this up next.
last_errorstring | nullShort error description from the most recent failure.
last_response_statusinteger | nullHTTP status code from the most recent attempt.
delivered_attimestamp | nullFirst successful delivery.
created_attimestamp
updated_attimestamp

Status transitions

pending ──(2xx)──▶ delivered

   └──(fail && attempt_count >= 8)──▶ exhausted
exhausted deliveries can be sent back to pending with POST /v1/webhook_deliveries/{id}/redeliver — the event id is preserved so downstream idempotency checks still dedupe.

Example

{
  "id": "9c1d9f9e-21a1-4f6d-8fce-bf4a4b8a9e3f",
  "org_id": "c3d1...",
  "endpoint_id": "84f2...",
  "call_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "event_type": "call.completed",
  "url": "https://your-server.com/callingbox-webhook",
  "status": "delivered",
  "attempt_count": 1,
  "manual_retry_count": 0,
  "next_attempt_at": "2026-04-15T14:30:50Z",
  "last_error": null,
  "last_response_status": 200,
  "delivered_at": "2026-04-15T14:30:50Z",
  "created_at": "2026-04-15T14:30:49Z",
  "updated_at": "2026-04-15T14:30:50Z"
}