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.

Todo o conteúdo de saída passa por um único método:
client.message.send(to, content, options?): Promise<WaMessagePublishResult>
  • to — o do destinatário (5511999999999@s.whatsapp.net, um grupo ...@g.us, etc.). Veja Helpers de JID para construí-los.
  • content — uma string, um objeto de conteúdo tipado ou um Proto.IMessage bruto.
  • options — citação, menções, encaminhamento, visualização única, edições e mais.
A promise resolve para um WaMessagePublishResult assim que o servidor envia o ack:
const result = await client.message.send(jid, 'Hello!')
console.log(result.id) // o id da mensagem (id da stanza)

Texto simples

O conteúdo mais simples é uma string:
await client.message.send(jid, 'Hello from zapo!')
Para mais controle, use a forma de objeto de texto — ela permite anexar context info e ajustar as prévias de link:
await client.message.send(jid, {
  type: 'text',
  text: 'Check this out: https://example.com',
  linkPreview: true // busca a prévia automaticamente
})

Respondendo (citação)

Passe o evento da mensagem original (ou uma referência) como options.quote:
client.on('message', async (event) => {
  await client.message.send(event.chatJid!, 'Replying to you', {
    quote: event
  })
})
A citação é renderizada como um balão de resposta referenciando a mensagem original.

Menções

options.mentions é uma lista de JIDs para marcar. Inclua o texto @número correspondente no corpo para que o WhatsApp renderize a menção:
await client.message.send(groupJid, {
  type: 'text',
  text: 'Hey @5511999999999, welcome!'
}, {
  mentions: ['5511999999999@s.whatsapp.net']
})
O comportamento da prévia de link é controlado por mensagem através do campo linkPreview do objeto de texto:
ValorComportamento
undefinedSegue o padrão global de linkPreview.
falseDesabilita a prévia.
trueForça a busca automática da prévia.
objetoPula a busca e usa os campos de prévia fornecidos diretamente.
// Forneça sua própria prévia em vez de buscar
await client.message.send(jid, {
  type: 'text',
  text: 'https://example.com',
  linkPreview: { title: 'Example', description: 'My custom preview' }
})
Configure o fetcher padrão globalmente com a opção linkPreview do client.

Encaminhamento

Defina options.forward para marcar uma mensagem como encaminhada:
await client.message.send(jid, 'Forwarded text', { forward: true })
// ou com uma pontuação de encaminhamento frequente
await client.message.send(jid, content, { forward: { score: 4 } })

Referência de opções de envio

WaSendMessageOptions (terceiro argumento) inclui:
OpçãoTipoPropósito
quoteWaIncomingMessageEvent | WaQuoteRefResponder a uma mensagem.
mentionsstring[]JIDs para mencionar.
forwardboolean | { score }Marcar como encaminhada.
viewOncebooleanEmpacotar imagem/vídeo/áudio como visualização única.
editKeyWaSendEditKeyEditar uma mensagem enviada anteriormente (veja interativas).
contextInfoWaSendContextInfoContext info bruto (avançado).
idstringUsar um id de mensagem específico.
ackTimeoutMs / maxAttempts / retryDelayMsnumberAjuste de retentativa por envio.

A union de conteúdo

content aceita qualquer WaSendMessageContent. As variantes tipadas estão documentadas ao longo destes guias:

Mídia

Imagens, vídeo, áudio, documentos, figurinhas.

Enquetes e reações

Enquetes, votos, reações, fixações, edições, revogações, eventos.
Você sempre pode recorrer a um Proto.IMessage bruto para qualquer coisa não coberta por um builder tipado:
import { proto } from 'zapo-js'

await client.message.send(jid, {
  conversation: 'Raw protobuf message'
})
Last modified on May 27, 2026