GLOSSARY

What is Conversation-Based Pricing?

Conversation-based pricing is the WhatsApp Business Platform billing model in which a 24-hour message thread, categorised as marketing, utility, authentication or service, is the billed unit rather than the individual message. Meta has been shifting this model toward per-message pricing for templates, with rates that vary by the recipient's country.

Free forever plan · No credit card required · Cancel anytime

Quick definition

Conversation-based pricing is the WhatsApp Business Platform billing model in which a 24-hour message thread, categorised as marketing, utility, authentication or service, is the billed unit rather than the individual message. Meta has been shifting this model toward per-message pricing for templates, with rates that vary by the recipient's country.

In a single sentence: what you pay depends on why you are writing and where the recipient lives.

What it means

WhatsApp has never billed the way SMS does. Instead of charging for each message, Meta introduced conversation-based pricing: a 24-hour thread between your business number and one customer was the billed unit, and every message inside it was covered by that single charge. Four categories existed, and the category was determined by who started the conversation and what kind of template opened it.

That model has been changing. Meta first made service conversations, the ones the customer starts, free. It then began moving template messages onto per-message pricing, where the charge attaches to each delivered template rather than to the window it opens. The categories survived the change, because they are what the rate depends on.

The result is a channel where two things determine cost and neither of them is message volume in the naive sense: the category of what you send, and the country the recipient is in.

The four categories, and the money in each

Service is the conversation the customer starts. It is the free side of the channel, and it is the reason a support-led WhatsApp operation can be almost costless while a broadcast-led one is expensive. Everything you do to make people reply moves volume into this category.

Utility covers messages about a transaction that already exists: an order shipped, a payment failed, an appointment is tomorrow. It is cheaper than marketing, and Meta has made some utility messages free when a service window is already open, which rewards businesses that answer their customers.

Authentication is one-time codes. It is priced on its own scale, and several markets have separate international authentication rates. Its volume is a function of your login funnel rather than your marketing calendar, which makes it the one category you can often reduce with product changes rather than with messaging changes.

Marketing is the expensive one, in every market and by a wide margin. It also carries the tightest controls: a per-user frequency cap that will decline additional promotional messages to an individual who has already had too many, and the highest risk of the block that damages your quality rating.

Why the category is decided by your copy

The commercial consequence of category assignment is why the template review rules matter so much. Category is determined by content, not by your intent. Append one promotional sentence to an order confirmation and the template stops being utility.

You find out in one of two ways. Either the template is rejected for an incorrect category, which is the cheap outcome because nothing has been sent. Or it is approved and later recategorised, which arrives as a template_category_update webhook and quietly moves your order notifications onto the marketing rate. A business sending a hundred thousand order updates a month can absorb a recategorisation for weeks before anyone reads the invoice closely enough to notice.

This is the single clearest reason to keep transactional templates clean. The discipline is not aesthetic, it is a line item.

Country rates and the blended-average trap

Meta publishes rates per market, and the spread between the cheapest and the most expensive is large enough to invert a business case. The same campaign, with identical conversion, can be comfortably profitable in one country and loss-making in another.

The mistake we see most often in campaign planning is a single blended rate applied to a multi-country audience. It is always wrong, and it is wrong in the expensive direction, because the markets that drag the average up are rarely the ones the team tested in. Model per market, from the current rate card, and let the model tell you which segments are worth messaging at all.

One structural exception is worth building around. Conversations that start from a click-to-WhatsApp ad or a Facebook Page call-to-action are treated as free entry points and are not billed for a longer period than the standard window. This is the best cost structure available on the channel: high intent, customer-initiated, and free. If you already spend on paid social, routing that traffic into WhatsApp is a pricing decision as much as a marketing one.

Why it matters

Pricing on this channel rewards behaviour that is good for customers, which is unusual enough to be worth exploiting deliberately. Conversations people start are free. Messages about things people asked for are cheap. Messages that interrupt are expensive and capped. The economics and the quality system point in the same direction.

