Skip to main content
Template aprovado pela Meta é um contrato: a Meta aprova uma vez e você envia quantas vezes precisar, sem revisão por mensagem. Em troca, o uso precisa ficar dentro da categoria e do conteúdo aprovados. Se você ainda não sabe o que é um template, comece por O que é um template. Esta página reúne as regras de criação, o que costuma reprovar e como manter o template aprovado.

Antes de começar

  • Uma chave de API com permissão TEMPLATES_WRITE.
  • Conta ativa. Com a conta ainda em ativação, criar e listar templates responde 403 ACCOUNT_NOT_ACTIVATED.

Onde criar

Criar um template pela API

A resposta é 201 Created, com o template e o status atual no provedor (providerStatus). Todos os campos, respostas e erros estão em API: Templates. Para criar a partir da biblioteca da Meta:

As 3 categorias e quando usar cada

UTILITY

Notificação sobre algo que o cliente espera: pedido confirmado, entrega, lembrete de consulta, status de pagamento.

MARKETING

Promoção, oferta, lançamento, reengajamento, recuperação de carrinho. O cliente precisa ter consentido em receber marketing.

AUTHENTICATION

Só códigos de verificação (OTP/2FA), no formato restrito que a Meta define para essa categoria.
A categoria define o preço por mensagem. Valores em Preços. Na dúvida entre UTILITY e MARKETING, escolha MARKETING.
Marketing enviado como UTILITY não passa despercebido. A Meta pode reclassificar o template depois de aprovado. Quando isso acontece, a Arara atualiza a categoria, cria um alerta no dashboard, envia o evento template.category_changed (name, old, new) e os envios seguintes são cobrados na categoria nova.

Variáveis

Cada {{n}} é uma variável posicional, preenchida no envio pelo array templateVariables, na ordem das variáveis:
Regras validadas na criação:
  • O corpo não pode começar nem terminar com variável. Coloque texto antes do primeiro {{ e depois do último }}.
  • Cada variável precisa de um exemplo em samples, que o revisor da Meta vê.
  • A variável que preenche a URL de um botão não pode ter exemplo com espaço.
Boas práticas:
  • Evite variáveis coladas: {{1}} {{2}} em sequência tende a ser reprovado.
  • Use variável só para o que muda (nome, valor, data) e mantenha texto fixo suficiente para o template fazer sentido sozinho.
  • Mande exemplos realistas.
Exemplo ruim: {{1}} {{2}} {{3}} Exemplo bom: Olá {{1}}, seu pedido {{2}} foi confirmado. Previsão de entrega: {{3}}. No envio, a quantidade de valores precisa bater com a do template. Se não bater, a API responde 422 TEMPLATE_VARIABLES_MISMATCH.

Header de mídia

O template pode ter imagem, vídeo ou documento como header (headerType + header com a URL). Formatos e tamanhos aceitos são definidos pela Meta; confira a documentação da Meta antes de subir mídia pesada. No envio, a URL pública da mídia vai como primeiro elemento do array templateVariables, antes das variáveis do corpo:
O campo mediaUrl no envio está descontinuado. Use a primeira posição de templateVariables. Ver Mensagens.

Botões

Limites aplicados na criação: até 10 botões no total, até 2 de link (URL ou SMART_LINK), até 1 PHONE_NUMBER e texto de botão com até 20 caracteres.

Carrossel

De 2 a 10 cards, cada um com mídia e texto e até 2 botões, com os mesmos tipos de botão em todos os cards.

O que a Arara valida antes de submeter

Em POST /v1/templates, a API recusa a criação quando: Além disso, a Arara faz uma moderação de conteúdo em templates MARKETING e UTILITY e recusa textos com discurso de ódio, ameaça, conteúdo sexual explícito e frases típicas de golpe (como “lucro garantido” ou “você foi sorteado”).
A Arara não bloqueia por caixa alta, emoji ou link encurtado. Essas regras são da política de conteúdo da Meta: quem decide é a Meta, e a Arara reflete a decisão no status do template.

