Reciba notificaciones de eventos en tiempo real para su integración con Zonos.
Los webhooks ofrecen una forma de que Zonos notifique de forma proactiva a sus sistemas externos cada vez que ocurren determinados eventos. Cuando se produce el evento suscrito, Zonos enviará una solicitud HTTP POST a la URL del webhook que usted especifique. El cuerpo de la solicitud contendrá los detalles del evento, lo que permitirá a su sistema gestionarlo de forma programática.
Los webhooks son útiles para integrar Zonos con otras plataformas, activar flujos de trabajo automatizados y mantener los datos sincronizados entre sistemas en tiempo real. Por ejemplo, podría usar webhooks para:
Actualizar su sistema de gestión de pedidos cuando se crea un pedido en Zonos
Notificar a su proveedor de cumplimiento cuando se cancela un envío
Registrar cambios de estado de pedidos internacionales con fines de auditoría
Todos los tipos de webhook disponibles se incluyen en el enum WebhookType. Los payloads de ejemplo de cada uno se encuentran en nuestra guía de Tipos de eventos.
Importante: Guarde el valor de secret al crear el webhook. Solo se devuelve en este momento y lo necesitará para verificar las firmas de los webhooks. Consulte Verificación de las firmas de los webhooks más abajo.
Cada solicitud de webhook que envía Zonos incluye un encabezado zonos-signature para que pueda confirmar que la solicitud proviene realmente de Zonos y que el payload no se alteró durante el tránsito.
El valor del encabezado tiene el siguiente formato:
timestamp — la hora, en milisegundos de época Unix, en que se firmó la solicitud.
hmac — una firma HMAC-SHA256 del cuerpo de la solicitud JSON sin procesar, calculada usando el secreto de su webhook como clave y codificada en Base64.
Para verificar una solicitud:
Extraiga los valores timestamp y hmac del encabezado zonos-signature.
Calcule su propia firma HMAC-SHA256 sobre el cuerpo de la solicitud sin procesar y sin analizar, usando el secreto que recibió al crear el webhook.
Compare su firma calculada con el valor hmac mediante una comparación de tiempo constante y rechace la solicitud si no coinciden.
Opcionalmente, rechace las solicitudes en las que timestamp sea anterior a unos minutos, para protegerse contra la reproducción de una solicitud capturada. Zonos no impone por sí mismo una ventana de entrega, por lo que esta verificación queda a su criterio.
Webhooks
Escuche eventos con webhooks
Reciba notificaciones de eventos en tiempo real para su integración con Zonos.
Los webhooks ofrecen una forma de que Zonos notifique de forma proactiva a sus sistemas externos cada vez que ocurren determinados eventos. Cuando se produce el evento suscrito, Zonos enviará una solicitud HTTP POST a la URL del webhook que usted especifique. El cuerpo de la solicitud contendrá los detalles del evento, lo que permitirá a su sistema gestionarlo de forma programática.
Los webhooks son útiles para integrar Zonos con otras plataformas, activar flujos de trabajo automatizados y mantener los datos sincronizados entre sistemas en tiempo real. Por ejemplo, podría usar webhooks para:
Tipos de webhook
Todos los tipos de webhook disponibles se incluyen en el enum
WebhookType. Los payloads de ejemplo de cada uno se encuentran en nuestra guía de Tipos de eventos.Creación de webhooks
Para crear un webhook mediante la API:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Edición de detalles del webhook
Para editar un webhook existente mediante la API:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Verificación de las firmas de los webhooks
Cada solicitud de webhook que envía Zonos incluye un encabezado
zonos-signaturepara que pueda confirmar que la solicitud proviene realmente de Zonos y que el payload no se alteró durante el tránsito.El valor del encabezado tiene el siguiente formato:
timestamp— la hora, en milisegundos de época Unix, en que se firmó la solicitud.hmac— una firma HMAC-SHA256 del cuerpo de la solicitud JSON sin procesar, calculada usando el secreto de su webhook como clave y codificada en Base64.Para verificar una solicitud:
timestampyhmacdel encabezadozonos-signature.hmacmediante una comparación de tiempo constante y rechace la solicitud si no coinciden.timestampsea anterior a unos minutos, para protegerse contra la reproducción de una solicitud capturada. Zonos no impone por sí mismo una ventana de entrega, por lo que esta verificación queda a su criterio.const crypto = require("crypto");function verifyZonosWebhook(rawBody, signatureHeader, secret) {const [timestampPart, hmacPart] = signatureHeader.split(",");const receivedHmac = hmacPart.split("=")[1];const expectedHmac = crypto.createHmac("sha256", secret).update(rawBody).digest("base64");const receivedBuffer = Buffer.from(receivedHmac);const expectedBuffer = Buffer.from(expectedHmac);if (receivedBuffer.length !== expectedBuffer.length) {return false;}return crypto.timingSafeEqual(receivedBuffer, expectedBuffer);}Visualización de registros de webhook
Para ver los registros de webhook mediante la API:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
¿Fue útil esta página?