Resumo da rota
Autenticação
A rota exige um token válido no cabeçalho Authorization e o cabeçalho X-Token-Type
com valor external-app. Sem autenticação, a requisição
será bloqueada.
Authorization: Bearer <SEU_TOKEN_DE_ACESSO>
Content-Type: application/json
X-Token-Type: external-app
Parâmetros de rota
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
chatId |
string | Sim | ID do chat. Se não existir, a API tenta buscar um contato com esse mesmo identificador. |
Corpo da requisição
O JSON precisa conter o nome do template, o idioma e os componentes opcionais do template.
{
"language": "pt_BR",
"template": "nome_do_template",
"components": null
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
language |
string | Sim | Idioma do template. Ex.: pt_BR, en_US. |
template |
string | Sim | Nome técnico do template cadastrado no WhatsApp Business. |
components |
array ou null | Sim | Lista de componentes do template. Pode ser null quando o template não precisa
de variáveis.
|
components precisa seguir a estrutura
esperada pelo template.
Se o template tiver parâmetros, eles devem ser enviados corretamente.
Fluxo de processamento
- Valida o token de autenticação.
- Procura o chat informado por
chatId. - Se o chat não existir, procura um contato com o mesmo identificador.
- Se encontrar o contato, cria o chat automaticamente.
- Valida o corpo da requisição.
- Envia o template para o WhatsApp.
- Registra a mensagem no chat.
Exemplo de requisição
curl -X POST "https://api.whatsapp.fluxki.com.br/chats/5511999999999" \
-H "Authorization: Bearer <SEU_TOKEN_DE_ACESSO>" \
-H "Content-Type: application/json" \
-H "X-Token-Type: external-app" \
-d '{
"language": "pt_BR",
"template": "boas_vindas",
"components": null
}'
Exemplo com variáveis no template
{
"language": "pt_BR",
"template": "agendamento_confirmacao",
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "João"
},
{
"type": "text",
"text": "15/03/2026"
}
]
}
]
}
O exemplo acima é ilustrativo. A estrutura exata dos componentes depende do template configurado.
Exemplo de resposta de sucesso
{
"responseAPI": {
"messages": [
{
"id": "wamid.HBgL..."
}
]
},
"message": {
"type": "template",
"from": "app_user",
"waId": "wamid.HBgL..."
}
}
Erros comuns
| Status | Quando acontece | Exemplo de mensagem |
|---|---|---|
| 401 | Sem autorização ou token inválido | Não autenticado |
| 422 | Contato não encontrado para o chatId |
Nenhum contato encontrado com o número informado |
| 500 | Falha ao enviar o template | Ocorreu um erro |