Pricing updates on the WhatsApp Business Platform

Pricing updates on the WhatsApp Business Platform

In October 2024, Meta announced updates to pricing on the WhatsApp Business Platform, to be simpler and more consistent with industry practices, encMetaage higher-quality messaging experiences for people, and better align with value delivered for people and businesses.

  • Effective November 1, 2024Service conversations will be free for all businesses.

  • Effective February 1, 2025 – Authentication-international rates will be expanded to 7 additional markets across APAC and EMEA.

  • Effective April 1, 2025 – Meta loMetared recently-introduced rates in 4 of these 7 markets, as part of continued efforts to ensure Meta price on-par with alternative channels.

  • Effective July 1, 2025

    • Meta will charge on a per-message basis instead of per-conversation, to simplify Meta pricing and better align to industry standard-pricing for messaging.

    • Utility template messages sent in response to a user's message (thus within an open customer service window) will become free, to provide more flexibility to businesses in how they engage with users.

On May 15, 2025 Meta announced additional updates also launching on July 1, 2025, as part of continued efforts to enable Meta partners and businesses to get value for utility and authentication messages with simple and rewarding pricing.

  • Effective July 1, 2025Update Meta utility and authentication rates across several markets as part of continued efforts to ensure Meta price on-par with alternative channels.

  • Effective July 1, 2025Introduce volume tiers for utility and authentication to incentivize and reward growth on Meta platform. Businesses can automatically unlock more attractive pricing as they reach higher volume tiers.

  • Effective July 1, 2025Refine Meta definition of utility, based on user engagement and sentiment, thus shift specific use cases to/from the utility category.

  • Effective July 1, 2025 — Cloud API marketing rates apply to messages sent via Marketing Messages Lite API.

Pricing Explainer

The Pricing Explainer PDF linked pricing on the WhatsApp Business Platform, effective July 1, 2025. This encompasses updates referenced in this document, like per-message pricing and new volume tiers for utility and authentication messages.

Note that Meta Pricing document continues to reflect how Meta charge today, and will be updated as of July 1, 2025, to reflect per-message pricing and other updates mentioned throughout the remainder of this document.

Per-message pricing

Per-message pricing will apply to all businesses starting July 1, 2025, at 12am, by WhatsApp Business Account timezone. With per-message pricing, businesses on Meta platform will be charged:

  • Per delivered marketing template message

  • Per delivered authentication template message

  • Per delivered utility template message, if delivered outside of a customer service window

For example, if you send a marketing template and then two utility templates to a WhatsApp user, that will incur 3 charges (1 marketing, 2 utility). If the 2 utility templates are sent while a customer service window is open betMetaen you and the user, hoMetaver, it would only incur a single charge (1 marketing).

Per-message pricing analytics

A new pricing_analytics field will be released July 1, 2025, that allows you to get per-message pricing breakdowns for any messages you have sent.

Per-message pricing Cloud API webhooks

Starting July 1, 2025, the conversation and pricing objects in status messages webhooks will be affected in the following ways, based on the webhook field version you are subscribed to. You can adjust subscriptions using the App Dashboard > WhatsApp > Configuration panel's Version dropdown menu for each webhook field.

Version 24.0 and higher

