WhatsApp Message Template Approval: Rules, Rejections and Fixes
How Meta reviews templates, category rules, variable formatting, button limits and the exact rewrites that turn rejections into approvals.
Templates are pre-approved messages you can send outside the 24-hour window. Approval is mostly mechanical once you know the rules.
Anatomy of a template
- Header (optional): text, image, video or document.
- Body (required): up to 1,024 characters, variables as
{{1}},{{2}}. - Footer (optional): 60 characters, no variables — great for "Reply STOP to opt out".
- Buttons (optional): up to 3 quick replies, or up to 2 call-to-action buttons (URL / phone).
Choose the category honestly
Utility must reference a specific transaction the user made. Marketing covers anything promotional, including "we miss you" and cross-sells. Authentication is OTP-only and must use the authentication template format. Mis-categorising is the top reason for silent re-categorisation and higher billing.
The eight most common rejection reasons
- Variable at the start or end of the body — Meta rejects
{{1}}, your order shipped. Write "Hi {{1}}, your order shipped". - Two variables back to back —
{{1}} {{2}}is rejected; add words between them. - Sample content missing — always fill sample values for every variable.
- Promotional content in a utility template.
- Broken or shortened URLs — use your own domain, avoid bit.ly.
- Threatening or debt-shaming language in collections messages.
- Requesting sensitive data — card numbers, full account numbers, passwords.
- Generic placeholder text like "Hello {{1}}, {{2}}" with no real message.
Rewrites that get approved
Rejected: "{{1}} 70% OFF SALE!!! Click bit.ly/xyz"
Approved: "Hi {{1}}, our seasonal sale is live until Sunday. Tap below to view the collection." + URL button to your domain.
Rejected (utility): "Your order {{1}} shipped. Also check our new arrivals!"
Approved (utility): "Hi {{1}}, your order {{2}} has shipped and arrives by {{3}}. Track it below." + Track Order button.
Operational tips
- Name templates by purpose and version:
order_shipped_v3. - Create the same template in every language you serve; Meta matches by language code.
- Keep an approved "fallback" utility template for outages.
- If a template is paused for quality, edit the copy rather than resubmitting identical text.
Approvals for utility templates usually land in minutes. Build the library once and campaign speed stops being a bottleneck.
Put this into practice with TIZYY
Official Meta Cloud API, template builder, campaigns, flow automation and a shared team inbox — live in minutes.