Why WhatsApp templates get rejected — the approval rules, explained
The formatting rules and content policies Meta checks before approving a WhatsApp message template, with examples of what fails and how to fix it.
September 19, 2026 · 3 min read
To message someone who hasn't written to you in the last 24 hours, WhatsApp requires an approved message template — a pre-written message Meta has reviewed. Review is automated and usually takes minutes, but a surprising number of templates bounce on small formatting mistakes. Here's what gets checked and how to pass first time.
The formatting rules (the ones that trip people up)
Variables must be numbered in order
Personalised parts of a template are written as {{1}}, {{2}}, {{3}} — in order, with no gaps and no names.
- ✅
Hi {{1}}, your order {{2}} has shipped. - ❌
Hi {{name}}, your order {{order}} has shipped.— named variables aren't allowed in this format. - ❌
Hi {{1}}, your order {{3}} has shipped.—{{2}}is missing.
Every variable needs a sample value
When you submit, Meta requires an example for each variable (e.g. {{1}} → "Ana", {{2}} → "#4821") so reviewers can read the message as a customer would. Templates without samples are rejected.
Don't start or end with a variable
- ❌
{{1}}, your appointment is confirmed. - ❌
Your code is {{1}} - ✅
Hi {{1}}, your appointment is confirmed. - ✅
Your code is {{1}}. It expires in 10 minutes.
Don't make it mostly variables
A short message with many variables looks like it could send anything, and Meta rejects it. Keep a healthy ratio of fixed words to variables — as a rule of thumb, several words of fixed text per variable.
Length limits
| Part | Limit |
|---|---|
| Template name | lowercase letters, numbers and underscores only, e.g. order_shipped |
| Header (text) | 60 characters, no variables in simple setups |
| Body | 1,024 characters |
| Footer | 60 characters, no variables |
| Buttons | up to 3 quick replies or 2 link buttons; labels up to 25 characters; links must be full https:// URLs |
No duplicates
A template with exactly the same wording as one you already have is rejected. Change the text, not just the name.
The content rules
Formatting is half of it. Meta also checks the message against the WhatsApp Business Messaging Policy and Commerce Policy:
- Nothing prohibited — no gambling, adult content, weapons, drugs, and restricted categories like some financial or health products.
- No threatening or abusive language, and nothing that impersonates someone else.
- No asking for sensitive data — card numbers, passwords, full ID numbers — in a template.
- The category must fit (see below). Meta can and does re-categorise templates, which changes the price.
Choosing the right category
| Category | Use for | Examples |
|---|---|---|
| Utility | Something the customer is expecting about a transaction or account | order confirmation, shipping update, appointment reminder, payment receipt |
| Marketing | Anything promotional, or any message mixing information with promotion | offers, new products, newsletters, "we miss you" |
| Authentication | One-time passcodes only | login or verification codes |
A common mistake is labelling a promotion as utility to pay the lower utility price. Meta's review catches most of these and moves them to marketing — or rejects them. If a message contains any promotional content ("…and here's 10% off your next order"), it's marketing.
Before you submit: a checklist
- Variables are
{{1}},{{2}}… in order, each used once. - There's a sample value for every variable.
- The body doesn't start or end with a variable.
- There's plenty of fixed text around the variables.
- Name is lowercase with underscores; lengths are within limits.
- The wording isn't identical to an existing template.
- The category honestly matches the content.
- Nothing asks for sensitive data or touches a restricted category.
If it's rejected anyway
Meta returns a reason with the rejection (you can also see it in WhatsApp Manager). Fix the issue and submit it as a new template name or edit and resubmit — most rejections are formatting and pass on the second try. If you believe a rejection is wrong, you can request a review from WhatsApp Manager.
How SendFromChat helps
SendFromChat's template builder runs every formatting rule above as you type, before anything reaches Meta — so the only rejections left are genuine content calls. You can also describe the message to your AI assistant ("a shipping update with the customer's name and tracking link"); it drafts the template with correct variables and samples, checks it, submits it, and tells you when Meta approves it.
Do this from your AI assistant
SendFromChat connects Claude, ChatGPT, Cursor or any MCP client to the WhatsApp Business API — templates, bulk sends, inbox, chatbots and sequences, just by asking. 30 days free, no card.
Start freeMore guides
How to set up the WhatsApp Cloud API (2026 step-by-step guide)
Create a Meta app, get a WhatsApp Business Account, send your first message from the free test number, then make it permanent with a system-user token — every step, with the parts Meta's docs skip.
How to send WhatsApp messages from Claude or ChatGPT
Connect Claude or ChatGPT to the WhatsApp Business API with a custom connector, then draft templates, message customers and run broadcasts by just asking.
The WhatsApp 24-hour customer service window, explained
When you can send free-form WhatsApp messages, when you need an approved template, what each costs, and why a "sent" message sometimes never arrives.
WhatsApp Business API pricing in 2026 — what you actually pay
How Meta charges per message (marketing, utility, authentication), what's free, and how platform fees from providers like Twilio, Wati and SendFromChat add on top.