Gerenciar Templates
No canal do WhatsApp Oficial, conversas só podem ser iniciadas com um template aprovado pela Meta. Esta página cobre a gestão (criar, listar e acompanhar aprovação); o envio de mensagem a partir de um template aprovado está em Mensagem de Template. As operações usamPOST /api/v1/message/SendCommand com content.type: "TEMPLATES", variando o commandType (CREATE ou LIST). Resposta síncrona: { "packageId": "..." }; resultado via webhook.
Criar template
string
required
Nome do template em
snake_case (minúsculas, dígitos e underscore), conforme as regras da Meta.string
required
Locale da Meta (ex.:
pt_BR, en_US).string
required
Categoria da Meta:
MARKETING, UTILITY ou AUTHENTICATION.string
required
Estrutura dos componentes do template como string JSON (o array de componentes serializado).
A MessageFy repassa o conteúdo de forma opaca à Meta, sem interpretar nem validar — monte-o
seguindo o formato de componentes da WhatsApp Business Platform.
Regras de estrutura (Meta)
Header com mídia: para
format IMAGE, VIDEO ou DOCUMENT, informe a mídia em example.header_handle — URL pública http(s) ou data URI base64. Com data URI, a MessageFy sobe o arquivo para o storage e o substitui pela URL pública antes de enviar à Meta.
Webhook de resposta
template.id — é o templateId usado no envio.
Acompanhar a aprovação (TEMPLATE_STATUS)
A decisão da Meta chega de forma espontânea (pode levar horas ou dias) pelo eventoTEMPLATE_STATUS:
TEMPLATE_STATUS é um evento da conta, não de um número: a mesma WABA pode ter vários
canais. Ele é entregue no canal de feedback do Router e não carrega
correlationId/originPackageId — correlacione pelo templateId. O conjunto de status é
governado pela Meta: compare por igualdade e trate valores desconhecidos como um estado novo,
não como erro.Listar templates
id, whatsAppNumberId, name, language, category, components (string JSON, como devolvida pelo provedor), status, rejectionReason, wabaId, wabaTemplateId, createdAt, updatedAt.
O
LIST devolve todos os templates do business (todos os números da WABA), não apenas os
do número deste canal — o canal do pacote define de qual business vêm as credenciais. Filtre do
seu lado se precisar. Não há filtro por número.templateId no LIST:
Id inexistente não é erro: a resposta vem com
success: true, lista vazia e count: 0.Motivos comuns de rejeição
A Meta rejeita templates por, entre outros: formatação inválida (INVALID_FORMAT), conteúdo que viola as políticas do WhatsApp, categoria incorreta para o conteúdo, variáveis sem exemplo, uso de conteúdo promocional em categoria UTILITY/AUTHENTICATION, links encurtados/suspeitos e nomes de template enganosos. Corrija e crie um novo template (não é possível editar um rejeitado).