Menu

Concepts

Webhooks

Real-time events and signature verification.

Outgoing webhooks send inbox events to your URL in real time (Enterprise plan feature; set them up in Settings → Webhooks).

Events

EventWhen
mensagem.recebidathe contact sent a message
mensagem.enviadathe business sent one (inbox, agent, campaign, automation or phone)
mensagem.statusdelivered, read or failed
conversa.atribuidathe conversation got an assignee
conversa.aguardando_humanothe AI agent handed off to the team
conversa.resolvida / conversa.reabertastatus changed

Format

{ "id": "…", "evento": "mensagem.recebida", "criado_em": "2026-10-16T12:00:00Z", "workspace_id": "…", "tentativa": 1, "dados": { … } }

Verify the signature

Header X-ConverZAP-Assinatura: t=<unix>,v1=<hex>, where v1 = HMAC-SHA256(secret, "<t>.<raw body>"). Reject if t is more than 5 minutes off.

import crypto from "node:crypto";
function verify(body, header, secret) {
  const p = Object.fromEntries(header.split(",").map((x) => x.split("=")));
  if (Math.abs(Date.now() / 1000 - Number(p.t)) > 300) return false;
  const expected = crypto.createHmac("sha256", secret).update(`${p.t}.${body}`).digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(p.v1));
}

Reply 2xx within 10 s. Otherwise we retry after 1 min, 5 min, 30 min, 2 h, 6 h and 12 h; 410 stops retries. Deliveries may repeat and arrive out of order: dedupe by id.