Official API

Template Categories on WhatsApp: The Decision That Defines Price, Approval, and Frequency

By VeyloCRM · · 15 min read

Those starting with the official API treat the template category as a bureaucratic field to fill before submitting for approval. It is the opposite: it is the decision that determines whether the template passes, how much each send costs, how many times it can reach the same person, and whether Meta will keep it standing when volume rises. This text aims to get that decision right from the start — what each category accepts, where the real line between them lies, why the platform reclassifies on its own, and how to organize a company's template library so none of this becomes a surprise mid-campaign.

Why the category exists

In the official WhatsApp API, a company cannot simply write to anyone at any time. Outside the service window — the period opened by a message from the customer themselves — the only way to start a conversation is using a template, a message model submitted beforehand and approved by Meta.

The category is the field that indicates the purpose of that model. It exists because the platform needs to separate three competing things within the same app: the notification the person expects to receive, the offer they might not want, and the access code that needs to arrive within seconds. Treating all three the same way would turn the inbox into advertising, and that is exactly the outcome Meta has spent recent years trying to avoid.

The practical effect is that the category is not a label: it is a rule. It defines the text that will be accepted, the price per send, the frequency with which that content can reach the same person, and what happens when the number’s quality drops. Choosing incorrectly does not generate a polite warning — it causes rejection, silent reclassification, or an unexpected invoice.

The three categories and what each accepts

There are three, and the difference between them is what motivated the message, not the subject or tone.

The real difficulty is not understanding the definitions — it is applying the first and second to cases that seem to live in between. This is where almost every miscategorized template is born.

The line between utility and marketing

The question that resolves practically all cases is: is there a specific, identifiable transaction that already occurred and that this message continues? If yes, it is utility. If the message exists only because the company found a good moment to speak, it is marketing.

Some pairs help to see the line:

There is a common trap: inserting an offer piece inside a legitimate notice. The template notifies the delivery and ends with "and enjoy 10% off your next purchase." That phrase transforms the whole — the message then has a promotional purpose and will be treated as marketing, with marketing price and frequency. If the company wants both, the way is to separate into two templates, not mix into one.

Free reading

Continue reading for free

Fill out once and unlock this and all other blog articles. We charge nothing — we just want to know who we are writing for.

Takes 20 seconds. Prefer to talk directly on WhatsApp?

Authentication is a format, not a subject

Authentication is the most misunderstood category because people treat it as a "security message." In practice, it is a closed format, and that is what it requires:

  • A single-use code and nothing else. The message delivers the code, informs that it expires, and warns not to share it. No institutional greeting, offer, catalog link, or marketing signature is allowed.
  • Copy code button. The format includes a dedicated button that copies the code, instead of the client selecting the text manually.
  • No standalone links in the body. This is the restriction that most often causes authentication templates written like transactional emails to be rejected.
  • Explicit expiration deadline. Expiration is part of the model and not an aesthetic detail.

Those who try to add a second purpose to this format — notifying that the cart is waiting, reminding about a boleto — receive rejection or reclassification. Authentication does not share space.

When Meta reclassifies on its own

This is the point that surprises most beginners: the category sent by the company is not definitive. Meta analyzes the template content and, if it does not match the declared category, changes it itself. The template continues working; what changes is the treatment — and the invoice.

This usually happens in three situations. The first is the notice with an offer stuck at the end, described above. The second is a utility template too generic, like "we have news about your service," which identifies no transaction and therefore does not support the category. The third is disguised reactivation: "we noticed you haven’t used the service for a while" is not a continuation of a transaction, it is a relationship restart.

When reclassification happens, there are two legitimate paths. One is to accept and rewrite: if the intention was indeed to promote, the template belongs to marketing and the discussion ends. The other is to contest, when the company understands the message really stems from a transaction — and then the argument must be in the template text itself, not in an attached explanation. A template that cites the order number, appointment date, or invoice identifier defends its category alone. A vague template cannot be defended.

The operational consequence is direct: it is worth checking the category of active templates from time to time, not just on the approval day. A library built months ago may be operating under a different category without anyone being notified inside the company’s system.

What causes a template to be rejected

