Meta publishes the price of every WhatsApp Business Platform message openly. Most businesses do not buy at those prices; they buy a monthly bundle from a reseller, in which the message cost and the software cost arrive fused into one number. This page sets out the published rates, explains which messages cost nothing at all, and shows how to derive the difference from an invoice you already have.
Meta charges for the WhatsApp Business Platform per delivered message. Not per send, not per contact, not per seat. If a message is not delivered, it is not charged.
This is a change of model. Until 1 July 2025 the platform billed per conversation: a 24-hour session opened by the first message, and every message inside it was covered by one charge. From that date the unit became the individual message. The practical effect is that volume, not session count, now drives cost — and that a bundle priced against the old model no longer tracks what Meta charges.
Rates are set by the country of the person receiving the message, not by where the business is registered. A Mumbai company messaging a customer in Riyadh is charged at Saudi rates.
A Business Solution Provider resells the platform. It holds the API access, and the business works through its dashboard. Wati, Interakt, AiSensy and Gupshup are the names an Indian reader is most likely to recognise; there are many others in every market.
What a BSP provides is real, and it is worth paying for if you use it: a chat inbox with multiple agents, template management and submission, campaign scheduling, contact segmentation, chatbot flows, CRM and commerce integrations, onboarding help, and support in a working time zone. None of that arrives free with raw API access. A business that runs its whole customer-service operation inside a BSP dashboard is buying software, not just delivery.
The difficulty is not that the BSP charges a margin. It is that the invoice is one number. A blended per-message rate, or a monthly plan with a message allowance, tells the customer nothing about which part paid Meta and which part paid for the dashboard. Two facts follow from that opacity, and neither implies bad faith by anyone:
Nothing on this page is a claim about what any named provider charges. Provider pricing is a matter between the provider and its customer. The only comparison made here is between figures a business supplies and rates Meta publishes.
Meta’s published per-message rates, base tier, effective 1 July 2026, retrieved 30 July 2026. Both dates travel with this table wherever it is reproduced.
| Market | Cur. | Marketing | Utility | Auth. | Auth. intl. | Service |
|---|---|---|---|---|---|---|
| India | INR | 0.8631 | 0.1150 | 0.1150 | 2.4971 | 0.0000 |
| United Arab Emirates | AED | 0.1832 | 0.0576 | 0.0576 | 0.1872 | 0.0000 |
| Saudi Arabia | SAR | 0.1877 | 0.0401 | 0.0401 | 0.2240 | 0.0000 |
| Indonesia | IDR | 586.33 | 356.65 | 356.65 | 1,940.13 | 0.00 |
| Brazil | BRL | 0.3217 | 0.0350 | 0.0350 | not published | 0.0000 |
A service message is one sent in response to a customer, within a conversation the customer started. Order queries, complaint handling, agent replies — anything an inbox does.
Meta made this category free on 1 November 2024. The rate is zero in every market. A business whose WhatsApp traffic is mostly inbound support is therefore sending a large share of its volume at no cost to its provider.
A customer service window opens for 24 hours each time the customer messages the business. While it is open, utility messages — order confirmations, delivery updates, payment receipts, appointment changes — are free.
The same message sent after the window closes is charged at the utility rate. Marketing and authentication are never free, in or out of the window.
The share of utility traffic that falls inside an open window is the one input a business usually has to reason about rather than look up. It is worth doing carefully, because it moves the answer.
The mechanism is simple: the customer’s last inbound message starts a 24-hour clock. So the question is what proportion of your utility sends happen within a day of the customer writing to you. Three patterns cover most businesses:
| Pattern | Typical shape | Inside window |
|---|---|---|
| Conversation-led | Customer asks, agent answers, updates follow the same day. Clinics, salons, support desks. | high |
| Transaction-led | Order placed on a website, then a chain of dispatch and delivery notices over several days. D2C retail. | mixed |
| Broadcast-led | Scheduled reminders to a list, no inbound trigger. Edtech class alerts, EMI reminders. | low |
Two ways to get a defensible number instead of a guess. Count, from one week of message logs, how many utility sends had an inbound message from the same contact in the preceding 24 hours, and scale that share to the month. Or take the conservative route: assume the share is zero, price all utility as billable, and treat whatever the window actually saves as headroom you have not counted.
The words high, mixed and low above describe a traffic shape. They are not measured percentages, and should not be carried into a calculation.
Authentication messages — one-time passcodes, login verification — are priced separately when the recipient’s number sits outside the business’s own market. The gap is not marginal.
Both figures are base-tier published rates, effective 1 July 2026. The multiple differs by market: about 3.3× in the UAE and 5.6× in Saudi Arabia on the same card.
The consequence for an invoice is arithmetical. Take a business sending 50,000 domestic OTPs and 5,000 international ones. The international messages are 9% of the authentication volume, but at published rates they are ₹12,485.50 against ₹5,750.00 — 68% of the authentication cost. Most invoices show one combined authentication line, so that split never appears.
The question to put in writing. For the month in question, how many authentication messages were delivered to numbers inside our market, and how many outside it? A provider that bills a single blended authentication rate is charging the same price for messages whose underlying cost differs by more than twenty times.
Meta offers volume discounts on utility and authentication messages above certain monthly thresholds. Marketing has no tiers. Every calculation on this page, and every figure Passthrough publishes anywhere, ignores those discounts and uses base-tier rates only.
The reason to say so loudly is that it fixes the direction of the error. Using base-tier rates shows Meta’s cost at its highest possible value. Any difference between a bill and that cost is therefore the smallest difference consistent with the published card. A business that qualifies for tiered pricing has a larger gap than this method reports, never a smaller one.
This is the single point on which the rest of the method stands. A number that can only move in one direction is arguable. A number that might be flattering in either direction is not.
A markup figure is derived in five steps. Nothing is modelled, fitted or inferred.
What the difference is not. It is not pure margin. It also pays for the dashboard, the agent inbox, the integrations and the support — which have genuine value. The figure measures the gap between a bundled price and the published cost of the messages inside it. Whether that gap is worth what it buys is a judgement for the business, and the point of putting the number on paper is to let that judgement be made with the number visible.
If the difference comes out at zero or negative, that is reported as such. A negative difference is not an overpayment and is not presented as one; it usually means volume tiers apply, or that a declared volume needs correcting.
One identical month, priced in five markets: 100,000 marketing · 50,000 utility, none in an open window · 20,000 authentication domestic · 1,000 authentication international · 40,000 service.
| Market | Marketing | Utility | Auth. | Auth. intl. | Service | Total |
|---|---|---|---|---|---|---|
| India INR | 86,310.00 | 5,750.00 | 2,300.00 | 2,497.10 | 0.00 | 96,857.10 |
| United Arab Emirates AED | 18,320.00 | 2,880.00 | 1,152.00 | 187.20 | 0.00 | 22,539.20 |
| Saudi Arabia SAR | 18,770.00 | 2,005.00 | 802.00 | 224.00 | 0.00 | 21,801.00 |
| Indonesia IDR | 58,633,000 | 17,832,500 | 7,133,000 | 1,940,130 | 0 | 85,538,630 |
| Brazil BRL | 32,170.00 | 1,750.00 | 700.00 | not published | 0.00 | 34,620.00 |
Assuming no utility inside the window is the conservative choice: it prices all 50,000 utility messages as billable. Service is free in every market and adds nothing to any column. Brazil’s total covers marketing, utility and domestic authentication only — the international rate is not published, so those 1,000 messages are left unpriced rather than estimated. To find a markup, set each total against the bill actually paid for the same month, excluding tax.
Passthrough runs a public calculator that performs the arithmetic in section 08 from figures you enter, and offers a fixed-fee migration to the direct Meta Cloud API for businesses that decide the gap is not worth it. That is the whole of the commercial interest behind this page; the rates and the method above stand on their own.