WhatsApp Template Rejected? Approval reasons and fixes, UnifiedSend header

WhatsApp Template Rejected? Approval Reasons and Fixes

•

Context: every business-initiated message starts with a review

If you want to message a customer on WhatsApp outside an open customer service window, you need an approved message template. No approval, no send. That makes template review the first gate in almost every campaign, reminder flow and order update.

Meta reviews each new or edited template with a mix of automated checks and human review. Its documentation says a decision can take up to 24 hours. Twilio and Gupshup both note that most templates clear in minutes, while ones that need a human can take up to 48 hours. When a decision lands, Meta shows it in WhatsApp Manager, emails your Meta Business Suite admins, and fires a message_template_status_update webhook.

An approved template shows as “Active, Quality pending” (APPROVED in the API). From there, quality rating takes over, which we covered in our template quality guide. This post is about the step before that: getting through review in the first place, and what to do when you don’t.

UnifiedSend is a WhatsApp Business messaging platform for campaigns, shared inbox, AI replies, storefront, bookings and payments. All of those depend on templates that Meta has said yes to.

Problem: rejections stall launches, and the reason is often vague

A rejected template rarely feels like a big deal on its own. The trouble is timing. It tends to show up the afternoon before a launch, or right after someone edits a live reminder and sends it back into review.

The usual pain looks like this:

  • A promo goes out for review as utility to get the cheaper rate, and comes back rejected with INCORRECT_CATEGORY
  • A template is written as “Reminder: {{1}}” and gets rejected for being too vague, because the variable could hold anything
  • Someone submits variables with no sample values, so the reviewer has nothing to judge
  • A copy tweak changes {{1}}, {{2}}, {{3}} into {{1}}, {{2}}, {{4}}, and the whole template fails on formatting
  • A marketer clones last month’s template under a new name with the same body and footer, and it is rejected as a duplicate
  • A collections message threatens legal action or public shaming, which breaks WhatsApp’s Business Policy
  • The rejection reason sits in Business Support Home or an admin’s inbox, and the person running the campaign never sees it

Rejection codes don’t help much either. Twilio and Gupshup both list TAG_CONTENT_MISMATCH (language or category doesn’t match the content) and INVALID_FORMAT (broken placeholders or elements) as the codes WhatsApp discloses. That tells you which bucket you are in. It doesn’t always tell you which sentence to fix.

Insight: most rejections come from a short, fixable list

Template review looks random from the outside. Read Meta’s documentation next to the BSP help pages from Twilio, Gupshup, Wati and AiSensy, and the same handful of causes keep showing up. Treat them as a pre-submit checklist.

1. Variables and formatting. Meta’s template review page lists the common formatting failures:

  • Missing or mismatched curly braces. Positional variables look like {{1}}
  • Special characters such as #, $ or % inside the variable
  • Numbers out of sequence, for example {{1}}, {{2}}, {{5}}
  • Too many variables for the length of the message
  • A template that starts or ends with a variable

Twilio adds a few more: no variables right next to each other ({{1}}{{2}}), and its table also flags newlines, tabs, more than four consecutive spaces, and more than 10 emojis. Meta notes that body character limits depend on the template’s format and that emoji counts may be capped.

2. Samples for every variable. If a template uses variables, Meta asks for sample values with the submission. Media templates need a sample file too. Use realistic samples. “Order 48213 is on its way” helps a reviewer far more than “test test”.

3. Enough context to judge intent. Twilio’s examples of rejected templates include “Reminder: {{1}}” and “{{1}} was added”. A short template that is mostly a variable looks like a blank cheque. Say what the message is about in plain words, then add the variable.

4. The right category, honestly picked. This is where a lot of rejections come from. Meta’s categorisation rules are blunt:

  • Utility must be non-promotional and either specific to or requested by the user (their order, account or transaction), or essential to them, such as a safety alert
  • Anything mixing utility with promotion is marketing. So is anything too unclear to judge
  • Authentication is the only category allowed for one-time passcodes. It must use Meta’s authentication templates with a copy-code or one-tap button, and URLs, media and emojis are not allowed

