A rejected template is annoying for about an hour and then becomes genuinely expensive, because it usually happens on the afternoon you planned to send a campaign.
The good news is that rejections cluster. A handful of causes account for nearly all of them, and once you can recognise each one from its rejection reason, fixing it takes minutes rather than a day of guessing.
First, the thing nobody explains
WhatsApp splits templates into categories, and the category is not a label you pick for convenience — it determines both what you are allowed to say and what you pay.
- Utility — relates to something the customer already did. An order, a booking, a payment, an appointment.
- Marketing — anything promotional. Offers, launches, re-engagement, newsletters.
- Authentication — one-time passcodes and login codes. Nothing else.
A very large share of rejections are simply category mismatches. You submitted a utility template that contains an offer, or an authentication template that says anything beyond the code.
Meta also re-categorises templates it thinks you have mislabelled. A "utility" template carrying a discount gets moved to marketing — and then costs roughly 7.5× more per message. That reclassification is not a rejection, so nothing warns you. You find it on the bill.
WhatsApp inbox, campaigns, journeys and deep analytics that turn one-time buyers into loyal customers.
Start free See the demoThe rejection reasons, decoded
"Invalid format"
Structural, not editorial. The usual causes:
- A variable at the very start or very end of the body.
{{1}}, your order has shippedfails.Hi {{1}}, your order has shippedpasses. - Two variables next to each other with nothing between them:
{{1}}{{2}}. - Variable numbering that skips or repeats —
{{1}}then{{3}}. - Trailing whitespace or a stray newline at the end of the body.
The first one catches almost everybody. WhatsApp needs literal text at both ends so the message cannot be turned into something arbitrary by whatever you inject.
"Content violates policy"
Something in the wording is not allowed. In practice this is usually:
- Claims about money — guaranteed returns, assured income, fixed profit
- Anything that reads as a loan offer without the required context
- Health claims — cures, guaranteed results, treatment promises
- Wording that pressures: "last chance", "act now or lose it", manufactured countdowns
- Anything that could read as a threat, including debt-collection language
Rewrite the claim as a fact. "Guaranteed 20% returns" fails. "Our equity fund returned 20% in FY24; past performance does not indicate future results" is a statement you can support.
"Sample content missing or unclear"
You used variables without showing realistic examples. Meta's reviewer cannot judge Hi {{1}}, your {{2}} is {{3}} — it could say anything.
Fill the sample fields with plausible values: {{1}} = Priya, {{2}} = order #4821, {{3}} = out for delivery. Reviewers approve what they can picture.
"Duplicate template"
You have another template that is too similar. Businesses accumulate these — order_update, order_update_2, order_update_new, order_update_final.
Delete the ones you are not using. A tidy template list is approved faster and is easier to reason about when something breaks.
"Category mismatch"
Covered above, and worth checking before you submit anything. Read your own template and ask: does this relate to something this specific customer already did? If not, it is marketing, whatever you were hoping.
The mistakes that are not rejections but cost you anyway
Writing marketing into a utility template
The most expensive habit in WhatsApp messaging. An order confirmation costs ₹0.115. Add "and enjoy 10% off your next order" and the same message becomes marketing at ₹0.8631 — 7.5× more.
Across 30,000 monthly order updates that single line costs about ₹22,400 a month. Worth it if it converts. A quiet disaster if it was added because it seemed harmless.
Send the utility message clean. Run the offer separately, to people likely to act on it.
Authentication templates that say anything extra
Authentication templates are for the code. Not a greeting, not your brand story, not a link to your app. Extra content gets them rejected or re-categorised, and authentication has the strictest formatting rules on the platform.
Getting approved and then getting paused
This is the one that catches successful businesses.
An approved template can still be paused later if enough recipients block or report it. WhatsApp tracks quality per template. Too many negative signals and the template is paused; sustained problems drag down the quality rating of the whole number, which cuts your messaging limit.
No rewrite fixes this, because the content was never the problem. The targeting was. You sent to people who did not want it.
The fix is unglamorous: message people who opted in, make it easy to opt out, honour it immediately, and stop sending to contacts who have not engaged in months. A list of 5,000 people who want to hear from you outperforms 50,000 who do not, and it does not put your number at risk.
How the review actually works
Most templates are checked automatically and come back within minutes. Some get routed to a human, which takes longer — up to about a day.
Two practical consequences.
Do not submit a campaign template an hour before you need it. Build and approve templates ahead of the campaign, not as part of it. Approved templates sit there indefinitely at no cost.
A template pending for days is usually stuck, not slow. Edit something small and resubmit rather than waiting.
Naming templates so you can live with them
Template names are permanent, lowercase, and cannot contain spaces. Businesses tend to name the first few carefully and then descend into chaos.
A convention that survives:
purpose_audience_version — for example order_shipped_retail_v2, payment_reminder_b2b_v1.
Three reasons this matters more than it looks. You will end up with dozens of templates and need to find one quickly. Your automations reference templates by name, so a clear name prevents wiring the wrong one. And when a template is paused for quality reasons, you need to know immediately which flows just broke.
Writing variables that do not break
Variables are where approved templates fail in production rather than in review.
Never let a variable be empty. Hi {{1}} becomes Hi if the contact has no name. Fall back to something sensible — "there", or the business's customer term.
Watch length. A variable holding a 200-character product name will make the message unreadable. Truncate before sending.
Do not put anything sensitive in a variable. Full card numbers, passwords, complete identification numbers. Beyond the obvious risk, it is a policy violation.
Test with the ugliest real data you have. The longest name, the one with punctuation, the one in another script. Templates that look fine with "Priya" and "order #12" break on real catalogues.
When a template is paused
You will get a notification that a template has been paused for quality. Three steps, in order.
Find out what it was sent to. Almost always a segment that did not want it — an old list, a re-engagement send, an audience with no clear opt-in.
Do not immediately create a near-identical replacement. That reads as evasion and risks the number rather than the template.
Fix the audience, then reintroduce the template slowly. Send to your most engaged contacts first and watch the quality signal before widening.
A paused template is a warning about your list. Treated as a content problem, it comes back as a messaging-limit problem.
A checklist before you submit## A checklist before you submit
- Is the category honest?
- Does the body start and end with literal text, not a variable?
- Are the sample values realistic?
- Have you claimed anything you cannot evidence?
- Is there already a near-identical template in your list?
- If this is utility — is it clean of any offer?
Six questions, about ninety seconds, and it will clear most of your rejections before they happen.
Frequently asked questions
How long does template approval take?
Usually minutes. Templates that need human review can take up to 24 hours. If something has been pending far longer than that, it is usually stuck rather than slow — edit and resubmit.
Can I edit a rejected template or must I create a new one?
You can edit and resubmit. Editing the rejected one keeps your template list clean; creating near-duplicates of a rejected template is itself a reason for further rejection.
Why did an approved template stop working?
Approved templates can be paused or disabled later if customers block or report them. That is quality-based, not content-based, and no amount of rewording fixes it — the targeting has to change.
Does a rejected template cost anything?
No. You are only charged for delivered messages. Rejections cost time, not money.
