1
Crie o template
POST /v1/whatsapp/templates com nome, idioma, categoria e componentes. Normalmente o template nasce com status: "PENDING" — a resposta traz o status lido na Meta.2
Aguarde a aprovação
A análise da Meta leva de minutos a 24 horas. Assine o webhook
whatsapp.template.updated ou consulte GET /v1/whatsapp/templates/{id}.3
Envie
Com
status: "APPROVED", use o name e o language do template em POST /v1/whatsapp/messages — veja Envio de mensagens.Criar um template
O corpo segue o formato da Meta: o mesmocomponents que GET /v1/whatsapp/templates devolve.
id que você usa nas demais rotas:
Nome e idioma são únicos na conta: repetir a criação retorna
409 template_already_exists. Por isso a criação não usa Idempotency-Key.
Cabeçalho de imagem, vídeo ou documento
Para aprovar um cabeçalho de mídia, a Meta exige um arquivo de exemplo. Envie uma URL pública do arquivo emexample.header_handle — a Superlead baixa e entrega à Meta:
A URL precisa ser
https, pública e direta (sem login, sem página intermediária, sem porta nem usuário e senha no endereço), num host com endereço IPv4 e servindo o arquivo sem compressão. São seguidos até 3 redirecionamentos, e o download precisa terminar em 15 segundos. Se o arquivo não puder ser baixado ou não for aceito, a criação retorna 422 media_unsupported com o motivo na mensagem. Já uma URL http:// em header_handle nem chega a ser baixada: retorna 400 invalid_request, com o caminho do campo em details (por exemplo components.0.example.header_handle.0), e não media_unsupported.
Esse arquivo é só o exemplo usado na aprovação. A mídia de cada envio é informada na hora, em
POST /v1/whatsapp/messages.Acompanhar a aprovação
Consulte o estado atual a qualquer momento:
A Meta pode devolver outros valores (
IN_APPEAL, PENDING_DELETION…). Trate os que não conhecer como “não enviável”.
Para ser avisado em vez de consultar, assine o evento whatsapp.template.updated — veja Webhooks.
Editar
PATCH /v1/whatsapp/templates/{id} aceita category e/ou components:
componentssubstitui a lista inteira. Mande o template completo como deve ficar, não só o que mudou. Num template com cabeçalho de mídia, reenvie o cabeçalho com uma URL do arquivo de exemplo — pode ser a própria URL queGET /v1/whatsapp/templates/{id}devolve emexample.header_handle.- Nome e idioma não mudam. São a identidade do template; para outro nome, crie outro template.
- Só
APPROVED,REJECTEDePAUSEDaceitam edição. Em análise, a edição retorna409 template_status_conflict. - Limites da Meta para template aprovado: 1 edição a cada 24 horas e 10 em 30 dias; a categoria de um aprovado não pode mudar. Recusados e pausados não têm limite.
Excluir
- Exclui só o idioma daquele id. Versões do mesmo nome em outros idiomas continuam.
- É bloqueada enquanto houver campanha agendada, em andamento ou pausada usando o template:
409 template_in_use, com até 10 campanhas emdetails. - Template desabilitado pela Meta não pode ser excluído:
409 template_status_conflict.
Erros desta área
Quando a Meta recusa a definição e envia uma explicação, ela vem em
details, com path: "meta":