Skip to main content
Tools → Message Costs answers one question: what does WhatsApp cost you for the messages your bot sends? This is Meta’s charge for sending WhatsApp messages, billed by Meta directly to your WhatsApp Business Account — the account your WhatsApp number belongs to. It is separate from your Paige subscription and your credits. Paige does not charge for these messages and adds nothing to Meta’s prices; a box near the top of the page says so.
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.
The allowance resets on the 1st of each month, unused messages don’t roll over, and it only covers service messages, not templates.
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.
See Rates for your market for the figures that apply to you.

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.
That’s exactly what the Send fewer messages card is for — see Send fewer messages.

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.
Both are there for every project, whether or not your bot has sent any messages yet. You don’t need a connected number or any message history, and it works for self-hosted projects too.

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.
The calculator opens on a small bot that people message first — 300 people a month, one conversation each, five replies, no templates and no broadcasts. Reset puts those numbers back. The result shows your monthly bill on Meta’s current rates in two parts, with the total of both: 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

Running the estimate uses a small amount of your Paige credits, because Paige reads your bot with AI. The button tells you roughly how much before you click. It’s charged even on a bring-your-own-key project, since your own key is only for your bot’s replies.
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 two parts add up to the month’s cost. If the report says it can’t split your costs yet, your project’s message history doesn’t record which messages came from a broadcast, so you only see the total.

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.
Refresh re-reads your history. Refresh a lot in a few minutes and Paige asks you to wait before trying again. To try other numbers, use the calculator just below the report.
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.
Paige only edits your preview bot. Your live bot doesn’t change until you look over the edits and deploy as usual. Finding savings and applying them both use your Paige credits, including on bring-your-own-key projects.
Paige never removes information your customers need — a price, a booking reference, a payment link, an opt-out instruction. It only merges it into another message. Afterwards you see what happened to each change: Applied, Skipped or Failed. Some being skipped is normal — you may have edited that part of your bot since the audit ran (run it again for fresh suggestions), or Paige looked and decided the change wasn’t safe to make.
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.
One Apply at a time per project. While Paige is applying changes, a second Apply on the same project is refused — Paige says it is already applying changes to this project and asks you to wait for it to finish. That holds even if a teammate re-runs the audit in the meantime: the fresh suggestions can’t be applied until the Apply that’s already running has finished. Nothing is lost; try again once it’s done.
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:
Those figures are South Africa’s, on that rate card, and nothing else. They are an example, not a universal rate. Check your own market in the app before you plan around a number.
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 1,a1, a 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.
Three things to know:
  1. The charge is Meta’s, not Paige’s.
  2. 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.
  3. 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.