Skip to main content
When you submit a template to Meta, it’s reviewed automatically and usually by a human. Most rejections have a clear cause and are easy to fix.
Rejections are not penalties. You can edit and resubmit a rejected template as many times as needed, at no cost.

Finding the rejection reason

When a template is rejected, it appears in Templates → All Templates with a red Rejected badge.
1

Click the template

The details page shows the rejection reason from Meta.
2

Read the specific reason

Meta usually names the policy (e.g. “Incorrect category”, “Format mismatch”).
3

Match it to a section below

Each common reason is explained here with a fix.

Common reasons and fixes

Rejection text: “Marketing content — user has not consented to receive messages” or “Unsolicited marketing”. Why it happens: Meta is protective of users receiving unsolicited promotions. Even if your intent is fine, language that reads as a cold sales pitch gets rejected in the Utility category. Fix:
If it’s genuinely promotional, switch the category to Marketing. Marketing templates are allowed by Meta provided you have the user’s consent to message them.
If it’s transactional (e.g. an order update, a reminder), rewrite it to reference the specific transaction:
  • Before: “Get 20% off this week only!”
  • After: Hi {{1}}, your order #{{2}} is ready for pickup at our store.
Words and phrases that often trigger flags: “buy now”, “limited time”, “special offer”, “discount code”, “sale ends”. These are only acceptable in Marketing category.

2. Formatting issues

Rejection text: “Invalid formatting” or “Unsupported formatting”. Why it happens: WhatsApp supports limited formatting — asterisks for bold, underscores for italic, tildes for strikethrough. Other formatting breaks rendering. Fix:
  • Use *bold*, _italic_, ~strikethrough~, and backticks for monospace.
  • Don’t use HTML tags like <b> or <br>.
  • Keep line breaks simple — no tables, no indentation.
  • Emojis are fine but use them sparingly.

3. Broken sample values

Rejection text: “Samples do not match variables” or “Missing sample”. Why it happens: When you submit a template with variables ({{1}}, {{2}}), Meta requires a sample value for each one so they can preview it. Fix:
1

Count your variables

Each {{n}} in the body must have a matching sample value.
2

Provide realistic samples

Bad: test. Good: For {{1}} a customer name “Alex Morgan”. For {{2}} an order number “#10293”.
3

Don't reuse the same sample

Different variables must have different samples.
Xobito’s template editor auto-generates sample values, but you should review and edit them to match your real use case before submitting.

4. Category mismatch

Rejection text: “Category mismatch — template does not match declared category”. Why it happens: Xobito supports two categories (Marketing, Utility) with specific rules. Submitting under the wrong category is the single most common rejection. Category quick guide:
CategoryUse forExamples
MarketingPromotions, offers, announcementsFlash sales, product launches, event invites, welcome-back offers
UtilityTransactional updates about existing businessOrder confirmations, delivery updates, appointment reminders, account alerts
Fix: Resubmit the template in the correct category.
If you submit a promotional template as Utility to save on Meta fees, it will be rejected.

5. URL domain not whitelisted

Rejection text: “Button URL domain not verified” or “URL mismatch with business domain”. Why it happens: If your template has a URL button, Meta expects the domain to belong to a verified business. Fix:
1

Use your own domain

Buttons should go to yourcompany.com, not a generic shortener like bit.ly.
2

Verify the domain in Meta Business Manager

Meta Business Manager → Business Settings → Brand Safety → Domains → Add Domain. Verify via DNS or HTML file.
3

Use dynamic URLs sparingly

Dynamic URLs (with a {{1}} at the end) must have a valid sample and still point to a verified domain.

6. Prohibited content

Rejection text: “Content violates WhatsApp Business Policy” or more specific (“alcohol”, “gambling”, “weapons”). Why it happens: Certain industries are restricted or banned on WhatsApp. Regulated industries:
  • Alcohol (allowed with restrictions in some countries)
  • Tobacco (banned)
  • Firearms / weapons (banned)
  • Gambling (region-specific)
  • Adult content (banned)
  • Cryptocurrency (restricted)
  • Pharmaceuticals (restricted)
  • Dating services (restricted)
Fix: If your content is in a restricted industry, review Meta’s Commerce Policy to see what’s allowed. You may need to rephrase or remove direct references to the product.

7. Variables at start or end of body

Rejection text: “Variable cannot be at the beginning or end of body”. Why it happens: Meta doesn’t allow a template body to start or end with a variable — this makes spammy “fill-in-the-blank” templates harder to create. Fix: Add static text around the variable.
  • Before: {{1}} — your order is shipped.
  • After: Hi {{1}}, your order is shipped!

8. Duplicate template name

Rejection text: “Template name already exists”. Fix: Template names must be unique per WABA. Add a version suffix: order_confirmation_v2.

9. Language mismatch

Rejection text: “Body text does not match declared language”. Why it happens: You declared the template as English but wrote the body in French, or vice-versa. Fix: Make sure the language code you pick in Xobito matches the actual language of the body.

10. Spelling and grammar

Rejection text: “Spelling or grammar issues”. Why it happens: Meta’s review will reject templates with obvious typos — especially in marketing content. Fix: Proofread. Use Grammarly or a colleague for a second set of eyes before submitting.

11. All-caps or excessive punctuation

Rejection text: “Excessive use of caps / punctuation”. Why it happens: LIMITED OFFER!!! reads as spam to Meta’s filters. Fix: Title case with at most one exclamation mark: Limited offer!.

12. Media header missing or broken

Rejection text: “Header media sample invalid”. Why it happens: For templates with an image, video, or PDF header, you must upload a sample during submission. Fix: Re-open the template in Xobito and click Upload sample on the header. Use a real file you’d send, not a placeholder.

Before you submit

Use this checklist to avoid rejections:
Template name is unique, lowercase, underscore-separated.
Category matches content (Marketing for promotions, Utility for transactions).
Body has realistic sample values for every {{n}} variable.
No variable at the very start or end of the body.
URL buttons point to a verified business domain.
Language code matches the body language.
Media header has a sample file uploaded.
No prohibited industry content.
Spelling and grammar reviewed.

Re-submitting

1

Open the rejected template

2

Click 'Edit'

Make the required changes.
3

Click 'Submit for approval'

The status goes back to Pending. Approval is usually within minutes to a few hours.
You don’t have to create a new template — editing and resubmitting a rejected template is fine. Xobito tracks every version.

When you believe the rejection was wrong

If you’re certain your template complies and was rejected incorrectly:
1

Open Meta Business Manager

Go to WhatsApp Manager → Message Templates.
2

Appeal the rejection

Click the rejected template → Appeal. Explain why you believe it complies with policy.
3

Wait for Meta

Appeals typically take 24–48 hours.

Create a template

The full template creation guide.

Message Delivery

Why messages fail to deliver.