Ciclo de vida
Cada mudança gera um evento (
template.submitted, template.pending, template.approved, template.rejected, template.paused, template.disabled). Assine template.* para acompanhar a aprovação sem consultar a API.
Motivos de rejeição
rejection_reason usa um conjunto fechado de valores da Routa, não os códigos do provedor.
Submeter um template
POST /v1/templates cria o template e o envia para análise. Informe o canal, o nome, o idioma, a categoria e o corpo com variáveis posicionais {{1}}, {{2}}.
A resposta retorna o template com
variables (a lista de placeholders do corpo) e o status atual.
Componentes ricos
O campo opcionalcomponents aceita três slots, todos opcionais. Quando o template é só texto, omita components por completo.
Cabeçalho
Para um cabeçalho de mídia, envie primeiro o arquivo e use o
id retornado:
O formato é deduzido do
Content-Type do envio.
Rodapé
Um objeto{ "text": "..." } com até 60 caracteres.
Botões
Até 10 botões, na ordem em que você os enviar. O texto de cada botão tem no máximo 25 caracteres.
Um componente fora dessas regras retorna
422 com o código template_components_invalid.
Enviar um template
Com o templateapproved, envie-o em POST /v1/messages informando o id e os valores dos placeholders, na ordem:
text e template são mutuamente exclusivos. A quantidade de body_parameters precisa ser igual à de variáveis do template. Veja o passo a passo em Enviar um template.