Rejection is different from reclassification: here the model does not enter operation. The most common causes are not mysterious.

  • Variable in the wrong place. Templates that start or end with a variable, or have two variables stuck together, often fail. The practical reason is that Meta cannot evaluate what the model will actually say.
  • Example of missing or incoherent variable. Each variable needs a plausible example. Filling with "test" or "xxx" weakens the analysis and causes rejection.
  • Promise the content does not support. Guarantees of results, artificial urgency, health claims, or financial gain claims.
  • Content not belonging to the company. Third-party brand, offer from another organization, forwarding someone else’s campaign.
  • Abusive formatting. Entire text in uppercase, excessive emojis, repeated punctuation.
  • Wrong and obvious category. Promotion sent as authentication is the extreme example, and happens more than it seems when someone copies an old template and only changes the text.

One detail worth knowing: when the template header has an image, the example file is analyzed together. Illegible image, with text occupying almost the entire area or outside the accepted format, is a silent cause of rejection, because the error message usually refers to the parameter and not the image.

What the category changes in cost

The platform’s billing has been revised more than once in recent years, so the only number worth using is the one on the commercial account dashboard on the day. What remains stable is the hierarchy, and that is what matters for planning:

  • Marketing is the most expensive category — it is the one the platform wants to discourage.
  • Utility costs less, and utility messages sent while the conversation with the customer is already open tend to be the cheapest of all, if not free.
  • Authentication has its own price and varies considerably by country.

The strategic reading is this: a relevant part of the cost of a messaging operation is decided when writing the template, not when sending. A company that separates operational notice from the offer pays less for the notice and keeps the offer under control. A company that mixes everything pays marketing price for every order confirmation it sends — every day, forever.

Frequency, pause, and per-person limit

Besides price, the category changes how often that message can appear.

Marketing templates are subject to a cap on how many promotional messages the same person receives in a period, regardless of how many companies send them. This means a marketing message may simply not be delivered to that contact — not due to company error, but because that user’s quota was exhausted. Utility and authentication do not compete for this same space.

There is also a quality pause. When a marketing template accumulates blocks and reports, Meta can pause that specific template for a few hours, then longer, and finally deactivate it. It is important to understand the difference: in this case the number remains healthy and other templates keep working — only that model was stopped. Those unaware interpret the failure as a number block and make the wrong decision, changing the number instead of rewriting the message.

That is why quality monitoring needs to be done per template, not just per number. A single poorly written model can bring down the reputation of an entire operation while the others remain impeccable.

How to build the template library

Companies that operate well on the official API do not have dozens of improvised templates; they have a small, named, and category-organized library. A design that works:

  • Utility core. Confirmation, change, reminder, completion, and billing — each citing the transaction identifier. These run the most and cost the least.
  • Marketing core. Few models, with content variation by variable instead of a new template for each campaign. Each approval takes time, and a bloated library is a library no one reviews.
  • Authentication. One model per purpose, in the closed format, without decoration.
  • Naming convention. Something like util_order_out_for_delivery, mkt_reactivation_90d, auth_login. The name carries the category because it is the only way the team does not choose the wrong model on sending day.
  • Quarterly review. Check current category, quality status, and block rate of each model, and retire those not in use.

One caution that catches many: a template is approved per commercial account, and the same model does not automatically exist on another number in another account. Those operating with more than one number need to ensure each has the models it will use, or the queue will stop when rotation picks a number without that template.

An operation in numbers

A closed example, with sample numbers, shows the magnitude of the decision. A store sends per month:

  • 12,000 order confirmations
  • 12,000 shipping notices with tracking code
  • 4,000 payment reminders
  • 6,000 campaign messages

There are 34,000 sends, of which 28,000 are operational. Suppose, for illustration, a cost of R$ 0.08 per utility message and R$ 0.32 per marketing message.

In the correct scenario, the 28,000 notices are utility and the 6,000 campaigns are marketing: 28,000 × 0.08 = R$ 2,240, plus 6,000 × 0.32 = R$ 1,920, totaling R$ 4,160.

Now the scenario of someone who stuck "enjoy and see the news" at the end of the three operational templates. The 28,000 notices are treated as marketing: 34,000 × 0.32 = R$ 10,880.

The difference is R$ 6,720 per month, or R$ 80,640 per year, caused by a five-word phrase repeated in three models. And cost is not the worst effect: operational notices start competing for that user’s promotional message cap, meaning the order confirmation may stop being delivered because the marketing quota ran out.

