Messages your customers send to you are always free. Meta charges for messages your business sends.
How Meta charges today
Meta charges for each message your business sends:- Templates — marketing, utility and authentication — are charged per message, at the rate for the country of the person you message. Utility templates are charged even when you send them while a chat is open.
- Replies inside an open chat are called service messages. When a customer messages you, you have 24 hours to reply. Every WhatsApp number gets 1,000 free service messages a month; after that they’re charged.
These rules have applied since Meta’s pricing change on 1 October 2026. Before then, service replies and utility templates sent inside an open chat were free, which is why some bills went up from October. The page shows today’s rates only — there’s no old-versus-new comparison to read.
Your cost grows with messages, not with customers
This is the most useful thing to understand, because it’s the part you can change. Meta charges for each message your bot sends, not for each person you talk to. Two bots with the same customers can have very different bills if one sends three messages where one would do.Using the calculator
The calculator has two tabs:- Your bot works your bill out from the journeys in your own bot — see The Your bot tab.
- General is where you type the numbers in yourself.
Where your customers are
First check Where your customers are, at the top of the calculator. It starts on the country of your own WhatsApp number — or South Africa if you haven’t connected a number yet — and you can change it to wherever most of your customers are. It sets the prices for both tabs and for the rates list. It doesn’t change the report from your real traffic, because that report already prices each message on the country of the person it went to.The General tab
Fill in a few numbers:- How many people message you each month.
- How many conversations each person has.
- How many messages your bot sends per conversation — its replies, not counting templates.
- How many utility templates it sends per conversation — updates, reminders and receipts.
- What share of those utility templates go out while the chat is open.
- People you send a marketing message to each month. That’s your broadcast list: each person counts once for every marketing message you send them, so two promotions to 400 people is 800.
That way you can see what your bot costs to run separately from what your campaigns cost. Below the bill is a note on whether the 1,000 free service messages cover you, and at roughly how many people a month they run out.
A small bot can come out at R0. That’s a real answer, not a mistake.
The Your bot tab
“How many messages does my bot send per conversation?” isn’t a question you can easily answer yourself. So Paige works it out from the bot you built. Click Estimate from my bot. Paige reads your flows first, then your bot’s code, and lists each journey a customer can take — for example “Book an appointment: 4 messages per person” or “Support enquiry: 7 messages per person” — with how many of those are marketing, utility and service messages. Each journey says which file and line it came from, so you can check it. A WhatsApp Flow counts as one message, however many screens it has. Then set two things:- How many people message you each month, with the slider.
- The % of people who take each journey.
Each percentage stands on its own
A journey’s % of people is the share of your people who take that journey in a month, from 0 to 100. People can take more than one journey in a month, so the percentages don’t need to add up to 100, and Paige doesn’t scale them so that they do. If everyone books an appointment and everyone also checks an order, put 100% on both. The line under each box repeats what you typed and how many people that is — for example 100% · about 500 people.- A fresh estimate starts on an even split — five journeys at 20% each, which means each person takes one journey on average. Press Reset to even split to go back to it.
- Set every journey to 0% and nobody takes any of them, so the bill is zero, and Paige tells you so.
Reading the bill
The bill is worked out on the real rates, including the 1,000 free service messages, and split into Broadcasts and Running your bot just like the General tab. A journey you start yourself with a marketing template counts as a broadcast. Under the bill, a line shows what you’d pay if everyone took every path — every journey at 100%. That’s a worst case to keep in mind, not your estimate. Changing a number updates the bill straight away. The journeys sit side by side in one row: swipe it sideways, or use the arrows under it, to see the rest. The count under the row — 2 of 5, say — shows where you are.What a run costs, and who sees it
Once it has run, the tab shows how many credits it actually used, next to the date it was estimated. Changing the people or the percentages afterwards is free. It only reads your bot — it never changes anything. The estimate is saved for your project. Everyone on your team sees the same one, on any device, without paying again, and the calculator opens on the Your bot tab once there is one. The percentages you set are saved too, so your team sees the same split. When you change your bot — a flow or its code — the estimate stays on screen with a note that your bot has changed since this estimate, and a button to re-run it. Paige never re-runs it by itself, because a run uses credits. If your project has no flows and no bot code yet, or Paige can’t find a path that sends messages, it says so and points you to the General tab instead of guessing. It never shows a made-up R0. And if you disagree with a number Paige worked out, use the General tab and type your own.Your costs from real traffic
When your bot has sent or received messages, a report worked out from your own message history appears above the calculator. The Your bot tab stays available, so you can still compare what your bot’s design should cost with what it actually cost. It can take a few seconds to appear, because Paige reads every message from the last three months.Pick a month
At the top you choose which month to look at: Last month or This month (so far). The report opens on this month, and switching is instant. If your bot sent and received nothing in the month you pick, the report says so instead of showing a bill of R0. Under the switch is what that month’s messages cost at the rates Meta charged that month. From October 2026, when your replies used some of your 1,000 free service messages, the amount is shown as three lines:
Each free message is valued at the price for the country of the person it went to. For a month before October 2026 there is no free-messages line, because Meta didn’t charge for replies at all that month.
Broadcasts or running your bot
The amount charged is split in two, so you can see whether a big month came from a campaign or from your bot getting busier:- Broadcasts. Every message sent as part of a broadcast, even one that lands while the customer happens to have a chat open with you.
- Running your bot. Everything else: your bot’s replies while a chat is open, plus Follow-ups your bot starts, shown on their own line. Follow-ups are templates sent when no chat is open and that aren’t part of a broadcast — reminders your bot sends, templates you send from the Conversations tab, and test sends of a broadcast.
Any message sent during an open chat counts towards running your bot, even a marketing template. It’s still priced as marketing; it just isn’t a broadcast.
The rest of the report
The report is an estimate, not your bill
It’s labelled Estimate because Paige works it out from your messages. It isn’t Meta’s invoice. Under the month’s cost is a line that says This is an estimate. Click it to open the reasons, and click it again to close them. It will come out high if you run Click-to-WhatsApp ads, because messages that start from those ads are free for 72 hours and Paige can’t see that from your history. Meta also skips some charges without saying why, which pushes it high too.- If Paige can’t tell what kind of template a message was — a template that isn’t in your template list any more, for instance — it counts it as unclassified, lists it by name where it can, and shows the range it could add. That range is never included in the totals. The same goes for messages sent outside an open chat.
- Where Meta’s own pricing data is available for some messages, those are shown separately as measured by Meta, next to the part Paige worked out.
- If the report says it’s incomplete, your history was too big to read in one go and the real figures are higher than shown.
- If your template list couldn’t be loaded, templates show as unclassified until you refresh.
This report isn’t available for self-hosted projects, because your messages are stored in your own database. Use the calculator instead.
Send fewer messages
The Send fewer messages card finds the places your bot sends more messages than it needs to — two messages in a row that could be one, or a “One moment please…” that tells the customer nothing. Before you click, the card tells you roughly how many credits the check will use and how many you have. If you don’t have enough, the button is switched off and the card says so — top up in Settings → Usage, then come back. Click Find savings in my bot and Paige reads your bot and lists what it found. Each item says what your bot does now, what Paige suggests instead, how many fewer messages each person would get, and the exact file and line it’s about. If your bot is already lean, Paige says so rather than inventing changes. Afterwards the card shows how many credits the check actually used. The suggestions sit side by side in one row: swipe it sideways, or use the arrows under it, to see them all. The line under the row always shows how many you have ticked, so you don’t lose track of one that has scrolled out of view.1
Tick the changes you agree with
Up to five at a time, then press Apply.
2
Read the confirmation
It lists exactly what will change and tells you roughly how many credits it will use.
3
Review and deploy
Press Review the changes to open the Code tab and check them, then deploy when you’re happy.
Suggestions to turn a question-by-question conversation into a WhatsApp Flow are shown as advice only and can’t be ticked yet. Ask for that change in the chat if you want it.
Your findings are saved with the project
Once the check has run, the suggestions stay on the card — for you and for everyone else on the project, on any device — so nobody has to spend credits running it again just to see them. The card shows the date they were produced (Analysed on …). What you applied is saved too. A change Paige has already made is marked Applied in preview and can’t be ticked again, and the list of what happened to each change is still there after you refresh the page, or if your connection dropped while Paige was working. Running the check again replaces the saved suggestions with fresh ones, for the whole team. If your bot has been edited since the check ran — including by applying one of these suggestions — the card says Your bot has changed since this analysis, with the date it ran. That’s a heads-up, not a block: the suggestions may point at lines that have moved, you can still tick and apply them, and Paige skips any change that no longer fits rather than editing the wrong place. Paige never re-runs the check by itself, because a run uses credits. Press Run the audit again when you want fresh suggestions.Rates for your market
At the bottom of the calculator is today’s per-message price for each kind of message in the country you picked. Those in-app figures are the ones to go by: they come from Meta’s published rate card and are updated without waiting on a Paige release. Rates are charged on the country of the person you message, not yours. As a worked example, here is Meta’s current rate card for South Africa, in US dollars per message delivered:
If a kind of message says Not available in this market, Meta doesn’t offer it there. That is different from it being free.
Volume discounts
Very large senders get a volume discount from Meta on utility and authentication messages, and the figures in the app take it into account. In South Africa the utility discount starts at 100,000 utility messages a month; the threshold differs by country and by kind of message. Marketing and service messages have no volume discount.Which is why consolidating your support traffic is the one lever a high-volume sender has — service messages stay at full list price however many you send.
Rand or dollars
The page opens in rand. Use the USD / ZAR switch at the top to see dollars instead. Meta bills in US dollars, so the rand figures are estimates of what reaches your bank statement.How the rand figure is worked out
Paige converts at the current market exchange rate for US dollars to rand, which it refreshes once a day, and adds nothing to it — no buffer and no margin. At a market rate of R17.00 to 10 charge shows as R170.00. The line under the USD / ZAR switch shows the rate being used and the date it was fetched. The report and both calculator tabs use the same rate, so they agree with each other.The rand figure is still an estimate. Your bank or card sets its own exchange rate and may add its own fees when it pays a dollar bill, so what reaches your statement can be a little higher.
- If the live rate can’t be fetched, the page keeps using the last rate it had. If it has never had one, it uses a fixed R19 to $1 and says so on that same line.
- If you’re viewing in rand and the report was worked out at a different rate from the one shown under the switch — the rate updated while the page was open, say — the report states the rate it used.
- This rate applies to Message Costs only. Your Paige subscription and credits are still billed at Paige’s own fixed rate.
Get an email when the free messages run out
At the bottom of the section is an Email reminder card. Switch on Email me when the free messages are used and Paige sends one email in any month your bot passes 1,000 service messages, so you know Meta is about to start charging before the bill arrives.- It’s off until you turn it on, and you can switch it off again at any time.
- You get at most one email a month for each project.
- The email goes to the project owner. To send it somewhere else — your bookkeeper, say — type the address under Send it to a different address and press Save address. Leave that box empty to go back to the owner.
- Only the project owner or a workspace admin can change the setting.
- The charge is Meta’s, not Paige’s.
- The count is Paige’s estimate from your message history and can be a little higher than Meta’s own, so the email may arrive slightly before Meta starts charging.
- It’s checked about once an hour, so it isn’t instant.
The reminder is for bots hosted by Paige only. If your bot runs on your own server (self-hosted), Paige can’t see your messages, so the card isn’t shown.
Next
Usage & billing
What you pay Paige: the subscription, AI credits, and your invoices. Separate from everything on this page.
Broadcasts
Free to run on Paige. The cost shown in the wizard is Meta’s messaging fee on your own number.
Message types
What marketing, utility, authentication and service messages actually are, and when each one applies.
Adding a payment method on Meta
Meta charges your business directly, so it needs a payment method before those messages can send.
