Integrações

Webhooks de saída

O ZapyChat chama o seu servidor quando algo acontece, sem você precisar perguntar.


Cadastre a URL em Configurações › Webhooks e escolha os eventos. Guarde o segredo mostrado na criação: é com ele que você confere que a chamada veio mesmo do ZapyChat.

Eventos

EventoQuando acontece
message.receivedChegou uma mensagem de um cliente.
conversation.status_changedO status de uma conversa mudou (aberta, encerrada…).
conversation.assignedUma conversa foi atribuída a um atendente.
tag.addedUma tag foi aplicada a uma conversa ou contato.
tag.removedUma tag foi removida de uma conversa ou contato.

Corpo da chamada

json
{
  "id": "evt_123",
  "event": "message.received",
  "organizationId": "cmf0org001",
  "createdAt": "2026-10-05T14:32:10.000Z",
  "data": { ... }
}

Conferindo a assinatura

Cada chamada traz os cabeçalhos X-ChatPRO-Event, X-ChatPRO-Timestamp e X-ChatPRO-Signature. A assinatura é sha256= seguido do HMAC-SHA256, com o seu segredo, do texto "{timestamp}.{corpo}".

javascript
import crypto from 'node:crypto';

function assinaturaValida(segredo, timestamp, corpoBruto, assinatura) {
  const esperada =
    'sha256=' + crypto.createHmac('sha256', segredo).update(`${timestamp}.${corpoBruto}`).digest('hex');
  return crypto.timingSafeEqual(Buffer.from(esperada), Buffer.from(assinatura));
}
Responda com um código 2xx em poucos segundos. Um endereço que falha muitas vezes seguidas é desativado automaticamente.