If Meta disagrees with the category you picked, the template is rejected with INCORRECT_CATEGORY. You can change the category and resubmit, create a new template, or request a review. Meta’s docs say you can request a category review up to 60 days after creation for approved templates, or 60 days after a utility template is switched to marketing. We explain what each category costs in our message category pricing guide.

5. Policy lines that don’t move. Templates must follow the WhatsApp Commerce Policy and Business Policy. Meta’s own examples of rejections include asking for full card numbers, bank account numbers or national ID numbers (partial values like the last four digits are fine), and threatening or abusive content. BSP guides add a few common slips: shortened URLs, wa.me links in call-to-action buttons, and gambling words like “raffle” or “win a prize”.

6. No near-copies. Meta rejects a template that has the same body and footer wording as one you already have. Authentication templates are exempt from this check. Twilio also notes that WhatsApp blocks reusing a rejected template’s name for 30 days, so plan a naming scheme that allows versions.

7. Approval is not the end of category checks. Since July 2024, Meta has run a recurring check on approved templates. If a utility template looks like marketing, it can be switched to marketing, normally with a day’s notice, and you get a template_category_update webhook. From 16 April 2025, businesses that have been warned for misusing categories get no notice at all. Repeat misuse moves up a ladder: a warning, then a cap on utility volume for at least 7 days, then all utility templates switched to marketing for 7 days (30 for repeat cases), and at worst a 30-day restriction across the whole business portfolio.

What to do when a template is rejected

  1. Read the actual reason. Meta shows it in Business Support Home under your WhatsApp Business Account’s rejected message templates, and sends it by email. Get it to the person who wrote the template, not just the admin inbox.
  2. Fix the cause, not the wording around it. If the reason is category, change the category or strip out the promotion. If it is format, fix the variables. Resubmitting the same text under a new name usually wastes a day.
  3. Appeal only when you are confident. Meta says appeals must include a sample, and decisions come within 24 hours. Use an appeal when the template genuinely fits the rules, not as a second roll of the dice.
  4. Keep a backup template. For launches, get a plain utility or marketing version approved in advance so a late rejection doesn’t stop the whole send.

How this fits into UnifiedSend

The useful habit is to treat templates like shared assets with an owner, a category and a status, not like one-off copy. Inside a WhatsApp workspace such as UnifiedSend, that means:

  • Templates are written and checked before anyone attaches them to a campaign or automation
  • Status changes (approved, rejected, recategorised) reach the people running campaigns and support, not only an admin email
  • Campaigns don’t go live on a template that is still pending
  • Utility and marketing are kept honestly separate, so you are not one warning away from losing utility pricing

Be clear about who decides what.

What sits with your team

  • Writing clear, specific templates with real samples
  • Picking the right category and not sneaking promotion into utility
  • Versioning templates and keeping backups for launches
  • Watching statuses and webhooks, and acting on rejections quickly

What sits with Meta

  • The approval or rejection decision and its timing
  • Category validation and later automatic category updates
  • Appeals, category reviews and enforcement on misuse
  • Policy wording, which Meta can update at any time

UnifiedSend can help you organise, check and track templates. It cannot approve a template on Meta’s behalf, and no platform can promise that a template will pass review.

Outcome: fewer surprises the day before launch

When teams run template review as part of their weekly ops rather than a last-minute form, things calm down quickly.

Templates go in with clean variables and real samples, so they clear review on the first try more often. Utility stays utility, so pricing stays predictable and there is no category warning hanging over the account. Rejections reach the person who can fix them the same day, not three days later. Launches have a backup template ready. And when Meta does say no, the team reads the reason, fixes the real cause and moves on.

Plenty of BSP help pages list the rejection reasons. Fewer show how template review, category rules, quality rating and campaign timing fit into one daily workflow. That is the gap UnifiedSend is built for: campaigns, shared inbox, AI replies, storefront, bookings and payments running on templates your team actually understands.

If you want fewer stalled launches and a cleaner template library, try UnifiedSend and get your next template right the first time.

Leave a Reply

Your email address will not be published. Required fields are marked *