Once you are through onboarding, templates become the thing that actually slows you down. A campaign waits on a review, the template comes back rejected with a reason that explains nothing, somebody rewords it slightly, and it gets rejected again.
Rejections are not random. They fall into five buckets, and one of them accounts for most of the vague ones. We run a WhatsApp Business API platform, so we see these rejections across a lot of accounts.
Every template is labelled Marketing, Utility or Authentication, and the label has to match what the message actually does.
The trap is Utility. Businesses label a message Utility because it is cheaper and faces less friction, then include a discount code, a line about a sale, or a cheerful nudge to buy again. Any purchase driving language disqualifies it.
Since April 2025 Meta checks the category during review rather than taking your word for it. It may approve your template under a different category than you chose, or reject it outright with the reason INCORRECT_CATEGORY. So check which category your approved template actually ended up in, because that determines what it costs you to send.
Repeated mislabelling can bring restrictions at the account level, affecting every template you have. This is the one worth being scrupulous about.
These cause a lot of rejections and they are easy to get right once you know them:
Your sample values matter too. Each variable's sample has to look like the data it will actually carry. A date variable with a URL in its sample field will fail on a content mismatch, and a name field with "xyz" in it does your approval odds no favours. Use realistic samples.
The most frustrating rejections come from characters nobody can see:
That last one catches people repeatedly. Paste your copy through a plain text editor before it goes anywhere near the template form.
Near identical templates get rejected as duplicates, including versions that are only lightly reworded. If you need variants, make them structurally different, or consolidate them into one template with variables.
For links, use your own domain. Avoid wa.me links and URL shorteners, which are treated with suspicion.
This is the part that surprises businesses, and it is worth understanding before you plan a campaign.
Quality rating has nothing to do with approval. It applies afterwards, and it decides whether an approved template keeps sending. Ratings run green, yellow and red, driven heavily by what recipients do: blocks and reports push you down fast.
If a template drops to the lowest rating it gets paused, and the escalation is specific. First pause is three hours. Second is six hours. The third time, the template is disabled and cannot be sent until it has been fixed and approved again. While it is paused the API rejects your sends, though you are not charged for them.
There is a second mechanism called pacing that applies to new templates and to any template without a green rating. Meta holds some messages back while it gathers early feedback. If that feedback is poor, the held messages are dropped with error 132015 and the template is paused, and a template paused this way has to be unpaused manually.
A template that passes review can still be switched off by your own customers within hours. Approval tests the wording. Your audience tests the relevance.
The approval process itself is covered in getting onto the WhatsApp Business API without wasting a month, which deals with verification, display name and messaging limits.
If you would like help structuring your templates so they pass first time, start the conversation on our contact page.
Book a free 30 minute strategy session with our certified experts.
Book a Session