Skip to main content

Visao geral

O Kortex Insight recebe webhooks para dois propositos:
  1. Ingestao de leads — sistemas externos enviam leads para a plataforma
  2. Mensagens WhatsApp — a Evolution API notifica sobre mensagens recebidas e status
Todos os webhooks usam autenticacao via header x-tenant-key.

Ingestao de leads

curl -X POST https://{sua_api_base_url}/webhooks/leads \
  -H "x-tenant-key: {sua_api_key}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Maria Silva",
    "whatsapp": "5511999999999",
    "source": "landing-page"
  }'
O lead e criado com deduplicacao automatica por numero WhatsApp. Se o lead ja existir, o registro existente e retornado.

WhatsApp — Mensagem inbound

Endpoint para receber mensagens de entrada da Evolution API:
POST /webhooks/whatsapp/evolution/inbound
O payload e processado automaticamente:
  1. Valida a assinatura HMAC (se WHATSAPP_WEBHOOK_SECRET estiver configurado)
  2. Identifica ou cria o lead pelo numero do remetente
  3. Registra a mensagem com direcao INBOUND

WhatsApp — Status de mensagem

Endpoint para receber atualizacoes de status:
POST /webhooks/whatsapp/evolution/status
Status suportados:
StatusDescricao
SENTMensagem enviada ao WhatsApp
DELIVEREDMensagem entregue ao destinatario
READMensagem lida pelo destinatario
FAILEDFalha no envio

Verificacao de assinatura

A verificacao de assinatura e opcional. Se WHATSAPP_WEBHOOK_SECRET nao estiver configurado, os webhooks funcionam sem validacao de assinatura.
Quando habilitada, o header x-signature deve conter o HMAC SHA256 do body:
x-signature: sha256={hmac_hex}
Calculo:
const crypto = require('crypto');
const signature = crypto
  .createHmac('sha256', WEBHOOK_SECRET)
  .update(JSON.stringify(body))
  .digest('hex');