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": "pt_BR"
},
"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"
}Outros endpoints
Enviar template
Envie templates aprovados pela 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": "pt_BR"
},
"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"
}Conceituação
Envia um template de mensagem aprovado pela Meta para um contato. É a única forma de enviar mensagens fora da janela de conversa de 24 horas. O campocontent.type deve ser TEMPLATE e o template é enviado dentro de attachments.
Template é um recurso exclusivo da Meta Cloud API. Nos outros canais ele não existe — e não é necessário, porque não há janela para reabrir. Veja o que cada canal aceita.
O template precisa estar com status
APPROVED para funcionar. Use os endpoints de Templates para criar e gerenciar seus templates.Com o canal desconectado, a API recusa o envio com
422 e subCode CHANNEL_DISCONNECTED, e a mensagem não é enviada. Veja Erros no envio.Autorizações
Secret Key gerada no painel de Segurança do Omni Z-API
Parâmetros de caminho
ID do canal
Exemplo:
"SEU_CHANNEL_ID"
Corpo
application/json
Resposta
Mensagem enviada com sucesso
ID da mensagem enviada — hexadecimal de 32 caracteres maiúsculos