Meta approves message templates based on category, content, and intent. Most rejections happen because of preventable mistakes. Here's how to write templates that pass on the first try.
Pick the right category
Marketing — promotions, offers, new launches, product updates
Utility — order confirmations, shipping updates, account alerts, appointment reminders
Authentication — OTPs, login codes (must contain a code variable)
Wrong category = automatic rejection. If you're sending an order update, do not file it as Marketing.
What Meta blocks
Misleading or click-bait content
Promotional content in Utility / Authentication categories
External links that don't match your registered domain
Non-standard merge variables (e.g. {{1}} {{2}} should be named clearly)
Adult, gambling, or weapons-related content (flat-out banned)
5 templates that always pass
Order confirmation (Utility)
Hi {{name}}, your order #{{order_id}} for ₹{{amount}} is confirmed ✅ ETA: {{date}}. Track here: {{link}}
Cart abandonment (Marketing)
Hey {{name}}, you left {{n_items}} items in your cart 👀 Use code {{code}} for ₹{{discount}} off — valid 24 hrs. {{cart_link}}
OTP (Authentication)
Your {{brand}} verification code is {{code}}. Valid for 5 minutes. Don't share with anyone.
Appointment reminder (Utility)
Hi {{name}}, reminder for your {{appointment}} on {{date}} at {{time}}. Reply YES to confirm or RESCHEDULE to change.
Festive promo (Marketing)
🪔 {{brand}} Diwali sale is LIVE — flat {{discount}}% off + free delivery above ₹{{threshold}}. Code: {{code}} → {{link}}
If you get rejected
Sendvise shows the exact rejection reason. 90% of rejections are fixable in 5 minutes — usually a category change or a small wording tweak. Re-submit and you'll typically get approval the same day.
Was this article helpful?