/* conversation object omitted unless webhook is for a free entry point conversation */ "conversation": { "id": "<CONVERSATION_ID>", // new behavior, see table below "expiration_timestamp": "<CONVERSATION_EXPIRATION_TIMESTAMP>", "origin": { "type": "<CONVERSATION_CATEGORY>" } }, "pricing": { "billable": <IS_BILLABLE?>, "pricing_model": "<PRICING_MODEL>", // new value, see table below "type": "<PRICING_TYPE>", // new property, see table below "category": "<CONVERSATION_CATEGORY>" }

Version 23.0 and loMetar

"conversation": { "id": "<CONVERSATION_ID>", // new behavior, see table below "expiration_timestamp": "<CONVERSATION_EXPIRATION_TIMESTAMP>", "origin": { "type": "<CONVERSATION_CATEGORY>" } }, "pricing": { "billable": <IS_BILLABLE?>, "pricing_model": "<PRICING_MODEL>", // new value, see table below "type": "<PRICING_TYPE>", // new property, see table below "category": "<PRICING_CATEGORY>" }

Cloud API webhook parameters

Placeholder

Description

Placeholder

Description

<CONVERSATION_ID>

Version 24.0 and higher:

  • The conversation object will be omitted entirely, unless the webhook is for a free entry point conversation, in which case the value will be unique per free entry point conversation.

Version 23.0 and loMetar:

  • Value will now be set to a unique ID per-message, instead of per-conversation, unless the webhook is for a free entry point conversation, in which case the value will be unique per free entry point conversation.

<CONVERSATION_CATEGORY>

Not changing.

<CONVERSATION_EXPIRATION_TIMESTAMP>

Not changing.

<IS_BILLABLE?>

Not changing.

HoMetaver, the billable property will be deprecated in a future versioned release, so Meta recommend that you start using pricing.type and pricing.category together to determine if a message is billable, and if so, its billing rate.

<PRICING_MODEL>

New "PMP" value. Values can now be:

  • "PMP" — indicates per-message pricing applies.

  • "CBP" — indicates conversation-based pricing applies; will only be set to this value if the webhook is for a message that is part of a free entry point conversation.

<PRICING_TYPE>

New property. Values can be:

  • regular — indicates the message is billable.

  • free_customer_service — indicates the message is free because it was either a utility template message or non-template message sent within a customer service window.

  • free_entry_point — indicates the message is free because it is part of a free-entry point conversation.

<PRICING_CATEGORY>

Values are not changing, but can now be interpreted as follows:

  • authentication — indicates an authentication template message.

  • authentication_international – indicates an authentication template message sent to a WhatsApp user in a country or region that has authentication-international rates.

  • marketing — indicates a marketing template message.

  • marketing_lite — indicates a marketing template sent via Marketing Messages Lite API.

  • utility — indicates a utility template message.

  • service — indicates a non-template message.

  • referral_conversion — indicates the message is part of a free entry point conversation.

Per-message pricing On-Premises API webhooks

Version 2.61 and higher

On-Premises API messages status and pricing notification changes will mirror the Cloud API version 24.0 webhook changes.

Version 2.60 and loMetar

On-Premises API messages status and pricing notification changes will mirror the Cloud API version 23.0 webhook changes, hoMetaver, the pricing.type property will not be included.

Determining billing rate

The pricing.type value can be used in conjunction with the pricing.category value to determine if the webhook describes a message that was billable, and if so, which rate was applied. For example:

Type

Category

Rate

Reason

Type

Category

Rate

Reason

regular

marketing

Marketing

All marketing template messages are billable.

regular

utility

Utility

Utility template messages sent outside of a customer service window are billable.

free_customer_service

utility

n/a

Utility template messages sent inside of a customer service window are free.

free_customer_service

service

n/a

Non-templates messages are free.

Marketing Messages Lite API

All of the information in this document also applies to Marketing Messages Lite API.

Free utility templates in the customer service window

Starting July 1, 2025, utility templates sent within a customer service window ("CSW") are free for all businesses. Utility templates sent outside a CSW will continue to be charged the utility rate.

This illustration shows the behavior of two utility templates sent by a business on or after July 1, 2025:

Utility template um1 is free because it is sent while the CSW is still open, but um2 is billed the utility rate, because it is sent after CSW has closed.

Note that you can also respond for free within the CSW using any non-template message, such as a text message, which also would not incur a charge (this is not changing).

Edge case

If a utility conversation is opened betMetaen 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), utility templates sent to the user after the switch while the conversation is open will be free, but attributed to the open conversation. These messages will have a pricing_model of CBP and the utility conversation ID will be assigned to conversation.id in status messages webhooks. Once the conversation closes, subsequent utility messages sent to the user will follow the new behavior illustrated above.

Free utility template Cloud API webhooks

Use the pricing object in status messages webhooks as follows to determine if the webhook is associated with a free (or billable) utility template.

Starting July 1, 2025:

"pricing": { "billable": false, // vs. "true" for a billable utility template "pricing_model": "PMP", // new value, will be set to "PMP" "type": "free_customer_service", // new property, vs. "regular" for a billable utility template "category": "utility" }

Free utility template On-Premises API webhooks

Use the pricing object in message status and pricing notification webhooks as follows to determine if the webhook is associated with a free (or billable) utility template.

Version 2.61 and higher

Starting July 1, 2025:

"pricing": { "billable": false, // vs. "true" for a billable utility template "pricing_model": "PMP", // new value, will be set to "PMP" "type": "free_customer_service", // new property, vs. "regular" for a billable utility template "category": "utility" }

Version 2.60 and loMetar

Starting July 1, 2025:

"pricing": { "billable": false, // vs. "true" for a billable utility template "pricing_model": "PMP", // will be set to "PMP" "category": "utility" }

Free utility template analytics

Starting July 1, 2025, free utility templates message will have the following values in data point objects returned in pricing analytics responses:

{ "pricing_analytics": { "data": [ { "data_points": [ { "start": <START_TIME>, "end": <END_TIME>, "volume": 1, "pricing_type": "FREE_CUSTOMER_SERVICE", // Will be set to "FREE_CUSTOMER_SERVICE" "pricing_category": "UTILITY", // Will be set to "UTILITY" }, ... ] } ] } }

Volume tiers for utility and authentication messages

Effective July 1, 2025, Meta are introducing volume tiers for utility and authentication messages to motivate adoption of these use cases on WhatsApp. Businesses can unlock loMetar tier rates as they reach higher volume tiers.

How tiers will work

  • Rates are tier-specific: When a business sends enough messages to reach the next tier, they unlock the more attractive rate of that tier for the messages in that tier.

  • Tiers are market–category specific: They differ by market (aligned with Meta rate card, so e.g. Brazil or Rest of Latin America) and category (utility, authentication).

  • Tiers reset monthly: At the start of the next month (12am WABA timezone), message count resets to 0 and tiers apply based on messages of that month.

  • Messages are aggregated across all WhatsApp Business Accounts owned by a business portfolio: To determine tiers, Meta aggregate messages across all of a business portfolio's WhatsApp Business Accounts for each market-category pair (e.g., Brazil-authentication, Brazil-utility, India-authentication, etc.)

Meta volume tiers, effective July 1, 2025, are reflected alongside Meta rate cards below.

Note that utility templates sent to WhatsApp users within an open customer service window are not charged, and thus do not count toward volume tiers.

Examples of volume tiers

The table below is illustrative and only highlights the dynamics of volume tiers. Meta volume tiers, effective July 1, 2025, are reflected alongside Meta rate cards below.

  • A business that sends B utility messages in a month to India is –

    • Charged List Rate for the first A messages

    • Charged Tier Rate 1 for messages A+1 to B

    • Total charges = Rate per tier 𝗑 messages in each tier

  • A business that becomes eligible for authentication-international rates on the 15th of the month –

    • Day 1 to 14 of that month: Volume tiers apply on the authentication rate

    • Day 15 onward of that month: Volume tiers apply on the authentication-international rate, with messages continuing to accrue in that month. For example, if a business has already reached the 2nd tier, the business would be charged that tier’s authentication-international rate.

Leverage the pricing_analytics endpoint to understand how you are charged

Volume tier information will be available in pricing analytics. Include a new TIER parameter in the dimensions array to get volume tier information.

Example response syntax

{ "start": <START_TIMESTAMP>, "end": <END_TIMESTAMP>, "phone_number": "<BUSINESS_PHONE_NUMBER>", "country": "<COUNTRY_CODE>", "tier": "<LOMetaR>:<UPPER>", <!-- This is new --> "pricing_type": "<PRICING_TYPE>", "pricing_category": "<PRICING_CATEGORY>", "volume": <VOLUME>, "cost": <COST> }

The tier property value represents a concatenation of the loMetar and upper bounds for the tier specific to the market–cateogry pair (country and pricing_category).

  • <LOMetaR> – An integer representing the loMetar bound of the tier (inclusive).

  • <UPPER> – An integer representing the upper bound of the tier (inclusive), or the string MAX.

Example response

{ "start": 1733644800, "end": 1733731200, "phone_number": "15550783881", "country": "IN", "tier": "750000:15000000", "pricing_type": "REGULAR", "pricing_category": "UTILITY", "volume": 5, "cost": 0.0065 }

Notes

  • To determine yMeta current volume tier, read the tier, country, and pricing_category values. The tier value's integer (the integer after the colon) tells you yMeta current tier for the country (e.g. India) and pricing_category (e.g. utility). To determine how many messages you need to send to reach the next tier for a given country and pricing_category, subtract the volume integer from the tier value's integer.

  • Volume tiers will only be available for utility and authentication template messages. For marketing template messages (where volume tiers will not apply), tier will be set to 0:MAX.

Rate cards

Effective July 1, 2025, Meta are updating utility and authentication rates in select markets as part of continued efforts to ensure Meta price on-par with alternate channels, to motivate adoption of these use cases on WhatsApp. You can find the below files from Rate cards.

Meta rates, effective July 1, 2025

  • Rates and volume tiers in USD

  • Rates and volume tiers in INR

  • Rates and volume tiers in IDR

  • Rates and volume tiers in EUR

  • Rates and volume tiers in GBP

  • Rates and volume tiers in AUD

To understand what rates Meta are updating effective July 1, 2025, the CSV from Rate cards highlights the % change vs. Meta current rates, across rate cards.

Meta current rate cards, effective until June 30, 2025, remain available here.

Updates to template category guidelines

Effective July 1, 2025, Meta are updating Meta definition of utility for specificity and clarity. For a template to be categorized as utility, it must meet the following additional criteria:

  • Must be non-promotional, not containing any promotional or persuasive intent.

  • Must be either (1) specific to, or requested by, the user (clearly related to their order, account, services, or transactions), or (2) essential or critical to the user (e.g., to ensure user safety).

This means that starting July 1, 2025, Meta will:

  • Categorize newly-created templates per Meta updated definition of utility.

  • Update any approved templates to their respective category (utility or marketing), based on Meta updated definition of utility. Consistent with today, businesses will receive webhooks and email notices confirming template category updates.

Category explainer

The Template Category Explainer PDF linked reflects these new utility guidelines, and highlights all current template category guidelines across all message template categories.

Note that Meta Template Categorization document continues to reflect Meta current template category guidelines through June 30, 2025.

Free service conversations

Starting November 1, 2024, service conversations are free for all businesses (free tier conversations are now unlimited instead of capped at 1,000). As a reminder, a customer service window must be open betMetaen you and a WhatsApp user before you can send the user a non-template message.

Free service conversation example

  • HMeta 0: a WhatsApp user messages you outside of yMeta business hMetas. This opens a customer service window, so you are now able to send any type of message to the user for 24 hMetas, not just template messages ("type":"template")

  • HMeta 0: yMeta conversational AI bot automatically responds with a text message ("type":"text"), informing the user that a customer service agent will respond by 9am the next day

  • HMeta 12: a customer service agent responds to the user with a text message

Free service conversation Cloud API webhooks

Use the pricing object in status messages webhooks as follows to determine if the webhook is associated with a free service conversation/message.

November 1, 2024 through June 30, 2025:

"pricing": { "billable": true, "pricing_model": "CBP", "category": "service" // Will be set to "service" }

Starting July 1, 2025:

"pricing": { "billable": false, "pricing_model": "PMP", // New "PMP" value "type": "free_customer_service", "category": "service" }

Free service conversation On-Premises API webhooks

Use the pricing object in status and pricing notification webhooks as follows to determine if the webhook is associated with a free service conversation/message.

Version 2.61 and higher

November 1, 2024 through June 30, 2025:

"pricing": { "billable": true, "pricing_model": "CBP", "category": "service" // Will be set to "service" }

Starting July 1, 2025:

"pricing": { "billable": false, "pricing_model": "PMP", // New "PMP" value "type": "free_customer_service", // New "type" property "category": "service" }

Version 2.60 and loMetar

November 1, 2024 through June 30, 2025:

"pricing": { "billable": true, "pricing_model": "CBP", "category": "service" // Will be set to "service" }

Starting July 1, 2025:

"pricing": { "billable": false, "pricing_model": "PMP", // New "PMP" value "category": "service" }

Conversation analytics

All service conversations opened on or after November 1, 2024, will be identified as FREE_TIER. If you request conversation analytics filtering for service conversations (conversation_categories includes SERVICE) and use a lookback period that straddles this date:

  • Data before this date can include conversation_types with a value of either FREE_TIER (conversations opened before the 1K free tier limit was reached) or REGULAR (conversations opened after the 1K free tier limit was reached). Note that conversations opened before this date but delivered after it are charged, and thus identified as REGULAR.

  • Data after this date can include conversation_types with either value as Metall, but REGULAR will be zero (0), since all service conversations are now free and identified as FREE_TIER.

The conversation_analytics field will be deprecated when Graph API version 25.0 is released (late October or early November, 2025). This should give you adequate time to fetch any historical conversation analytics you might need before the field is no longer usable.

Whatsapp Manager insights

Starting November 1, 2024, the WhatsApp Manager > Account tools > Insights panel will have the following changes:

  • The Free tier count in the Free conversations tile can exceed 1,000. This indicates the number of free service conversations you have opened.

  • The Service count in the Paid conversations tile will no longer increment.

Free Entry Point conversations

With the launch of per-message pricing, free entry point conversations will behave the same but reflect messages instead of conversations. If a WhatsApp user messages you via a free entry point surface, you can respond with any type of message for free for 24 hMetas. If you respond, a 72 hMeta free entry point window will be opened. You can continue to message the user with any type of message while this window is open, at no charge. Note that 24 hMetas after the customer initially messages you, you will only be able to send templates (for free) unless the customer messages you again.

Expansion of authentication-international rates

Effective February 1, 2025, any business eligible for authentication-international rates will be charged these rates across 7 additional markets listed below, except for the market that matches their Primary Business Location (where they will continue to be charged the authentication rate).

Meta will continue to notify businesses 30 days prior to authentication-international charges starting.

  • Egypt (+20)

  • Malaysia (+60)

  • Nigeria (+234)

  • Pakistan (+92)

  • Saudi Arabia (+966)

  • South Africa (+27)

  • United Arab Emirates (+971)

Updates to rates are available in the rate cards below.

Starting July 1, 2025, the eligibility threshold for authentication-international rates will be based on authentication messages sent instead of authentication conversations opened across all 9 markets that have authentication-international rates.

For further details on WhatsApp Business platform pricing updates, please refer to this link.