O que costuma reprovar

Template de autenticação (código de verificação)

A categoria AUTHENTICATION é a mais restrita do WhatsApp. A Arara monta o template no formato fixo que a Meta exige: corpo padrão com o código e botão Copiar código. Não dá para escrever um corpo próprio nessa categoria.

Quem pode criar

A Meta só libera a criação de templates de autenticação quando a conta cumpre os três requisitos: Número novo ou que ainda está no limite de 250 não consegue criar template de autenticação, mesmo com a empresa verificada. Templates UTILITY e MARKETING continuam funcionando normalmente.

Erro “does not have permission to create message template”

Quando algum requisito não é cumprido, o template de autenticação volta com status FAILED e o motivo:
Não é problema de redação, de plano da Arara nem de coexistência com o app do WhatsApp Business. Reescrever o texto não muda o resultado. O caminho é:
  1. Verificar a empresa na Meta, se ainda não estiver verificada.
  2. Enviar conversas de boa qualidade com templates UTILITY ou MARKETING até o número chegar ao limite de 2.000. A Meta sobe o limite sozinha conforme o uso.
  3. Criar o template de autenticação de novo. A Meta libera a categoria automaticamente quando os requisitos são cumpridos.

Código de verificação em outra categoria

A Meta não aceita código de verificação em template UTILITY ou MARKETING. Esses templates são recusados, em geral com o motivo vazio (rejectionReason: null).

Enviar código enquanto a categoria não é liberada

Use a janela de atendimento: quando o usuário manda uma mensagem para o seu número (por exemplo, por um link “receber meu código”), abre uma janela de 24 horas em que você pode enviar o código como mensagem de texto comum, sem template.

Aprovação e status

Quem aprova é a Meta. Templates da biblioteca já nascem aprovados; os demais levam de minutos a algumas horas, e às vezes mais. Não submeta template crítico na véspera de uma campanha. Acompanhe o status de duas formas:
  • Webhook template.updated, com status e rejectionReason.
  • GET /v1/templates/{id}/status, usando o id (UUID) do template.
Enviar com um nome que não existe na organização é recusado com 409 CONFLICT.

Templates pausados

Mesmo aprovado, um template pode ser pausado pela Meta por baixa qualidade, geralmente por bloqueios e denúncias dos destinatários. Quando um envio falha por template pausado, a Arara marca o template como PAUSED e envia template.updated. A Meta também informa mudanças de qualidade do template, que chegam como template.quality_updated (name, quality). Use o código TEMPLATE_PAUSED para interromper uma campanha. Para voltar a enviar, revise o conteúdo e a base para quem o template foi enviado, e edite o texto ou crie um template novo. Reenviar o mesmo conteúdo tende a ser pausado de novo. Para listar os pausados:

Idiomas

Cada template é criado em um idioma (campo language, padrão pt_BR). O envio escolhe o template pelo nome, sem parâmetro de idioma. Para falar com o mesmo cliente em mais de um idioma, crie um template por idioma, com nomes diferentes: pedido_confirmado (pt_BR) e pedido_confirmado_en (en_US).

Manutenção e limites

  • Listar: GET /v1/templates (paginado, filtros name e status).
  • Desempenho: GET /v1/templates/{id}/analytics.
  • Remover: DELETE /v1/templates/{id}.
  • Nomes: prefira nomes descritivos (confirmacao_pedido, lembrete_pagamento) a template1 ou teste.
  • Quantidade: os planos atuais não limitam a quantidade de templates. Contas no plano Free legado têm teto de 3 templates aprovados (pendentes e reprovados não contam) e, no teto, a criação responde 403 PLAN_LIMIT_REACHED.

Próximos passos

API: Templates

Endpoints completos de CRUD.

Webhooks

Receba mudanças de status em tempo real.

Marketing no WhatsApp

Como usar templates em campanha.