Founding member offer50% off your first 3 months · Only 100 founding spotsOffer ends indhmsClaim founding offer →
All articles WhatsApp API

WhatsApp template rejected: why, and the fix

The reasons Meta rejects a WhatsApp message template, how to read the rejection, and why a wrong category now costs you money instead of a rejection.

Grid of the reasons Meta rejects a WhatsApp message template, grouped into category, formatting, content and duplication problems

A rejected template is almost never a mystery. Meta’s review looks for a short list of specific problems, and once you know the list you can usually spot the cause in your own text before you open the Manager.

One thing has changed since most guides on this were written, and it matters more than any single rejection reason: a wrong category usually does not come back as a rejection any more. It comes back as a higher bill.

The category rule that changed

Templates are marketing, utility or authentication, and Meta validates the category when you create the template — based on what the message actually says, not on what you selected.

Since 9 April 2025, a utility template that Meta judges to be promotional is approved as marketing rather than rejected. Since 16 April 2025, businesses that have already been warned about miscategorisation get that switch immediately, without the day’s notice everyone else gets. The template stays approved and sendable. You simply pay the marketing rate from then on.

Only templates mistaken for authentication are still rejected outright, and that decision lands on the first of the following month.

So the classic mistake — a real appointment reminder with one promotional sentence bolted on, “See you Thursday at 14:00. And don’t forget our summer offer!” — no longer produces an error you would notice. It produces a permanent surcharge on every send, because in most markets marketing is the most expensive category. If you disagree with a reclassification, you can request a category review within 60 days.

The fix is to split it. The reminder is a utility template. The offer is a separate marketing template to people who consented to marketing.

Formatting: the rejections you actually still get

These are judged mechanically, which makes them the easiest to prevent.

Dangling variables. Meta’s rule is explicit: a template cannot start or end with a parameter. {{1}}, your table is booked. and Your code is {{1}} both fail. Put words on both sides.

Variables without context. A body of {{1}} alone, or Hello {{1}}, {{2}}, gives the reviewer nothing to judge. Hello {{1}}, your order {{2}} was shipped on {{3}}. shows what shape of data goes in — to the reviewer, and to you six months later.

Too many parameters for the length. Meta rejects templates whose parameter count is high relative to the amount of fixed text. A three-word message with two variables reads as a blank form.

Non-sequential parameters. {{1}} then {{3}} fails. Number them in order.

Special characters inside parameters. #, $ and % in a parameter are a rejection reason, as are missing or mismatched curly braces.

Missing or implausible samples. Every variable needs a sample at submission. Three variables and two samples fails automatically.

If you prefer readable placeholders, Meta also supports named parameters — {{first_name}}, lowercase with underscores, each name unique within the template.

The failure that is not a rejection at all

The subtler variable problem bites at send time rather than review time. If a variable resolves to an empty string because the contact has no first name, Meta refuses the send, not the template. That looks like a delivery failure and gets debugged in the wrong place for a day.

So decide what an empty field means before it happens. Never substitute the phone number and never the sample value — both have shipped to real customers at other companies, and both look exactly as bad as they sound.

URLs and buttons

Meta wants a URL it can associate with the business behind the account. Your own domain passes; in practice, shorteners, raw IP addresses and domains unrelated to your business are a frequent trigger.

If you need per-contact links — a personalised booking page, a unique voucher — WhatsApp only allows a variable in the URL suffix, so the base has to be a fixed path on your domain with the variable part appended. If that shape does not fit your links, a signed redirect on your own domain does, and it is invisible to the recipient.

Content that is simply not allowed

Meta’s commerce and business messaging policies exclude a set of categories outright — alcohol in some markets, tobacco, weapons, adult content, gambling, certain supplements and medical claims, and anything that promises a financial return.

Two more that catch legitimate businesses. Meta explicitly prohibits requesting sensitive identifiers: full card or account numbers, ID numbers. And it prohibits abusive or threatening content, including threatening a customer with legal action — which quietly rules out the dunning template someone in finance will eventually ask you to build.

There is also a tone rule people underestimate. Templates that create false urgency, imply an account problem that does not exist, or read like phishing get rejected even when the business is legitimate. “Your account will be closed — click here” is a rejection whether or not it is true.

Duplicates

Submitting a template materially identical to an existing one, or resubmitting a rejection with a single word changed, gets rejected as a duplicate. Meta compares content, not names. The exception is authentication templates, which are exempt from the duplicate check.

If a template was rejected, edit that template or appeal it. Do not clone it.

Reading the rejection, and what to do next

