← Back to schema index

WebhookDelivery

Single webhook delivery record (each retry increments `attempt`). Returned by `GET /webhooks/deliveries` (cross-endpoint feed) and `GET /webhooks/{id}/deliveries` (per-endpoint). The cross-endpoint variant adds a joined `endpoint_url` to avoid extra lookups.

ExtendsJsonApiResourceBase

Properties

FieldTypeDescription
type*stringResource type, fixed for this operation. Part of the resource identity in the JSON:API envelope. Always `webhook_delivery`.
id*stringAuto-increment delivery identifier.
attributes*objectCanonical webhook delivery attributes (receiver endpoint, attempt, response, and status).
endpoint_idstring (uuid)UUID of the webhook endpoint that originated this delivery.
endpoint_urlstringReceiver endpoint URL. Only present on the cross-endpoint feed (`GET /webhooks/deliveries`).
event_typestringEvent type that triggered the delivery. Determines the shape of the HMAC-signed payload sent to the receiver. The events are `validation.completed`, `validation.failed`, `validation.error`, `validation.retry.scheduled`, `validation.retry.resolved`, `validation.retry.exhausted`, `billing.payment_succeeded`, `billing.payment_failed`, `billing.trial_will_end`, `billing.subscription_canceled`, and `billing.invoice_upcoming`.
validation_idstring | nullValidation UUID when the event is `validation.*`. `null` for `billing.*` events.
response_statusinteger | nullHTTP code returned by the receiver. `null` when the delivery never completed a request (timeout, SSRF block).
response_bodystring | nullReceiver response body, truncated to 500 characters.
response_time_msinteger | nullTotal request time in milliseconds.
attemptintegerAttempt number (1 = first send, >1 = retries).
statusstringCurrent delivery status. `pending` — not delivered yet; `retrying` — retrying; `success` — delivered; `failed` — attempts exhausted.
next_retry_atTimestampUTC | nullUTC ISO 8601 of the next scheduled retry. `null` when the delivery is terminal (delivered or exhausted).
error_messagestring | nullError message if the delivery failed (`null` on success).
created_atstring (date-time)ISO 8601 timestamp in UTC with explicit `Z` suffix. Example: `"2026-05-01T05:14:38Z"`. Every datetime field uses this shape. The descriptor at `meta.datetime` makes the contract runtime-assertable.

Used in operations

  • GET /v1/webhooks/{id}/deliveries
  • GET /v1/webhooks/deliveries