Which WhatsApp costs Pozy bills, which ones Meta bills to your WhatsApp Business Account, and how to read Meta's numbers through the API.
WhatsApp has two bills. Pozy bills for the number, the connection and what you send through Pozy. Meta bills your WhatsApp Business Account (WABA) directly for template deliveries, outbound call minutes and its AI agent. Pozy never resells or marks up Meta's fees, and they never appear on your Pozy invoice.
#What Pozy bills
| Item | Price |
|---|---|
| The connected WhatsApp number | Counts as one connected account, like any other platform (connected account pricing) |
| A number bought through Pozy | From $3 per number per month, by country and number type. The price shows before you buy and is fixed at that rate. Charged at activation and on the 1st of each month. |
| Messages you send | Each message counts as one outbound message, including one per broadcast recipient. The first 10,000 each month are free across the workspace, then $1 per 10,000. |
| Calls | The connection leg, per minute by destination country, from $0.01 per minute. Calls routed to a SIP or WebSocket destination have no phone-network leg. |
| Call recording | $0.004 per minute, only when recording is on |
Templates, flows, groups, broadcasts, sequences and the inbox have no extra Pozy fee beyond the outbound message meter.
Every usage price on one table
| What | Price |
|---|---|
| Outbound messages (inbox replies, broadcasts, sequences; not X DMs or SMS) | First 10,000 each month free, then $1 per 10,000 |
| Managed ads (running or in review) | First 500 free, then $0.01 per active ad per month |
| X post | $0.015 per post |
| X post containing a link | $0.20 per post |
| X reads (analytics, lookups) | $0.005 per resource |
| X DMs | $0.01 per DM read, $0.015 per DM sent |
| Phone numbers | From $3 per number per month, by country |
| Calls | From $0.01 per minute by destination. Recording $0.004 per minute, transcription $0.03 per minute |
| Branded calling | $0.10 per branded call |
| SMS | From $0.008 per segment by destination |
| US 10DLC registration | $9 one-time brand fee, then $20 per month per campaign ($4 for a sole proprietor) |
| RCS agent | $150 setup, then $160 per month in the US or $75 elsewhere, plus $750 on US carrier approval |
| Creator payouts | 4% of each transfer, minimum $0.50 |
| Support assistant | At cost per answered question, capped at $100 per month |
#What Meta bills
| Item | Price | Billed to |
|---|---|---|
| Free-form messages inside the 24-hour window | Free | Nobody |
| Utility templates sent inside the 24-hour window | Free | Nobody |
| Template deliveries outside the window | Per delivered message, by template category (MARKETING, UTILITY, AUTHENTICATION) and the recipient's country |
Your WABA |
| Inbound calls | Free | Nobody |
| Outbound calls | Per minute, by the recipient's country | Your WABA |
| Business AI agent replies | Per token, roughly 4 to 5 US cents per message | The merchant's Business Agent billable account |
Meta publishes its own rate cards by country. Use GET /v1/whatsapp/calls/estimate to see both legs of a call before you dial.
Add a payment method to the WABA in Meta Business Suite. Without one, Meta stops delivering templates and outbound calls once its free allowance runs out, even if your Pozy account is in good standing.
#The number you send from
| Number | Pozy number fee | Meta fees | Notes |
|---|---|---|---|
| The shared sandbox number | None | None | One locked template and one test phone, for testing only |
| A number bought through Pozy | From $3 per month | Yes | US numbers are ready in seconds. Other countries may need a one-time KYC form. The same number can also make calls and send SMS. |
| Your own number | None | Yes | Connected through Embedded Signup or a Meta token |
Buying a number needs a payment method on the Pozy workspace. Without one the purchase, and the WhatsApp connection itself, return 402 payment_required.
#See what Meta is charging
GET /v1/whatsapp/pricing-analytics returns the message volume and approximate cost Meta reports for one number. Use it to show a merchant what they are spending on Meta's side.
curl "https://api.pozy.ai/v1/whatsapp/pricing-analytics?accountId=6712a9d4c0e3b58f1a7d2e64&start=2026-10-01&end=2026-10-31&granularity=DAILY&dimensions=PRICING_CATEGORY" \
-H "Authorization: Bearer $POZY_API_KEY"const res = await fetch("https://api.pozy.ai/v1/whatsapp/pricing-analytics?accountId=6712a9d4c0e3b58f1a7d2e64&start=2026-10-01&end=2026-10-31&granularity=DAILY&dimensions=PRICING_CATEGORY", {
headers: { Authorization: `Bearer ${process.env.POZY_API_KEY}` },
});
const data = await res.json();
if (!res.ok) throw new Error(data.error);
for (const p of data.dataPoints) console.log(p.start, p.pricingCategory, p.volume, p.cost);import os
import requests
resp = requests.get(
"https://api.pozy.ai/v1/whatsapp/pricing-analytics",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
params={
"accountId": "6712a9d4c0e3b58f1a7d2e64",
"start": "2026-10-01",
"end": "2026-10-31",
"granularity": "DAILY",
"dimensions": "PRICING_CATEGORY",
},
timeout=30,
)
for p in resp.json()["dataPoints"]:
print(p["start"], p["pricingCategory"], p["volume"], p["cost"])| Parameter | Values |
|---|---|
granularity |
HALF_HOUR, DAILY or MONTHLY |
dimensions |
Any of COUNTRY, PHONE, PRICING_CATEGORY, PRICING_TYPE, TIER, comma-separated |
| Filters | pricingCategories, pricingTypes, countryCodes, metricTypes |
Meta's figures are approximate and can lag behind real traffic. Meta's own invoice is the final word.
#Ways to keep Meta costs down
- Reply inside the 24-hour window whenever you can. Free-form replies are free on Meta's side.
- File templates under the honest category. Utility templates usually cost less than marketing ones, and Meta reclassifies templates that do not match.
- Set a short delivery window on time-sensitive templates (
message_send_ttl_seconds), so a code that could not be delivered in time is dropped instead of delivered (and charged) after it has expired. - Cap the business agent with a budget.
#Endpoints
| Endpoint | What it does |
|---|---|
GET /v1/whatsapp/pricing-analytics |
Get pricing analytics |
GET /v1/whatsapp/calls/estimate |
Estimate per-minute cost |
GET /v1/whatsapp/calls |
List call history for an account |