← All guides

WhatsApp Templates

What WhatsApp message templates are, the three approval categories, how to write and submit them, and how to avoid the most common rejection reasons.

Why templates are required

WhatsApp's Business Platform distinguishes between two conversation types. A customer-initiated conversation opens a 24-hour window in which you can reply freely with any message. Outside that window — which covers virtually all outbound campaigns — every message must use a pre-approved template.

Templates are reviewed by Meta to ensure they comply with WhatsApp's Business and Commerce policies: no spam, no misleading content, no prohibited categories. Once approved, a template can be used in any campaign as many times as needed.

The three template categories

Meta assigns every template one of three categories. The category you choose affects how the conversation is billed and, consequently, how many SwiftMsg credits each message costs.

CategoryTypical use casesCredit cost
MarketingPromotions, offers, product launches, newsletters6–9 credits (varies by country)
UtilityOrder confirmations, shipping updates, appointment reminders, invoices3 credits
AuthenticationOne-time passwords, login verification codes3 credits

Meta may re-categorise a template during review if the content does not match the category you submitted. For example, a message that includes a promotional offer will likely be moved to Marketing even if submitted as Utility, which changes the credit cost.

Template structure

A template can contain up to four components:

  • Header (optional) — a single line of text, or media (image, document, video). Text headers can include one variable: {{1}}.
  • Body (required) — the main message text, up to 1,024 characters. Variables are numbered sequentially: {{1}}, {{2}}, {{3}}, etc. Supports bold (*text*), italic (_text_), strikethrough (~text~), and monospace (```text```) formatting.
  • Footer (optional) — a short line of plain text shown in smaller type below the body. Commonly used for “Reply STOP to unsubscribe” opt-out notices or a brand tagline. No variables allowed.
  • Buttons (optional) — up to three buttons of type Call to Action (URL or phone call) or Quick Reply. URL buttons can contain one variable for dynamic links.

Writing a template that gets approved

  • Match content to category. Utility templates must describe a transactional event the recipient already agreed to (an order, a booking, an account action). If you mention a discount, sale, or promotional offer anywhere in the template, choose Marketing.
  • Be specific, not vague. “Click here for more information” without context is frequently rejected. State clearly what action you are asking the recipient to take and why.
  • Provide sample values for every variable. Meta requires a sample value for each {{n}} placeholder so reviewers can evaluate the rendered message. Use realistic examples (e.g. “Chidi” for a name, “ORD-10042” for an order number) rather than placeholders like “VARIABLE_1”.
  • Do not use all-caps excessively. A headline in caps is fine; body text written entirely in caps signals spam and will likely be rejected.
  • Avoid prohibited content. WhatsApp prohibits templates for alcohol, tobacco, gambling, adult content, weapons, and regulated financial products in certain markets. Check the WhatsApp Business Policy before submitting templates in sensitive categories.

Submitting from SwiftMsg

  1. Go to Templates → New Template.
  2. Enter a template name (lowercase letters, numbers, and underscores only — no spaces).
  3. Choose a language and category.
  4. Write your header, body, footer, and buttons. As you type, a preview updates on the right.
  5. Fill in a sample value for every variable you have used.
  6. Click Submit for Approval. SwiftMsg sends the template to the Meta Cloud API and the status changes to Pending.

Most templates are reviewed within a few minutes during business hours. Complex or borderline templates can take up to 24 hours. You will see the status update to Approved or Rejected in the Templates list, and a notification will appear in the dashboard.

Common rejection reasons and fixes

Rejection reasonHow to fix it
Content violates WhatsApp Business PolicyReview the prohibited categories list and remove any policy-violating content.
Category mismatchResubmit with the correct category (usually Marketing when a promo is present).
Missing or insufficient sample valuesAdd realistic sample values for every {{n}} placeholder so reviewers can read the full message.
Variable format incorrectEnsure variables use double curly braces: {{1}}, {{2}}. Single braces or named variables are not supported.
Message too vague or genericRewrite to include specifics: what event triggered the message, what action is requested, and who the sender is.

After editing a rejected template you must resubmit it for review. SwiftMsg keeps the rejected version in the list with a Rejected badge so you can edit and resubmit directly without recreating it.

Next steps