The two ways to charge
Almost every WhatsApp API quote falls into one of two models. Knowing which one you're buying explains why two quotes for the same project can look impossible to compare.
Per message (official API)
On the official API, Meta is the one charging for the message. The fee is per template message delivered and varies by category (marketing, utility, authentication) and by the recipient's country. The rate card belongs to Meta and changes from time to time, so any cost spreadsheet needs periodic review. On top of that, the provider that gives you access to the API charges its own fee, which may be flat, per number or by volume.
The practical effect is a cost that rises with usage. A campaign that worked and doubled your sends also doubles your Meta bill.
Per connection (unofficial API)
On the unofficial API, the number is connected by QR code, like WhatsApp Web, and there is no per-message fee from Meta. The provider charges for what actually costs it money: keeping each connection alive, with servers, network and monitoring. That's why the pricing unit is the connected number. The volume that number sends doesn't enter the invoice.
Pricing models compared
| Criteria | Per message (official) | Per connection (unofficial) | Self-hosted open source |
|---|---|---|---|
| Billing unit | Template delivered, plus provider fee | Connected number | Servers and your team's hours |
| Predictability | Low, depends on volume and category | High, depends on the number of connections | Medium, with spikes when something breaks |
| Who keeps the connection up | Meta and the provider | The provider | You |
| Cost of growing in volume | Grows with every send | No change per message | More machines and more maintenance |
| Cost of growing in numbers | Per-number fee, depending on the provider | One more connection per number | More instances to operate |
The costs that don't show up in the quote
The subscription is the easy part to compare. The lines below rarely appear in a quote and, added up, often weigh more than it does.
- Your own infrastructure. Running an open source solution means paying for servers, a database, a queue, media storage and, so all your numbers don't go out from the same address, proxies. Each item has its own invoice and someone has to configure it.
- Development time. Integrating takes days; maintaining takes months. Updating the library when WhatsApp changes the protocol, investigating why a number stopped receiving, fixing the webhook that lost events. Those are hours from an expensive developer that aren't moving your product forward.
- A number that's down. This is the most expensive cost and the least measured. A connection offline for an afternoon means reminders that didn't go out, customers without a reply and, if you sell software, a support ticket from your customer. Multiply by the number of affected customers when the problem is on a shared server.
- Switching providers. If the integration is tied to a very specific payload format, moving later means rewriting code. It's worth asking from day one what leaving would look like.
How to estimate it for your case
A quick calculation that avoids surprises in month three:
- List how many numbers need to stay connected today and how many in a year.
- Separate what needs to be official (templates for people who haven't messaged you yet, compliance requirements) from what can be unofficial.
- For the official part, estimate templates per month and the category of each, using Meta's current rate card for each destination country.
- For the unofficial part, multiply the number of connections by the provider's price per connection.
- Add the integration hours and an honest estimate of monthly maintenance, at your team's hourly cost.
- Ask the provider what happens to the price when you double the number of connections.
Item 6 is often what separates similar quotes. If you sell software and add a number with every new customer, a per-connection price that drops with volume makes your margin better as your base grows, not worse.
How D-API charges
On D-API, billing is per connection, not per message, and the price per connection gets lower as you grow. The tier you reach applies to all your connections:
- 1 to 9 connections: $15.00 per connection/month.
- 10 connections: $9.90 per connection/month.
- 11 to 50 connections: $8.75 per connection/month.
- Over 50 connections: talk to sales.
Infrastructure is included: each connection runs isolated, with its own IP, and reconnection is handled by the platform. SaaS companies that come in through sales pay $9.90 per connection from the first one, with 14 days free. For everyone else there's a 3-day free trial, no credit card. Current prices are on the pricing page.
If you also need the official API, it uses the same integration. In the SaaS model, D-API charges a platform fee per connection and Meta's per-message charges go to the end customer, who owns the account. The details are in official WhatsApp API.
To compare both models beyond price, read official vs unofficial API. And if the idea is to pay nothing at all, it's worth understanding what actually exists in free WhatsApp API.
