Why WhatsApp Templates Get Rejected
And How to Fix It

Every rejection has a specific, fixable reason. This guide covers the category rules, variable syntax, formatting mistakes, and content policies that trip people up — with rejected-vs-approved examples so you can see exactly what to change.

Last updated: July 2026 · 9 min read

Short answer: The most common rejection reason is picking the wrong category — filing a promotional message as Utility. The second most common is formatting: wrong variable syntax, variables at the start of a message, or back-to-back variables without text between them. Most templates are approved automatically within 15 to 30 minutes. You cannot edit a rejected template — you must create a new version and resubmit.

How template approval works

Every message template you create must be reviewed by Meta before it can be used to message customers. The process works like this:

  1. You submit the template — through your BSP dashboard, Meta Business Manager, or (in LigiComms) the Templates page.
  2. Meta's automated system checks it — format, variables, category alignment, policy compliance. This takes seconds.
  3. If flagged, a human reviewer looks at it — this is where subjective calls happen (is the tone promotional? is the purpose clear?).
  4. You get a decision — Approved, Rejected, or (rarely) Action Required.
OutcomeWhat it meansWhat to do
ApprovedTemplate is live and can be sent to customersStart sending
RejectedTemplate failed review — cannot be used or editedCreate a new template with a different name, fix the issue, resubmit
PausedMeta disabled an approved template due to poor user feedbackCheck quality rating, revise content, submit a replacement

Timeline: Most templates clear automated review within 15 to 30 minutes. If a template needs manual review, expect a few hours up to 24 hours. Submitting over a weekend or during high-volume periods (Diwali, Black Friday) can add delay.

Template structure and limits

A WhatsApp template has up to four parts. Only the body is required — the rest are optional.

PartWhat it containsLimit
HeaderText, image, video or document — provides visual context60 characters (text header) or one media file
BodyThe main message text with variables1,024 characters
FooterSecondary text in gray — disclaimers, opt-out instructions60 characters
ButtonsUp to 3 quick-reply buttons or up to 2 call-to-action buttons (URL or phone)Button text: 25 characters each

Template name: lowercase letters, numbers and underscores only. No spaces, no uppercase. Example: order_confirmation_v2, not Order Confirmation V2.

Language: select the locale that matches your template text (e.g. en for English, hi for Hindi). Writing in one language while selecting another triggers rejection.

Category rules — the #1 rejection reason

Getting the category wrong is the single most common reason templates are rejected. Meta checks category intent before content quality — a perfectly written template in the wrong category is rejected instantly.

CategoryUse forThe testCost (India)
MarketingOffers, product launches, re-engagement, newsletters, event invitationsDoes it persuade, promote, remind about an offer, or try to bring someone back?₹0.8631
UtilityOrder confirmations, shipping updates, appointment reminders, account alertsIs it factual, specific, tied to a user action, and contains no persuasion?₹0.1150
AuthenticationOTPs, two-factor codes, password resets — nothing elseDoes it contain a one-time code and an expiry? Is that all it contains?₹0.1150

The grey zone: "Your order is confirmed. Here's 10% off your next purchase!" — this is Marketing, not Utility, because it contains a promotional offer. The order confirmation part is utility, but the discount makes the whole message marketing. When in doubt, choose Marketing — it costs more but it won't get rejected.

Auto-reclassification: Since April 2025, Meta automatically reclassifies templates from Utility to Marketing if the wording appears warm, open-ended or promotional rather than alert-like — even after initial approval. This changes your billing retroactively. Keep utility templates factual and dry.

Variable syntax rules