The Manager gives you a reason code, and the codes are broad. INVALID_FORMAT covers variables, samples and structure. ABUSIVE_CONTENT is the tone and prohibited-content bucket, and it sounds far more alarming than it usually is. INCORRECT_CATEGORY is the category bucket. SCAM points at urgency and impersonation patterns.

The reason narrows it to a class. The specific fix is still in your wording, and the fastest way to find it is to read your own template as a stranger who did not ask for it.

Then use the right door. Appeal in the WhatsApp Manager if you think the decision is wrong — Meta decides appeals within 24 hours and asks for a sample. Edit and resubmit the same template if it clearly needs changing. Submitting a fresh near-identical template is the one move that reliably makes things worse.

After approval: quality, pausing, pacing

Approval is not the end of the story, and this is the part most rejection guides skip.

Every template carries a quality signal derived from how recipients react — blocks and “report” outweigh everything else. Templates sit at quality pending, then high, medium or low. When quality drops to red, Meta pauses the template: three hours the first time, six the second, and disables it on the third. Newly approved templates to large audiences may also be paced, released gradually while early reactions are measured.

The practical consequence: a template can pass review and still stop working a week later. If sends suddenly dry up, check template status before you check your code.

Before you resubmit

  • Does every sentence belong to the category you chose? Remove the one that does not — otherwise you are choosing to pay the marketing rate.
  • Does every variable have words on both sides, sequential numbering, and no #, $ or % inside it?
  • Is there a plausible sample for every variable, and is the parameter count sensible for the length?
  • What happens if a variable is empty for a real contact? Where is that handled?
  • Does every URL point at your own domain?
  • Are you asking for anything Meta treats as a sensitive identifier, or threatening a consequence?
  • Would this message look legitimate to someone who forgot they opted in?
  • Does an equivalent template already exist under a different name?
  • Does the language code match the body?

What this means for you

Rejections are cheap to prevent and expensive to iterate on, because each round costs a review cycle and, in a launch week, a day. The two changes with the highest return are splitting mixed-purpose templates, which is now a cost decision rather than a rejection risk, and deciding in advance what an empty variable becomes.

Nybero helps with both: the template editor shows the category consequence as you write and flags a template Meta has reclassified, contacts whose field is empty are skipped before the send instead of leaking a sample value or a phone number, and per-contact links are generated through a signed redirect on your own domain so the URL passes review. One house convention worth stealing, though Meta does not require it and in fact expects one name across languages: we put the language in the template name (reminder_24h_de, reminder_24h_en) and always look templates up by ID, because two entries that look alike in a list are how the Spanish variant reaches a German customer.

If sends are failing rather than templates, our piece on the 24-hour window covers the other common cause — and note that from 1 October 2026 utility messages sent inside an open window are billed too, which changes the category maths.

Updated 1 August 2026. Checked against Meta’s template review documentation and template categorization rules, retrieved 1 August 2026. An earlier version stated that a wrong category is usually rejected, that adjacent placeholders are a rejection reason, and that a pending template should be resubmitted as a fresh one; all three were wrong. Meta revises these policies regularly.

FAQ

Frequently asked questions

Why was my WhatsApp template rejected?

Usually formatting, content or duplication: a dangling variable, missing or implausible samples, non-sequential parameters, special characters inside a parameter, prohibited content or a scam-like tone, or a duplicate of a template you already have. A wrong category is the exception — since April 2025 Meta mostly reclassifies rather than rejects those. The reason code in the Manager tells you the class; the specific fix is in the wording.

How long does WhatsApp template approval take?

Most templates are reviewed automatically within minutes, and Meta states a decision can take up to 24 hours. If a template is rejected, appeal it in the WhatsApp Manager — Meta decides appeals within 24 hours — or edit and resubmit that same template. Do not submit a near-identical new one, because duplicates are themselves a rejection reason.

Can I edit a rejected WhatsApp template?

Yes. Rejected templates can be edited and resubmitted, and editing is better than creating a near-duplicate. Change the substance of what was wrong rather than shuffling a word — a resubmission that looks identical gets the same answer. You can also appeal a rejection you believe is wrong.

What is the difference between a marketing and a utility template?

A utility template relates to a specific transaction the customer already has with you — an order, a booking, an account. A marketing template promotes, offers, invites or reactivates. Meta validates the category at creation, and since April 2025 a utility template it judges promotional is normally approved as marketing rather than rejected, which means you pay the higher rate instead of getting an error.

Ready to turn leads into conversations?

Start with your own WhatsApp number. 7-day free trial, cancel anytime.

Get started free

Get in touch

Start free