Menu

Conceitos

Webhooks

Eventos em tempo real e validação da assinatura.

Webhooks de saída enviam eventos da caixa de entrada para a sua URL em tempo real (recurso do plano Enterprise; configure em Configurações → Webhooks).

Eventos

EventoQuando
mensagem.recebidao contato mandou uma mensagem
mensagem.enviadaa empresa enviou (caixa, agente, campanha, automação ou celular)
mensagem.statusentregue, lida ou falhou
conversa.atribuidaa conversa ganhou um responsável
conversa.aguardando_humanoo agente de IA transferiu para a equipe
conversa.resolvida / conversa.reabertamudou o status

Formato

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

Validar a assinatura

Header X-ConverZAP-Assinatura: t=<unix>,v1=<hex>, onde v1 = HMAC-SHA256(segredo, "<t>.<corpo bruto>"). Recuse se a diferença de t passar de 5 minutos.

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

Responda 2xx em até 10 s. Sem 2xx, tentamos de novo em 1 min, 5 min, 30 min, 2 h, 6 h e 12 h; 410 desiste. A entrega pode repetir e chegar fora de ordem: deduplique pelo id.