Pular para o conteúdo principal
client.lowlevel (WaLowLevelCoordinator) é o escape hatch bruto por baixo dos coordinators tipados. Use-o para enviar stanzas de protocolo que a API de alto nível não cobre, fazer IQs customizados ou interceptar stanzas recebidas.
Isto é inseguro por design — você está construindo nodes de protocolo manualmente. Prefira os coordinators tipados quando existir um; recorra ao lowlevel apenas para superfícies de protocolo que o zapo ainda não encapsula.

Binary nodes

Tudo aqui fala BinaryNode — a representação do zapo para uma stanza de protocolo do WhatsApp:

Enviando um node

sendNode escreve uma stanza bruta. Falhas que parecem um problema transitório de envio de recibo são bufferizadas na fila de recibos e logadas em vez de lançadas.

Fazendo um IQ

query envia uma stanza IQ e aguarda a resposta correspondente (dentro de timeoutMs). Lança um erro se o client não estiver conectado.

Interceptando nodes recebidos

Registre um handler para nodes recebidos que correspondam a um tag (e um subtype opcional). O handler retorna um Promise<boolean> — retorne true quando você tiver tratado o node. registerIncomingHandler retorna uma função de unregister.
WaIncomingNodeHandlerRegistration:
Você também pode remover um registro explicitamente:

Filtrando stanzas recebidas

Um filtro de stanza roda antes dos handlers tipados. Retorne true para descartar uma stanza por completo. O zapo ainda envia o ack apropriado para message/receipt/notification, então o servidor para de reentregá-la.
Stanzas críticas de auth (success e failure) ignoram os filtros — você não consegue descartá-las, então o fluxo de conexão e pareamento sempre permanece intacto.
Os nodes recebidos também são observáveis em modo somente leitura via os eventos debug_transport_node_in / debug_transport_node_out — útil para descobrir formatos de stanza antes de escrever um handler.
Última modificação em 28 de maio de 2026