That gives you a strategy rather than a cost centre. Put a button on your notifications so people reply. Answer fast so the window stays open and the conversation stays free. Use marketing templates where a customer relationship justifies them, not as a broadcast substitute for email. Done properly, the largest part of your WhatsApp volume ends up on the free side of the ledger.

Real-world examples

  1. The support desk with a near-zero bill. A software company handles thousands of inbound conversations a month and initiates almost nothing. Service conversations are free, so the channel costs the team almost nothing beyond the CRM.
  2. The recategorised order notification. A retailer added a discount line to a shipping template. It was approved, then recategorised as marketing. The volume did not change and the invoice roughly tripled for that template.
  3. The blended-average campaign. A team modelled a global send at their home market's utility rate. Two destination countries priced several times higher, and the campaign spent its whole quarterly budget in nine days.
  4. The ad that pays for the conversation. A clinic routes click-to-WhatsApp ad traffic to a human within minutes. The consultation happens entirely inside the free entry point period, and the booking is made without a single billed template.

Common mistakes

  • Modelling WhatsApp like SMS. The unit is not the message, and even under per-message pricing the free service side changes the arithmetic completely.
  • Using one blended country rate. Always wrong, always expensive.
  • Letting promotion leak into utility templates. It converts your cheapest volume into your most expensive.
  • Ignoring the category update webhook. Your unit cost can change without anyone touching the template.
  • Treating undelivered messages as the cost risk. The expensive message is the one that is delivered, charged and then blocked.
  • Budgeting above your tier. A forecast that exceeds your messaging limit is a forecast for a campaign that cannot physically run.
  • Assuming last year's model still applies. Meta has changed this twice. Check the current rate card before you commit a budget.

Related concepts

How Pinlyx handles it

Pinlyx attributes every WhatsApp send to a category and a destination market, so campaign reporting shows cost by segment rather than one number at the end of the month. Category changes arriving on the Meta webhook are surfaced as alerts, because a recategorised utility template is a silent price rise. Campaign planning sizes an audience against both the budget and the current messaging tier, and click-to-WhatsApp conversations are flagged so the team knows which threads are inside a free entry point period and worth answering first. See WhatsApp CRM for the full picture.

Cheat sheet · the four categories

One of these is free, and it is the one people ignore.

Relative cost only. Meta sets absolute rates per market and revises them, so price a campaign from the current rate card.

CategoryOpened byBilling characterYour lever
MarketingA marketing template you send.The most expensive category in every market, and the one with per-user frequency controls on top.Segment harder. The cost of a marketing send to someone who will not convert is not only the fee, it is the block.
UtilityA utility template about an existing transaction.Cheaper than marketing, and Meta has made utility messages free in some situations where a service window is already open.Keep transactional content clean of promotion, or the whole template is recategorised upward.
AuthenticationAn authentication template carrying a one-time code.Priced on its own scale, with separate international rates in several markets.Volume here is driven by your login and signup funnel, so cutting unnecessary code resends is a direct saving.
ServiceThe customer messaging you first.Meta made service conversations free, which turned inbound into the cheapest traffic on the channel.Design every notification to earn a reply, so more of your volume happens on the free side.
Where the price appears in your data

The status webhook tells you what you were charged for.

Field names in the pricing block have evolved with the model. Store the whole object rather than three cherry-picked keys.

# A delivery status webhook carries the category it was billed under
{
  "field": "messages",
  "value": {
    "metadata": { "phone_number_id": "106540352242922" },
    "statuses": [{
      "id": "wamid.HBgLOTA1NTUxMTEyMjMz...",
      "status": "delivered",
      "timestamp": "1757260800",
      "recipient_id": "905551112233",
      "conversation": {
        "id": "b0a1c2d3e4f5",
        "origin": { "type": "marketing" }
      },
      "pricing": {
        "billable": true,
        "pricing_model": "CBP",
        "category": "marketing"
      }
    }]
  }
}

