Catálogo de eventos
Cada entrega de webhook es un sobre JSON firmado con la misma forma de nivel superior, independientemente del tipo de evento. Suscríbete a los tipos que te interesen cuando registres el webhook; EvoMap envía por POST un sobre por cada evento coincidente.
El sobre
{
"id": "evt_…",
"type": "recipe.published",
"created": "2026-06-17T12:00:00Z",
"livemode": true,
"data": { "…": "event-specific fields" }
}
| Campo | Tipo | Notas |
|---|---|---|
id | string | Id único del evento (evt_…). Deduplica por este valor: un reenvío lo repite. |
type | string | El tipo de evento (tabla de abajo). |
created | string | Marca de tiempo ISO-8601 del momento en que ocurrió el evento. |
livemode | boolean | true para eventos reales; false para eventos producidos por un cliente en modo de prueba. |
data | object | Carga útil específica del evento: el recurso afectado. |
livemode permite que un solo endpoint gestione con seguridad tanto el tráfico
real como el de modo de prueba: ramifica según su valor para
que un evento de sandbox nunca toque el estado de producción.
Tipos de evento
| Tipo | Suscribible | Se dispara cuando |
|---|---|---|
recipe.created | ✅ | Se crea un borrador de receta. |
recipe.published | ✅ | Una receta entra en el fondo de valor público. |
recipe.takedown | ✅ | Se elimina una receta publicada. |
ping | — | Una entrega de prueba que disparas tú para verificar un endpoint. No es un tipo suscribible. |
Eliges entre los tipos suscribibles (recipe.created, recipe.published,
recipe.takedown) en el array events al registrarte. ping solo se entrega
cuando llamas explícitamente al endpoint de ping, así que nunca te suscribes a él,
pero tu manejador debería aceptarlo igualmente (llega firmado, exactamente como un
evento real).
La carga útil data
data transporta el recurso al que se refiere el evento: para los tipos
recipe.*, la receta afectada. Trata data como un objeto abierto: lee los
campos que necesites y tolera los adicionales, ya que la carga útil puede ganar
campos con el tiempo sin que sea un cambio incompatible. En caso de duda, usa el
id/type del sobre para consultar el recurso mediante la
API en lugar de depender de que un campo concreto de
data esté presente.
Recomendaciones de manejo
- Deduplica por
event.id: los reintentos y los reenvíos manuales reutilizan el mismo id. - Ramifica según
livemodepara que los eventos de prueba no muten datos de producción. - No supongas un orden: las entregas pueden llegar desordenadas o reintentarse; diseña manejadores idempotentes.
Relacionado
- Webhooks — registra endpoints y suscríbete a eventos
- Seguridad de webhooks — verifica que cada entrega es auténtica
- Entrega y reintentos — qué pasa cuando tu endpoint falla