Back to Insights
Technical Guide
Featured Insight

WhatsApp Template Rejection Reasons + Fixes (2026 India Master List)

"The 23 specific reasons Meta rejects WhatsApp templates from Indian brands across Marketing, Utility, and Authentication categories — plus approval-ready body patterns for each category and the re-submission workflow."

RichAutomate Editorial
Editorial
PublishedApr 25, 2026
Read Time 12 min read

Meta rejects roughly 30–40% of first-time WhatsApp template submissions from Indian D2C, fintech, and EdTech brands in 2026. Each rejection costs 24–48 hours of wait time, blocks campaign launches, and frustrates ops teams who don't know which line of body text triggered the rejection. This guide is the 2026 India master list: 23 specific rejection reasons Meta uses across Marketing, Utility, and Authentication categories, the exact body-text fix for each, and an approval-ready template pattern by category.

How Meta Reviews Templates

Every template submission goes through automated quality checks plus (for borderline cases) human review. Meta evaluates: category fit, language consistency, variable usage, formatting, promotional content rules, and safety disclaimers. Approval typically lands in 24 hours; rejection arrives in 1–6 hours with a generic reason like "non-compliant content" that doesn't tell you which specific rule fired.

The 23 Rejection Reasons Master List

Category Mismatch (5 reasons)

  1. Promotional language in Utility template. "Get 20% off your next order" inside a Utility template is auto-rejected. Move to Marketing category.
  2. Order confirmation under Marketing. Submitting a transactional order update as Marketing wastes the (cheaper) Utility category eligibility. Switch to Utility.
  3. OTP body submitted as Utility. OTP must be Authentication category. Anything else gets auto-rejected.
  4. Promotional language in Authentication template. "Welcome to Brand! Your OTP is..." gets rejected because "Welcome" reads as promotional.
  5. Mixed-purpose body. Body that includes both transactional update AND promotional offer is rejected. Split into two templates.

Variable Misuse (4 reasons)

  1. Variables at start or end of body. Templates starting or ending with a variable (e.g., "{{1}}") get rejected. Wrap them in static text.
  2. Consecutive variables. "{{1}} {{2}}" without separating text is rejected. Add a literal word between them.
  3. Variable used as URL. Inserting "{{1}}" as a clickable link in body is rejected. Use a button URL with parameter instead.
  4. Wrong variable count in example. If your body has 3 variables and example provides 2, Meta rejects.

Language and Locale (3 reasons)

  1. Mixed languages without separate templates. English body with Hindi variables in same template is rejected. Submit separate templates per language.
  2. Language code mismatch. Body in Hindi but submitted under en_US locale is rejected.
  3. Unsupported language. Some regional languages have limited support. Hindi (hi_IN), Tamil (ta_IN), Telugu (te_IN), Marathi (mr_IN), Bengali (bn_IN) work; rarer dialects may not.

Formatting and Length (4 reasons)

  1. Body too long. Marketing and Utility body cap is 1024 characters. Authentication body is shorter.
  2. Footer too long. Footer limit is 60 characters.
  3. Excessive formatting. Heavy use of bold, italic, and emoji together is flagged.
  4. All-caps body. Body in ALL CAPS is rejected for shouting.

Compliance and Safety (4 reasons)

  1. Missing OTP expiry. Authentication templates without "valid for X minutes" are rejected.
  2. No do-not-share warning on OTP. For financial OTP, Meta expects "Do not share this code with anyone" or equivalent.
  3. Restricted product references. Mention of gambling, alcohol, tobacco, unlicensed crypto, drugs, or firearms triggers immediate rejection.
  4. Misleading promises. "Guaranteed loan in 24 hours" or "100% return" claims get rejected for misleading content.

Brand and URL (3 reasons)

  1. URL not whitelisted. Body or button URL pointing to a domain Meta has flagged for abuse is rejected.
  2. Suspicious shortener. Bit.ly and similar shorteners trigger rejection for trust reasons. Use a branded short domain.
  3. Brand impersonation. Display name in body that doesn't match WABA display name (e.g., body says "Amazon" but WABA is "ResellerCo") is rejected.

Approval-Ready Patterns by Category

Marketing Template (high-converting pattern)

Body:
Hi {{1}}, our {{2}} sale is live until {{3}}.

Get up to 30% off on bestsellers — limited stock.

Tap below to shop your size.

Footer: Reply STOP to opt out.

Buttons:
- URL button: "Shop Now" → https://yourdomain.com/sale?utm_source=whatsapp
- Quick reply: "STOP"

Utility Template (transactional update)

Body:
Hi {{1}}, your order #{{2}} has been shipped via {{3}}.

Tracking: {{4}}
Expected delivery: {{5}}

Reply HELP if you need assistance.

Buttons:
- URL button: "Track Order" → https://yourdomain.com/track/{{2}}

Authentication Template (OTP)

Body:
{{1}} is your verification code. Do not share this code with anyone.

This code expires in {{2}} minutes.

Buttons:
- OTP button (Copy code): "Copy code"

Re-submission Workflow After Rejection

  1. Read the rejection reason in Meta Business Manager. Generic reasons map to one of the 23 above — identify which.
  2. Fix the specific issue. Don't make multiple unrelated changes — that confuses tracking.
  3. Resubmit. Meta does not impose a cooldown on rejected templates (unlike rejected accounts).
  4. Track approval. Most second submissions clear within 24 hours.

Template Quality After Approval

Approval is not the end. Meta tracks per-template quality based on user response signals (delivered, read, replied, blocked, reported). A high-quality template lifts your overall WABA quality rating; a low-quality one drags it. Audit template performance weekly:

  • Read rate < 50% → review subject relevance.
  • Block rate > 1% → suspend template, audit audience opt-in.
  • Report rate > 0.2% → suspend immediately, contact Meta if surface persists.

Auto-validate templates before submission on RichAutomate.

Built-in template linter catches the 23 rejection patterns before you ever hit Meta. Faster approvals, less ops time wasted.

Try the linter →

#Template Approval#Meta Review#WhatsApp Templates#Indian D2C#Compliance#Authentication Template