> ## Documentation Index
> Fetch the complete documentation index at: https://documents.xobito.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Template Rejection

> Why Meta rejects WhatsApp templates — and how to fix each reason so it gets approved.

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.

<Note>
  Rejections are **not penalties**. You can edit and resubmit a rejected template as many times as needed, at no cost.
</Note>

## Finding the rejection reason

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

<Steps>
  <Step title="Click the template">
    The details page shows the rejection reason from Meta.
  </Step>

  <Step title="Read the specific reason">
    Meta usually names the policy (e.g. "Incorrect category", "Format mismatch").
  </Step>

  <Step title="Match it to a section below">
    Each common reason is explained here with a fix.
  </Step>
</Steps>

## Common reasons and fixes

### 1. Promotional content without user consent

**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:**

<AccordionGroup>
  <Accordion title="Submit it as Marketing instead">
    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.
  </Accordion>

  <Accordion title="Rewrite with transactional framing">
    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.`
  </Accordion>

  <Accordion title="Remove sales language">
    Words and phrases that often trigger flags: "buy now", "limited time", "special offer", "discount code", "sale ends". These are only acceptable in **Marketing** category.
  </Accordion>
</AccordionGroup>

### 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:**

<Steps>
  <Step title="Count your variables">
    Each `{{n}}` in the body must have a matching sample value.
  </Step>

  <Step title="Provide realistic samples">
    Bad: `test`. Good: For `{{1}}` a customer name "Alex Morgan". For `{{2}}` an order number "#10293".
  </Step>

  <Step title="Don't reuse the same sample">
    Different variables must have different samples.
  </Step>
</Steps>

<Tip>
  Xobito's template editor auto-generates sample values, but you should review and edit them to match your real use case before submitting.
</Tip>

### 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:**

| Category      | Use for                                       | Examples                                                                     |
| ------------- | --------------------------------------------- | ---------------------------------------------------------------------------- |
| **Marketing** | Promotions, offers, announcements             | Flash sales, product launches, event invites, welcome-back offers            |
| **Utility**   | Transactional updates about existing business | Order confirmations, delivery updates, appointment reminders, account alerts |

**Fix:** Resubmit the template in the correct category.

<Warning>
  If you submit a promotional template as **Utility** to save on Meta fees, it **will** be rejected.
</Warning>

### 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:**

<Steps>
  <Step title="Use your own domain">
    Buttons should go to `yourcompany.com`, not a generic shortener like `bit.ly`.
  </Step>

  <Step title="Verify the domain in Meta Business Manager">
    Meta Business Manager → **Business Settings → Brand Safety → Domains → Add Domain**. Verify via DNS or HTML file.
  </Step>

  <Step title="Use dynamic URLs sparingly">
    Dynamic URLs (with a `{{1}}` at the end) must have a valid sample and still point to a verified domain.
  </Step>
</Steps>

### 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](https://www.whatsapp.com/legal/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:

<Check>
  Template name is unique, lowercase, underscore-separated.
</Check>

<Check>
  Category matches content (Marketing for promotions, Utility for transactions).
</Check>

<Check>
  Body has realistic sample values for every `{{n}}` variable.
</Check>

<Check>
  No variable at the very start or end of the body.
</Check>

<Check>
  URL buttons point to a verified business domain.
</Check>

<Check>
  Language code matches the body language.
</Check>

<Check>
  Media header has a sample file uploaded.
</Check>

<Check>
  No prohibited industry content.
</Check>

<Check>
  Spelling and grammar reviewed.
</Check>

## Re-submitting

<Steps>
  <Step title="Open the rejected template" />

  <Step title="Click 'Edit'">
    Make the required changes.
  </Step>

  <Step title="Click 'Submit for approval'">
    The status goes back to **Pending**. Approval is usually within minutes to a few hours.
  </Step>
</Steps>

<Tip>
  You don't have to create a new template — editing and resubmitting a rejected template is fine. Xobito tracks every version.
</Tip>

## When you believe the rejection was wrong

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

<Steps>
  <Step title="Open Meta Business Manager">
    Go to **WhatsApp Manager → Message Templates**.
  </Step>

  <Step title="Appeal the rejection">
    Click the rejected template → **Appeal**. Explain why you believe it complies with policy.
  </Step>

  <Step title="Wait for Meta">
    Appeals typically take 24–48 hours.
  </Step>
</Steps>

## Related

<CardGroup cols={2}>
  <Card title="Create a template" icon="file-pen" href="/templates/create-template">
    The full template creation guide.
  </Card>

  <Card title="Message Delivery" icon="paper-plane" href="/troubleshooting/message-delivery">
    Why messages fail to deliver.
  </Card>
</CardGroup>
