In What an AI voice agent actually costs to run I wrote that a WhatsApp call "has no per-minute charge at all" — that it rides the customer's data connection and you pay a small conversation fee and nothing else. I built that assumption into the cost calculator and I've repeated it to clients.
It is wrong for outbound, and the distinction matters more than the mistake.
What I got wrong
WhatsApp calling splits into two things that bill completely differently.
User-initiated — the customer taps call on your business profile — behaves roughly the way I described. You are in a conversation window, the economics are messaging economics, and the per-minute meter is not the thing you're watching.
Business-initiated — you call them, which is the entire premise of an outbound agent — is a metered voice product. Meta bills it per minute in six-second increments, at a rate set by the recipient's country, with volume tiers that step the rate down as monthly volume climbs.
Two details in that sentence do real work:
- Fractional pulses round up. A 56-second call is 9.33 pulses and you pay for 10. Short calls are therefore systematically more expensive per second than long ones, which inverts the intuition people bring from PSTN.
- The rate follows the recipient's country, not yours. Your Saint Lucia or UAE business number doesn't determine the price; the Nigerian or Brazilian mobile you're dialling does.
The one piece of good news is that you are only billed when the call is answered. Ringing is free, unanswered is free. On an outbound campaign with a 25% answer rate, three quarters of your attempts cost nothing — which is genuinely better than PSTN, where you often pay for the attempt.
The constraint that actually decides your architecture
The billing turns out not to be the hard part. The permission model is.
You cannot simply dial a WhatsApp user. You request a call permission, the user grants it, and only then may you call — within 72 hours of approval. The limits around that are tight:
- One outbound call permission request per customer per 24 hours
- At most two in any 7-day period
- Production accounts allow up to 100 calls per day per business–user pair once permitted
And then the part that will quietly kill a badly-run campaign: four consecutive rejections trigger a review of your approval, and four further unanswered calls revoke the permission automatically. No appeal queue, no warning email. The channel simply closes for that contact.
Think about what that means for a cold-ish outbound operation. On PSTN, a bad list costs you money and answer rate. On WhatsApp, a bad list costs you the channel — and it does so silently, contact by contact, while your dashboard still shows calls being attempted. You need rejection tracking as a first-class metric from day one, not as something you add when the numbers look strange.
Meta also prohibits cold outreach outright. The permission flow is the enforcement mechanism, but the policy sits above it: these are people who already have a relationship with you and agreed to be called.
Five countries where it simply doesn't work
Business-initiated calling is unavailable when the business phone number is registered in:
- United States
- Canada
- Egypt
- Vietnam
- Nigeria
Sanctioned regions — Cuba, Iran, North Korea, Syria, Crimea, Donetsk, Luhansk — are excluded as well. The consumer's number can be anywhere Cloud API operates; it's your own number that's restricted.
There's a separate trap underneath this one. Even where Meta permits the call, the recipient's country may not. The UAE blocks consumer VoIP calling at the regulator level, so WhatsApp calling does not work there regardless of what your account is allowed to do. Egypt's carriers throttle VoIP calling independently of Meta's restriction. Saudi Arabia, which blocked it for years, has allowed it since early 2026.
So for a multi-country outbound build, three separate lists have to line up: countries where Meta allows business-initiated calls, countries where the regulator allows WhatsApp calling at all, and countries where you hold valid consent. Any market failing any of the three is PSTN-only, and Nigeria and Egypt fail on two.
Does it still beat PSTN?
Often, yes — just not by the infinite margin implied by "free."
The comparison you actually want is WhatsApp per-minute rate for the destination against PSTN termination for the same destination, both adjusted for answer rate and pulse rounding. In expensive corridors the gap is still large: Nepal and Egypt terminate around $0.065 and $0.075 a minute on wholesale routes, and WhatsApp is materially under that. In cheap corridors it inverts — Colombia and Brazil terminate at well under a cent a minute, and the six-second rounding on short calls can make WhatsApp the more expensive option.
The other half of the comparison is answer rate, and here WhatsApp has a real structural advantage that has nothing to do with price. A WhatsApp call arrives with your verified business name and logo attached. An international PSTN call arrives as a number the recipient doesn't recognise, or in India as "Unknown," or flagged as probable spam by the carrier. Paying more per answered minute for twice the answer rate is a good trade, and it is the argument I'd now lead with rather than the cost one.
What I'm changing
The calculator needs a per-minute WhatsApp rate rather than a flat conversation fee, and the "WhatsApp share" slider needs to stop implying that dragging it to 100% takes your telephony bill to zero. It doesn't. It takes it from one metered channel to a different metered channel with better answer rates, tighter consent rules and a harder failure mode.
The broader thesis in that post — that channel mix and volume decide your architecture more than any vendor's rate card does — I still think is right. If anything this strengthens it, because it adds a third axis: some of your markets have no choice at all.
The lesson I'd rather have learned more cheaply: when a channel looks free, you have probably found the edge of your own understanding rather than a genuine arbitrage. Meta built a voice product. Voice products are metered. I should have gone looking for the meter instead of assuming its absence.
References: WhatsApp Cloud API — Calling · Calling API pricing · Call settings and permissions · Business-initiated calling — Infobip · WhatsApp Business Calling — Twilio · Pricing breakdown — Wati