Skip to main content
Um template é um corpo de mensagem reutilizável que o WhatsApp precisa aprovar antes de você poder enviá-lo. Use templates para mensagens que a sua empresa inicia, como confirmações de pedido, lembretes e códigos de verificação. A Routa submete o template e acompanha o resultado. A aprovação é decidida pelo provedor, no tempo dele. Um template pertence a um canal: o mesmo nome pode estar aprovado em um canal e rejeitado em outro.

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 opcional components 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 template approved, 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.
A Routa verifica o template no aceite. Se ele não estiver aprovado, a chamada falha na hora com template_not_approved (ou template_paused), em vez de gerar um message.failed depois.