← Volver al índice de esquemas
WebhookDelivery
Registro de una entrega individual de un webhook (incluyendo cada reintento, que aumenta `attempt`). Devuelto por `GET /webhooks/deliveries` (cross-endpoint del usuario) y `GET /webhooks/{id}/deliveries` (por endpoint). El cross-endpoint añade `endpoint_url` ya joineado para evitar lookups extra.
ExtiendeJsonApiResourceBase
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
type* | string | Tipo del recurso, fijo para esta operación. Forma parte de la identidad del recurso en la envoltura JSON:API. Siempre `webhook_delivery`. |
id* | string | Identificador autoincremental de la entrega. |
attributes* | object | Atributos canónicos de la entrega del webhook (endpoint receptor, intento, respuesta y estado). |
endpoint_id | string (uuid) | UUID del endpoint de webhook que originó esta entrega. |
endpoint_url | string | URL del endpoint receptor. Solo presente en la lista cross-endpoint (`GET /webhooks/deliveries`). |
event_type | string | Tipo de evento que disparó la entrega. Determina la forma del cuerpo firmado con HMAC que se envía al receptor. Los eventos son `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` y `billing.invoice_upcoming`. |
validation_id | string | null | UUID de la validación asociada cuando el evento es `validation.*`. `null` para eventos `billing.*`. |
response_status | integer | null | Código HTTP recibido del receptor. `null` cuando la entrega no llegó a establecer respuesta (timeout, SSRF block). |
response_body | string | null | Cuerpo de respuesta del receptor, truncado a 500 caracteres. |
response_time_ms | integer | null | Tiempo total del request en milisegundos. |
attempt | integer | Número de intento (1 = primer envío, >1 = reintentos). |
status | string | Estado actual de la entrega. `pending` — aún sin entregar; `retrying` — reintentando; `success` — entregada; `failed` — agotados los intentos. |
next_retry_at | TimestampUTC | null | UTC ISO 8601 del próximo reintento programado. `null` cuando la entrega es terminal (delivered o agotada). |
error_message | string | null | Mensaje de error si la entrega falló (`null` en éxito). |
created_at | string (date-time) | Timestamp ISO 8601 en UTC con sufijo `Z` explícito. Ejemplo: `"2026-05-01T05:14:38Z"`. Cada campo `*_at`, `*_end`, `*_start`, `*_date` de la API usa esta forma. El descriptor compañero en `meta.datetime` permite afirmar el contrato en tiempo de ejecución sin volver a leer este spec. El `new Date(value)` nativo del navegador, el `datetime.fromisoformat` (≥3.11) de Python y el `time.Parse(time.RFC3339)` de Go parsean este formato directamente. |
Usado en operaciones
GET /v1/webhooks/{id}/deliveriesGET /v1/webhooks/deliveries