Enviar Mensajes

Enviar Botones de Respuesta

Envía botones clicables (hasta 3). Cada objeto del array `buttons` se convierte en un tipo de botón distinto según el campo usado: • `text` + `id` → botón de respuesta rápida (el contacto lo toca y se envía el texto) • `text` + `url` → botón que abre un enlace externo • `text` + `phone` → botón de llamada • `text` + `copy` → botón que copia un código al portapapeles Sin `image`, el mensaje sale solo con texto + botones (encabezado limpio). Con `image`, aparece una imagen en la parte superior. Limitación de WhatsApp: mezclar reply con url/phone/copy en el mismo mensaje puede mostrar el aviso 'Abrir en el celular'.

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

Autenticación con los encabezados x-api-key y x-api-secret.

Parámetros

NombreTipoDóndeObligatorioDescripción
numbertextcuerpoSíNúmero del destinatario (con código de país)
texttextareacuerpoSíTexto del mensaje
buttonsjsoncuerpoSíBotones (hasta 3). Usa text+id para reply, text+url para enlace, text+phone para llamar, text+copy para copiar un código
imagetextcuerpoNoURL de la imagen en la parte superior (opcional)
footertextcuerpoNoTexto del pie (opcional)
delaynumbercuerpoNoRetraso en ms antes de enviar (opcional)
digitandoselectcuerpoNoMuestra un indicador automático de "escribiendo..." proporcional al tamaño del mensaje antes de enviarlo. Activado por defecto (humaniza y reduce el riesgo de bloqueo). Envía false para desactivarlo y responder más rápido. La respuesta sigue siendo síncrona.

Ejemplo de solicitud

curl

curl -X POST "https://api.zapzapapi.com/api/v1/{instanceId}/send/buttons" \
  -H "x-api-key: TU_API_KEY" \
  -H "x-api-secret: TU_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": "TU_API_KEY",
    "x-api-secret": "TU_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": "TU_API_KEY", "x-api-secret": "TU_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())

Ejemplo de respuesta

JSON

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

Los valores son ilustrativos; los campos siguen el formato real de la respuesta.

Ver la referencia completa

Consigue tus claves de API

Crea tu cuenta, conecta un número en minutos y empieza a usar la API. R$15 por número activo/mes, con un crédito de bienvenida al crear la cuenta, sujeto a la campaña vigente.