Pay for delivered messages, not sent ones
A contact list a few years old has a tail of numbers that no longer receive anything. Whether you pay for them every month comes down to one line in your provider's pricing.
· 4 min read
Every WhatsApp provider will tell you what a message costs. Rather fewer will tell you plainly when you are charged for it, and on a list of any age that second question is worth more money than the first.
Sent is not the same as delivered
A WhatsApp message passes through four states. It is accepted by the platform, handed to Meta, delivered to a handset, and read. Between the second and the third there is a real gap, and things fall into it:
- Numbers that have been disconnected or recycled to somebody else.
- People who never had WhatsApp, or who have deleted it since.
- Handsets that have not come online for months.
- Numbers typed wrong when they were collected, which no validation catches because they are valid numbers belonging to nobody.
None of these is exotic. On a contact list assembled over three or four years of orders, sign-ups and imported spreadsheets, the tail of numbers that no longer receive anything is not a rounding error.
Which one you are billed on
Most platforms count a message when it leaves. It is the easier thing to build — the moment of sending is a single unambiguous event, whereas delivery arrives later, asynchronously, and sometimes not at all — and it happens to favour the platform.
Under that model every dead number on your list is charged for on every campaign, forever. Nothing on the invoice distinguishes it from a message somebody actually read. The list does not clean itself, because nothing in the billing gives anybody a reason to clean it.
Charging on delivery is harder, and correct
Billing on delivery means you cannot settle a charge at the moment of sending. The money has to be held, the platform has to wait for the delivery receipt, and then either take the charge or give it back — per message, at campaign volume, reliably enough that nobody has to check.
That is genuinely more to build. It is also the only version where the incentives point the same way: the platform is paid for outcomes rather than attempts, and has a reason to care whether your messages arrive.
How it works here
A credit is reserved when a message is accepted, and settled when WhatsApp says what happened. If it is delivered, the credit is spent. If it fails, the reservation is released back to your balance automatically — no ticket, no support conversation, no reconciliation at the end of the month.
Two other things fall out of the same principle. Replying to a customer inside their 24 hour window costs nothing, because Meta stopped charging for those and we did not keep charging for them. And a contact who has opted out, or whom WhatsApp has marked undeliverable, is refused before anything is charged rather than being attempted and billed.
The full breakdown is on the pricing page, and plans and credits covers what happens to the money in each case.
What to ask
One question, and it is worth asking in writing:
“If I send ten thousand messages and eight thousand are delivered, what am I charged for?”
The answer should be eight thousand. Where it is ten, you now know what the difference costs you, and you can decide whether it is worth it rather than not knowing it was happening.