Publicado em 14 de junho de 2026· 8 min de leitura

Como enviar mensagens, botões, imagens e listas pela API do WhatsApp

Aprenda a enviar pela API do WhatsApp: texto, imagem, documento, áudio, localização, botões interativos (resposta rápida e call to action) e mensagens de lista. Com exemplos de código em cURL e Node.js.

A API do WhatsApp permite enviar muito além de texto: imagens, documentos, áudio, vídeo, localização, contatos, botões interativos e menus de lista — tudo por requisições HTTP para endpoints específicos. Todos seguem o mesmo padrão: um POST para https://us.api-wa.me/{key}/message/<tipo> com um corpo JSON. O destinatário (to) é sempre o número em formato internacional, só dígitos.

Este guia mostra os tipos mais usados, com exemplos prontos.

Mensagem de texto

curl -X POST "https://us.api-wa.me/SUA_KEY/message/text" \
  -H "Content-Type: application/json" \
  -d '{ "to": "5566996852025", "text": "Olá! Como posso ajudar?" }'

Imagem (e outras mídias)

Envie uma imagem a partir de uma URL pública, com legenda opcional:

curl -X POST "https://us.api-wa.me/SUA_KEY/message/image" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "5566996852025",
    "url": "https://exemplo.com/foto.jpg",
    "caption": "Confira nosso novo produto"
  }'

Os mesmos campos valem para outros tipos de mídia, trocando apenas o endpoint:

MídiaEndpoint
Imagem/{key}/message/image
Vídeo/{key}/message/video
Áudio/{key}/message/audio
Documento/{key}/message/document
Localização/{key}/message/location
Contato/{key}/message/contact

Precisa enviar um arquivo local em vez de URL? Use as versões em base64: /{key}/message/base64/image, /base64/audio e /base64/document.

Botões de resposta rápida (quick reply)

Botões de resposta rápida mostram opções clicáveis que o cliente toca para responder:

curl -X POST "https://us.api-wa.me/SUA_KEY/message/button_reply" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "5566996852025",
    "header": { "title": "Confirmação" },
    "text": "Deseja confirmar seu pedido?",
    "footer": "Escolha uma opção",
    "buttons": [
      { "type": "quick_reply", "id": "sim", "text": "Sim" },
      { "type": "quick_reply", "id": "nao", "text": "Não" }
    ]
  }'

Botões de ação (call to action)

Botões de ação levam o cliente a abrir um site, ligar ou copiar um código:

curl -X POST "https://us.api-wa.me/SUA_KEY/message/button_action" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "5566996852025",
    "header": { "title": "Seu pedido" },
    "text": "Acompanhe ou fale com a gente",
    "footer": "Estamos à disposição",
    "buttons": [
      { "type": "cta_url", "url": "https://api-wa.me", "text": "Acessar site" },
      { "type": "cta_call", "phone_number": "+5566996852025", "text": "Ligar" },
      { "type": "cta_copy", "copy_code": "PED12345", "text": "Copiar código" }
    ]
  }'

Mensagem de lista (menu)

Listas são ótimas para menus de atendimento com várias opções:

curl -X POST "https://us.api-wa.me/SUA_KEY/message/list" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "5566996852025",
    "title": "Atendimento",
    "description": "Selecione o que você precisa",
    "buttonText": "Ver opções",
    "footer": "api-wa.me",
    "sections": [
      {
        "title": "Suporte",
        "rows": [
          { "id": "2via", "title": "2ª via de boleto" },
          { "id": "status", "title": "Status do pedido" }
        ]
      }
    ]
  }'

Enviando com o SDK Node.js

Todos os tipos passam pelo mesmo método wa.message.send, mudando o type:

import { WhatsApp, TypeMessage } from "@raphaelvserafim/client-api-whatsapp";

const wa = new WhatsApp({ server: "https://us.api-wa.me", key: "SUA_KEY" });

// Texto
await wa.message.send(
  { type: TypeMessage.TEXT, body: { to: "5566996852025", text: "Olá!" } },
  false
);

// Imagem
await wa.message.send(
  {
    type: TypeMessage.IMAGE,
    body: { to: "5566996852025", url: "https://exemplo.com/foto.jpg", caption: "Novidade" },
  },
  false
);

// Botões de ação
await wa.message.send(
  {
    type: TypeMessage.BUTTON_ACTION,
    body: {
      to: "5566996852025",
      text: "Acompanhe seu pedido",
      buttons: [{ type: "quick_reply", id: "ok", text: "Ok" }],
    },
  },
  false
);

Próximos passos

Pronto para automatizar seu WhatsApp?

Crie sua conta gratuita e comece a enviar mensagens pela API em minutos.

Começar grátis

Perguntas frequentes

Como enviar uma mensagem de texto pela API do WhatsApp?+

Faça um POST para /{key}/message/text com o corpo JSON contendo 'to' (número em formato internacional) e 'text'. Exemplo: { "to": "5566996852025", "text": "Olá!" }.

Como enviar botões no WhatsApp pela API?+

Use o endpoint /{key}/message/button_action para botões de ação (abrir URL, ligar, copiar código) ou /{key}/message/button_reply para botões de resposta rápida (quick_reply). Cada botão tem um tipo, um texto e os campos específicos do tipo.

Como enviar imagem ou documento pela API do WhatsApp?+

Para imagem, use /{key}/message/image com 'to', 'url' (link público da imagem) e 'caption' opcional. Para documento, áudio e vídeo existem endpoints equivalentes (/message/document, /message/audio, /message/video). Também há versões em base64.

É possível enviar menus de lista pela API do WhatsApp?+

Sim. O endpoint /{key}/message/list envia uma mensagem de lista com título, descrição, texto do botão e seções com opções — ideal para menus de atendimento.