Os templates são criados e aprovados no dashboard. A API pública apenas os
consome para enviar — não os cria nem os edita.
Como um template é resolvido
1
Identifique o template pelo nome
Um template é identificado pelo seu
template_name — o mesmo nome que você vê
no dashboard e que reporta à Meta.2
Indique o idioma
O idioma é obrigatório em todo envio: adicione
language no formato Meta
lower_UPPER (ex. pt_BR) para escolher qual template enviar.3
Verifique que esteja aprovado
Só é possível enviar templates com status
APPROVED. Um em PENDING
ou REJECTED não é enviável.Componentes de um template
Um template é desenhado e aprovado no dashboard com partes fixas e slots dinâmicos. Ao enviá-lo pela API você apenas preenche esses slots: não é possível adicionar um header nem botões que o template não tenha.body_variables
Os placeholders do corpo (
{{1}}, {{2}}, …). Array de
{ index, value }, index a partir de 1, até 30 variáveis.header
O cabeçalho: texto, ou mídia (imagem, vídeo ou documento) via
file_uuid.button_parameters
O parâmetro de um botão dinâmico (ex. o sufixo de um botão URL). Até 3.
header
É uma união portype — o tipo deve coincidir com como o template foi desenhado:
O
file_uuid vem do fluxo de Enviar mídia.
A transcription (até 4000 caracteres) é obrigatória quando a visão não
pode transcrever o arquivo (MIME não suportado ou maior que 20 MB); se faltar
nesse caso, a ação falha com TEMPLATE_HEADER_TRANSCRIPTION_MISSING.
button_parameters
Array de{ subType, index, text }, até 3 botões:
subType— hoje apenas"url"(botão de URL dinâmica).index— a posição do botão dinâmico dentro do template, a partir de 0.text— o valor concatenado à URL base do botão (ex. o identificador de um recurso), até 1024 caracteres.
Ao escrever, a chave é
subType (camelCase). O endpoint de leitura
Detalhe do template devolve o mesmo campo
como sub_type (snake_case): não copie a chave literal da resposta de leitura —
ao enviar, sub_type é descartado em silêncio e a ação falha com
INVALID_REQUEST.Enviar um template
Você preenche o objetotemplate conforme os slots que ele tem. Estes são os
casos mais comuns:
Para enviar um texto ou mídia enquanto a janela está aberta e fazer o template
chegar se estiver fechada, inclua o
template junto ao conteúdo principal no
mesmo send_message.Dados de pagamento nas variáveis (marcadores)
Um marcador de pagamento é um token com a forma==nome== que é substituído pelo dado de
cobrança real daquela conversa no momento do envio. Em um template ele vai no valor de uma
variável do corpo, nunca no texto do template.
A Meta aprova o corpo com os placeholders (Olá {{1}}, sua CLABE é {{2}} ({{3}})), não os
valores: esses viajam a cada envio. Por isso o marcador pode ser resolvido ali, e a Meta nunca
vê o token.
clabe_spei, clabe_bank e account_national_link.
Se a conversa ainda não tiver conta de cobrança, uma é gerada nesse momento — o marcador é
o gatilho. Por isso uma campanha cujos templates tragam marcadores cria uma conta por
destinatário: é o que permite atribuir quem pagou.
PAYMENT_MARKER_UNKNOWN, 422), a conversa não tem esse dado
(PAYMENT_MARKER_DATA_UNAVAILABLE, 422), o corpo interpolado passa dos 1024 caracteres da Meta
(TEMPLATE_BODY_TOO_LONG, 422) ou não foi possível gerar a conta de cobrança
(PAYMENT_PROFILE_GENERATION_FAILED, 500). Nunca se entrega uma mensagem pela metade num fluxo
de dinheiro.
Templates de teste para conversas tester
O dashboard permite criar templates de teste (status: FAKE) a partir do
módulo Tester sem passar pela aprovação da Meta. Existem para que o operador
e os integradores testem fluxos contra conversas tester sem esperar a revisão
da Meta.
Regras de envio via API pública:
- Conversa tester (
is_tester: trueemGET /conversation) — você pode enviar tanto templates APPROVED quanto templates FAKE. O envio replica o fluxo real mas não toca a Meta (wamidretorna""). - Conversa real (
is_tester: false) — somente templates APPROVED. Se você tentar enviar um template FAKE ou um template comis_tester: truepara uma conversa real, a API responde comTEMPLATE_FAKE_REQUIRES_TESTER_CONVERSATION(422).
Próximos passos
Enviar mensagens
O envio de templates, texto, mídia e respostas rápidas.
Conversas
A janela de 24 horas e o estado de uma conversa.