The category is not a label you choose. It is a judgement Meta makes about your message, and getting it wrong costs money and, eventually, your sending limit.
Every message you initiate on the WhatsApp Business API — anything outside the 24-hour window opened by a customer's reply — must use a pre-approved template. That template carries a category, and the category determines what you are billed.
It is not a self-declared label. Meta reviews templates and can reclassify them. So the practical question is not "what do I want to call this" but "what will this be judged to be".
Utility. Tied to a specific transaction the customer already has. Order confirmations, invoices, dispatch notifications, delivery updates, payment receipts, payment reminders. These are the backbone of distribution messaging.
Marketing. Anything intended to create demand. Scheme announcements, new SKU launches, festival offers, re-engagement messages, catalogue pushes.
Authentication. One-time passcodes and verification codes. Narrow and self-explanatory.
The useful heuristic: does this message reference something specific that this customer initiated?
The wording does not change the category. A promotional message written in a dry, transactional tone is still marketing. Conversely, an order confirmation is utility even if it mentions your brand.
Reorder prompts are where this gets genuinely arguable.
"Parle-G — you usually reorder around now. Last order: 12 cartons on 24 July" references that retailer's own purchase history, which makes a reasonable case for utility.
The same message sent to every retailer who has ever bought biscuits does not. That is a broadcast dressed as a notification.
The honest line: if the message is generated from this specific customer's transaction data and would make no sense sent to anyone else, it has a utility argument. If it would work as a mass send, it is marketing. The three workflows post covers how to build reorder prompts that stay on the right side of this.
Three escalating consequences:
The third is the one that matters. Losing the ability to message your retailers is a far larger cost than any per-message saving.
Practical rules, learned the hard way:
Service conversations — replies inside the 24-hour window a customer opened — are free. That single fact should shape your design.
The implication: build flows that earn replies. A utility message that prompts a one-word answer opens a free window in which you can have a full conversation. A broadcast that nobody answers costs you per message and gets you nothing.
This is also why order-taking on WhatsApp is economically sensible for distribution. Retailers message you first, which opens the window, and everything inside it is free. The setup for that is in the WhatsApp Business API guide.
For formatting the messages themselves so broadcasts look professional, the WhatsApp Message Formatter handles bold, italic and monospace markers.
Rather than writing templates as you need them — which guarantees you will need one on a launch morning — build the core set once.
A distribution business needs roughly these, all utility:
Plus one or two marketing templates for schemes.
Getting all of these approved in a quiet week is perhaps two hours of work and removes the single most common launch delay. Rejections on a first submission are normal; discovering them under time pressure is what makes them expensive.
Patterns that get approved, drawn from what reviewers are actually checking:
Make the trigger obvious. A reviewer who cannot tell what causes a message to be sent will reject it. "Your order {{order_id}} has been dispatched" is self-explanatory. "Update regarding your recent activity" is not.
Surround every placeholder with real text. A message that is mostly variables reads as a blank form.
Keep utility templates free of promotion. One line inviting them to check out this week's scheme is enough to reclassify an order confirmation as marketing, and you will pay marketing rates on every order confirmation you send.
Match the language to what you will actually send. Submitting an English template and sending Hinglish content through its variables is a quality-rating risk.
Quality rating is the constraint that decides whether you can message at all, and it is more fragile than the cost model.
What lowers it: messages to people who did not opt in, high frequency, content that does not match what the recipient expected, and blocks or reports.
What protects it:
The asymmetry worth remembering: a marginal saving per message is worth very little, and losing the ability to reach 200 retailers is worth a great deal.
The questions that come up when templates start getting rejected.
A utility template relates to a transaction the customer already has with you — an order they placed, an invoice they owe, a delivery on its way. A marketing template is designed to create demand: offers, new products, scheme announcements. The test is whether the message references something specific the customer initiated, not how commercial the wording is.
No, and attempting it is expensive. Meta reviews and reclassifies templates, and repeated miscategorisation risks rejections and a quality-rating hit that can restrict your number. The saving per message is never worth losing the ability to message retailers at all.
Most rejections come from three causes: promotional content submitted as utility, placeholder variables at the very start or end of the message with no surrounding text, and vague content where the reviewer cannot tell what the message is for. Write templates so a stranger can tell what triggers them.
The FlowKartAI team builds WhatsApp-native ordering for Indian B2B distributors and the kirana stores they serve. We write about distribution economics, GST compliance, and the practical side of putting AI in front of retailers who have never opened an app.
FlowKartAI parses natural language WhatsApp messages into ERP-ready orders in seconds.
Try Free Demo