Why WhatsApp Templates Get Rejected — and How to Write Ones That Pass
A practical guide to writing WhatsApp message templates that clear Meta's review the first time: categories, variables, and common rejection traps.
Every team integrating the WhatsApp Business API hits the same wall at some point: a template you were sure was fine comes back rejected, with a reason so vague it barely helps. Since templates are the only way to start a conversation outside the 24-hour customer service window, a rejected template can stall an entire launch. The good news is that most rejections are predictable — and avoidable — once you understand what the review process actually checks.
Pick the right category, honestly
Every template must be classified as Marketing, Utility, or Authentication. This is not just a pricing decision — miscategorization is one of the most common rejection reasons.
- Utility templates relate to an existing transaction or account: order confirmations, shipping updates, appointment reminders.
- Marketing covers everything promotional: offers, product announcements, re-engagement nudges.
- Authentication is strictly for one-time passcodes, with a mandated format.
The trap: teams submit promotional copy as Utility because it's cheaper. Reviewers (and automated recategorization) catch this. A "your order shipped — by the way, check out our sale!" message is Marketing, full stop. Mixing intents in one template usually earns a rejection or a silent recategorization that changes your costs.
Variables are where most templates die
Placeholders like {{1}} and {{2}} are powerful, but the review process is strict about how you use them:
- Don't start or end the template with a variable. Give reviewers surrounding context.
- Don't stack variables back-to-back with no words between them.
- Provide realistic sample values when submitting. "Test" or "abc" as a sample suggests you might inject arbitrary content — which is exactly what the review exists to prevent.
- Keep variables proportional to the text. A template that is mostly placeholders looks like an open relay for spam.
Think of it this way: the reviewer must be able to predict roughly what the final message will say. If your variables could contain anything, approval is unlikely.
Avoid the classic content traps
A few patterns trigger rejections regardless of category:
- Vague or misleading copy — "Hello, we have an update for you, click here" reads like phishing.
- Shortened or bare URLs in the body. Use full links on your own domain, ideally as a button.
- Asking for sensitive data such as full card numbers or passwords.
- Threatening or pressure language, even in payment reminders. "Final notice" framing gets scrutinized; neutral, factual reminders pass.
- Spelling and formatting sloppiness. Broken formatting markers and obvious typos signal low quality and correlate with rejection.
Design for iteration, not perfection
Even careful teams get rejections, so build your workflow around them:
- Submit templates early, well before launch day. Review times vary from minutes to days.
- Name templates descriptively (
order_shipped_v2, nottemplate_final_FINAL) so you can track iterations. - Appeal genuine mistakes. Rejections can be disputed through the Business Manager, and clearly compliant templates often pass on appeal.
- Watch quality after approval. An approved template that users block or report can be paused or disabled later — approval is the beginning of the template's life, not the end.
The takeaway
Template review isn't arbitrary; it's Meta protecting the channel's signal-to-noise ratio, which is precisely what makes WhatsApp messages so effective. Write templates a stranger could read and immediately understand — clear intent, honest category, constrained variables, real sample values — and you'll spend your energy shipping features instead of arguing with a review queue.
Build with Abati Technology
We build software that ships — WhatsApp API, developer tools, POS, and mobile apps. Let's talk about your project.
Get in Touch →