Variables are the dynamic parts of your template — customer name, order number, appointment time. They follow strict formatting rules.

  • Format: {{1}}, {{2}}, {{3}} — double curly brackets, sequential numbers starting from 1.
  • Sequential: No gaps. {{1}}, {{2}}, {{4}} is rejected — {{3}} is missing.
  • No variable at the start: {{1}}, your order is ready is rejected. Start with fixed text: Hi {{1}}, your order is ready.
  • No variable at the end: ending with a bare variable without punctuation can trigger rejection on some reviewers.
  • No back-to-back variables: {{1}}{{2}} is rejected. Put fixed text between them: {{1}} — order {{2}}.
  • No special characters inside variables: {{#1}} or {{$name}} — rejected. Only {{1}}.
  • Every variable needs a sample value: When you submit, Meta asks for a sample value for each variable (e.g. {{1}} = "Rahul", {{2}} = "ORD-4829"). Without realistic samples, the template is rejected because Meta cannot verify its purpose.

Variable density rule of thumb: your template should have at least three words of fixed text for every one variable. A template that is mostly variables looks like it could be used for any purpose — and Meta rejects ambiguous templates.

All rejection reasons, grouped

Category mismatch

  • Promotional content filed as Utility (most common single rejection reason)
  • Using Authentication for non-OTP messages
  • Vague template whose purpose is unclear to the reviewer
  • Missing a call-to-action that makes the message actionable

Formatting errors

  • Wrong variable syntax — {1} or [name] instead of {{1}}
  • Non-sequential variables — skipping a number
  • Variable at start or end of message
  • Back-to-back variables without fixed text between
  • Missing sample values for variables
  • Exceeding 1,024 characters in the body
  • ALL CAPS or excessive punctuation (!!!)

Content policy violations

  • Requesting sensitive information — full card numbers, passwords, national IDs
  • Threatening or aggressive language
  • Misleading claims — "guaranteed results", "100% free"
  • Promoting restricted products — alcohol, tobacco, weapons, adult content
  • Naming competitors explicitly in your template

Link and URL issues

  • Shortened URLs — bit.ly, tinyurl.com, t.co
  • wa.me links inside templates
  • URLs that don't match your registered business domain
  • Button URL mismatching the declared domain

Button errors

  • Button text exceeding 25 characters
  • More than 3 quick-reply buttons or more than 2 call-to-action buttons
  • Buttons without a specified type (URL, phone, quick reply)

Content quality

  • Spelling and grammar errors
  • Language doesn't match the selected locale
  • Duplicate template — identical content under a different name
  • Low-resolution header image (below 500×500 pixels)
  • Media unrelated to the message content

Rejected vs approved — side by side

Order confirmation (Utility)

{{1}}, your order {{2}} confirmed. Get 10% off your next order with code SAVE10!

Rejected because: starts with a variable, contains promotional offer (10% off = Marketing), and uses an urgency-coded discount code.

Hi {{1}}, your order {{2}} is confirmed and will ship within 2 business days. You'll receive a tracking link once it's dispatched.

Approved because: starts with fixed text, purely informational, no promotional content, clear purpose.

Appointment reminder (Utility)

Reminder: {{1}}

Rejected because: too vague — Meta cannot determine the purpose. One variable holding the entire message could be used for anything.

Reminder: your appointment at {{1}} is scheduled for {{2}} at {{3}}. Reply 1 to confirm or 2 to reschedule.

Approved because: specific purpose, multiple variables with clear roles, includes an actionable response option.

Authentication (OTP)

Your code is {{1}}. Also check out our new summer collection!

Rejected because: mixes authentication with marketing. An OTP template must contain only the code, its expiry, and a "do not share" warning.

Your verification code for {{1}} is {{2}}. It expires in {{3}} minutes. Do not share this code with anyone.

Approved because: purely functional, no promotional content, includes expiry and security warning.

Marketing (re-engagement)

BIG SALE!!! EVERYTHING 50% OFF!!! SHOP NOW OR MISS OUT FOREVER!!! {{1}}

Rejected because: all caps, excessive punctuation, urgency manipulation, variable at the end.

Hi {{1}}, we've restocked the items you were browsing last week. Take a look before they sell out: {{2}}. Reply STOP to opt out.

Approved because: conversational tone, personalised, specific context (items they browsed), clear opt-out, no all-caps or exclamation abuse.

Quality rating — what happens after approval

Getting approved is the first gate. The second is keeping your template healthy once it's live.

Meta assigns a quality rating to your WhatsApp phone number based on how recipients react to your messages — blocks, reports, read rates, reply rates. The rating works on a traffic-light system:

RatingWhat it meansEffect
GreenRecipients are engaging well, low block rateYour messaging limit can increase (250 → 1K → 10K → 100K → unlimited)
YellowSome recipients are blocking or reporting your messagesLimit stays where it is. Warning signal.
RedHigh block or report rateMessaging limit decreases. Sustained Red can get your number restricted.

Quality rating affects your number, not individual templates. But a single aggressive template that gets blocked by many recipients can drag the entire number's rating down.

Template pausing — when Meta disables an approved template

An approved template can be paused by Meta at any time if recipients consistently block or report messages sent with it. This is different from rejection:

  • Rejection happens during review — the template never goes live.
  • Pausing happens after the template has been live and sending. Meta detects poor user signals and pulls it.

A paused template cannot be resumed. You need to create a replacement with revised content — usually softer language, better targeting (send only to opted-in audiences), or a different category. If the same content pattern keeps getting paused, the underlying problem is usually audience quality, not template quality.

Pre-submit checklist

Run through this before hitting Submit. Every item on this list has caused real rejections.

  1. Variables are {{1}}, {{2}}, etc. — sequential, no gaps, no special characters inside.
  2. Template does not start or end with a variable.
  3. No two variables sit next to each other without at least a word between them.
  4. Every variable has a realistic sample value — "Rahul", "ORD-4829", "10:30 AM", not "test" or "xxx".
  5. Category matches the content. If it persuades, it's Marketing. If it informs about a user action, it's Utility. If it's an OTP, it's Authentication.
  6. Selected language matches the actual text.
  7. No shortened URLs — full branded domain only.
  8. No all-caps words (except acronyms like OTP or GST).
  9. No more than one exclamation mark in the entire template.
  10. Body is under 1,024 characters.
  11. Button text is under 25 characters each.
  12. No more than 3 quick-reply or 2 CTA buttons.
  13. Template name is lowercase with underscoresorder_shipped_v2, not Order Shipped V2.
  14. Not a duplicate of an existing or previously rejected template.
  15. Marketing templates include an opt-out instruction — "Reply STOP to unsubscribe" in the body or footer.

Ready-to-use templates (approved patterns)

These follow every rule above. Copy, adjust the details, and submit.

Order shipped (Utility)

Hi {{1}}, your order {{2}} has been shipped and is on its way. Track your delivery here: {{3}}. Expected delivery: {{4}}.

Appointment reminder (Utility)

Hi {{1}}, this is a reminder that your appointment at {{2}} is scheduled for {{3}} at {{4}}. Reply 1 to confirm or 2 to reschedule.

Payment received (Utility)

Hi {{1}}, we've received your payment of {{2}} for invoice {{3}}. Your updated balance is {{4}}. Thank you.

OTP verification (Authentication)

Your verification code for {{1}} is {{2}}. It expires in {{3}} minutes. Do not share this code with anyone.

Back in stock (Marketing)

Hi {{1}}, good news — {{2}} is back in stock. Check it out before it sells out again: {{3}}. Reply STOP to opt out.

Festive offer (Marketing)

Hi {{1}}, this {{2}} we're offering {{3}} on selected items. Browse the collection: {{4}}. Offer valid until {{5}}. Reply STOP to unsubscribe.

Frequently asked questions

Can I edit a rejected template?

No. Once rejected, a template cannot be edited or resubmitted. You must create a new template with a different name, fix the issue that caused the rejection, and submit the new version.

How long does approval take?

Most templates pass automated review in 15 to 30 minutes. If flagged for human review, it can take a few hours up to 24 hours. Weekend and holiday submissions may take longer.

Can I appeal a rejection?

Yes. You can request a review through Meta Business Suite — provide reasoning for why the template should be approved. However, it is usually faster to create a corrected version and resubmit than to wait for an appeal decision.

Why was my Utility template reclassified to Marketing?

Since April 2025, Meta automatically reclassifies Utility templates to Marketing if the wording appears warm, promotional or open-ended. Keep utility templates factual and alert-like — "Your order has shipped" not "Great news! Your order is on its way!" The reclassification changes your billing from ₹0.115 to ₹0.8631 per message.

How many templates can I create?

There is no hard limit on the number of templates per WABA. You can create as many as your business needs — different languages, different use cases, seasonal campaigns. Each template is reviewed independently.

What happens if too many people block my messages?

Your phone number's quality rating drops from Green to Yellow to Red. A Red rating reduces your daily messaging limit. If the problem persists, Meta can restrict your number entirely. The fix is better audience targeting (send only to opted-in contacts) and softer, more relevant content.

Create and manage templates inside LigiComms

Submit templates, track approval, preview on a phone mockup, and send — all from one dashboard.