Raphael Serafim· Publicado em 10 de setembro de 2026· 10 min de leitura

Templates do WhatsApp: como criar, aprovar e disparar pela API (e por que a janela de 24h manda em tudo)

Fora da janela de 24 horas, só template aprovado sai. Como criar e submeter um template pela API, escolher a categoria certa (marketing, utilidade ou autenticação), evitar as recusas mais comuns e disparar para uma lista.

Ver como Markdown

Fora da janela de 24 horas, texto comum não sai. É a regra que mais confunde quem está integrando a API oficial pela primeira vez: o código está certo, o número existe, e a mensagem simplesmente não chega.

A janela de 24 horas

Quando alguém te manda mensagem, abre-se uma janela de 24 horas. Dentro dela, você responde livremente — texto, imagem, botão, o que for.

Passadas 24 horas sem que a pessoa escreva de novo, a janela fecha. A partir daí, só um template aprovado consegue iniciar a conversa. E, se a pessoa responder ao template, a janela abre de novo.

Duas consequências práticas:

Na API não oficial essa regra não existe, porque ela não passa pela infraestrutura da Meta. Em compensação, o limite ali é o comportamento do número — assunto do artigo sobre não perder o número.

Escolher a categoria certa

Esta é a decisão que mais reprova template, e ela vem antes do texto:

CategoriaPara quêObservação
UtilidadeAcompanha algo que o cliente já iniciou: pedido, agendamento, fatura, entregaMais barata e mais fácil de aprovar
AutenticaçãoCódigos de verificação e loginFormato restrito, sem espaço para marketing
MarketingPromoção, novidade, reengajamento, carrinho abandonadoMais cara e a mais rejeitada

A regra que resolve 90% das recusas: se a mensagem existe porque o cliente fez algo, é utilidade. Se existe porque você quer que ele faça algo, é marketing.

Tentar passar promoção como utilidade não funciona e queima tempo — a Meta reclassifica ou recusa. E reclassificação vale a cobrança da categoria nova, não da que você escolheu.

Criar o template

curl -X POST "https://us.api-wa.me/SUA_KEY/template" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "pedido_enviado",
    "language": "pt_BR",
    "category": "UTILITY",
    "components": [
      {
        "type": "BODY",
        "text": "Oi {{1}}! Seu pedido {{2}} saiu para entrega e chega até {{3}}.",
        "example": { "body_text": [["Ana", "#1042", "sexta-feira"]] }
      },
      {
        "type": "BUTTONS",
        "buttons": [
          { "type": "URL", "text": "Acompanhar", "url": "https://loja.com/p/{{1}}", 
            "example": ["1042"] }
        ]
      }
    ]
  }'

Regras que economizam uma rodada de recusa:

O name é técnico. Minúsculas, números e sublinhado. É por ele que você dispara depois.

O example não é opcional. A Meta avalia o texto com as variáveis preenchidas. Exemplo ruim reprova template bom: {{1}} exemplificado como "xxx" faz o revisor ler uma frase sem sentido.

Variável não começa nem termina frase. "{{1}}, confirme aqui" costuma ser recusado. "Oi {{1}}, confirme aqui" passa. A razão é que a Meta não consegue avaliar o texto se ele começa com um conteúdo desconhecido.

Nada de promessa financeira. "Ganhe R$ 500", "renda garantida" e parentes são recusa quase certa, em qualquer categoria.

Português correto. Erro de digitação reprova. O revisor lê.

Pelo MCP, a mesma criação sai por conversa — create_template é uma das ferramentas expostas, útil quando você está iterando no texto e não quer montar o JSON a cada tentativa.

Acompanhar a aprovação

curl "https://us.api-wa.me/SUA_KEY/templates"

Estados possíveis: PENDING, APPROVED, REJECTED, PAUSED, DISABLED.

PAUSED merece atenção: acontece quando um template aprovado passa a receber muito bloqueio ou denúncia dos destinatários. A Meta pausa sozinha. Ou seja, aprovação não é permanente — ela depende de como as pessoas reagem ao que você manda.

Disparar

