WhatsApp API & Developers

WhatsApp Template Rejected? Reasons and Fixes That Work

You built the order-update flow, submitted the template, and it came back REJECTED with one terse line of explanation. Now every message that depends on it is stuck until you work out what Meta objected to.

A WhatsApp template rejected at review is common, and most rejections fall into four buckets: variable formatting, policy content, category mismatch, and duplicates. Each has a recognisable cause and a standard fix, and Meta now returns more detail than it used to if you know where to look.

This guide shows how to read the actual reason, then gives before-and-after rewrites for the cases we see most, plus when to edit, appeal or start over.

Find the real reason first

Don't guess. Meta tells you why, in four places:

  • WhatsApp Manager, on the template itself in the Manage templates panel.
  • Business Support Home, under Account Overview, View my accounts, your business, your WhatsApp Business Account, then Rejected message templates.
  • Email to the account's admins.
  • The message_template_status_update webhook, which carries a reason code and, for format problems, a rejection_info object with a plain-English reason and recommendation.

Here is the shape of that webhook value, using the example Meta publishes:

{
  "event": "REJECTED",
  "message_template_id": 1689556908129835,
  "message_template_name": "abandoned_cart",
  "message_template_language": "en",
  "reason": "INVALID_FORMAT",
  "message_template_category": "MARKETING",
  "rejection_info": {
    "reason": "Your template has parameters placed next to each other (like {{1}}{{2}}) without text or punctuation between them.",
    "recommendation": "Separate parameters with descriptive text and ensure each parameter is clearly contextualized."
  }
}

The reason codes Meta documents map to fixes like this:

reasonWhat it meansWhere to start
INVALID_FORMATA formatting problem, usually variablesRead rejection_info, fix the placeholders
INCORRECT_CATEGORYContent doesn't match the category you choseChange the category or remove the conflicting content
TAG_CONTENT_MISMATCHSame as above, by Meta's definitionAs above
ABUSIVE_CONTENTPolicy violation, often threatening toneRewrite tone and claims
PROMOTIONALListed by Meta as a policy violationCheck the content against WhatsApp's policies
SCAMContent that reads as a scamMake sender, purpose and links unmistakable

If you log these webhooks, you can build a small dashboard of rejections by reason and stop repeating the same mistake across templates.

Formatting rejections and how to rewrite them

Meta's template review page lists the formatting errors that cause most rejections. These are the ones worth memorising, with fixes.

1. The template starts or ends with a variable. Dangling parameters aren't allowed.

Before: {{customer_name}}, your appointment is confirmed for {{slot}}
After:  Hi {{customer_name}}, your appointment is confirmed for {{slot}}. Reply here if you need to change it.

2. Two variables sit next to each other. This is the example in Meta's own webhook. Merge them or put words between them.

Before: Your balance is {{currency}}{{amount}} as of {{date}}.
After:  Your balance as of {{date}} is {{amount}}. Thank you for banking with us.

Pass the currency inside the amount value ("INR 1,250"), or use the currency parameter type at send time.

3. Positional variables skip or reorder. {{1}}, {{2}}, {{5}}, {{4}} fails. Number them in the order they appear, starting at 1, or switch to named variables.

4. Special characters inside the placeholder. Meta calls out #, $ and %. Named variables must be lowercase letters and underscores, so {{order-id}} and {{#order}} both fail where {{order_id}} passes.

5. Too many variables for the length. A body that is mostly placeholders gets rejected for its variable-to-text ratio.

Before: {{1}} {{2}} at {{3}} on {{4}}
After:  Your table for {{1}} at {{2}} is booked for {{3}}. Show this message at the door and we will seat you.

6. Broken braces. {1}}, {{ 1 }} and {{{1}}} are all invalid. Use exactly two braces on each side.

7. Weak or missing samples. Every variable needs an example value at creation, and Meta says samples help reviewers see the real message. Use realistic values ("Priya", "A-48213", "Friday 4 pm"), not "test" or "xxx". Our guide to template variables covers both formats in detail.

Policy rejections

Policy rejections are about what you say, not how you format it. Three come up repeatedly.

Asking for sensitive identifiers. WhatsApp's Business Policy bars requesting full card numbers, bank account numbers, national ID numbers or documents that might contain them. Partial identifiers, like the last four digits, are fine.

Before: To verify your account, reply with your full card number and date of birth.
After:  We noticed a sign-in from a new device. If this was you, no action is needed. If not, secure your account in the app. We will never ask for your card number here.

Threatening or shaming language. Collections templates are the usual culprit. Meta rejects content that threatens legal action or public shaming.

Before: Pay {{amount}} today or we will take legal action and inform your employer.
After:  Invoice {{invoice_id}} for {{amount}} was due on {{due_date}}. You can pay with the link below, or reply here to talk to our accounts team.