# The silent price rise: a template you never edited changed category
{
  "field": "template_category_update",
  "value": {
    "message_template_id": 4412093,
    "message_template_name": "order_shipped_v2",
    "message_template_language": "en_US",
    "previous_category": "UTILITY",
    "new_category": "MARKETING"
  }
}

// Budgeting the honest way: per market, per category, never blended
const cost = audience.reduce((sum, contact) => {
  const rate = rateCard[contact.countryCode]?.[template.category];
  if (rate == null) throw new Error('No rate for ' + contact.countryCode);
  return sum + rate;
}, 0);

// And the cap that decides whether the campaign can run at all
if (audience.length > remainingCapacity(number)) splitAcrossDays(audience);
Cost-control checklist

Seven habits that keep a WhatsApp bill predictable.

  • Price every campaign per destination market, never on a blended average.
  • Keep transactional templates free of promotional sentences, so they stay in the cheap category.
  • Alert on template_category_update, because a recategorisation is a silent price rise.
  • Put a reply button on notifications, so more volume happens on the free service side.
  • Route click-to-WhatsApp traffic to a human quickly, while the free entry point period lasts.
  • Suppress unengaged contacts, since a delivered-and-blocked message costs money twice.
  • Check the audience against the messaging tier before the budget is approved.
Watch out for

This model has changed twice, and it will change again.

Meta has moved from four billed conversation categories, to free service conversations, to per-message pricing for templates, and rates are revised per market on their own schedule. Anything you read about WhatsApp pricing, including this page, describes a mechanism rather than a price. Build your cost model so the rate card is data you can update rather than arithmetic baked into a spreadsheet, and read the pricing block on your own delivery webhooks instead of assuming what you were charged.

Conversation pricing: FAQ

The billing questions that decide whether a WhatsApp campaign is worth running.

A 24-hour thread, not a message. Once a conversation of a given category opened, every message inside that window in that category was covered by the one charge, so sending eight messages during a support exchange cost the same as sending one. That is why the model was called conversation-based, and it is also why teams that had modelled WhatsApp as an SMS-style per-message channel consistently over-estimated their bill.
Yes, progressively. Meta first made service conversations free, which removed the charge for inbound-led support entirely, and then moved template messages toward per-message pricing, where you pay for each delivered template rather than for the 24-hour window it opened. Both models have coexisted during transition periods and rates differ by market, so the durable advice is to model your cost from Meta's current published rate card rather than from an article, this one included.
Because rates are set per market, and the spread between the cheapest and most expensive markets is very large. A campaign that is comfortably profitable to one country can be loss-making to another with identical conversion. Any forecast that uses a single blended rate across a multi-country list will be wrong, and it will be wrong in the direction of overspending, because the expensive markets are usually not the ones you tested in.
When someone starts a chat by tapping a click-to-WhatsApp ad or a call-to-action on a Facebook Page, Meta treats it as a free entry point and does not bill the conversation for a defined period that is longer than the standard 24 hours. It is the single best cost structure on the channel: the customer arrived with intent, and the conversation is free. Any business already running paid social should be routing that traffic into WhatsApp deliberately.
Billing follows delivery, so a message that fails to send is not the thing to worry about. The expensive failure is the one that succeeds: a template that is delivered, charged, and then ignored or blocked. You paid for the send and you also paid in quality rating. That is why list hygiene is a cost-control measure and not only a compliance one.
Build the model from three inputs: the number of unique recipients you will actually initiate with, the category of each template, and the destination country mix. Multiply against the current rate card per market rather than a blended average, then subtract nothing for the replies you expect, because inbound service conversations are the free part. Finally, check the model against your messaging tier: a budget that assumes reach your tier does not permit is a forecast for a campaign that cannot run.
Ready to ship

Know the cost before you send.

Pinlyx attributes every WhatsApp message to a category and a market, alerts on recategorisation, and sizes campaigns against real capacity.

Free forever plan · GDPR-ready · No credit card required

We value your privacy

We use cookies to improve our site, analyze traffic, and personalize ads. You can accept all, reject non-essential, or customize your choices. Read our Cookie Policy.