client.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 no chat. |
HistorySync | Sincronização de histórico. |
Connected | Instância conectada ao WhatsApp. |
Disconnected | Instância desconectada. |
GroupParticipantsAdd | Participantes adicionados ao grupo. |
GroupParticipantsRemove | Participantes removidos do grupo. |
All | Todos os eventos assinados. |
vzaps.EventMessage, vzaps.EventConnected, etc.
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 a observar. |
InstanceToken | string | Sim | Token da instância. |
Events | []EventType | Não | Lista de eventos. Se omitido, usa eventos assinados na instância. |
Reconnect | bool | Não | Reconectar automáticamente. Padrão: true. |
MaxRetries | int | Não | Máximo de tentativas de reconexão. |
RetryDelay | time.Duration | Não | Atraso entre tentativas. |
LastEventID | string | Não | Cursor de retomada. |
context.Context da assinatura; cancelamento interrompe tentativas de reconexão.
Registrar handlers
Fechar assinatura
Promise<void> apos fechar o WebSocket.
Em processos de longa duração:
Envelope do evento
Todo 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 de 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 fornece o arquivo. |
event.ID, event.Type, event.InstanceID, event.CreatedAt e event.Data.
Entrega e ack
A entrega é at-least-once. Sua aplicação deve processar eventos de forma idempotente. Após o handler terminar, o SDK envia ack automáticamente. Recomendações:- armazene
event.IDse sua automação executa efeitos externos; - ignore eventos já processados;
- use
LastEventIDao reconectar para reduzir lacunas; - mantenha handlers rápidos e mova trabalho longo para fila própria.
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 |
| Precisa reprocessar entregas via logs | Webhook |

