Webhooks e Eventos

Configurar Webhook da Instância

Gerencia webhooks da instancia. Suporta modo simples (sem action) e modo multi-webhook (com action: add/update/delete). Para deletar, envie id + action "delete". Os eventos vêm DESATIVADOS por padrão. Ligue só os que for consumir (evita tráfego desnecessário). Eventos de volume alto (presence, history) só ligue se realmente for tratar.

POSThttps://api.zapzapapi.com/api/v1/{instanceId}/webhook

Autenticação por cabeçalhos x-api-key e x-api-secret.

Parâmetros

NomeTipoOndeObrigatórioDescrição
idtextcorpoNãoID único do webhook (necessário para update/delete)
enabledselectcorpoNãoHabilita/desabilita o webhook
urltextcorpoSimURL para receber os eventos
eventsjsoncorpoNãoLista de eventos que você quer receber no seu webhook. TUDO vem desativado por padrão: envie só os que for usar. Disponíveis: connection (conexão), messages (mensagens recebidas/enviadas), messages_update (status: entregue/lida), history (histórico ao conectar, VOLUME ALTO), newsletter_messages (mensagens de canais), call (chamadas), contacts, groups, chats, labels, chat_labels, presence (online/digitando, VOLUME ALTO), blocks (bloqueios), sender. Exemplo: ["messages","connection","messages_update"].
excludeMessagesjsoncorpoNãoFiltros para excluir tipos de mensagens
addUrlEventsselectcorpoNãoAdiciona o tipo do evento como parâmetro na URL. - `false` (padrão): URL normal - `true`: Adiciona evento na URL (ex: `/webhook/message`)
addUrlTypesMessagesselectcorpoNãoAdiciona o tipo da mensagem como parâmetro na URL. - `false` (padrão): URL normal - `true`: Adiciona tipo da mensagem (ex: `/webhook/conversation`)
actionselectcorpoNãoAção a ser executada: - add: criar novo webhook - update: atualizar webhook existente (requer id) - delete: remover webhook (requer apenas id) Se não informado, opera no modo simples (único webhook)

Exemplo de requisição

curl

curl -X POST "https://api.zapzapapi.com/api/v1/{instanceId}/webhook" \
  -H "x-api-key: SUA_API_KEY" \
  -H "x-api-secret: SEU_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/webhook"}'

Node.js

const res = await fetch("https://api.zapzapapi.com/api/v1/{instanceId}/webhook", {
  method: "POST",
  headers: {
    "x-api-key": "SUA_API_KEY",
    "x-api-secret": "SEU_API_SECRET",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "url": "https://example.com/webhook"
  }),
});
console.log(await res.json());

Python

import requests

res = requests.post(
    "https://api.zapzapapi.com/api/v1/{instanceId}/webhook",
    headers={"x-api-key": "SUA_API_KEY", "x-api-secret": "SEU_API_SECRET"},
    json={"url":"https://example.com/webhook"},
)
print(res.json())

Exemplo de resposta

JSON

{
  "status": "Webhook deleted successfully"
}

Os valores são ilustrativos; os campos seguem o formato real da resposta.

Ver referência completa

Pegue suas chaves de API

Crie sua conta, conecte um número em minutos e comece a usar a API. R$15 por número ativo/mês, com crédito de boas-vindas ao criar a conta, sujeito à campanha vigente.