Enviar Mensagens

Enviar Botões de Resposta

Envia botões clicáveis (até 3). Cada objeto do array `buttons` vira um tipo diferente de botão conforme o campo usado: • `text` + `id` → botão de resposta rápida (contato clica, envia o texto) • `text` + `url` → botão que abre link externo • `text` + `phone` → botão de ligação • `text` + `copy` → botão que copia código pra área de transferência Sem `image`, a mensagem sai só com texto + botões (header limpo). Com `image`, aparece uma imagem no topo. Limitação WhatsApp: misturar reply com url/phone/copy na mesma mensagem pode exibir aviso 'Abra no celular'.

POSThttps://api.zapzapapi.com/api/v1/{instanceId}/send/buttons

Autenticação por cabeçalhos x-api-key e x-api-secret.

Parâmetros

NomeTipoOndeObrigatórioDescrição
numbertextcorpoSimNúmero do destinatário (com DDI)
texttextareacorpoSimTexto da mensagem
buttonsjsoncorpoSimBotões (até 3). Use text+id para reply, text+url para link, text+phone para ligar, text+copy para copiar código
imagetextcorpoNãoURL da imagem no topo (opcional)
footertextcorpoNãoTexto do rodapé (opcional)
delaynumbercorpoNãoAtraso em ms antes de enviar (opcional)
digitandoselectcorpoNãoExibe "digitando..." automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.

Exemplo de requisição

curl

curl -X POST "https://api.zapzapapi.com/api/v1/{instanceId}/send/buttons" \
  -H "x-api-key: SUA_API_KEY" \
  -H "x-api-secret: SEU_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"number":"5511999999999","text":"Como podemos ajudar?","buttons":[{"text":"Sim","id":"yes"},{"text":"Nosso site","url":"https://exemplo.com"},{"text":"Ligar","phone":"+5511999999999"}]}'

Node.js

const res = await fetch("https://api.zapzapapi.com/api/v1/{instanceId}/send/buttons", {
  method: "POST",
  headers: {
    "x-api-key": "SUA_API_KEY",
    "x-api-secret": "SEU_API_SECRET",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "number": "5511999999999",
    "text": "Como podemos ajudar?",
    "buttons": [
      {
        "text": "Sim",
        "id": "yes"
      },
      {
        "text": "Nosso site",
        "url": "https://exemplo.com"
      },
      {
        "text": "Ligar",
        "phone": "+5511999999999"
      }
    ]
  }),
});
console.log(await res.json());

Python

import requests

res = requests.post(
    "https://api.zapzapapi.com/api/v1/{instanceId}/send/buttons",
    headers={"x-api-key": "SUA_API_KEY", "x-api-secret": "SEU_API_SECRET"},
    json={"number":"5511999999999","text":"Como podemos ajudar?","buttons":[{"text":"Sim","id":"yes"},{"text":"Nosso site","url":"https://exemplo.com"},{"text":"Ligar","phone":"+5511999999999"}]},
)
print(res.json())

Exemplo de resposta

JSON

{
  "messageType": "InteractiveMessage",
  "status": "Pending"
}

Os valores são ilustrativos; os campos seguem o formato real da resposta.

Ver referência completa

Pegue suas chaves de API

Crie sua conta, conecte um número em minutos e comece a usar a API. R$15 por número ativo/mês, com crédito de boas-vindas ao criar a conta, sujeito à campanha vigente.