Why your WhatsApp template was rejected, and how to get it approved

Last updated 9 November 2026

By Mumen Tayyem, founder of Jabee

Published 9 November 2026.

Meta rejects a template with a category and no sentence. You get "policy violation" or nothing much, and you are left guessing which of forty rules you broke.

Most of the time it is one of eight things, and six of them are mechanical enough to check before you submit. We built a checker for those: paste a draft, see what trips. It runs in your browser and needs no account.

Here is what it is checking for, and why each one matters.

1. The category, which is most rejections

Meta sorts every template into utility, marketing or authentication. It reads the template to decide, rather than trusting the box you ticked.

An order confirmation is utility. The same message with "and here is 10% off your next one" at the end is marketing. One promotional sentence reclassifies the whole template.

The part that catches people: a reclassified template is refused, not moved into the right category. You get a rejection, not a correction.

If you want to say both things, that is two templates. Send the utility one when the order ships, and the marketing one to people who have opted in to marketing.

2. A variable at the start or the end

{{1}}, your order is ready for collection.

Refused. So is a body that ends on a placeholder. The reviewer is looking at {{1}} with nothing around it and cannot tell whether the message says "Sara, your order is ready" or something that should not be sent at all.

Put your own words at both ends:

Hi {{1}}, your order is ready for collection at our Jumeirah branch.

3. Variables that skip a number

Placeholders run {{1}}, {{2}}, {{3}}, in order, with none missing. If you deleted the middle one while editing and left {{1}} and {{3}}, it is refused. Renumber.

4. Samples that are not samples

Every variable needs a sample value, and the reviewer uses them to picture the real message. test, abc, 123 make that impossible, so they are a quiet way to get refused.

Use the real shape of the data. Sara. 1043. Aramex. Tuesday.

If a template has an image or document header, that needs a sample too.

5. A duplicate

A new template with the same body and footer as one you already have is refused as a duplicate. Renaming it changes nothing, because Meta compares the content.

Either reuse the approved one, or give the new one a genuinely different purpose.

bit.ly, tinyurl, and anything else that hides its destination. The reviewer cannot see where it goes, so it is refused.

Use the full address on your own domain. If you need per-customer tracking, put the identifier in a variable inside your own URL:

Track your order: https://shop.example/track/{{2}}

7. Shouting

Capitals, several exclamation marks, a wall of emoji, "HURRY", "ACT NOW", "LIMITED TIME". These read as spam regardless of what category you chose, and in a utility template they will also trigger reason 1.

Write it the way you would say it to a customer standing in front of you.

8. Language that does not match

The template is in Arabic and you selected English. Refused. One language per template, selected correctly, and a separate template per language.

The one that passes review and then fails

This is the one worth knowing about even if your template was approved, because it is invisible until it bites.

Meta rejects a template parameter that contains a newline, a tab, or more than four consecutive spaces. The template is approved. The send is rejected. Your logs say the message went out, the customer says nothing arrived, and nothing in the error points at whitespace.

So flatten whatever you substitute in before you send it:

function flatten(text) {
  const single = text.replace(/\s+/g, " ").trim();
  return single.length > 500 ? single.slice(0, 499) + "…" : single;
}

That is from our own sending code, and it is there because we learned it the slow way.

How to resubmit

Open the rejected template rather than making a new one. Fix what you think was wrong, add a sample for every variable, and submit again. A new template with the same content comes back as a duplicate.

If you are rejected twice with no idea why, change the category to marketing and see whether it passes. If it does, reason 1 was your problem and the fix is to split the template rather than to leave it as marketing, because marketing messages are delivered under stricter rules and cost more.

You may not need a template at all

A template is only required outside the 24-hour window a customer opens by messaging you. Inside that window you can send whatever you like, with no template and no approval.

If your business answers people who wrote to you first, that is most or all of what you send, and templates never come into it. The difference between the two, and what each costs.

It is also the reason our approvals API asks for no template from you: the number and the template are ours, already approved, and you send through them.

Questions

How long does template review take? Usually minutes, sometimes up to 24 hours. A template stuck in review for days is unusual and worth raising.

Why was my template approved and then rejected later? Meta re-reviews templates, and a quality rating that drops because recipients block or report you can take templates with it. The content did not change; the signal around it did.

Can I edit an approved template? Yes, within limits, and editing sends it back for review. The category cannot be changed after approval on some tiers, so getting it right first time matters.

Does rejection hurt my account? A single rejection does not. A pattern of submitting content that gets refused is a signal, and so is a high block rate once templates are live. The thing that actually damages an account is people blocking you, not reviewers refusing you.

Will a checker guarantee approval? No. Nothing can, because part of the decision is a human judgement about what your business is. A checker catches the mechanical half, which is most of the refusals and all of the avoidable ones.

What if I only reply to people who message me? Then you need no templates. Everything inside the 24-hour window is free-form.