Saltar al contenido
AchaduDevelopers
Achadu/Developers/Ganchos web

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.test

Esquemas 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.