Eventos confiables, firmados y rastreables.
Reciba cambios en su operación sin realizar sondeos. Cada entrega pasa por la cola dedicada, guarda intentos y lleva una firma verificable.
28 eventos de dominio
Fírmalos todos con * o elige solo los eventos que tu aplicación realmente consume.
offer.createdoffer.updatedoffer.archivedoffer.publishedsegment.createdsegment.updatedsegment.deletedcoupon.createdcoupon.updatedcoupon.archivedtemplate.createdtemplate.updatedtemplate.deletedschedule.createdschedule.updatedschedule.deletedschedule.executedmonitor.createdmonitor.updatedmonitor.deletedstore.updatedjourney.createdjourney.updatedjourney.deletedconversation.updatedconversation.closedconversation.repliedwebhook.testEsquemas versionados por eventos
Cada sobre toma api_version. El catálogo proporciona la URL del esquema y proporciona un ejemplo para validar a los consumidores antes de publicar un cambio.
json
{
"id": "evt_...",
"type": "offer.updated",
"api_version": "2026-08-31",
"created_at": "2026-08-31T12:00:00.000Z",
"data": { "offer_id": "off_..." }
}Validar antes de procesar
El secreto aparece sólo una vez. Calcule HMAC-SHA256 sobre la marca de tiempo y el cuerpo sin procesar y compare en tiempo constante.
javascript
import { createHmac, timingSafeEqual } from "node:crypto";
const signed = `${timestamp}.${rawBody}`;
const expected = createHmac("sha256", process.env.ACHADU_WEBHOOK_SECRET)
.update(signed)
.digest("hex");
const received = signature.replace("sha256=", "");
if (!timingSafeEqual(Buffer.from(expected), Buffer.from(received))) {
throw new Error("Invalid signature");
}Entrega duradera
Cola independiente del proceso web.
Hasta seis intentos para fallas transitorias.
Tiempo de espera de 12 segundos por intento.
Historial con estado HTTP, error y hora.
Los destinos internos y las direcciones privadas están bloqueados.
Webhook Inspector
En el área de Desarrolladores, abra una entrega para verificar la carga útil, la respuesta objetivo, el estado HTTP, la duración, los intentos y el próximo reintento. El mismo panel le permite copiar el evento y poner en cola un reenvío.
Cuerpo crudo conservado para depuración.
Respuesta limitada y sin secretos.
Duración medida por intento.
Reenviar crea una nueva entrega vinculada al mismo event_id.