Crie Templates do WhatsApp Prontos para a Revisão da Meta
Crie templates de Marketing, Utilidade e Autenticação com pré-visualização ao vivo no celular, um exemplo para cada variável e verificações de erros comuns antes de enviar. A Meta revisa cada template; depois de aprovado, envie-o por campanhas, pela caixa de entrada, por fluxos de chatbot ou pela API REST.
✦ Teste grátis de 14 dias · Seu próprio número do WhatsApp Business · A Meta cobra as mensagens diretamente
Todos os Tipos de Template, em 16 Idiomas
Escolha uma categoria (Marketing, Utilidade ou Autenticação) e um tipo: padrão, oferta por tempo limitado (um título de oferta e uma contagem regressiva opcional até o fim da oferta), autenticação (uma mensagem de senha única com botão de copiar código e validade opcional) ou carrossel (2 a 10 cards, cada um com sua imagem ou vídeo, texto opcional de até 160 caracteres e até 2 botões). Adicione um cabeçalho (nenhum, texto, imagem, vídeo, documento ou localização), um corpo de até 1.024 caracteres com variáveis numeradas {{1}} ou nomeadas {{name}} e um rodapé. A Meta mantém o estilo das variáveis depois que o template é criado. Escreva em qualquer um dos 16 idiomas, do inglês, hindi, árabe, português (BR), espanhol e indonésio ao tâmil, bengali e outros.
- Tipos padrão, oferta por tempo limitado, autenticação e carrossel
- Cabeçalhos de texto, imagem, vídeo, documento ou localização
- Pré-visualização ao vivo no celular enquanto você digita
Ajuda Antes e Depois da Revisão da Meta
Comece pela galeria de exemplos ou por um template em branco. O editor pede um valor de exemplo para cada variável, sinaliza um corpo que começa ou termina com variável e avisa quando um template de Marketing não tem uma linha de descadastro como "Responda SAIR para cancelar". Se a Meta rejeitar um template, você vê o motivo explicado em palavras simples e pode corrigir e reenviar. Se a Meta mudar a categoria de um template, um aviso informa você, porque a categoria define o que a Meta cobra. Qualquer pessoa da equipe pode confirmar esse aviso para todos. Se a Meta pausar um template porque clientes o bloquearam ou denunciaram, você pode pedir à Meta para reativá-lo na página do template.
- Galeria de exemplos para Utilidade, Marketing e Autenticação
- Motivos de rejeição explicados, depois reenvie
- Insights da Meta por template: enviados, entregues, lidos e cliques em botões (plano Business)
Até 10 Botões e Tudo o Que Há em Volta
Dê aos clientes uma forma de agir e veja o que eles fizeram.
-
Botões de Resposta e Link
Respostas rápidas, botões de URL com link estático ou dinâmico, botão de número de telefone e botões de chamada de voz ou vídeo do WhatsApp.
-
Botões de Comércio e Cupom
Copiar código para cupons (até 15 caracteres, o limite do WhatsApp) e senhas únicas, botões de catálogo e multiprodutos que abrem seu catálogo de produtos da Meta e solicitação de dados de contato.
-
Botões de Formulário do WhatsApp
Anexe a um botão Flow um Formulário do WhatsApp (Meta Flow) sincronizado da Meta. As respostas voltam como campos estruturados na caixa de entrada, na API e nos webhooks.
-
Verificações Antes de Enviar
Exemplos obrigatórios para cada variável, nenhuma variável no início ou no fim do corpo e aviso de descadastro em templates de Marketing.
-
Métricas por Template
Veja quantas mensagens foram enviadas, entregues e lidas, e quais botões os clientes tocaram, em cada template. Os números da própria Meta para cada template estão no plano Business.
-
Painel Enviar via API
Cada template mostra exatamente quais parâmetros precisa e uma requisição que você pode copiar. O webhook template.status_updated avisa quando a Meta aprova, rejeita ou pausa o template.
Templates de Marketing vs. Utilidade vs. Autenticação
A Meta define o preço por categoria e cobra diretamente na sua própria conta do WhatsApp Business. A StartMessaging nunca cobra por mensagem.
| Comparar | Marketing | Utilidade | Autenticação |
|---|---|---|---|
| Use para | Promoções, ofertas, anúncios, reengajamento | Atualizações sobre algo que o cliente iniciou: pedidos, reservas, pagamentos, alertas de conta | Senhas únicas e códigos de login |
| Cobrado pela Meta na sua WABA | Cada mensagem entregue | Cada mensagem entregue, inclusive dentro de uma janela de 24 horas aberta (desde 1º de outubro de 2026) | Cada mensagem entregue |
| Tipos de template comuns | Padrão, oferta por tempo limitado, carrossel | Padrão | Autenticação (copiar código, validade opcional) |
| Quem escreve o corpo | Você | Você | A Meta (texto fixo do código, aviso de segurança opcional) |
| Linha de descadastro | O editor avisa se estiver faltando | Não verificado | Não verificado |
Verifique se um template está aprovado e depois envie
Os templates são criados no painel e são somente leitura pela API: liste-os com GET /api/v1/templates e envie os aprovados com POST /api/v1/messages.
# 1. Check that the template is approved
curl "https://waba-api.startmessaging.com/api/v1/templates?status=APPROVED&name=order_confirmation&language=en_US" \
-H "Authorization: Bearer sm_live_your_api_key"
# 2. Send it (body: "Hi {{1}}, your order {{2}} is confirmed.")
curl -X POST https://waba-api.startmessaging.com/api/v1/messages \
-H "Authorization: Bearer sm_live_your_api_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042-confirmed" \
-d '{
"to": "+919812345678",
"type": "template",
"template": {
"name": "order_confirmation",
"language": "en_US",
"parameters": [
{ "text": "Asha" },
{ "text": "#1042" }
]
},
"clientReference": "order-1042"
}' const BASE = 'https://waba-api.startmessaging.com/api/v1';
const headers = {
'Authorization': 'Bearer ' + process.env.SM_API_KEY, // sm_live_your_api_key
'Content-Type': 'application/json',
};
// 1. Check that the template is approved (needs the templates:read scope)
const list = await fetch(
`${BASE}/templates?status=APPROVED&name=order_confirmation&language=en_US`,
{ headers },
);
const { data: templates } = await list.json();
if (templates.items.length === 0) throw new Error('order_confirmation is not approved yet');
// 2. Send it (needs the messages:send scope)
const res = await fetch(`${BASE}/messages`, {
method: 'POST',
headers: { ...headers, 'Idempotency-Key': 'order-1042-confirmed' },
body: JSON.stringify({
to: '+919812345678',
type: 'template',
template: {
name: 'order_confirmation',
language: 'en_US',
parameters: [{ text: 'Asha' }, { text: '#1042' }],
},
clientReference: 'order-1042',
}),
});
const { data } = await res.json();
console.log(data.id, data.status); import os, requests
BASE = 'https://waba-api.startmessaging.com/api/v1'
HEADERS = {'Authorization': f"Bearer {os.environ['SM_API_KEY']}"} # sm_live_your_api_key
# 1. Check that the template is approved
templates = requests.get(
f'{BASE}/templates',
headers=HEADERS,
params={'status': 'APPROVED', 'name': 'order_confirmation', 'language': 'en_US'},
).json()['data']
if not templates['items']:
raise RuntimeError('order_confirmation is not approved yet')
# 2. Send it
res = requests.post(
f'{BASE}/messages',
headers={**HEADERS, 'Idempotency-Key': 'order-1042-confirmed'},
json={
'to': '+919812345678',
'type': 'template',
'template': {
'name': 'order_confirmation',
'language': 'en_US',
'parameters': [{'text': 'Asha'}, {'text': '#1042'}],
},
'clientReference': 'order-1042',
},
)
data = res.json()['data']
print(data['id'], data['status']) <?php
$base = 'https://waba-api.startmessaging.com/api/v1';
$auth = 'Authorization: Bearer ' . getenv('SM_API_KEY'); // sm_live_your_api_key
// 1. Check that the template is approved
$ch = curl_init($base . '/templates?status=APPROVED&name=order_confirmation&language=en_US');
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [$auth]]);
$templates = json_decode(curl_exec($ch), true)['data'];
if (count($templates['items']) === 0) {
exit('order_confirmation is not approved yet');
}
// 2. Send it
$body = json_encode([
'to' => '+919812345678',
'type' => 'template',
'template' => [
'name' => 'order_confirmation',
'language' => 'en_US',
'parameters' => [['text' => 'Asha'], ['text' => '#1042']],
],
'clientReference' => 'order-1042',
]);
$ch = curl_init($base . '/messages');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
$auth,
'Content-Type: application/json',
'Idempotency-Key: order-1042-confirmed',
],
CURLOPT_POSTFIELDS => $body,
]);
$data = json_decode(curl_exec($ch), true)['data'];
echo $data['id'] . ' ' . $data['status']; # A carousel template: body "Hi {{1}}, picks for you", each card with text "{{1}}"
# and a link button whose URL ends in a variable. Send every card, in order,
# each with its image or video.
curl -X POST https://waba-api.startmessaging.com/api/v1/messages \
-H "Authorization: Bearer sm_live_your_api_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: festive-picks-919812345678" \
-d '{
"to": "+919812345678",
"type": "template",
"template": {
"name": "festive_picks",
"language": "en",
"parameters": [{ "text": "Asha" }],
"carouselCards": [
{
"headerMediaUrl": "https://cdn.example.com/products/kurta-blue.jpg",
"parameters": [{ "text": "₹1,299" }],
"buttonParameters": [{ "index": 0, "subType": "url", "text": "kurta-blue" }]
},
{
"headerMediaUrl": "https://cdn.example.com/products/kurta-red.jpg",
"parameters": [{ "text": "₹1,499" }],
"buttonParameters": [{ "index": 0, "subType": "url", "text": "kurta-red" }]
}
]
}
}' Templates do WhatsApp — Perguntas Frequentes
Quanto tempo a Meta leva para revisar um template?
A Meta revisa cada template e define o tempo de revisão; a StartMessaging não aprova templates. O template fica Pendente até a Meta decidir. Assine o webhook template.status_updated, ou acompanhe a página Templates, para saber assim que ele mudar.
O que acontece se a Meta rejeitar meu template?
A página do template mostra o motivo da Meta, explicado em palavras simples. Corrija o que causou a rejeição e salve para reenviar o template à Meta, ou duplique-o e comece de novo.
Quem paga pelas mensagens de template?
A Meta cobra cada template entregue, conforme a categoria, diretamente na sua própria conta do WhatsApp Business (WABA). Desde 1º de outubro de 2026 isso inclui templates de utilidade enviados dentro de uma janela de 24 horas aberta. Respostas de atendimento em formato livre são gratuitas até uma franquia mensal por número e depois cobradas. A StartMessaging cobra uma assinatura fixa e nunca adiciona taxa por mensagem.
Por que a Meta mudou a categoria do meu template?
A Meta pode mover um template aprovado entre Utilidade e Marketing quando o conteúdo parece promocional, o que muda o custo de cada mensagem. A StartMessaging mostra um aviso na página Templates quando isso acontece ou está agendado, e a API sempre retorna a categoria atual da Meta. Qualquer pessoa da equipe pode confirmar o aviso, o que o oculta para todos até a próxima mudança.
Posso criar templates pela API?
Não. Os templates são criados e enviados no painel, onde exemplos e mídias são verificados antes de chegar à Meta. A API lista templates (GET /api/v1/templates, escopo templates:read) e envia os aprovados com POST /api/v1/messages, incluindo carrosséis e ofertas por tempo limitado: um carrossel recebe template.carouselCards, uma entrada por card na ordem, cada uma com sua imagem ou vídeo em todo envio; uma oferta por tempo limitado com contagem regressiva recebe template.offerExpiresAt, o horário de término da oferta. Templates com cabeçalho de localização ainda não podem ser enviados pela API.
Em quais idiomas posso criar templates?
16: inglês (EUA), inglês (Reino Unido), hindi, árabe, português (BR), espanhol, indonésio, malaio, tâmil, télugo, canarês, malaiala, marati, bengali, guzerate e punjabi. Um nome de template existe uma vez por idioma, então ao enviar pela API você informa o nome e o código exato do idioma juntos.
Posso trocar um template entre variáveis numeradas e nomeadas?
Não no mesmo template. A Meta mantém o estilo das variáveis de um template — numeradas {{1}} ou nomeadas {{first_name}} — depois que ele é criado. Para trocar, duplique o template e escreva a cópia no outro estilo; o original continua funcionando enquanto a Meta revisa a cópia. Se a Meta registrou um template sem as variáveis, ele não pode ser enviado até você corrigi-lo ou duplicá-lo.
O que acontece quando a Meta pausa um template?
A Meta pausa um template quando clientes o bloqueiam ou denunciam. Ele aparece como Pausado, as campanhas que o usam também pausam e continuam sozinhas quando a Meta libera o template, a menos que a qualidade ainda esteja baixa. Você também pode pedir à Meta para reativá-lo na página do template; ele aparece como Aprovado quando a Meta confirma. Um template que a Meta desativa após pausas repetidas não volta.
Crie Seu Primeiro Template do WhatsApp
Conecte sua própria conta do WhatsApp Business, comece por um exemplo e envie-o à Meta durante seu teste grátis de 14 dias.