How pricing works
Prepaid, per message, all-inclusive. No subscription, no minimum monthly spend, nothing to cancel.
What you are charged for
Three things draw down your balance.
Starting a conversation. Every template you send to someone who has not messaged you recently: broadcasts, follow-ups, re-engagement. The price depends on the category of the template (Marketing, Utility or Authentication) and the country you are messaging. This is the bulk of most bills.
Each message a customer sends you. Inbound WhatsApp messages are charged per message, at a small flat rate. A customer who sends five messages in a row is five charges, not one.
AI replies, if you run an AI Assistant — one per automatic reply.
Current rates for all of these are on the pricing page.
All-inclusive means all-inclusive
One price per message, covering everything. Nothing is added on top at the end of the month, and there is no separate platform fee.
What is free
- Every reply you send inside the 24-hour window, however many. This is the big one — answering a customer costs nothing on WhatsApp.
- Contacts, groups, templates, flows, media and analytics. Features, not meters.
- Team members. No per-seat charge.
So the shape of a bill is: what you spend starting conversations, plus a much smaller amount for the messages people send back. Cost scales with how much you initiate.
Inbound charges continue even at a zero balance
Meta has already delivered the message by the time we see it, so we never drop it for lack of funds — the charge is recorded and your balance can go slightly negative. Top up and it settles. You will not lose a customer's message because you ran out.
The other charges
Failed sends. If a message fails, the full message charge is refunded and a small failed-attempt fee is taken instead — ₹0.10 on Indian accounts. It shows in your ledger as a failed-send fee. See A message failed.
Instagram messages. Instagram works the other way round from WhatsApp: DMs you send are charged per message, and DMs you receive are not. See Reply to Instagram DMs.
Keeping the bill down
- Get customers to message you first. Their message costs you a fraction of what a template does, and it opens a window you can then answer in for nothing. This is what links, QR codes and the website button are for.
- Answer inside the window. Reply today for nothing, or send a paid template tomorrow.
- Use Utility where it is honestly Utility. Order updates are cheaper than marketing, and you can send them to people who would block a promotion.
- Broadcast to smaller, better lists. You pay per recipient. Five hundred people who care beat five thousand who do not, and cost a tenth as much.
- Add quick-reply buttons to templates. A customer tapping one sends a reply, which opens a window you can answer in for nothing.
Where to see what you spent
- Dashboard — a spend breakdown by category over the last 30 days.
- Wallet — every individual charge. See Your wallet and transaction history.
- Analytics — a Spend tab with date and number filters.
- Message logs — the cost of any single message.
If something goes wrong
- A charge you do not recognise. Find it in Wallet; each entry names the action and links to what caused it.
- The balance dropped faster than expected. Usually a broadcast to a bigger audience than intended, or marketing where utility would have done. Check the Spend tab in Analytics. If Incoming is a large slice, a campaign produced a lot of replies — which is a good problem, but it is a real cost.
- The balance went negative. Inbound messages are charged even with nothing left, because Meta has already delivered them. Top up and it settles.
- You were charged for a message that failed. You should see a refund of the message charge and a small fee instead. If you only see the charge, please open a ticket.