WhatsApp Campaigns

Getting WhatsApp templates approved the first time: the rules Meta actually applies

Most rejections come from the same five causes. How to pick the category, write variables that pass, and what to do when Meta says no.

Invite teamProduct 8 July 2026 6 min read

Every message you start on the WhatsApp Business API needs a template approved by Meta. Approval usually takes minutes to a few hours, but a rejection can cost you a day. Here is what Meta is actually checking.

Pick the right category

Meta reviews the template against the category you chose, and a mismatch is the most common rejection.

  • Utility — something the customer expects because of something they did: an order confirmation, a delivery update, an appointment reminder. No promotion inside it, at all.
  • Marketing — anything with an offer, a new product, or a "come back". Costs more per conversation, and requires the customer's opt-in.
  • Authentication — one-time passcodes only, with a fixed structure.

A utility template with "and get 10% off your next order" at the end is a marketing template, and Meta will either reject it or recategorise it — which changes what you pay.

Write variables that pass

Variables are written as {{1}}, {{2}} and so on, in order, with no gaps.

  1. Every variable needs a sample value when you submit. "Hi {{1}}" with the sample "Priya" passes; with no sample it does not.
  2. A variable cannot be the whole message, and a message cannot be mostly variables. Meta rejects templates it cannot read.
  3. Do not put a URL in a body variable. Use a URL button, which can carry a variable in the path.

The five causes of rejection

  • Category mismatch, as above.
  • Vague content — "Hello {{1}}, {{2}}" tells the reviewer nothing.
  • Formatting — variables out of order, or a header image the wrong size.
  • Prohibited content — anything on Meta's commerce policy list.
  • A name that looks like spam — "offer_offer_1" invites a closer look than "order_confirmation".

When Meta says no

The rejection comes back with a reason. In Invite it appears on the template itself; edit, resubmit from the same screen, and the new version goes to review. If the reason is "category", change the category rather than the words — that is what the reviewer is telling you.

Before you send

Preview the template against a real contact so a missing first name does not produce "Hi ,". Set a fallback value for every variable. Then send it to yourself first.

TemplatesMeta approvalWhatsApp CampaignsUtility vs Marketing

Share this

In the productSee the module this article is about