Five category mistakes

  • Sticking an offer at the end of a notice. Changes the category of the whole, increases sending cost, and makes operational communication compete with advertising.
  • Writing utility without identifying the transaction. Without order number, date, or identifier, the template does not support the category and will be reclassified.
  • Treating reclassification as a system error. It is an analysis decision. The way is to rewrite or contest with the template text itself, not resend the same.
  • Confusing paused template with blocked number. Leads to changing numbers when the problem was a specific model, and repeating the same mistake on the new number.
  • Approving a template in one account and assuming it applies to all numbers. Approval is per commercial account; rotation runs into this mid-send.

Numbers to monitor

Five indicators keep this part of the operation under control. The distribution of sends by category, which immediately reveals if operational notices are being charged as campaigns. The template approval rate on first submission, which measures writing quality and avoids losing days waiting for analysis. The number of reclassifications per quarter, which shows if the company is understanding the rules or stumbling over them. The quality status per template, monitored individually, which anticipates pause and deactivation while there is still time to rewrite. And the average cost per conversation started, broken down by category, which translates all the above decisions into money and shows, month by month, if the library is well designed.

Frequently Asked Questions

What is the difference between a utility template and a marketing template?

The difference is not in tone or subject, but in what motivated the message. Utility is the message that continues a specific transaction that already happened between the person and the company: an order placed, a payment processed, a delivery on the way, an appointment scheduled, an invoice due. Marketing is the message that exists by the company’s decision — promotion, launch, invitation, reactivation of an old customer, survey. The question that resolves almost all cases is: is there an identifiable transaction that this message continues? If yes, utility; if the message exists only because the company found a good moment to speak, marketing. The most common trap is sticking an offer at the end of a legitimate notice: that phrase transforms the whole, and the entire message is treated as marketing, with marketing price and frequency.

Can Meta change my template’s category after approval?

Yes, and this happens frequently. The category declared by the company is not definitive: Meta analyzes the content and, if it does not match the declared category, changes it on its own. The template continues working but is treated — and charged — under the new category. The three most common causes are a notice with an offer stuck at the end, a utility template too generic that identifies no transaction, and disguised reactivation. When this happens there are two paths: accept and rewrite if the intention was really to promote; or contest if the message really stems from a transaction — and in that case the argument must be in the text itself, with order number, date, or invoice identifier. A vague template cannot be defended. That is why it is worth rechecking the category of active models periodically, not just on approval day.

What is allowed and not allowed in an authentication template?

Authentication is a closed format, not a subject. It delivers a single-use code, informs that the code expires, and warns not to share it — and nothing else. The model includes a dedicated button to copy the code, instead of the client selecting the text manually, and does not allow standalone links in the body, which is the restriction that most often causes templates written like transactional emails to be rejected. Institutional greeting, offer, catalog link, or marketing signature are also not allowed. Those who try to add a second purpose — reminding about a boleto, notifying about the cart — receive rejection or reclassification, because the category does not share space. The explicit expiration deadline is part of the model and not an aesthetic detail.

Why did my marketing template stop being delivered?

There are two likely explanations and they require opposite reactions. The first is quality pause: when a marketing template accumulates blocks and reports, Meta pauses that specific model for a few hours, then longer, and finally deactivates it. In this case the number remains healthy and other templates keep working — changing the number solves nothing, rewriting the message solves it. The second is the promotional message cap per person: there is a limit on how many marketing messages the same user receives in a period, summing all companies, and a message may simply not be delivered because that contact’s quota ran out. Utility and authentication do not compete for this space, which is another reason not to turn operational notices into marketing.

How does the category affect sending cost?

The platform’s billing has been revised more than once, so the exact number must be checked on the commercial account dashboard. What remains stable is the hierarchy: marketing is the most expensive category because it is the one the platform wants to discourage; utility costs less, and utility messages sent with the conversation already open tend to be the cheapest, if not free; authentication has its own price and varies considerably by country. The practical consequence is that a good part of the cost of a messaging operation is decided when writing the template, not when sending. A store that sends 28,000 operational notices per month pays one bill with utility and a completely different one if it sticks an offer at the end of those same notices — and also starts competing for the marketing cap, risking that order confirmation is not delivered.

The right category is the difference between a cheap notice and an expensive campaign

VeyloCRM organizes your company’s template library by category and number, shows the quality status of each model before it is paused, ensures rotation only selects numbers with that template approved, and keeps WhatsApp, Instagram, and Messenger on the same dashboard — so operational communication never competes with promotion.