Enviar un SMS con plantilla (Content Template)
Cómo enviar un SMS usando una plantilla aprobada y resolver los errores 400 más comunes.
Las plantillas de contenido son la forma recomendada de envío: permiten versionar el texto, personalizarlo con variables del contacto y mantener trazabilidad de lo enviado. Se crean en el Portal de Cliente, en Assets → Content templates, y se invocan desde la API por su template.id.
Dónde encontrar el template.id
El template.id que espera la API es el número que aparece en la columna ID de la tabla Content templates. En el panel Edit Template puedes confirmar el texto de la plantilla, sus variables y el canal al que pertenece.
Las variables del cuerpo de la plantilla (con la sintaxis {{attribute.nombre}}) se envían dentro de params, usando el mismo nombre sin las llaves.
Petición
POST {URL_BASE}
Content-Type: application/json
X-API-Key: <su API key>{
"contact": "<numero del destinatario>",
"channel": 1,
"senderId": "<su Sender ID>",
"webhook": "<su URL de webhook>",
"template": {
"id": 6,
"params": {
"attribute.name": "<nombre>",
"attribute.phoneNumber": "<numero>"
}
}
}Un envío correcto devuelve 202 Accepted con error: false, transactionId y messageId.
Dos errores comunes
Ambos devuelven código 400 (no 401): si tu petición llega con estos mensajes, la autenticación ya pasó correctamente y el problema está en el cuerpo del JSON.
| Mensaje de error | Causa | Corrección |
|---|---|---|
parse error: expected number... | El template.id se envió entre comillas ("id": "6"). La API espera un entero, no una cadena de texto. | Enviar el id como número: "id": 6, no "id": "6". |
EOF | El JSON llegó incompleto (falta una llave o corchete de cierre). | Revisar que todas las llaves { } y corchetes [ ] estén cerrados. |