curl -X POST "https://us.api-wa.me/SUA_KEY/message/template" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "5566996852025",
    "name": "pedido_enviado",
    "language": "pt_BR",
    "components": [{
      "type": "body",
      "parameters": [
        { "type": "text", "text": "Ana" },
        { "type": "text", "text": "#1042" },
        { "type": "text", "text": "sexta-feira" }
      ]
    }]
  }'

A ordem dos parameters é a ordem de {{1}}, {{2}}, {{3}}. Trocar duas posições não dá erro — só manda a mensagem errada, o que é pior.

Disparar para uma lista

Aqui começa o território do envio em massa, e há três coisas que precisam existir antes:

1. Opt-in real. Template aprovado não é permissão para mandar a quem não pediu. Bloqueio e denúncia derrubam a qualidade do número e pausam o template. Ver opt-in, higienização e opt-out.

2. Ritmo e fila. Disparar 5.000 mensagens num laço for é a forma mais rápida de tomar rate limit e perder metade sem saber quais. Ver fila, rate limit e retry.

3. Medição. Enviado não é entregue, e entregue não é lido. Ver métricas de campanha.

Um envio para lista, no mínimo aceitável:

for (const contato of lista) {
  await fila.add('template', {
    to: contato.numero,
    name: 'pedido_enviado',
    params: [contato.nome, contato.pedido, contato.prazo],
  }, {
    jobId: `pedido_enviado:${contato.pedido}`,   // idempotência
  });
}

Note que nada é enviado aqui — tudo é enfileirado. Quem envia é o worker, no ritmo que ele controla.

O custo

Na API oficial, a Meta cobra por conversa iniciada, e o preço muda por categoria. Marketing custa mais que utilidade; autenticação tem tabela própria. Uma janela aberta comporta várias mensagens sem cobrança nova.

Consequência que quase ninguém aproveita: se o cliente responde ao template, a janela abre, e todo o atendimento seguinte não gera cobrança nova. Template com botão de resposta rápida costuma sair mais barato no total do que uma sequência de templates. Os valores da tabela estão em quanto custa a API oficial.

Conclusão

Template não é burocracia gratuita — é o mecanismo que mantém o WhatsApp utilizável e o seu número saudável. Quem trata a categoria com honestidade, capricha no exemplo e mede o resultado tem template aprovado rápido e mantido aprovado.

Quem tenta passar marketing como utilidade descobre a regra do jeito caro: template pausado, qualidade do número derrubada e campanha parada no meio.

Pronto para automatizar seu WhatsApp?

Crie sua conta gratuita e comece a enviar mensagens pela API em minutos.

Começar grátis

Perguntas frequentes

O que é a janela de 24 horas do WhatsApp?+

É o período em que você pode conversar livremente com alguém depois que essa pessoa te enviou uma mensagem. Dentro da janela, texto normal funciona. Passadas 24 horas sem nova mensagem dela, só um template previamente aprovado pela Meta consegue iniciar o contato.

Qual a diferença entre template de marketing, utilidade e autenticação?+

Utilidade acompanha uma transação que o cliente já iniciou: confirmação de pedido, aviso de entrega, fatura. Autenticação entrega códigos de verificação. Marketing é promoção, novidade e reengajamento. A categoria muda o preço cobrado pela Meta e o rigor da aprovação — marketing é a mais cara e a mais rejeitada.

Quanto tempo leva para aprovar um template?+

Normalmente de alguns minutos a algumas horas. A recusa costuma ser mais rápida que a aprovação. Se o template ficar muito tempo pendente, quase sempre há algo na categoria ou no conteúdo pedindo revisão manual.

Por que meu template foi rejeitado?+

As causas mais comuns são: conteúdo de marketing submetido como utilidade, variável no começo ou no fim do texto sem contexto, texto que promete ganho financeiro, erro de português e placeholder de exemplo faltando. A Meta avalia o texto com as variáveis preenchidas pelo exemplo que você enviou — exemplo ruim reprova template bom.

Preciso de template na API não oficial?+

Não. A exigência de template e a janela de 24 horas são regras da API oficial da Meta. Na API não oficial, via QR Code, não há esse controle — o que traz outra responsabilidade, porque o limite passa a ser o comportamento do número e o risco de bloqueio.

Continue lendo