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-templateAutenticació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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
template_id | String (UUID) | Obligatorio | UUID de la plantilla de WhatsApp a enviar (debe pertenecer a tu negocio). |
from_phone_number | String | Obligatorio | Número del negocio desde el que se envía (incluye el código de país sin el signo '+'). |
agent_id | String (UUID) | Opcional | UUID de un agente a asignar a la conversación (debe pertenecer a tu negocio). |
Cuerpo de la solicitud
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
phone | String | Obligatorio | Número del destinatario (incluye el código de país sin el signo '+'). |
buttons | Array | Opcional | Arreglo 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).