vzaps.events para receber eventos da instância em tempo real, sem expor URL pública.
Para callbacks HTTP, veja Webhooks.
Eventos comuns
| Evento | Descrição |
|---|---|
Message | Nova mensagem recebida ou evento de mensagem. |
ReadReceipt | Atualização de leitura/entrega. |
Presence | Presença do usuário. |
ChatPresence | Presença em chat. |
HistorySync | Sincronização de histórico. |
Connected | Instância conectada ao WhatsApp. |
Disconnected | Instância desconectada. |
GroupParticipantsAdd | Participantes adicionados em grupo. |
GroupParticipantsRemove | Participantes removidos de grupo. |
All | Todos os eventos assinados. |
Assinar realtime
EventSubscription — objeto com on(), close() e reconexao automatica quando configurada.
Opções:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
instanceId | string | Sim | Instância que será acompanhada. |
instanceToken | string | Sim | Token da instância. |
events | VZapsEventType[] | Não | Lista de eventos. Se omitido, usa eventos assinados na instância. |
reconnect | boolean | Não | Reconectar automáticamente. Padrão: true. |
maxRetries | number | Não | Máximo de tentativas. |
retryDelayMs | number | Não | Delay entre tentativas. |
lastEventId | string | Não | Cursor para retomada. |
signal | AbortSignal | Não | Fechar assinatura quando abortar. |
Registrar handlers
Fechar assinatura
Promise<void> apos fechar o WebSocket.
Em processos Node.js:
Envelope do evento
Cada evento recebido pelo SDK tem este formato:| Campo | Descrição |
|---|---|
id | Identificador do evento. Use para deduplicação. |
type | Tipo do evento. |
instance_id | Instância origem. |
created_at | Data de criação do evento. |
data | Payload do evento. |
data.media_url | URL de mídia quando o evento recebido contém mídia e a plataforma disponibiliza o arquivo. |
Entrega e ack
A entrega é at-least-once. Seu app deve tratar eventos de forma idempotente. Depois que o handler termina, o SDK envia ack automáticamente. Recomendações:- salve
event.idse sua automação executa efeitos externos; - ignore eventos já processados;
- use
lastEventIdao reconectar se quiser reduzir lacunas; - mantenha handlers rápidos e mova trabalhos longos para sua própria fila.
Realtime ou webhook?
| Cenário | Recomendação |
|---|---|
| Bot, dashboard ou app com consumo imediato | Realtime |
| Backend com URL pública e pipeline HTTP | Webhook |
| Não quer expor URL pública | Realtime |
| Quer reprocessar entregas via logs | Webhook |

