Enviar mensaje de plantilla

Envía un mensaje de plantilla de WhatsApp a un destinatario. El negocio se determina a partir de tu API key y todos los recursos (plantillas, números) se validan contra ese negocio.

POST/api/external/v2/send-template

Autenticación

Este endpoint se autentica con una API key mediante la cabecera X-API-Key (formato ek_live_...), en lugar del token bearer del resto de la referencia.

Parámetros de consulta

ParámetroTipoObligatorioDescripción
template_idString (UUID)ObligatorioUUID de la plantilla de WhatsApp a enviar (debe pertenecer a tu negocio).
from_phone_numberStringObligatorioNúmero del negocio desde el que se envía (incluye el código de país sin el signo '+').
agent_idString (UUID)OpcionalUUID de un agente a asignar a la conversación (debe pertenecer a tu negocio).

Cuerpo de la solicitud

ParámetroTipoObligatorioDescripción
phoneStringObligatorioNúmero del destinatario (incluye el código de país sin el signo '+').
buttonsArrayOpcionalArreglo opcional de parámetros dinámicos de botón. Cada elemento es { "index": <posición del botón>, "sub_type": "url", "text": "<valor>" }. Para un botón de URL definido como https://host/qr/{{1}}, el text reemplaza {{1}}.

Ejemplo de solicitud

bash
curl -X POST "https://eclectic-api-537143970188.us-central1.run.app/api/external/v2/send-template?template_id=abc-123&from_phone_number=56987654321&agent_id=def-456" \
  -H "X-API-Key: ek_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "56912345678",
    "name": "John Doe",
    "company": "Acme Inc",
    "buttons": [
      { "index": 0, "sub_type": "url", "text": "ejemplo-123" }
    ]
  }'

Ejemplo de respuesta

json
{
  "success": true,
  "message_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "recipient": "56912345678",
  "template_name": "welcome_template"
}

Notas

  • Los campos del cuerpo se asignan a las variables que declara la plantilla; los campos que no coinciden con una variable se ignoran.
  • Usa claves numéricas ("1", "2", ...) para variables posicionales, o claves con nombre ("name", "company") para variables nombradas.
  • Para plantillas con un botón de URL dinámico, envía el valor mediante el arreglo buttons, no como una variable del cuerpo — Meta rechaza una URL enviada como parámetro del cuerpo.
  • Posibles errores: 400 (validación o envío bloqueado), 401 (API key inválida o ausente), 403 (el recurso no pertenece a tu negocio), 500 (error interno).