Produtos e templates
Busca produtos para enviar na conversa e lista os templates de mensagem aprovados.
Buscar produtos
Alimenta o seletor de produtos da caixa de entrada. A busca respeita o catálogo do seller dono do número: um token de seller vê o catálogo dele; em loja marketplace (marketplace_all_sellers ligado) o administrador vê o catálogo de todos.
/api/v1/admin/whatsapp-confluence/productsAdminBusca produtos para o seletor
Parâmetros de consulta
qstringTexto da busca.
search é aceito como apelido.per_pageintegerpadrão: 40Itens por página, de 1 a 50 (fora disso, 40).
pageintegerpadrão: 1Página, a partir de 1.
Exemplo de requisição
bash
curl "$BASE_URL/api/v1/admin/whatsapp-confluence/products?q=camiseta&per_page=10" \
-H "Authorization: Bearer $TOKEN"Resposta
200Produtos
json
{
"products": [
{
"id": "0b6f9d52-8a7e-4b1c-9d3a-52e1f4a7c610",
"name": "Camiseta Azul",
"price_cents": 5990
}
]
}Campos da resposta
productsarrayProdutos encontrados. Os campos de cada item são os da busca de produtos da plataforma (por exemplo
id, name, price_cents em centavos).Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 502 | A busca de produtos falhou. | {"error":"..."} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem papel de administrador. | {"error":"insufficient permissions"} |
Listar os templates
Devolve a cópia local dos templates da conta. Os templates são criados e aprovados na Meta (Gerenciador do WhatsApp); aqui você só os lê. Com sync=1, a plataforma atualiza a cópia com a Meta antes de responder.
/api/v1/admin/whatsapp-confluence/templatesAdminLista templates de mensagem
Parâmetros de consulta
syncstring11 atualiza os templates na Meta antes de listar. Qualquer outro valor é ignorado.Exemplo de requisição
bash
curl "$BASE_URL/api/v1/admin/whatsapp-confluence/templates?sync=1" \
-H "Authorization: Bearer $TOKEN"Resposta
200Templates
json
{
"templates": [
{
"id": 1,
"name": "pedido_confirmado",
"language": "pt_BR",
"category": "UTILITY",
"status": "A",
"components": [
{
"type": "BODY",
"text": "Olá {{1}}, seu pedido foi confirmado."
}
],
"quality_score": "GREEN",
"synced_at": "2026-10-09T13:05:00Z"
}
]
}200Atualização falhou, lista local devolvida
json
{
"templates": [
{
"id": 1,
"name": "pedido_confirmado",
"language": "pt_BR",
"category": "UTILITY",
"status": "A",
"components": [
{
"type": "BODY",
"text": "Olá {{1}}, seu pedido foi confirmado."
}
],
"quality_score": "GREEN",
"synced_at": "2026-10-09T13:05:00Z"
}
],
"sync_error": "..."
}Campos da resposta
templatesarrayTemplates.
templates[].idintegerId local.
templates[].namestringNome do template, usado em Enviar um template e nas campanhas.
templates[].languagestringIdioma (
pt_BR).templates[].categorystringMARKETINGUTILITYAUTHENTICATIONCategoria cobrada pela Meta.
templates[].statusstringAPRXSituação.
templates[].rejection_reasonstringMotivo da rejeição. Ausente se não foi rejeitado.
templates[].componentsarrayEstrutura do template no formato da Meta (corpo, cabeçalho, botões).
{{1}}, {{2}} são as variáveis.templates[].quality_scorestringNota de qualidade da Meta. Ausente se não houver.
templates[].synced_atstringÚltima atualização com a Meta.
sync_errorstringSó aparece quando
sync=1 falhou; a lista devolvida é a local, possivelmente velha.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 500 | Falha ao ler a lista local. | {"error":"..."} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem papel de administrador. | {"error":"insufficient permissions"} |