A WhatsApp template gets rejected when Meta's automated or human review flags it against messaging policy — the most common causes are a wrong category (marketing content submitted as utility), promotional wording inside a utility or authentication template, placeholder variables left unfilled or floating at the start/end, missing sample values, and content Meta treats as prohibited (loans, crypto, gambling, adult, or third-party brand names). Almost every rejection is fixable in minutes once you know which of the twelve triggers below hit you. This India 2026 guide lists each reason with the exact fix and how to resubmit without burning your quality rating.
How WhatsApp template review actually works in 2026
Every template you submit passes through two layers: an automated policy classifier that runs in seconds, then — for borderline or high-risk categories — a human reviewer. Meta approves or rejects within minutes to 24 hours. A rejection does not penalise your number by itself, but repeated policy-violating submissions can drag your template quality rating (Green/Yellow/Red) down, and a Red rating pauses the template. So fixing the root cause matters more than resubmitting fast.
Rejections come with a reason label — usually INVALID_FORMAT, ABUSIVE_CONTENT, SCAM, or INCORRECT_CATEGORY — but the label is vague. Below is what each one really means for an Indian business and how to clear it.
The 12 reasons WhatsApp templates get rejected — and the fix
1. Wrong category (the #1 silent killer)
Since Meta split pricing into Marketing, Utility, and Authentication, category is enforced hard. Submitting an order update as Marketing, or slipping a discount line into a Utility template, triggers INCORRECT_CATEGORY — or worse, silent recategorisation that changes your per-message cost. Fix: match category to intent. Transactional (order, delivery, OTP-adjacent, appointment) = Utility; anything promoting, upselling, or re-engaging = Marketing. See our breakdown of marketing vs utility messages and how it hits your per-template pricing.
2. Promotional wording inside a Utility or Authentication template
Words like "offer", "sale", "discount", "buy now", "limited time", "upgrade", or emojis pushing action inside a Utility template get it flagged. Authentication templates are stricter still — they may contain only the code and a fixed disclaimer. Fix: strip every marketing phrase; keep Utility copy factual ("Your order #{{1}} shipped"). If you need the promo, submit it separately as Marketing.
3. Variables at the start or end, or two variables touching
Meta rejects INVALID_FORMAT when a template begins or ends with a {{1}} variable, or has {{1}} {{2}} back-to-back with no fixed text between. Fix: wrap variables in static words — "Hi {{1}}, your booking on {{2}} is confirmed." Never open or close on a placeholder.
4. Missing or mismatched sample values
You must supply an example for every variable. Empty samples, or samples that don't match the placeholder type (a name where a number is expected), get rejected. Fix: fill realistic samples for all {{n}} — "Aarav", "12 Sep", "₹1,499". This is the single most common avoidable rejection.
5. Placeholder or gibberish content submitted for approval
Templates with "test", "asdf", "lorem ipsum", or a lone variable and nothing else read as low-quality and are rejected. Fix: submit only production-ready copy — Meta reviews the real text, not a draft.
6. Prohibited industry content (loans, crypto, gambling, adult)
Financial products with interest promises, cryptocurrency, real-money gaming, tobacco, weapons, and adult content are restricted or banned under Meta Commerce Policy — even legitimate Indian NBFCs get ABUSIVE_CONTENT/SCAM flags on aggressive loan wording. Fix: remove interest-rate/guaranteed-return claims, avoid "instant loan"/"double your money" phrasing, and keep it informational. Some verticals need Meta's prior written permission.
Get a 1-minute BSP audit on WhatsApp
Drop your WhatsApp number — we line-item your current invoice against Meta India rates in under 60 seconds. India-hosted, DPDP-compliant.
7. Third-party brand names or trademark use
Using another brand's name ("Pay via PhonePe", a competitor's logo, "as seen on Amazon") without authorisation triggers a rejection. Fix: reference only your own brand, or generic terms ("pay via UPI" instead of a specific app name unless you're authorised).
8. URL shorteners and untrusted links
bit.ly, tinyurl, and unknown redirect domains in the body or button read as phishing risk. Fix: use your own verified domain for links; if you must shorten, use a branded domain, not a public shortener.
9. Broken or malformed buttons
Call-to-action buttons with a variable in the URL that isn't declared, quick-reply buttons over the character limit, or a phone-number button with a bad format cause INVALID_FORMAT. Fix: validate each button — URL buttons allow at most one trailing {{1}}, text ≤ 25 chars, and the number in international format.
10. Formatting and length errors
Unbalanced markdown (a lone * or _), body over 1024 characters, header over 60, or newlines Meta can't parse all fail. Fix: keep body concise, balance every bold/italic marker, and preview before submit.
11. Duplicate of an existing template
A template identical or near-identical to one already approved on the WABA is rejected as a duplicate. Fix: reuse the existing template, or change the content meaningfully — a new name alone isn't enough.
12. Language/locale mismatch
Declaring en but writing Hindi, or mixing scripts against the declared locale, gets flagged. Fix: set the language code to match the actual body (e.g. hi for Devanagari, en for English), and submit one template per language.
How to resubmit without hurting your quality rating
Editing and resubmitting an approved template resets it to pending — safe. Resubmitting a rejected one after fixing the root cause is also safe. What hurts you is submitting the same violating content repeatedly: each policy hit chips at your template quality rating, and customer "block/report" signals after delivery matter far more than the review itself. Keep opt-in clean — weak consent shows up later as blocks. See our guide to opt-in evidence for a Meta audit.
If you believe a rejection is a false positive, you can request a review from WhatsApp Manager once per template. Approval odds rise sharply when you've already removed the obvious trigger rather than appealing blind.
Rejection vs account-level block — don't confuse them
A single template rejection is a content problem. If every template suddenly fails or your messages stop delivering, that's an account-level send block — usually an unpaid balance, a Meta Business verification lapse, or a quality-rating pause — and no template edit will fix it. Diagnose the layer before you rewrite copy.
How RichAutomate cuts your rejection rate
RichAutomate's template builder validates category, variable placement, sample values, and button format before you submit to Meta — so the avoidable rejections (reasons 1, 3, 4, 9, 10) get caught locally. You pick the right category from the intent, the builder enforces the format rules, and you see the live cost per category before sending. That's fewer round-trips with Meta review and a cleaner quality rating. Compare the full WhatsApp Business API pricing and, if you're going live, sort the green tick verification in parallel.