Webhook (HTTP push)
A RyzeAPI faz
POST na sua URL toda vez que um evento ocorre. Persistido em fila com retry/backoff e DLQ. Ideal para servidores, CRMs, automações.WebSocket (push em tempo real)
O cliente abre uma conexão e recebe os eventos na hora. Sem persistência, ideal para dashboards, painéis ao vivo, telas de atendimento.
Endpoints do módulo
A configuração de webhook e WebSocket também pode ser feita na criação da instância, basta enviar
webhookEnabled, webhookURL, websocketEnabled, etc. no body de POST /api/instance/new.Envelope compartilhado
Tanto webhook quanto WebSocket entregam o mesmo objeto:instanceData.token é o token da própria instância, útil quando seu consumidor centraliza várias instâncias e precisa identificar a origem.
Os 6 tipos de evento
message.exchange
Mensagens enviadas/recebidas (texto, mídia, sticker, doc, enquete, contato, localização, botão/lista, edits e revogações).
message.status
Recibos de entrega:
delivered, read, played, read_self, played_self etc.call.update
Chamadas:
offer, accepted, rejected, terminated, notification, latency.group.flow
Mudanças em grupos:
joined/left/promoted/demoted + metadata (name, topic, announce, link, etc.).instance.state
Mudanças de conexão da instância:
connected, qr_ready, temp_banned, logged_out, pair_success…label.update
Etiquetas WhatsApp Business: edição, associação a chats e mensagens.
Catálogo completo de eventos
Schemas de payload, enums e exemplos de cada um dos 6 tipos.
Webhook x WebSocket
Múltiplos webhooks por instância
Cada instância aceita até 3 webhooks habilitados simultâneos, você os identifica por umlabel. Permite, por exemplo:
defaultpara o sistema principal de produçãoanalytics-pipelinepara um sink de eventosstaging-mirrorpara validar mudanças em paralelo
label tem URL, eventos filtrados, authorization e mediaBase64 próprios. Ver configurar webhook.
Boas práticas
Responda 2xx em menos de 5s no endpoint webhook, caso contrário, a entrega entra em retry com backoff exponencial.
Valide a origem com o header
Authorization configurado, não há HMAC automático, o consumidor é responsável.mediaBase64: false se você precisa só da URL/s3Url, economiza banda e DB.Reconecte com backoff no WebSocket, não há resumo de sessão; eventos perdidos não voltam.
Filtre
events[] quando souber exatamente o que vai consumir, reduz tráfego e processamento.Próximos passos
Configurar webhook
POST /api/events/webhook/:instance, cria/atualiza por label.Listar webhooks
GET /api/events/getWebhook/:instance, todos ou por ?label=.Configurar WebSocket
POST /api/events/websocket/:instance, enabled, events, mediaBase64.Verificar config do WebSocket
GET /api/events/getWebsocket/:instance.Catálogo de eventos
Schemas e exemplos dos 6 tipos.
Conectar via WebSocket
GET /ws/:instance, protocolo, auth, reconexão.