Pular para o conteúdo principal
Além de texto e mídia, o client.message.send aceita uma família de objetos de conteúdo interativo tipados. Cada um é discriminado pelo seu campo type.

Apontando para uma mensagem

Reply / reaction / revoke / pin / keep / event-response aceitam um WaMessageTargetInput: um evento message recebido passado literalmente (sua key é usada) ou uma WaMessageKey explícita:
O caminho mais fácil é passar o próprio evento — event.key já é uma WaMessageKey:

Reações

Passe uma string vazia como emoji para remover uma reação anterior:

Enquetes

As opções podem ser strings simples ou objetos { name }. A ordem importa — ela é usada no hashing dos votos.

Votando em uma enquete

Votar requer a identidade da enquete original e seu messageSecret (32 bytes do messageContextInfo.messageSecret da enquete):
Os votos recebidos chegam como eventos message_addon depois de descriptografados.

Editando uma mensagem

Para editar, envie o conteúdo novo e passe editKey nas opções. A original deve ser fromMe. Você pode passar o evento message recebido literalmente, sua key, ou uma WaSendEditKey explícita ({ id, participant?, timestampMs? }):
O novo payload é empacotado em uma mensagem de protocolo MESSAGE_EDIT que mira o editKey.id.

Revogando (apagar para todos)

Sender vs admin revoke é auto-detectado a partir de target.fromMe: false dispara um admin revoke. Não há opção subtype para passar.

Fixando

Pins expiram — passe durationSecs para sobrescrever o default. O wa-web oferece três presets:
O default é 86_400 (24h). O TTL viaja com o pin via messageContextInfo.messageAddOnDurationInSecs; sem ele os clients receptores dropam o pin silenciosamente, então a lib sempre carimba o default se você omitir. durationSecs é ignorado em unpin.

Manter no chat

Para chats com mensagens temporárias, mantenha (ou desfaça a manutenção de) uma mensagem específica:

Eventos

Crie uma mensagem de evento no estilo calendário:

Respondendo a um evento

Localizações e contatos

Ainda não existe um builder dedicado para localizações estáticas ou cartões de contato — envie-os como um Proto.IMessage bruto:
Última modificação em 3 de junho de 2026