Pular para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://zapo.to/llms.txt

Use this file to discover all available pages before exploring further.

O WaClient é um emissor de eventos fortemente tipado. Cada atividade de entrada — mensagens, recibos, mudanças em grupos, presença — é exposta como um evento com um payload tipado.

Escutando

import type { WaIncomingMessageEvent } from 'zapo-js'

client.on('message', (event: WaIncomingMessageEvent) => {
  console.log(event.chatJid, event.message)
})

client.once('auth_paired', ({ credentials }) => {
  console.log('paired', credentials.meJid)
})

const handler = (e) => { /* ... */ }
client.on('receipt', handler)
client.off('receipt', handler) // para de escutar
on, once e off são todos verificados por tipo contra o mapa de eventos — o tipo do payload é inferido a partir do nome do evento, então os listeners têm autocomplete completo.

Auth e conexão

EventoPayloadDescrição
auth_qr{ qr, ttlMs }Um QR code para renderizar no pareamento.
auth_pairing_code{ code }Um código de pareamento de 8 dígitos foi emitido.
auth_pairing_required{ forceManual }A sessão precisa de entrada de pareamento.
auth_paired{ credentials }O pareamento teve sucesso.
connectionWaConnectionEventSocket aberto ou fechado (veja abaixo).
O evento connection é uma union discriminada por status:
client.on('connection', (event) => {
  if (event.status === 'open') {
    console.log('online; new login?', event.isNewLogin)
  } else {
    console.log('closed:', event.reason, 'logout?', event.isLogout)
  }
})
Veja Reconexão para o padrão de tratamento.

Mensagens

EventoPayloadDescrição
messageWaIncomingMessageEventUma mensagem de entrada (ou enviada por você mesmo).
message_addonWaIncomingAddonEventReações, votos em enquetes, comentários (addons descriptografados).
message_protocolWaIncomingProtocolMessageEventMensagens de protocolo (edições, revogações, …).
message_bot_chunkWaIncomingBotChunkEventChunks de resposta de bot em stream.
receiptWaIncomingReceiptEventRecibos de entrega / leitura / reprodução.
Veja Recebendo mensagens para detalhes do payload e extração de texto.

Presença e chat-state

EventoPayloadDescrição
presenceWaIncomingPresenceEventA presença de um contato mudou (disponível / visto por último).
chatstateWaIncomingChatstateEventDigitando / gravando / pausado.
callWaIncomingCallEventSinalização de chamada de entrada.

Grupos, newsletters e perfis

EventoPayloadDescrição
groupWaGroupEventMudanças de criação/assunto/participante/configuração de grupo.
newsletterWaIncomingNewsletterEventAtividade de newsletter.
newsletter_message_updateWaIncomingNewsletterMessageUpdateEventEdições/reações/atualizações de enquete em mensagens de newsletter.
businessWaBusinessEventMudanças no perfil business.
pictureWaPictureEventMudanças de foto de perfil/grupo.

Estado, histórico e MEX

EventoPayloadDescrição
mutationWaAppStateMutationEventMutation de app-state (silenciar, fixar, arquivar, …) sincronizada de outro dispositivo.
history_sync_chunkWaHistorySyncChunkEventUm chunk de histórico de mensagens sincronizado.
offline_resumeWaOfflineResumeEventProgresso da drenagem de mensagens offline pós-conexão.
mex_notificationWaMexNotificationEventNotificações MEX (GraphQL): nome de usuário, status, mudanças de LID, capping.

Falhas

EventoPayloadDescrição
stream_failureWaIncomingFailureEventUma falha em nível de stream (pode preceder uma desconexão).
stanza_errorWaIncomingErrorStanzaEventUma stanza de erro do servidor.

Eventos de debug

Uma família de eventos debug_* expõe internals de baixo nível — frames brutos, nodes decodificados, erros de decode, stanzas não tratadas e erros do client. São úteis para depuração de protocolo, mas barulhentos; inscreva-se seletivamente.
client.on('debug_transport_node_in', ({ node }) => console.dir(node, { depth: null }))
client.on('debug_client_error', ({ error }) => console.error(error))
Os eventos de registro mobile (mobile_registration_code, mobile_account_takeover_notice) existem para o caminho de registro mobile e não fazem parte do fluxo companion padrão.
Last modified on May 27, 2026