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.

As configurações por chat ficam em client.chat (WaAppStateMutationCoordinator). São mutações de app-state — sincronizam entre todos os seus dispositivos vinculados, e mudanças feitas em outro lugar voltam no evento mutation.
Essas operações afetam a visão da sua conta (e dos seus outros dispositivos). Elas não mudam nada para os outros participantes — ex.: deletar um chat não o deleta para eles. Para deletar para todos, use um revoke.

Mute

// Silencia por 8 horas
await client.chat.setChatMute(chatJid, true, Date.now() + 8 * 3600_000)

// Remove o silêncio
await client.chat.setChatMute(chatJid, false)
muteEndTimestampMs é obrigatório ao silenciar (epoch ms). Para “silenciar para sempre”, passe um timestamp bem no futuro. O client não remove o silêncio sozinho quando o timer expira — esse é o momento em que o WhatsApp reativa as notificações.

Pin & arquivar

await client.chat.setChatPin(chatJid, true)      // pin
await client.chat.setChatArchive(chatJid, true)  // arquivar
Pin e arquivar são mutuamente exclusivos — fixar um chat limpa o flag de arquivado e vice-versa. O WhatsApp limita a quantidade de chats fixados no servidor.

Lido / não lido

await client.chat.setChatRead(chatJid, true)   // marca como lido
await client.chat.setChatRead(chatJid, false)  // marca como não lido

Lock

await client.chat.setChatLock(chatJid, true)
Travar também limpa o arquivado e o pin.

Favoritar uma mensagem

Uma mensagem é identificada por uma WaAppStateMessageKey:
interface WaAppStateMessageKey {
  chatJid: string
  id: string            // o id (stanza) da mensagem
  fromMe: boolean
  participantJid?: string // remetente no grupo
}

await client.chat.setMessageStar(
  { chatJid, id: stanzaId, fromMe: false, participantJid: senderJid },
  true
)

Limpar & deletar

// Limpa as mensagens mas mantém o chat (local apenas)
await client.chat.clearChat(chatJid, { deleteStarred: false, deleteMedia: true })

// Deleta o chat inteiro (remove da lista + mensagens armazenadas)
await client.chat.deleteChat(chatJid, { deleteMedia: true })
clearChat mantém mensagens favoritadas e mídia por padrão; defina deleteStarred / deleteMedia para apagá-las também. Nenhum dos dois sai de um grupo — use client.group.leaveGroup para isso.

Deletar uma mensagem para mim

Remove uma única mensagem apenas do(s) seu(s) dispositivo(s) — os destinatários continuam vendo:
await client.chat.deleteMessageForMe(
  { chatJid, id: stanzaId, fromMe: false },
  { deleteMedia: true }
)
Para deletar para todos, envie um revoke.

Além dos helpers

Os métodos acima são atalhos tipados. Para qualquer coisa sem um helper dedicado — contatos, labels, quick replies, privacidade de status e a lista completa de schemas de app-state — use o client.chat.set() / client.chat.remove() genérico. Veja a referência de chat mutations.

Reagindo a mudanças

Quando uma configuração de chat muda em outro dispositivo, você recebe um evento mutation:
client.on('mutation', (event) => {
  console.log(event.collection, event.operation, event.index)
})
Last modified on May 27, 2026