Mensagens e mídia

Tipos de envio, arquivos por URL ou base64, respostas, reações e a mídia recebida.

Todos os envios são POST em /messages/... com o chatId do destino. A lista completa, com todos os campos, está em Mensagens.

EnvioRotaCampos principais
TextoPOST /messages/texttext, reply_to (opcional)
ImagemPOST /messages/imagefile, caption
DocumentoPOST /messages/filefile (com filename), caption
Áudio gravadoPOST /messages/voicefile, convert
VídeoPOST /messages/videofile, caption, convert, asNote
LocalizaçãoPOST /messages/locationlatitude, longitude, title
ContatoPOST /messages/contact-vcardcontacts[]
EnquetePOST /messages/pollpoll.name, poll.options, poll.multipleAnswers
ListaPOST /messages/listmessage.sections[].rows[]
ReaçãoPUT /messages/reactionmessageId, reaction (emoji; vazio remove)

Arquivos: por URL ou base64

{
  "chatId": "5511999999999",
  "caption": "Segue o boleto",
  "file": {
    "url": "https://exemplo.com.br/arquivos/boleto.pdf",
    "mimetype": "application/pdf",
    "filename": "boleto.pdf"
  }
}
  • Por URL (file.url): o endereço precisa ser público (http/https) e responder rápido. É o jeito recomendado.
  • Em base64 (file.data): o conteúdo do arquivo no próprio corpo, até 70 MB por requisição.
  • Áudio e vídeo: com convert: true, o arquivo é convertido para o formato do WhatsApp (OGG/Opus e MP4).

Responder, reagir e marcar como lida

  • Responder citando: reply_to com o id da mensagem original.
  • Reagir: PUT /messages/reaction com messageId e o emoji em reaction.
  • Marcar como lida: POST /messages/seen com o chatId.
  • "Digitando…": POST /typing/start até o envio da resposta (ou POST /typing/stop).
  • Editar ou apagar: PUT e DELETE em /chats/{chatId}/messages/{messageId}.

O id de uma mensagem tem o formato {fromMe}_{chatId}_{id}, por exemplo false_5511999999999@c.us_3EB0C0A1B2C3D4E5F6.

Mídia recebida

Imagens, áudios, vídeos e documentos chegam nos eventos com um link assinado em payload.media.url (https://app.onzap.io/v1/files/...):

"media": {
  "url": "https://app.onzap.io/v1/files/i01j.../false_5511999999999@c.us_3EB0....jpeg?exp=...&sig=...",
  "mimetype": "image/jpeg"
}
  • Não precisa de token: o link é a autorização.
  • Vale por 24 horas. Baixe e guarde o arquivo no seu armazenamento se precisar dele depois.
  • O tipo da mensagem vem em payload.type: text, image, video, audio, voice, document, sticker, location, contact, poll, button_reply, list_reply, reaction ou unknown.