POST https://api.hustapp.com/template/send
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
template | object | Sim | { name } ou { identifier } do template. |
connection | object | Sim | { uuid } da conexão. Aceita apenas UUID. |
contact | object | Sim | { id } ou { phone } do destinatário. O phone é normalizado como em Enviar mensagem. |
params | object | Se o template tiver variáveis | Valores das variáveis do template. Veja Parâmetros. |
Parâmetros
Cada chave deparams é o nome de uma variável do template. O valor é um objeto que depende do tipo da variável:
| Variável | Formato |
|---|---|
| Texto | { "value": "José" } |
| Imagem no cabeçalho | { "image": { "link": "https://..." } } |
| Documento no cabeçalho | { "document": { "link": "https://..." } } |
| Vídeo no cabeçalho | { "video": { "link": "https://..." } } |
link precisa ser uma URL pública, acessível pela Meta no momento do envio.
Todas as variáveis do template são obrigatórias. Se faltar alguma, nada é enviado.
Exemplo
curl -X POST https://api.hustapp.com/template/send \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"template": { "name": "confirmacao_pedido" },
"connection": { "uuid": "9db04f68-9e7d-4297-ba41-5f4d4c44779a" },
"contact": { "phone": "5541988887777" },
"params": {
"nome": { "value": "José" },
"pedido": { "value": "4521" }
}
}'
const res = await fetch("https://api.hustapp.com/template/send", {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
template: { name: "confirmacao_pedido" },
connection: { uuid: "9db04f68-9e7d-4297-ba41-5f4d4c44779a" },
contact: { phone: "5541988887777" },
params: {
nome: { value: "José" },
pedido: { value: "4521" },
},
}),
});
// 204 = enviado
if (res.status !== 204) console.error(await res.json());
import requests
res = requests.post(
"https://api.hustapp.com/template/send",
headers={"Authorization": f"Bearer {token}"},
json={
"template": {"name": "confirmacao_pedido"},
"connection": {"uuid": "9db04f68-9e7d-4297-ba41-5f4d4c44779a"},
"contact": {"phone": "5541988887777"},
"params": {
"nome": {"value": "José"},
"pedido": {"value": "4521"},
},
},
)
# 204 = enviado
if res.status_code != 204:
print(res.json())
<?php
$ch = curl_init('https://api.hustapp.com/template/send');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'template' => ['name' => 'confirmacao_pedido'],
'connection' => ['uuid' => '9db04f68-9e7d-4297-ba41-5f4d4c44779a'],
'contact' => ['phone' => '5541988887777'],
'params' => [
'nome' => ['value' => 'José'],
'pedido' => ['value' => '4521'],
],
]),
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// 204 = enviado
if ($status !== 204) {
var_dump(json_decode($response, true));
}
uses
System.Net.HttpClient, System.Classes, System.SysUtils;
const
Body =
'{' +
' "template": { "name": "confirmacao_pedido" },' +
' "connection": { "uuid": "9db04f68-9e7d-4297-ba41-5f4d4c44779a" },' +
' "contact": { "phone": "5541988887777" },' +
' "params": {' +
' "nome": { "value": "José" },' +
' "pedido": { "value": "4521" }' +
' }' +
'}';
var
HttpClient: THTTPClient;
Response: IHTTPResponse;
begin
HttpClient := THTTPClient.Create;
try
HttpClient.CustomHeaders['Authorization'] := 'Bearer ' + Token;
HttpClient.ContentType := 'application/json';
Response := HttpClient.Post('https://api.hustapp.com/template/send',
TStringStream.Create(Body, TEncoding.UTF8));
// 204 = enviado
if Response.StatusCode <> 204 then
Writeln(Response.ContentAsString);
finally
HttpClient.Free;
end;
end;
Resposta
Retorna204 sem corpo quando o template é enviado.
Erros
| Status | Quando | Corpo |
|---|---|---|
400 | Corpo inválido | { "message": "...", "errors": [...] } |
400 | Variáveis do template ausentes | { "message": "Template com parâmetros ausentes", "errors": [{ "key": "nome", "message": "..." }] } |
500 | Template, contato ou conexão não encontrados, ou falha no envio | { "message": "..." } |

