WhatsApp template approval: rejection reasons and how to fix
The exact review mechanics behind WhatsApp template approval, the most common rejection reasons, and how to fix and resubmit without wasting another cycle.
· 7 min read
What a template actually is, and why it needs approval at all
A WhatsApp message template is a pre-written message format, with fixed text and optional variable placeholders, that a business submits to Meta for review before it can ever be sent. The reason this review exists is straightforward: templates are the mechanism a business uses to message a customer outside an active conversation window, and WhatsApp's whole approach to keeping the platform free of spam depends on that specific capability being pre-screened rather than left open to any text a business feels like sending unreviewed.
Once approved, a template becomes reusable — a coaching institute's admission-confirmation template gets built and approved once, then fired for every new student rather than drafted fresh each time. This reusability is exactly why getting a template approved correctly the first time matters more than it might seem for a one-off message: a template built for recurring use that gets rejected on a technicality wastes not just that one send but every future occasion the business meant to reuse it for.
Submission requires drafting the message text, inserting any variable parameters using the exact format WhatsApp expects, and declaring a category — marketing, utility, or authentication — that the content is checked against. Meta's own documentation describes this content undergoing a combination of automated systems and manual review, and templates found to be spam, scam-like, or in violation of stated policies are rejected during that process rather than approved and revoked later.
The formatting mistakes that cause instant rejection
The single most common category of rejection has nothing to do with what a business is trying to say and everything to do with how the variable parameters are formatted. Meta's documentation is specific about this: parameters must use the correct double-brace format, must appear in strict sequential order (so {{1}}, {{2}}, {{3}} — never {{1}}, {{2}}, {{5}}), and a template can never start or end with a parameter, meaning a dangling variable with no surrounding text is rejected outright. A dealership drafting 'Hi {{1}}, your {{2}} service is booked for {{3}}' is following the pattern correctly; a version that opens with a bare '{{1}},' before any greeting text is not.
A second, less obvious formatting trap is having too many variable parameters relative to the surrounding message length — a short template stuffed with five or six placeholders reads, to the review system, as a pattern associated with abuse, since a legitimate message usually has enough fixed, descriptive text around each variable to give it context. The documented fix is either reducing the number of variables or lengthening the surrounding message text so each placeholder sits inside a clearly worded sentence rather than a string of near-bare tokens.
Special characters inside parameters — a #, a $, a % — are also flagged, as is submitting a template whose body and footer text duplicates an existing approved template word for word. This last one catches businesses that create near-identical templates for testing or for slightly different campaigns without realising the review system checks for exact duplication of the message content itself, not just the template's internal name.
Content and policy rejections — a different, more serious category
Beyond formatting, Meta's review checks the substance of what a template says against its Commerce Policy and Business Policy. Anything describing goods or services for sale — a price, a fee, a required legal disclosure — is treated as a transaction and has to comply with the Commerce Policy's requirements around accuracy and clarity. A home décor business quoting a specific price inside a template needs that price to be genuine and current, not a placeholder or a bait figure meant to be corrected later in conversation.
Requesting sensitive identifiers is a separate, hard rejection trigger: a template cannot ask a customer to share a full payment card number, a full financial account number, or a full national identification number, though asking for a partial identifier — the last four digits of an account, for instance — is explicitly permitted. A lending business drafting a verification template needs to design around this boundary carefully, since the natural instinct to confirm identity with a full number is exactly what the policy exists to prevent.
Abusive or threatening content is its own rejection category, and it catches things a business might not immediately recognise as abusive — a payment-reminder template that threatens legal action or implies public shaming of a defaulting customer falls into this category even if the underlying debt is real. Meta's rejection reason for this class of violation is recorded as abusive content, and it is treated with the same seriousness as scam content, not as a borderline judgment call open to appeal on tone alone.
Character limits, categorisation mismatches, and the authentication category's stricter rules
Character limits apply to the body component of a template and vary depending on the template's format and any special formatting tags used, and the number of emojis permitted in the body is similarly capped rather than unlimited. A business drafting a template heavy with emoji for visual appeal — common in retail and beauty marketing — should expect this to be checked, not assumed to pass because emoji use feels harmless.
Categorisation mismatch is its own distinct rejection reason, recorded specifically as the template's content not matching the category declared at submission. This is different from the deliberate miscategorisation risk covered elsewhere — sometimes a business genuinely believes a message is utility when Meta's review determines it reads as promotional, and the fix is either rewriting the content to be purely transactional or resubmitting under the correct category rather than arguing the original classification.
Authentication templates carry the tightest restrictions of any category: no URLs, no media attachments, no emojis, and a firm character limit on any parameter used inside the message. A business building a one-time-passcode template that includes a clickable link back to its app, thinking it's being helpful, will have that template rejected on format grounds — authentication templates exist purely to deliver a code or a short verification phrase, nothing else, and the restriction is enforced automatically rather than case by case.
What to actually do after a rejection
A rejection notification appears in Meta's Business Support Home, under the specific WhatsApp Business Account's rejected templates section, and the same information is also sent by email — so a business checking only one of these two channels can miss a rejection reason entirely. The notification includes the specific rejection reason, and for duplication rejections specifically, it names the existing template that matches, which is often the fastest way to realise a near-identical template already exists and simply needs updating rather than resubmitting from scratch.
The practical fix depends entirely on the rejection reason: a formatting issue (dangling parameters, non-sequential numbering, disallowed characters) is corrected by editing the template's structure and resubmitting, which triggers a fresh review cycle. A content or policy violation requires rewriting the substance of the message, not just adjusting punctuation — a payment reminder that reads as a legal threat needs a genuinely different tone, not a softened version of the same sentence. If a business genuinely disagrees with a rejection, Meta's process allows an appeal, though an appeal must include a sample and is reviewed as a fresh judgment call, not a guaranteed reversal.
A template that goes on to get approved is not permanently safe from further review either — its status can shift to a lower quality tier if customers respond negatively or read-rates drop, and continued negative signals can lead to the template being paused or disabled even after initial approval. This means template management is an ongoing discipline, not a one-time submission task: a driving school's fees-and-timings template approved months ago can still degrade in status if customers start reporting it or simply stop opening it, and the business needs to notice that shift rather than assume approval was the final checkpoint.
Building templates that pass review the first time
The habits that avoid most rejections are simple to state even if they take discipline to apply consistently: write full sentences around every variable rather than stacking placeholders together, choose the category that honestly matches the message's actual purpose rather than the one with the friendlier opt-in requirements, and never include a price, fee, or claim inside a template that the business isn't prepared to genuinely honour. A salon owner drafting a rebooking reminder that says 'Hi {{1}}, it's time for your {{2}} appointment — reply to confirm your usual {{3}} slot' follows every one of these principles naturally, because the variables sit inside real, contextual sentences and the category (utility, since it's confirming an existing relationship, not selling something new) is honestly chosen.
Submitting a template well ahead of when it's actually needed — days before a campaign's planned launch, not the morning of — absorbs the review time without putting a launch date at risk, since Meta's own review process can take up to a stated window and is not something a business or any platform sitting on top of the API can expedite. A business that treats template drafting as the very last step before a campaign, rather than one of the first, is the one most likely to discover a rejection with no time left to fix and resubmit before the date it actually needed the message to go out.
Common questions
Why was my template rejected even though the wording looked fine?
Most rejections are formatting-related rather than content-related: non-sequential parameter numbering ({{1}}, {{2}}, {{5}} instead of in order), a parameter placed at the very start or end of the message with no surrounding text, or too many variables packed into too short a message. Check the specific rejection reason in Business Support Home or the notification email before assuming it was a content judgment call.
Can I edit a rejected template and resubmit it immediately?
Yes — editing the template to fix the specific issue named in the rejection reason and resubmitting triggers a fresh review cycle. There is no cooldown period stated for resubmission itself, though the review still takes Meta's standard review time to complete, so resubmitting promptly after fixing the identified issue is better than waiting, especially if a campaign's launch date is already approaching and time is limited.
Why can't I add a link to my one-time-passcode template?
Authentication category templates have hard content restrictions that apply regardless of intent: no URLs, no media attachments, no emojis, and a strict character limit on any parameter. These exist because authentication templates are meant purely to deliver a verification code, and the restriction is enforced automatically during review, not judged case by case on how helpful the added content might seem.
Does an approved template stay approved forever once it passes review?
No. An approved template's status can shift to a lower quality tier if it receives negative customer feedback or low read-rates, and continued negative signals can lead to the template being paused or disabled even after initial approval. A template inactive for an extended period can also eventually be archived and later deleted, so periodic review of a template's ongoing status matters, not just its initial approval.