WhatsApp API Billed Per Message: Stick With It or Switch to an Unofficial Gateway?
Starting October 1, 2026, CS replies on the WhatsApp API get billed per message too. Here's the cost math for Indonesia, a comparison with unofficial gateways, plus the risks rarely written on the pricing page.

In two weeks, on October 1, 2026 to be exact, how Meta bills the WhatsApp Business Platform changes again. Free-form replies to customers, free until now, start getting billed per message. Since the news broke, the question that reaches me most often goes something like this: "should I just switch to Wablas?"
I'm not going to answer that in one sentence. What I can do is lay the numbers side by side: what it costs on the official route after October 1, what it costs on the unofficial route, and what risk comes bundled with each one. The decision is still yours, because the answer differs by business type.
What changes on October 1, 2026
According to Meta's official pricing documentation, four things change:
- Service messages become paid. This is a free-form (non-template) message you send inside the 24-hour service window, i.e. everyday CS replies. The rate matches utility and authentication in each country.
- Utility templates inside the 24-hour window also become paid. Since July 2025, a utility template sent as a reply to a customer has been free. Starting in October, it no longer is.
- There's a free allowance of 1,000 service messages per business number per month. This allowance resets every month and doesn't roll over.
- If there's no payment method on file, messages stop sending once that allowance of 1,000 runs out.
What doesn't change: incoming messages from customers stay free, and a utility template sent outside the 24-hour window has already been paid since before.

One reassuring thing: Meta works on a pricing calendar. Rate changes can only land on January 1, April 1, July 1, or October 1. There are notice rules too: at least 1 month for a rate change, 3 months for an added billing model, and 6 months for replacing a billing model entirely. This October change was itself announced by Meta on July 1, 2026.
Indonesia rates as of October 1, 2026
Indonesia has its own rate card, not the regional "Rest of Asia Pacific" one. Here are the numbers:
| Category | Rate per message | When it's charged |
|---|---|---|
| Marketing | Rp586.33 | All promos and broadcasts, always charged |
| Utility | Rp356.65 | Transaction notifications. From October, includes ones sent inside the 24-hour window |
| Authentication | Rp356.65 | OTP and verification |
| Authentication-international | Rp1,940.13 | OTP to numbers across borders |
| Service | Rp356.65 | Free-form replies inside the 24-hour window. First 1,000 per number per month free |
| Inbound messages | Rp0 | Messages from the customer to you |
Three important notes before you use these numbers:
- The figures above don't include tax and don't include a platform fee if you go through a service provider instead of Meta directly.
- Volume discounts for utility and authentication in Indonesia only start above 750,000 messages a month. For small businesses, this is effectively irrelevant.
- Service messages get no volume discount at all. Once the 1,000 allowance is gone, everything is full price.
Who actually feels this
This is the part that's often misunderstood. A lot of people panic thinking every notification is getting expensive, when scheduled notifications actually don't change at all. What goes up sharply is a business with a lot of back-and-forth with customers.
I ran the numbers on three scenarios with the rates above:
A 60-room co-living property. Similar to the co-living finance system I built: 3 invoice and receipt messages per tenant per month, all utility templates outside the 24-hour window, plus around 250 replies to tenants. The cost: 180 × Rp356.65 = Rp64,197 (about US$3.90), and the CS replies stay under the 1,000 allowance. Before and after October, the number is the same.
An online store with 500 orders a month. Order confirmations and tracking info, 1,000 utility templates total, assuming 600 of them get sent while the customer is mid-chat (inside the window). Plus 3,000 CS replies. Before October, only 400 messages were billed, so Rp142,660. After October: 1,000 utility (Rp356,650) + 2,000 CS replies past the free allowance (Rp713,300) = Rp1,069,950 (about US$65).
A service business with an active CS team. Say a clinic or an agency: 2,000 CS replies and 200 utility templates outside the window. From Rp71,330 to Rp427,980 (about US$26).
Monthly WhatsApp API cost, before vs. after October 1, 2026(rupiah per month)
- 60-room co-living, beforeRp64,197
- 60-room co-living, afterRp64,197
- Online store, beforeRp142,660
- Online store, afterRp1,069,950
- Active CS, beforeRp71,330
- Active CS, afterRp427,980
The pattern is clear: the more two-way conversation, the bigger the increase. If your system only sends scheduled reminders and rarely gets a reply, the impact is close to zero.
What the unofficial route costs
Services like Wablas and Fonnte work differently. Instead of going through Meta's official server, your number gets connected by scanning a WhatsApp Web QR code, and messages get sent automatically from that session. Fonnte even calls itself, right in its site title, the "Unofficial WhatsApp API Gateway Indonesia".
Since it doesn't go through Meta, there's no per-message fee. What you pay for is a monthly package:
| Service | Plan | Quota | Price per month | Effective cost per message |
|---|---|---|---|---|
| Wablas | Nano | 1,000 messages | Rp22,000 | ±Rp22 |
| Wablas | Small | 10,000 messages | Rp69,000 (standard price) | ±Rp7 |
| Wablas | Medium | Unlimited | Rp86,000 (standard price) | depends on volume |
| Fonnte | Lite | 1,000 messages | Rp25,000 | ±Rp25 |
| Fonnte | Regular | 10,000 messages | Rp66,000 | ±Rp7 |
| Fonnte | Master | Unlimited | Rp175,000 | depends on volume |
I'm listing these numbers as a comparison, not as an endorsement to subscribe. Both also have annual plans that work out cheaper per month.
Compare that with the online store scenario earlier: 4,000 outbound messages a month, which on the official route comes to Rp1,069,950, or about Rp267 per message. On an unofficial 5,000-to-10,000-message plan, the cost is in the range of Rp36,000 to Rp69,000. That's a 15 to 30 times difference. That's why the "should I just switch" question keeps coming up.

