Webhooks e SSE
Configurar Webhook da Instância
https://api.nodinfra.com.br/webhookGerencia a configuração de webhooks para receber eventos em tempo real da instância. Permite gerenciar múltiplos webhooks por instância através do campo ID e action.
🚀 Modo Simples (Recomendado)
Uso mais fácil - sem complexidade de IDs:
- Não inclua
actionnemidno payload - Gerencia automaticamente um único webhook por instância
- Cria novo ou atualiza o existente automaticamente
- Recomendado: Sempre use
"excludeMessages": ["wasSentByApi"]para evitar loops - Exemplo:
{"url": "https://meusite.com/webhook", "events": ["messages"], "excludeMessages": ["wasSentByApi"]}
🧪 Sites para Testes (ordenados por qualidade)
Para testar webhooks durante desenvolvimento:
- https://webhook.cool/ - ⭐ Melhor opção (sem rate limit, interface limpa)
- https://rbaskets.in/ - ⭐ Boa alternativa (confiável, baixo rate limit)
- https://webhook.site/ - ⚠️ Evitar se possível (rate limit agressivo)
⚙️ Modo Avançado (Para múltiplos webhooks)
Para usuários que precisam de múltiplos webhooks por instância:
💡 Dica: Mesmo precisando de múltiplos webhooks, considere usar addUrlEvents no modo simples.
Um único webhook pode receber diferentes tipos de eventos em URLs específicas
(ex: /webhook/message, /webhook/connection), eliminando a necessidade de múltiplos webhooks.
-
Criar Novo Webhook:
- Use
action: "add" - Não inclua
idno payload - O sistema gera ID automaticamente
- Use
-
Atualizar Webhook Existente:
- Use
action: "update" - Inclua o
iddo webhook no payload - Todos os campos serão atualizados
- Use
-
Remover Webhook:
- Use
action: "delete" - Inclua apenas o
iddo webhook - Outros campos são ignorados
- Use
Eventos Disponíveis
connection: Alterações no estado da conexãohistory: Recebimento de histórico de mensagensmessages: Novas mensagens recebidasmessages_update: Atualizações em mensagens existentesnewsletter_messages: Novos posts/mensagens de canais do WhatsApp Para views e reactions de canais, use a rota/newsletter/updates.call: Eventos de chamadas VoIPcontacts: Atualizações na agenda de contatospresence: Alterações no status de presençagroups: Modificações em gruposlabels: Gerenciamento de etiquetaschats: Eventos de conversaschat_labels: Alterações em etiquetas de conversasblocks: Bloqueios/desbloqueiossender: Atualizações de campanhas, quando inicia, e quando completa
Remover mensagens com base nos filtros:
wasSentByApi: Mensagens originadas pela API ⚠️ IMPORTANTE: Use sempre este filtro para evitar loops em automaçõeswasNotSentByApi: Mensagens não originadas pela APIfromMeYes: Mensagens enviadas pelo usuáriofromMeNo: Mensagens recebidas de terceirosisGroupYes: Mensagens em gruposisGroupNo: Mensagens em conversas individuais
💡 Prevenção de Loops: Se você tem automações que enviam mensagens via API, sempre inclua "excludeMessages": ["wasSentByApi"] no seu webhook. Caso prefira receber esses eventos, certifique-se de que sua automação detecta mensagens enviadas pela própria API para não criar loops infinitos.
Ações Suportadas:
add: Registrar novo webhookdelete: Remover webhook existente
Parâmetros de URL:
addUrlEvents(boolean): Quando ativo, adiciona o tipo do evento como path parameter na URL. Exemplo:https://api.example.com/webhook/{evento}addUrlTypesMessages(boolean): Quando ativo, adiciona o tipo da mensagem como path parameter na URL. Exemplo:https://api.example.com/webhook/{tipo_mensagem}
Combinações de Parâmetros:
- Ambos ativos:
https://api.example.com/webhook/{evento}/{tipo_mensagem}Exemplo real:https://api.example.com/webhook/message/conversation - Apenas eventos:
https://api.example.com/webhook/message - Apenas tipos:
https://api.example.com/webhook/conversation
Notas Técnicas:
- Os parâmetros são adicionados na ordem: evento → tipo mensagem
- A URL deve ser configurada para aceitar esses parâmetros dinâmicos
- Funciona com qualquer combinação de eventos/mensagens
Corpo da requisição
idstringopcionalID único do webhook (necessário para update/delete)
exemplo: 123e4567-e89b-12d3-a456-426614174000
enabledbooleanopcionalHabilita/desabilita o webhook
exemplo: true
urlstringobrigatórioURL para receber os eventos
exemplo: https://example.com/webhook
eventsarray<string>opcionalLista de eventos monitorados
excludeMessagesarray<string>opcionalFiltros para excluir tipos de mensagens
addUrlEventsbooleanopcionalAdiciona o tipo do evento como parâmetro na URL. - `false` (padrão): URL normal - `true`: Adiciona evento na URL (ex: `/webhook/message`)
exemplo: false
addUrlTypesMessagesbooleanopcionalAdiciona o tipo da mensagem como parâmetro na URL. - `false` (padrão): URL normal - `true`: Adiciona tipo da mensagem (ex: `/webhook/conversation`)
exemplo: false
actionstringopcionalAçã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)
valores:addupdatedelete
Exemplo
{
"enabled": true,
"url": "https://webhook.cool/example",
"events": [
"messages",
"newsletter_messages",
"connection"
],
"excludeMessages": [
"wasSentByApi"
]
}