/templates

Consulta os templates de WhatsApp da organização e sincroniza o que mudou na Meta.

Escopo necessário: agents:read para ler, agents:write para sincronizar. Limite: 60 requisições por minuto.

Endpoints

Método Rota Faz
GET /templates Lista, com filtros
GET /templates/{id} Um template, pelo id da Wevichat ou pelo Meta ID
POST /templates/sync Puxa da Meta status e textos atualizados
POST /templates Cria e submete um template à aprovação da Meta
DELETE /templates/{id} Apaga na Meta e aqui

Filtros da lista

Parâmetro Exemplo Descrição
connection_id uuid Templates de um número
status APPROVED APPROVED, PENDING, REJECTED, PAUSED, DISABLED
category MARKETING MARKETING, UTILITY ou AUTHENTICATION
name reativa_teste Nome exato

Descobrir quantas variáveis um template pede

body_variables diz quantos itens body_params espera no envio. É a dúvida número um de quem dispara template pela API.

curl "https://api.wevi.chat/functions/v1/templates?status=APPROVED" \
  -H "Authorization: Bearer wevi_SUA_CHAVE"

Objeto do template

{
  "id": "dddd0000-0000-4000-8000-0000000000b2",
  "meta_id": "861158853461723",
  "name": "promocao_clareamento",
  "category": "MARKETING",
  "language_code": "pt_BR",
  "status": "APPROVED",
  "connection_id": "dddd0000-...",
  "header": null,
  "body": "Oi {{1}}! Este mês o clareamento está com condição especial.",
  "footer": null,
  "buttons": [],
  "carousel_cards": null,
  "body_variables": 1,
  "rejection_reason": null,
  "created_at": "2026-06-20T10:00:00Z",
  "updated_at": "2026-06-21T09:12:00Z"
}

Sincronizar com a Meta

Template aprovado, rejeitado ou pausado do lado da Meta só reflete aqui depois de uma sincronização. O painel faz isso quando você abre a tela de Templates; pela API você chama quando quiser.

curl -X POST "https://api.wevi.chat/functions/v1/templates/sync" \
  -H "Authorization: Bearer wevi_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"connection_id":"dddd0000-0000-4000-8000-0000000000aa"}'

Resposta:

{ "ok": true, "imported": 2, "updated": 7, "total": 9 }

imported são templates que existiam só na Meta e passaram a existir aqui. updated são os que já existiam e tiveram status ou texto atualizados.

Erros

Status error Quando
400 missing_connection_id Faltou connection_id no corpo
404 template_not_found Id ou Meta ID não existe nesta organização
404 connection_not_found connection_id não é desta organização
422 connection_without_waba A conexão não tem WABA, então não há o que sincronizar
422 meta_sync_failed A Meta recusou a chamada; a mensagem dela vem em message

Criar um template

curl -X POST "https://api.wevi.chat/functions/v1/templates" \
  -H "Authorization: Bearer wevi_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "dddd0000-...",
    "name": "confirmacao_pedido",
    "category": "UTILITY",
    "language_code": "pt_BR",
    "body_text": "Oi {{1}}! Seu pedido {{2}} foi confirmado.",
    "footer_text": "Loja Exemplo"
  }'

O nome só aceita minúsculas, números e underline. A Meta analisa e responde em minutos ou horas: acompanhe o status por GET /templates ou assine o webhook template.status_changed, que avisa quando aprova ou rejeita.

Categoria MARKETING costuma demorar mais e ser recusada com mais frequência que UTILITY. Se o conteúdo é transacional, declare como utilidade.

Apagar

curl -X DELETE "https://api.wevi.chat/functions/v1/templates/{id}" \
  -H "Authorization: Bearer wevi_SUA_CHAVE"

Aceita o id da Wevichat ou o Meta ID. Apagar remove o template da sua conta na Meta: campanha que dependia dele para de funcionar.

Próximo

Metadados da organização