curl --request POST \
--url https://api.omni.z-api.io/v1/channels/{channelId}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipient": {
"identifier": "5511999999999"
},
"content": {
"type": "TEMPLATE",
"attachments": [
{
"template": {
"name": "boas_vindas_v2",
"language": {
"policy": "deterministic",
"code": "es_ES"
},
"components": [
{
"type": "body",
"parameters": []
}
]
}
}
]
}
}
'{
"messageId": "01A0C92D0C957FE98B73C8BA0CACF741"
}{
"error": 401,
"message": "Unauthorized"
}{
"timestamp": "2026-10-22T14:00:00.123Z",
"code": "BUSINESS_RULE_VIOLATION",
"subCode": "CHANNEL_DISCONNECTED",
"message": "Channel is disconnected"
}Otros endpoints
Enviar plantilla
Envía plantillas aprobadas por Meta
POST
/
v1
/
channels
/
{channelId}
/
messages
curl --request POST \
--url https://api.omni.z-api.io/v1/channels/{channelId}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipient": {
"identifier": "5511999999999"
},
"content": {
"type": "TEMPLATE",
"attachments": [
{
"template": {
"name": "boas_vindas_v2",
"language": {
"policy": "deterministic",
"code": "es_ES"
},
"components": [
{
"type": "body",
"parameters": []
}
]
}
}
]
}
}
'{
"messageId": "01A0C92D0C957FE98B73C8BA0CACF741"
}{
"error": 401,
"message": "Unauthorized"
}{
"timestamp": "2026-10-22T14:00:00.123Z",
"code": "BUSINESS_RULE_VIOLATION",
"subCode": "CHANNEL_DISCONNECTED",
"message": "Channel is disconnected"
}Conceptos
Envía a un contacto una plantilla de mensaje aprobada por Meta. Es la única forma de enviar mensajes fuera de la ventana de conversación de 24 horas. El campocontent.type debe ser TEMPLATE y la plantilla se envía dentro de attachments.
Las plantillas son un recurso exclusivo de Meta Cloud API. No existen en los demás canales, y ahí no hacen falta porque no hay ninguna ventana que reabrir. Consulta qué acepta cada canal.
La plantilla debe tener el estado
APPROVED para poder usarse. Utiliza los endpoints de Plantillas para crear y gestionar tus plantillas.Con el canal desconectado, la API rechaza el envío con
422 y subCode CHANNEL_DISCONNECTED, y el mensaje no se envía. Consulta Errores al enviar.Autorizaciones
Secret Key generada en el panel de Seguridad de Omni Z-API
Parámetros de ruta
ID del canal
Ejemplo:
"SU_CHANNEL_ID"
Cuerpo
application/json
Respuesta
Mensaje enviado correctamente
ID del mensaje enviado — hexadecimal de 32 caracteres en mayúsculas