Per-message pricing is live and now applies to businesses for whom it is July 1, 2025 or later, based on their WABA timezone.
This document explains how pricing works on the WhatsApp Business Platform.
To align with industry-standards, effective July 1, 2025, we now charge on a per-message basis:
"type":"template"
).We provide value to businesses in several ways:
"type":"text"
, "type":"image"
, etc.). These can only be sent within an open customer service window. See Sending messages for a list of message types.Our pricing explainer PDF outlines how we charge, and the various ways we provide value to businesses, in PDF form:
Pricing Explainer PDFUnlike non-template messages, template messages are the only message type that can be sent outside of a customer service window. Templates can be categorized as:
See Template categorization to learn how template categorization works.
Is it billable? | |||||
---|---|---|---|---|---|
Message type | Message category | When can it be sent? | Delivered outside CSW* | Delivered inside CSW* | Delivered inside FEP** window |
Template messages | Marketing | Anytime | Yes | Yes | No |
Authentication | Anytime | Yes | Yes | No | |
Utility | Anytime | Yes | No | No | |
Non-template (free-form) messages | Service | Only inside an open CSW* | N/A | No | No |
* Customer service window
** Free entry point window
Businesses are responsible for reviewing the category assigned to their approved templates. Whenever a template is used, a business accepts the charges associated with the category applied to the template at time of use.
In the example below, a business sends 4 messages to a WhatsApp user but is only charged for 2 (1 marketing charge, 1 utility charge).
Hour | Action | Rate | Reason |
---|---|---|---|
0 | You send a marketing template message to a WhatsApp user, promoting your new product. | Marketing | All marketing template messages are charged. |
2 | The user messages you about the product. This opens a 24 hour customer service window ("CSW"). | - | Messages sent from a WhatsApp user to a business are not charged. |
3 | You send a text message to the user ( | None | All non-template messages are free within an open customer service window. |
4 | The user purchases the product and you send them a utility template confirming their order. | None | The CSW is still open, and utility templates sent within an open CSW are free. |
26 | The CSW closes, which means you can no longer send non-template messages. | - | 24 hours have passed since the user last messaged you. |
30 | You send a utility template message to the user, updating them on their order. | Utility | Utility template messages sent outside of a CSW are charged, and no open CSW exists between you and the user. |
To better enable our customers to plan and prepare for pricing updates, the following pricing calendar applies for messaging and voice on the WhatsApp Business Platform:
Type of pricing update | Examples | Minimum advance notice |
---|---|---|
Rate card update | Updating the rate for a given market–product Updating the volume tiers for a given market–product (utility and authentication only) Moving a market from one pricing region (e.g. “Other”) to another or to be standalone on the rate card | 1 month |
Pricing model add-on | Our July 1, 2025, introduction of new volume tiers for utility and authentication messages | 3 months |
Pricing model change | Our July 1, 2025 update to our pricing model, from conversation-based pricing to per-message pricing | 6 months |
Rates vary based on template category, volume tier, and country/region rate.
These rate cards reflect our current rates and volume tiers, effective July 1, 2025, based on WhatsApp Business Account timezone. This information is also available interactively on our WhatsApp Business website.
Upcoming updates
Effective October 1, 2025 at 12am by WhatsApp Business Account timezone, the rates below will apply. These updates reflect:
Rate cards effective October 1, 2025:
Previous updates
Specific countries have an authentication-international rate. Our rate cards reflect these rates. See Authentication-International rates to learn about these rates and if they apply to you.
Charges for conversations are based on the country calling code of the recipient WhatsApp phone number. This information available in a CSV file:
Country Calling Codes and Regional Rate Mapping CSVYou can unlock lower utility and authentication rates based on the number of messages you send in a month.
The table below is illustrative and only highlights the dynamics of volume tiers. Please refer to our rate cards to see what we charge.
Below are several examples to highlight how our tiers work and what we would charge in a given month, for a given market–category. These examples refer to the illustrative table above:
Example 1: A business that sends a total of B authentication messages in a month to India is charged:
Example 2: A business that starts to be charged our authentication-international rates on the 15th day of the month:
Example 3: A business has 3 WABAs sending authentication messages to India. For WABA A, it is still July 31 based on their timezone. For WABAs B and C, it is already August 1 based on their timezone. For July, the business is already being charged Tier Rate 1.
Example 4: A business has 3 WABAs, integrated across 2 solution providers. Provider 1 sends the first B messages in a given month, and provider 2 starts sending messages as of when the business is in the 3rd tier. The business does not send enough messages that month to reach the next tier. What we would charge each provider:
New account_update trigger event and payload available starting October 1, 2025.
Starting October 1, 2025, an account_update webhook with event
set to VOLUME_BASED_PRICING_TIER_UPDATE
will be triggered when your WhatsApp Business Account reaches a new volume tier, in any market, in a given month. This complements our pricing_analytics endpoint, which will continue to provide intra-month tiering progress and tiering information for delivered messages.
Example webhook:
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "time": 1743451903, "changes": [ { "value": { "volume_tier_info": { "tier_update_time": 1743451903, "pricing_category": "UTILITY", "tier": "25000001:50000000", "effective_month": "2025-11", "region": "INDIA" }, "event": "VOLUME_BASED_PRICING_TIER_UPDATE" }, "field": "account_update" } ] } ] }
tier_update_time
tells when your WABA reached a higher volume tier (Unix timestamp).pricing_category
tells you the template category for which your new volume tier rate applies.tier
tells you the new volume tier's lower and upper bounds.effective_month
tells you the month in which your new volume tier rate is in effect.region
tells you the WhatsApp user country/region for which your new volume tier rate applies.You can get volume tier information via template analytics.
Non-template messages, which can only be sent within an open customer service window, are free. These messages will have type
set to free_customer_service
in the pricing
object of status messages webhooks:
"pricing": { "billable": false, "pricing_model": "PMP", "type": "free_customer_service", "category": "service" }
Note that for On-Premises API users running version 2.60 and lower, type
is omitted, so a category
of service
and billable
set to false
identifies these messages.
Utility template messages sent within an open customer service window are free. These messages will have type
set to free_customer_service
and category
set to utility
in the pricing
object of status messages webhooks:
"pricing": { "billable": false, "pricing_model": "PMP", "type": "free_customer_service", "category": "utility" }
Note that for On-Premises API users running version 2.60 and lower, type
is omitted, so a category
of utility
and billable
set to false
identifies these messages.
If you send a message to a WhatsApp user prior July 1, 2025 (which is when we switched from conversation-based pricing to per-message pricing), a utility conversation is opened between you and a user that spans the switch to per-message pricing (the conversation was opened before the switch but won't close until after the switch). In this case, utility templates sent to the user after the switch while the conversation is open will be free, but attributed to the open conversation. In status messages webhooks, these messages will have a pricing_model
of CBP
and the utility conversation ID will be assigned to conversation.id
. Once the conversation closes, subsequent utility messages will use per-message pricing, which will be reflected in new webhooks.
If a WhatsApp user messages you via a Click to WhatsApp Ad or Facebook Page Call-to-Action button using a device running our Android or iOS app (our desktop and web apps are not supported):
FEP windows remain open for 72 hours. While open, you can send any type of message to the user at no charge. Note, however, that the customer service window is independent of the FEP window, so if the customer service window closes, you will only be able to send template messages.
Use the pricing_analytics field to get per-message pricing breakdowns and tiering information for delivered messages.
Billable messages have type
set to regular
in the pricing
object of status messages webhooks:
"pricing": { "billable": true, "pricing_model": "PMP", "type": "regular", "category": "<PRICING_CATEGORY>" }
The <PRICING_CATEGORY>
tells you what rate was applied (e.g. marketing
). See the status messages webhook reference for a list of possible values.
Note that currently, tiering information is not included in any webhooks. Use the pricing_analytics field to get tiering information for delivered messages.
Billing and billing-related actions are handled through the Meta Business Suite. See About Billing For Your WhatsApp Business Account for more information.
The WhatsApp Business Calling API has different pricing. See our Calling API pricing document to learn more.
Conversation-based pricing is deprecated. It was replaced with per-message pricing on July 1, 2025.