
Aug 23, 2026
WhatsApp Template Rejected? 9 Reasons and Their Fixes
Templates are knocked back for one of nine reasons in almost every case, and eight of those can be corrected in under five minutes and resubmitted the same day. Each failure follows below, paired with the template that caused it and a version that gets approved. If you are still finding your way around how templates are built, begin with the template messages guide and return here the first time one is rejected.
1. The category doesn't match the message
Of all the rejections we see, this one tops the list while making the least intuitive sense. Your chosen category is the yardstick Meta applies when it reviews the template. A message that follows from something the customer already did falls under Utility; when you are the one starting the exchange, that is Marketing; Authentication covers codes and nothing beyond them. File a message that reads like an offer under Utility and it gets refused, yet those identical words would pass without trouble as Marketing.
Category: Utility. "Hi {{1}}, your order is on its way. While you wait, take 20% off your next purchase with code SAVE20."
Splitting the message, not rephrasing it, is the way out. The shipping notice stays a Utility template with the discount stripped out completely, while the offer moves to its own separate Marketing template. A single message carrying two jobs is precisely what set off the review. Corrected: "Hi {{1}}, your order {{2}} has shipped and should arrive by {{3}}."
2. Promotional content in a utility template
This sits close to the first failure, though it earns its own entry because what sets it off is harder to spot. Reading as promotional does not require a discount code; urgency alone is enough, and so is any invitation to browse. Once a shipping update closes with a nudge to see what else is new, it has stopped being a notification.
Category: Utility. "Your appointment is confirmed for {{1}}. Don't miss our new seasonal treatments, book now before slots run out!"
Remove the second sentence entirely, since everything past the confirmation is marketing dressed in the confirmation's clothes. Corrected: "Your appointment is confirmed for {{1}}. Reply CANCEL if you need to change it." An instruction to reply still belongs to utility, because it supports the transaction instead of expanding it.
3. A variable at the very start or the very end
When a template begins or ends on a placeholder, the reviewer is left with nothing to assess. At the moment of reading, the message is largely blank, so its meaning cannot be judged. Leading and trailing positions are both at fault here.
"{{1}}, your booking reference is {{2}}"
Surround each end with fixed wording. Corrected: "Hello {{1}}, your booking reference is {{2}}. Keep it to change or cancel your appointment." From the customer's side the content stays exactly the same, except that real text now frames the variables.
4. Unbalanced variables
Placeholders that sit back to back with nothing separating them come across as a single open-ended blank. The same holds for any template where variables outweigh text overall: strip out every placeholder and, should three words be all that survives, there is not enough message present.
"Order {{1}} {{2}} {{3}} thank you"
Attach a label to each placeholder individually. Corrected: "Order {{1}} for {{2}} has been confirmed. Total: {{3}}. Thank you for shopping with us." Every variable now lives inside a sentence that makes its role clear.
5. Missing placeholder examples
The guidelines from Meta state plainly that every parameter needs an example value supplied at creation time. Leave one out and the template is rejected before a single reviewer looks at the wording. Two details catch people out at this point. Example values for positional parameters, meaning {{1}} and {{2}}, have to follow the exact order in which the placeholders appear. Named parameters, meanwhile, require unique names written in lower case from letters and underscores, which makes {{Order_ID}} invalid while {{order_id}} is acceptable.
"Hello {{customer_Name}}, your invoice {{2}} is ready." Examples provided: none.
Choose a single parameter style, remain consistent with it, and fill in every example. Corrected: "Hello {{customer_name}}, your invoice {{invoice_number}} is ready." with Fatima and INV-2291 as the examples. Realistic values also move through review faster than placeholder junk, so never submit xxx or test.
6. A shortened URL
Any link a reviewer cannot resolve is a link they will refuse to approve. A shortener conceals the destination, and concealing the destination is exactly the behaviour of a phishing template, so the whole class draws suspicion no matter what actually sits behind yours.
"Your receipt is ready: bit.ly/3xKp9Qz"
Send from your own domain and place the variable element in the path instead of the host. Corrected: "Your receipt is ready: example.com/receipt/{{1}}". Whatever reputation you have built travels with your own domain; a shortener carries none of it.
7. Policy-restricted content
Certain categories stay restricted no matter how the template is worded. Alcohol, tobacco, gambling, weapons, adult content, and a long tail of regulated goods. What catches legitimate businesses by surprise are health and financial claims: a clinic promising a result, or a lender quoting a guaranteed rate, puts forward an assertion the reviewer has to reject even when it happens to be true.
"Guaranteed hair regrowth in 30 days. Book your consultation now."
Describe the service and leave the outcome out of it. Corrected: "Book a consultation to discuss our hair treatment options. Reply BOOK to see available times." The appointment is what you are actually selling, and an appointment makes no claim.
8. Formatting and stray whitespace
This failure barely makes a sound. Templates get rejected over double spaces, a tab that survived a paste from a spreadsheet, four newlines in a row, emoji standing in as bullet points down the left margin, or SHOUTING IN CAPITALS. Nothing here touches meaning, yet all of it reads as low quality, and most of it arrives carried in from Word or Excel pastes.
"HURRY!!! Your order {{1}} IS READY for pickup!!!"
Type the message again in a plain text editor instead of cleaning up the paste. Corrected: "Your order {{1}} is ready for pickup." Keep to one space between words, one newline between paragraphs, sentence case throughout, and at most a single exclamation mark across the whole template.
9. A duplicate of a template you already have
When template content matches something already on your account, Meta rejects it, and near-identical counts as a match. No rejection confuses people more, because from their side the template looks new: a second version with a comma moved, or the same message submitted again under a different category after the first attempt failed. Go through the template list before resubmitting, checking status alongside name, since a template sitting in REJECTED, PAUSED or DISABLED still occupies its content.
order_ready_v2: "Your order {{1}} is ready for pickup." where order_ready already exists with the identical body.
Either delete the old one and resubmit, or make the new template different in substance rather than in appearance. Where you are versioning because the wording is under internal review, hold on to one template and edit it instead of accumulating near copies. And should the account itself be new, with templates failing for reasons that do not appear on this list, confirm first that the account is fully set up, which is covered in the WhatsApp Business API setup guide.