Commerce Policy problems. When you sell something, Meta treats the descriptions, prices, fees and disclosures in your messages as transactions that must comply with the WhatsApp Commerce Policy. If the product itself is restricted there, no rewrite will get the template through.

For SCAM rejections, make the message unmistakably yours: name the business, reference something real about the customer's order or account, and link to your own domain.

Category rejections

A category rejection (INCORRECT_CATEGORY) means Meta disagreed with the label you chose. Since April 9, 2025, a utility template Meta reads as marketing is approved as marketing instead of being rejected, so today's category rejections are more often about authentication.

Only authentication templates may carry one-time codes. A utility or marketing template that sends a verification code gets rejected, either at review or, if it was already approved, on the first day of the following month after Meta's recurring check. Authentication templates have their own rules: fixed preset text, an OTP button, no URLs, media or emojis, and parameters of 15 characters or fewer.

Your options are to edit the category and resubmit, create a new template, or request a category review in Business Support Home within 60 days. Our explainer on template categories shows where Meta draws the lines.

Duplicate rejections

If the body and footer wording match an existing template, the new one is rejected as a duplicate. Business Support Home shows the name and language of the template it collided with. Either use that template, or change the wording meaningfully. The duplicate check doesn't apply to authentication templates.

Edit, appeal or start over?

Pick the route that gets you sending soonest.

SituationBest move
Clear formatting errorEdit and resubmit. Rejected templates can be edited without limit
You think the reviewer got it wrongAppeal in WhatsApp Manager with sample values. Meta aims to decide within 24 hours
You disagree with the categoryRequest a category review in Business Support Home within 60 days
An approved template was disabled for low qualityEdit and resubmit, or create a new one with different content
You need it live todaySubmit a reworded copy under a new name, such as order_update_v2

Avoid deleting an approved template to reuse its name: the name is locked for 30 days.

A pre-submission checklist

Run every new template through this before you submit:

  1. No variable at the very start or end of the body.
  2. Every pair of variables has words or punctuation between them.
  3. Positional variables run 1, 2, 3 in order; named ones use lowercase and underscores only.
  4. The body has more fixed text than variables.
  5. Realistic sample values for every variable and media header.
  6. No request for full card, account or ID numbers, or for documents that contain them.
  7. Neutral tone, even for overdue payments.
  8. The category fits the content. Any promotion means marketing, any code means authentication.
  9. The wording is not a copy of an existing template.

Where Tenashi fits

A rejected template hurts most when it blocks follow-ups with customers who already know you: the quote you promised, the payment nudge, the "your order is ready" note to someone who ordered last week.

Tenashi runs on your existing WhatsApp number, linked by QR scan, rather than on Meta's official API, so there are no templates to approve. Your team sends normal messages from one shared inbox covering DMs and groups, with canned replies for the wording you reuse, a CRM under each chat, and flat pricing from $18/mo. The limits are real: no buttons or templates, no green tick, deliberately paced sends, and a cap on messaging people who have never written to you. WhatsApp can still ban numbers that spam. For bulk outreach to new contacts, fix the template and use the official platform.

See every feature · Get started

FAQ

Why was my WhatsApp template rejected with INVALID_FORMAT?

INVALID_FORMAT almost always means a variable problem: a template that starts or ends with a variable, two variables side by side, out-of-order numbering, special characters in the placeholder, or too many variables for the text. Check the rejection_info field in the status webhook, which now includes a reason and a recommended fix.

Can I appeal a rejected WhatsApp template?

Yes. Open the template in WhatsApp Manager, adjust it if needed, add sample values for every variable and media header, and submit the appeal. Appeals must include a sample, and Meta aims to decide within 24 hours. For category disagreements, request a review in Business Support Home within 60 days instead.

How many times can I edit a rejected template?

As many times as you need. Meta limits edits only on approved templates, which can change up to 10 times in 30 days and once per 24 hours. Rejected and paused templates can be edited without limit, and each edit sends the template back through review before it can be used.

Why was my utility template approved as marketing?

Since April 9, 2025, when you submit a template as utility and Meta judges its content to be marketing, it is approved as marketing rather than rejected. Any promotional wording, upsell or offer triggers this. You can request a review within 60 days, or rewrite the content and submit a new utility template.

Why do verification codes in utility templates get rejected?

Meta allows one-time passcodes only in authentication templates, which use fixed preset text and an OTP button such as copy code or one-tap. A utility or marketing template carrying a code is rejected at review or, if already approved, after Meta's recurring category check. Move OTPs to an authentication template.


Most rejections are one edit away from approval. For the conversations a template can't cover, get started with Tenashi. For the bigger picture, see our complete guide to the WhatsApp API and the basics of WhatsApp message templates.