Free tool
Check a WhatsApp template before Meta does.
Paste your template and see what Meta will reject and what it is likely to question: limits, variables, buttons, and marketing wording filed as utility. It runs in your browser; nothing you type is sent anywhere.
Check your template
Variables look like {{1}} or {{first_name}}. WhatsApp formatting works: *bold*, _italic_, ~strikethrough~.
The check
6 things Meta will reject
Will be rejected
- Name. Template names use only lowercase letters, numbers and underscores, for example order_update. Meta's rule
- Variables. Numbered variables must run in order from {{1}}: found {{3}} where {{2}} should be. Our platform's check
- Variables. Numbered variables must run in order from {{1}}: found {{4}} where {{3}} should be. Our platform's check
- Variables. The body has 3 variables and 1 example value. Meta needs one example for each to review it. Our platform's check
- Variables. The body cannot start with a variable. Put a word or two before it, for example Hi {{1}}. Meta's rule
- Variables. The body cannot end with a variable. Close the sentence with fixed text. Meta's rule
Likely to be questioned
- Header. Meta asks for no formatting characters (* _ ~ `) in a text header. Meta's rule
- Category. The wording contains marketing language ("sale") but the category is utility. Meta re-categorises or rejects miscategorised templates, and utility templates must not promote, upsell or include offers. Consider marketing. Our platform's check
How it reads on a phone
*Big* Diwali sale
Reply STOP to opt out
10:24 am
Rules read from Meta’s documentation on 30/09/2026. The variable and marketing-language checks are the same ones Leapstream runs on every template before it goes to Meta. Meta still reviews each template and has the final word on its category.
The limits Meta publishes.
| Part | Limit |
|---|---|
| Template name | Lowercase letters, numbers and underscores, up to 512 characters |
| Text header | Up to 60 characters, one variable at most, no formatting characters |
| Body | Required, up to 1024 characters, any number of variables with an example for each |
| Footer | Up to 60 characters, no variables |
| Buttons in total | Up to 10; with more than three, two show and the rest sit behind a list |
| Quick reply buttons | Up to 10, labels up to 25 characters |
| Website buttons | Up to 2, links up to 2000 characters, one variable only at the end |
| Call button | One, number up to 20 characters |
| Copy code button | One, code up to 20 characters |
| Authentication | No links, media or emoji; parameters up to 15 characters |
Sources, read 30/09/2026: template components, template review, template categories and WhatsApp formatting.
Why Meta rejects templates.
The common reasons, in Meta’s words where it gives them:
- Variables with missing or mismatched curly braces. The format is {{1}}.
- Variables that contain special characters such as #, $ or %.
- Numbered variables out of order, for example {{1}}, {{2}}, {{5}}, {{4}}.
- Too many variables for the length of the message.
- A body that starts or ends with a variable.
- A request for sensitive identifiers such as full card numbers, account numbers or national ID numbers.
- Threatening content, such as threatening legal action or public shaming.
- A duplicate of a template the business already has.
What no checker can tell you.
Whether Meta agrees with your category, whether your wording breaks its commerce or business policies, and whether the template duplicates one you already have. Those are judgements Meta makes at review, and again later: it re-checks approved templates and can move a utility template to marketing with a day’s notice.
The practical answer is to keep utility templates strictly about the thing the person asked for or needs, and to send anything with an offer as marketing from the start.
Questions about WhatsApp templates
Why was my WhatsApp template rejected?
Meta's most common reasons are variables with mismatched curly braces or special characters, numbered variables out of order, too many variables for the length of the message, a body that starts or ends with a variable, a request for sensitive identifiers such as card or account numbers, threatening content, and a template that duplicates one the business already has. The checker on this page catches the first five.
What is the difference between a utility and a marketing template?
Meta says a utility template must be non-promotional and either specific to or requested by the person, or essential to them, such as an order update or a payment reminder. It must not promote, recommend, upsell, cross-sell, include offers or try to secure a renewal. Anything promotional is marketing, even when it is attached to a transaction, and Meta re-categorises utility templates that promote.
How long does WhatsApp template approval take?
Meta says a review can take up to 24 hours. A rejected template can be appealed with a sample, and Meta says appeals are decided within 24 hours. Fixing the rule that caused the rejection and resubmitting is usually faster than appealing.
What are the character limits for a WhatsApp template?
The body can be up to 1024 characters, a text header up to 60, the footer up to 60, and each button label up to 25. A website button's link can be up to 2000 characters, and a template can have up to 10 buttons in total.
Can a WhatsApp template use bold or italic text?
The body can use WhatsApp's own formatting: asterisks for bold, underscores for italic, tildes for strikethrough and three backticks for monospace. Meta asks for no formatting characters in a text header. The preview on this page renders the body the way WhatsApp does.
Is anything I type here sent to you?
No. The checks run in your browser and nothing you type is sent to us or anyone else. Your draft is kept in this browser's local storage so a refresh does not lose it; clearing the site's data removes it.
Templates are the easy part.
The hard part is sending them without hurting your number. Our platform checks the category before submission, shows the exact cost before every send, and pauses a campaign when failures spike.