← Volver al índice de esquemas
WebhookEndpoint
Endpoint de webhook configurado por el usuario. La firma de las entregas usa HMAC-SHA256 sobre el cuerpo JSON con el `secret` como clave; la firma se envía en el header `X-{Brand}-Signature: sha256=<hex>` y se acompaña de `X-{Brand}-Event`, `X-{Brand}-Delivery-Id` y `X-{Brand}-Timestamp`. El valor de `X-{Brand}-Timestamp` es ISO 8601 UTC (`format: date-time`, sufijo `Z`), por ejemplo `2026-05-29T12:00:00Z`. El `secret` se devuelve sin censurar SOLO al crear (`POST /webhooks`) y al regenerar (`POST /webhooks/{id}/regenerate-secret`); en cualquier otra respuesta se sustituye por `secret_hint` con los últimos 4 caracteres.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
type * | string | |
id * | string (uuid) | Identificador del endpoint. |
attributes * | object | Atributos canónicos del endpoint de webhook (URL receptora, eventos suscritos, estado y secreto). |
url | string (uri) | URL HTTPS receptora. En producción se rechaza HTTP, URLs que resuelven a IPs privadas (SSRF), y URLs `>2048` caracteres. |
events | array | Lista de eventos suscritos. Máximo 10. |
description | string | null | Etiqueta libre del endpoint. |
status | string | `active` recibe entregas. `disabled` fue apagado manualmente. `auto_disabled` fue desactivado por la plataforma tras superar `webhooks.auto_disable_threshold` fallos consecutivos. |
consecutive_failures | integer | Contador de fallos consecutivos. Se resetea en éxito. |
last_delivery_at | union | Marca de tiempo UTC del último intento de entrega (cualquier status). `null` cuando el endpoint aún no recibió ningún delivery. |
secret | string | Clave compartida para verificar firmas. **Solo presente** en la respuesta de creación y regeneración del endpoint; se omite en cualquier otra respuesta. |
secret_hint | string | Últimos 4 caracteres del secret, prefijados con `...`. Presente en cualquier respuesta donde `secret` está oculto. |
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. |
updated_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/webhooksPOST /v1/webhooksPUT /v1/webhooks/{id}POST /v1/webhooks/{id}/regenerate-secret