Overview
The WhatsApp cost center shows what messages sent through the WhatsApp API cost, message by message. For every message sent by a WhatsApp Cloud, Coexistence or 360dialog inbox, Meta reports in its delivery update whether that message is billable and in which category (marketing, utility, authentication or service). ConversaLabs records that fact and prices it with Meta's official rate card, in the right market and currency.
In one place you can answer:
- how much the account spent this month, by inbox, category and campaign;
- how much of the estimated monthly allowance of 1,000 service messages each number has used;
- how many messages were free, and why;
- how many are still awaiting delivery (Meta only bills what is delivered);
- how many were not billed because they failed;
- what a specific conversation cost.
Important: Meta says whether a message is billable, but it generally does not report the amount in the delivery update. Every amount in this cost center comes from the official rate card (or your account's custom rate) and is a faithful estimate, not Meta's invoice. The exception is marketing sent with a maximum price through the Marketing Messages API: in that case Meta reports the estimated cost on the message itself, and the platform uses that amount, unless the account has a custom rate for that market and category: the account rate wins, and Meta's amount stays in the message detail as a reference. The only total Meta itself reports is shown in the Reconciliation with Meta block.
Prerequisites
- The WhatsApp cost center feature enabled on your account. While it is off, nothing is recorded and no cost screen appears.
- At least one WhatsApp Cloud, Coexistence or 360dialog inbox. WhatsApp Web inboxes are not billed by Meta.
- Permission:
- see amounts: administrators and roles allowed to manage inboxes or to manage the WhatsApp Hub, always limited to the inboxes the role can reach;
- manage (rate cards, custom rate, historical estimate and visibility in conversations): administrators only.
Step by step
- Open Reports โ WhatsApp costs in the sidebar.
- Pick the period, the inbox and the display currency in the filter bar. Filters live in the page address, so you can reload or share the link without losing the view.
- Move through the tabs:
- Overview: the period's four totals (Billable, Awaiting delivery, Free and Not billed), the Service messages this month card (billed, free under the estimated monthly allowance and how many of the 1,000 were already used), the daily series by category, the grouping by inbox, category, campaign, sender or conversation, the reconciliation with Meta and the paginated message list;
- Usage: the billing month, with the estimated service-message allowance, free messages by reason and billable ones by category (see the sections below);
- By inbox: the cost of each number, with its currency, the partner badge and the last reconciliation date;
- Campaigns: what each campaign cost and how much was not billed because of failures;
- Rate cards (administrators only): the official rate cards in effect and the custom rate.
- Use Sync with Meta to refresh the reconciliation now instead of waiting for the next automatic read.
Settings & options
Measured Maestro subtotal in a call
When a call shows Maestro usage, its US dollar amount can appear as Measured subtotal and At least. This happens when a model request has no confirmed completion yet, even if other responses in the call have already been measured. ConversaLabs preserves the known portion and keeps the complete cost unconfirmed. The subtotal stays separate from WhatsApp's currency and costs. For more about measurement, see Brain usage.
What changed on 2026-10-01
Since 2026-10-01 these Meta billing rules apply; the allowance mentioned below is a platform estimate:
- Service messages are billed. Free-form text sent inside the 24-hour customer service window is now billed per delivered message, at the market's utility and authentication rate, with no volume tiers. Until 2026-09-30 it was free.
- The platform estimates a monthly allowance of 1,000 delivered service messages per number (see the section below). The projection applies a cost after it; actual billing follows Meta's report. Estimated monthly allowance; Meta does not publish this limit in the documentation tracked here.
- Utility inside the window is billed. A utility message sent while the customer service window is open is now billed. Until 2026-09-30 it was free.
- Reactions are never billed and do not count toward the estimated allowance.
- The ad's free window (Click-to-WhatsApp) went from 72 hours to up to 7 days. Meta's rule: if the business responds within the 24-hour customer service window using any type of message, that reply is free and opens the free window, starting from the time of the reply; while it is open, any message is free, templates included. Only a reply sent through the Cloud API opens the window: a reply over WhatsApp Web does not. Meta Business Agent messages are still charged per token inside it.
- New rate cards took effect. In Brazil the amounts did not change (see Rate cards).
- The 24-hour customer service window did not change: it still defines when you can reply with free-form text.
The Usage tab's timeline shows which rule applies to each period.
Message states
| State | What it means | Counts as cost? |
|---|---|---|
| Awaiting delivery | Meta accepted the message but has not confirmed delivery yet. The amount shows as provisional. | Not yet |
| Billable | Delivered and marked billable by Meta. | Yes |
| Free | Delivered at no charge, with the reason (see the table below). | No |
| Not billed | Failed, or went 30 days without a delivery confirmation. | No |
| New format, under review | Meta sent a billing format we have not verified yet. It stays out of every total until it is checked. | No |
Free reasons
| Reason | When it shows |
|---|---|
| Monthly service-message allowance | Since 2026-10-01: a service message treated as inside the number's estimated monthly allowance of 1,000; the limit does not prove it is free at Meta. |
| 24-hour customer service window | Until 2026-09-30: a message sent while the customer service window was open, before service charging started. |
| Ad free window (up to 7 days) | A message sent inside the window opened by a Click-to-WhatsApp ad. Inside it, every message is free. |
| WhatsApp Web | A message sent from the WhatsApp Web inbox, which Meta does not charge for. |
| WhatsApp Business app | A message sent from the app on a Coexistence inbox. |
The platform follows what Meta reports on each message: if Meta sends a message as free, it shows as free.
Monthly service-message allowance
The platform uses an estimated monthly allowance of 1,000 delivered service messages per number. Estimated monthly allowance; Meta does not publish this limit in the documentation tracked here. The quantity, message types and reset below are local assumptions:
- in the estimate, 1:1 and group service messages share the same allowance; in a group, each recipient the message is delivered to uses one estimated unit;
- the estimate does not roll over: the balance does not carry into the next month, and the count starts over every month;
- the documentation tracked here does not confirm the reset or its time zone. The platform uses the WhatsApp account's time zone, the same one as the Usage tab's billing month, and says so on screen;
- reactions do not count in the estimate;
- after the 1,000 in the estimate, a cost is projected at the recipient market's official service rate; actual billing depends on Meta's report.
The estimated allowance shows by default in three places: the Usage tab, the Service messages this month card on the Overview, and the Cost of this conversation block. Each one shows how many messages were used, how many remain, the date the allowance ran out in the estimate (when it did) and the price of each message after it, projected from the rate in force. Since October 2026, the Service messages this month card says how many messages were billed and how many are presented as free under the monthly allowance in the estimate, without confirming that limit as a Meta rule.
The estimated count uses what Meta reports on each delivered message; those reports do not confirm the allowance, its types or its reset. Messages with no delivery confirmation yet are left out until the confirmation arrives.
To hide the allowance, an administrator turns off Show the 1,000 service-message allowance in Settings โ Account Settings โ Costs in conversations. Hiding it does not change any amount.
Government and non-profit organizations. Until 2027-12-31, service messages stay free above the estimated allowance for governments and non-profits that Meta considers eligible. Meta decides eligibility, and there is no programmatic way yet to know whether an account is eligible. The platform follows what Meta reports on each message: if it arrives as free, it shows as free.
Payment method. If Meta's messaging account has no payment method on file, verify that setting before relying on billable messages. The estimated allowance does not confirm how far Meta will deliver or a block after it. Add a payment method at Meta; on an account billed by a partner, the payment method is the partner's.
Usage tab
The Usage tab shows the billing month in the WABA time zone and the reset date used by the platform's estimate, without confirmation of the allowance reset by Meta. It includes:
- each number's estimated service-message allowance: estimated usage and remaining allowance, the date it ran out in the estimate and the projected price after it;
- Free by reason: estimated monthly service-message allowance, 24-hour customer service window (until 2026-09-30), ad free window (up to 7 days), WhatsApp Web and WhatsApp Business app (Coexistence);
- Billable by category: quantity, unit rate, amount and origin;
- Awaiting delivery and Not billed.
Where the amount comes from
Every amount states its origin: Official list rate, Estimated volume tier or Account custom rate. For marketing sent with a maximum price through the Marketing Messages API, the amount is the estimated cost Meta reports on the message, with the origin Cost reported by Meta; without a maximum price, that marketing uses the rate card's marketing rate. If the account has a custom rate for the market and category, it wins over the cost reported by Meta, which shows in the entry detail as Value reported by Meta.
When the account is billed by a partner (a BSP), the label adds "ยท billed by a partner": in that case Meta does not report the cost through the API, only the volume, the amount comes from the rate card and the partner may charge a different amount.
Currency
The currency is the WhatsApp Business account (WABA) currency, read directly from Meta. Meta bills in 16 currencies, and the platform loads the official rate cards in USD, in BRL and in the currencies of the connected accounts. Conversion to the display currency is for reading only and always shows the exchange rate and date used. Until the WABA currency has been read, amounts are marked Unknown currency, and different currencies are never added together.
Businesses billed by Meta in Brazil (Sold-To Brazil) must migrate their messaging account to BRL by 2027-06-30. The migration is done with Meta.
Market
The price depends on the destination number's market (for example Brazil, North America or Rest of Latin America), following Meta's official map, which the platform loads on its own. A number whose market is not recognized stays New format, under review, with no amount: the platform never assumes Brazil.
Since 2026-10-01 nine markets have their own rates: Bangladesh, Iraq, Kazakhstan, Kuwait, Morocco, Nepal, Oman, Sri Lanka and Ukraine. The platform recognizes the eight that have their own country code. Kazakhstan shares the +7 code with Russia and Meta has not yet published how to tell them apart, so Kazakhstan has no market of its own on the platform until Meta publishes that split.
Meta Business Agent
If the account uses the Meta Business Agent (Meta's AI agent that replies on WhatsApp), the Overview shows administrators its own block with the period's billable messages, billed tokens and amount charged, read from Meta. Since 2026-08-01 Meta charges these messages per token, in a single charge that includes delivery, and they are still charged inside an ad's free window.
- The block is for administrators only: the amount belongs to the agent's billable account and cannot be split by inbox.
- The block shows up when the agent account is configured or when Meta used Conversation Routing on a Cloud API number of this account.
- Under Rate cards, the Meta Business Agent section is always visible to administrators, even before there is any usage. There they enter the Meta Business Agent billable account ID (in Billing Hub, under Accounts โบ Meta Business Agent accounts) and that account's currency. Saving does not query Meta. Meta does not report the currency through the API, so the amount shows in that currency, with no conversion. The block's Configure the agent account button takes you to that section.
- The request uses the WhatsApp token the account already has. It needs the business_management permission: on a direct connection, grant it to the system user when you generate the token; through a Solution Provider, it requires Advanced access in App Review, the permission in the Embedded Signup configuration and the client completing Embedded Signup again. Without it, the block shows Permission required.
- With no usage in the period, the block shows No Meta Business Agent usage. Days follow the agent account's timezone, and the amount is not an invoice.
- An answer from Meta is kept for 15 minutes, and an error for 5 minutes. Try again asks Meta again right away, for example after you grant the permission.
Costs in conversations
In Settings โ Account Settings โ Costs in conversations, the administrator chooses what the team sees inside a conversation:
| Option | What the team sees |
|---|---|
| Hidden | No cost in the conversation. The cost center stays available to whoever has permission. |
| Indicator only (default) | Whether the message is free or billable, and why, with no amounts. Not even administrators see amounts in the conversation: the full number lives in the cost center. |
| Indicator and amounts for people who can see costs | Administrators and roles with inbox or Hub permission see the amounts; everyone else sees only the indicator. |
| Indicator and amounts for every agent | Every agent who opens the conversation sees the amount of each message. |
The same section holds the Show the 1,000 service-message allowance preference, on by default.
In conversations this shows up in three places, and none of it blocks sending:
- a notice above the reply box, saying whether the reply will be free or billed and until when the
customer service window stays open:
- while the estimate shows a remaining balance, it presents the reply as free under the monthly allowance, with how many of the 1,000 were already used (for example, "820 of 1,000 used");
- after the estimated allowance, it presents the reply as will be billed, with the projected amount for people who can see it. Those notices are estimates; actual billing depends on Meta's report;
- inside an ad's free window, it shows the reply is free because of the ad; this also applies to the first Cloud reply within the 24 hours, which is the one that opens the window;
- a utility template sent while the window is open shows as billed since 2026-10-01;
- in a hybrid inbox, switching the send to WhatsApp Web turns the notice into "Meta does not charge for it";
- a discreet marker on each sent message (Free, Billable, Awaiting or Not billed);
- the Cost of this conversation block in the side panel, with the window, the month's totals, the number's estimated service-message allowance and a link to the cost center.
Each inbox can inherit the account setting or override it in the inbox's Costs tab, with a Restore the account default button to go back.
Inbox Costs tab
In Settings โ Inboxes โ (inbox) โ Costs you see the WABA billing currency, the partner badge, the month's totals, the reconciliation with Meta and that inbox's visibility. On Coexistence inboxes, a notice reminds you that messages sent from the WhatsApp Business app are not billed and do not open or extend the API window. On a WhatsApp Web inbox the tab says Meta does not charge for it. On a 360dialog inbox there is no reconciliation, because Meta does not deliver that WABA's analytics.
Campaign cost
The detail of a WhatsApp Cloud campaign shows four cards: Billable, Awaiting delivery, Not billed and Estimate at dispatch (the price frozen when the campaign was sent). The Cost column of the recipient list shows the state and what each recipient actually cost. A retry adds to that recipient's cost. Campaigns sent over WhatsApp Web show no cost.
Rate cards (administrators)
The platform loads Meta's official rate cards on its own, including the 2026-10-01 ones, in USD, in BRL and in the currencies of the connected accounts, plus the market map. There is no manual step. The Rate cards tab lists those cards by effective date and currency, with the source and the file's verification code. The service column of the 2026-10-01 card is the official one published by Meta.
Per-message rate in Brazil from 2026-10-01 (same as the previous card):
| Category | USD | BRL |
|---|---|---|
| Marketing | 0.0625 | 0.3217 |
| Utility | 0.0068 | 0.0350 |
| Authentication | 0.0068 | 0.0350 |
| Service (after the estimated allowance) | 0.0068 | 0.0350 |
Other markets did change, such as Mexico, Saudi Arabia, the United Arab Emirates, Pakistan, Peru, South Africa and the Rest of Asia Pacific and Rest of Middle East regions.
This tab also holds:
- Sync official rate card, which forces a read now and shows the real result, including when the read fails;
- the custom rate per market, category and currency, with Restore default per line;
- Estimate history, which prices messages sent before the feature was enabled. Those amounts are always marked as estimates and never pass for a confirmed charge.
Use cases
- Close the month: open Usage, check billable messages by category and compare with Meta's reconciliation.
- Track the service allowance: see estimated usage of each number's 1,000 service messages, the exhaustion date in the estimate and the projected cost of each reply after it.
- Find the most expensive campaign: in the Campaigns tab, sort by billable amount and open the detail.
- Guide the team: turn on Indicator only to show a reply's projected cost, outside the window or after the estimated allowance, without exposing amounts.
Tips, limits & best practices
- The amount comes from the rate card, not the invoice. On an account billed by a partner, Meta does not report the cost through the API and the partner may charge differently from the rate card: check the price agreed with them and record it as a custom rate.
- WhatsApp Web is not billed by Meta, and neither are messages from the WhatsApp Business app (Coexistence). In the platform's estimate, neither counts toward the allowance; that does not confirm the types included in an official Meta allowance.
- Reactions are never billed and do not count toward the estimated allowance.
- A message only becomes Billable when Meta confirms delivery. If it goes 30 days without that confirmation, it becomes Not billed.
- If the messaging account is yours (not billed by a partner), check that it has a payment method on file at Meta before relying on billable messages; do not use the estimated allowance as a delivery guarantee.
- The campaign cost refreshes about 10 seconds after each state change.
- Messages are kept for 24 months. Daily totals are kept permanently.
Troubleshooting
- Meta Business Agent: Permission required: the account's WhatsApp token lacks the business_management permission; grant it as described in Meta Business Agent.
- "WhatsApp costs" does not appear under Reports: the feature is not enabled on the account, or your role is not allowed to see costs.
- I see "Billable" but no amount: visibility is set to Indicator only, or your role cannot see amounts. Check Settings โ Account Settings โ Costs in conversations.
- I do not see the allowance: the Show the 1,000 service-message allowance preference was turned off. An administrator can turn it back on in Settings โ Account Settings โ Costs in conversations. It only appears for WhatsApp Cloud numbers.
- The allowance shows fewer messages than the team sent: in the estimate, only service messages Meta confirmed as delivered count. The ones still awaiting delivery come in when the confirmation arrives, and reactions do not count in the estimate; that does not confirm the types of an official allowance.
- A service message went out free after the estimated allowance: the platform follows what Meta reports on each message. That is the case, for example, for governments and non-profits Meta considers eligible, until 2027-12-31.
- Support messages stopped being delivered after the month's 1,000 in the estimate: verify the payment method at Meta and the provider's report; the estimated limit does not confirm the cause of the interruption. If a payment method is missing, add one at Meta; on an account billed by a partner, talk to the partner.
- The notice above the reply box does not appear: the platform does not have trustworthy data for that conversation yet. It prefers to show nothing rather than a wrong "free".
- "Unknown currency": the WABA currency has not been read from Meta yet. Amounts are still recorded and stay marked until it is read.
- "New format, under review": Meta sent a new category or type, or the number's market was not recognized. The message stays out of the totals until it is verified.
- The reconciliation shows volume only: the account is billed by a partner, and Meta does not report cost through the API in that case.
- The sync with Meta failed: Meta did not answer the reconciliation read. Rate card amounts stay valid; try again later.
- "Sync official rate card" showed a failure: reading the official rate cards did not work this time. The rate cards already loaded stay in force; try again later.