The risk that's not on the pricing page
This is the part that needs some honesty, because no pricing page will ever write it down.
The terms are unambiguous. The WhatsApp Business Terms prohibit businesses from using an app that interacts with their service "without our prior written consent." In the enforcement section, Meta states it can restrict, rate-limit, suspend, or shut down a business account that violates this. In other words, using an unofficial gateway isn't a gray area, and every risk falls on the user.
A WhatsApp number is an asset, not just a channel. If the number gets blocked, what's lost isn't just the ability to send messages, but the chat history, customer groups, and contacts tied to that number. Meanwhile, existing customers keep messaging the same number, and nobody replies.
No official business identity. A verified business name, a catalog, and official interactive buttons only exist on the official route. For a brand seen by a lot of people, that's part of the trust.
Delivery reporting and stability depend on the session. A WhatsApp Web-based connection can drop when the phone dies, the session logs out, or WhatsApp pushes an update. If your system relies on delivery status for a business flow, this is a fragile point.
Customer data passes through a third party. Numbers, chat contents, and sometimes customer documents get stored on the provider's dashboard. For personal data, this isn't just a technical concern, it's also a data protection obligation.
OTP and money-related cases are the riskiest. If an OTP fails to send because the number got blocked, what stops isn't a promo, it's customer logins and transactions.
If you want to try the unofficial route, limit the use case
I won't say this route is off-limits. There are cases where the risk is reasonable, especially if the recipient is internal and the message isn't critical:
| Worth trying | Why it's relatively safe |
|---|---|
| Internal notifications to your own team | The recipient is an employee who already knows and agreed, not a customer |
| Operational alerts, like low stock or a server going down | Low volume, no customer data involved |
| Prototyping and validating an idea | Used briefly to prove the flow works, before paying for the official API |
| Daily task reminders to yourself or a small team | Even if it stops, the impact is only internal |
| An admin helper bot on an operational number | Not the main number displayed on all your promotional materials |
And here are the conditions I use if this route is chosen:
- Use a separate number, not the main business number printed on all your materials.
- Never for OTP, financial data, or customer personal data.
- Send to people who actually expect your message, not a purchased number list.
- Set a reasonable send delay and don't mass-blast.
- Have a migration plan from the start. Keep the data in your own system, like Sheets or a database, so if the number has an issue you just switch the sending route, instead of rebuilding everything.
If you stay on the official route, here's how to cut the cost
Before switching routes, there's usually still a lot you can save where you are:
- Combine several bubbles into one message. Right now, three short replies mean three times the cost. One tidy message is cheaper and easier to read.
- Calculate your monthly CS replies first. If it's under 1,000 per number, you're still safe within the free allowance. If it's slightly over, just cutting the small talk can be enough.
- Cut the back-and-forth with buttons and lists. One message with choices is cheaper than three questions in a row.
- Check the template category. A transactional message miscategorized as marketing makes its per-message cost more expensive.
- Use the 72-hour window from ads. A conversation started from a Click to WhatsApp ad is still free for 72 hours, per Meta's documentation as of September 2026.
- Tidy up your reminder schedule. 3 days before, 1 day before, and the day of is three times the cost. Sometimes 1 day before alone is enough, and the rest can move to email or app notifications.
- Integrate directly with the Cloud API if you have a developer. The Cloud API is hosted by Meta and hosting is free, so you only pay the message cost with no platform markup.
- Track what actually gets billed. The message status webhook sends a
pricingobject withbillable,category, andtype. Log that, and you know exactly which message costs money, instead of guessing from the bill at the end of the month.
A decision framework
If it has to be boiled down to a few questions, here's what I ask before choosing:
- Who's the recipient? An external customer or an internal team.
- Is there OTP, a transaction, or personal data involved? If yes, the official route is almost always the answer.
- Is that number the main business number? If yes, the risk of losing it is expensive.
- How many CS replies a month? Under 1,000 per number, the October change has little impact.
- If that number disappeared tomorrow, how much would it cost you, compared to the monthly savings?
From there, three patterns usually emerge: fully official, a mix (official for customers, unofficial for internal matters), or a limited unofficial use for things that wouldn't stall the business even if they stopped.
Wrapping up
This October increase confirms one thing: WhatsApp is no longer a free channel you can use however you like. Every outbound message now has a price, and every alternative route has a price too, just not in the form of rupiah per message.
So before deciding, pull up your last month's sending data. Count how many utility templates, how many CS replies, and how many were actually important. From those numbers the decision usually gets easier, and it often turns out to be less about switching routes and more about cutting messages that didn't need to be sent in the first place. On sorting out what's worth automating and what isn't, I also cover it in Not Everything Needs AI.
Is your team still doing something by hand?
Tell me about it, and let's find the fix together.
More notes

Can AI Learn Your Sales Style From WhatsApp Chat History?
Yes, and you usually don't need to train your own model. How to export WhatsApp chats, turn them into a style guide, a ready-to-use prompt, and the customer data risks.
Read the note
Gemini vs ChatGPT for Office Work, Which One Fits Better?
Gemini and ChatGPT can both be used for work, but their strengths differ. A plan price comparison in Rupiah, which suits teams on Google Workspace, and when ChatGPT makes more sense.
Read the note