Enviar templates WABA pela API
Inicie ou retome conversas do canal oficial com templates aprovados, respeitando destinatário, idioma, janela de atendimento e reconciliação do ticket.
Antes de começar
- Canal oficial ativo
- Template aprovado no idioma correto
- Contato de teste autorizado e credencial de API protegida
Saber quando o template é obrigatório
No canal oficial, mensagens livres dependem da janela de atendimento. Quando não há uma janela aberta, a conversa deve ser iniciada ou retomada com um template aprovado. Botões ou listas livres não substituem esse requisito.

Usar as rotas e os campos publicados
- POST /v2/api/external/{ApiID}/template.
- POST /v2/api/external/{ApiID}/templateBody.
- POST /v2/api/external/{ApiID}/templateMarketingBody.
- As três publicam number, isClosed, templateData e validateNumber.
- Dentro de templateData são publicados messaging_product, to, type e template; template contém name e language; language contém code.
- O retorno documentado contém o ticketId do atendimento criado ou reutilizado.
Preparar o template e o destinatário
- 1
Abra a lista de templates e confirme que o status está aprovado.
- 2
Copie o nome técnico exatamente como exibido.
- 3
Confirme o código do idioma e se o conteúdo possui variáveis.
- 4
Valide number e templateData.to com DDI e DDD conforme a regra atual do canal.
- 5
Mantenha URL base, ApiID e token na mesma credencial; envie Authorization: Bearer <TOKEN> e nunca coloque o segredo na URL ou no log.
- 6
Mantenha isClosed como false no primeiro teste quando a conversa precisar continuar.
- 7
Envie uma única requisição e guarde apenas estado HTTP, horário e ticketId em log protegido.

Confirmar envio, ticket e resposta
- 1
Use o ticketId retornado para localizar o atendimento.
- 2
Confirme destinatário, canal, template, horário e variáveis renderizadas.
- 3
Verifique se isClosed produziu o estado esperado.
- 4
Em caso de timeout, consulte o ticket antes de repetir o POST.
- 5
Depois que o contato responder, confirme a reabertura da janela antes de usar mensagem livre.

Resolver recusas sem duplicar o envio
- Template não encontrado: revise nome técnico, idioma, aprovação e canal.
- Variável inválida: pare a automação e confronte o corpo com o exemplo da documentação interativa atual.
- Número recusado: confira DDI, DDD e validateNumber; não use ID de ticket no lugar do número.
- Ticket encerrado: revise isClosed antes do próximo teste.
- Timeout: procure o ticket e a mensagem antes de reenviar.
Se ainda houver dúvida, continue pelos artigos relacionados abaixo.
