Conversations
Pricing Models
Today, the WhatsApp API pricing model is based on conversations. This means that businesses pay per conversation, which includes all messages interchanged within a 24-hour period.
Meta will transition from a per-category pricing model to a per-message pricing model. This change is aimed to streamline costs and enhance the overall messaging experience.
See more details below:
Per-Conversation Pricing
Business-initiated conversations have three categories utility
, authentication
, and marketing
. User-initiated is categorized as a service conversation
, each with different rates:
Utility conversations - Business-initiated conversations with customers that have opted into facilitating a specific, agreed-upon request or transaction, or update to a customer about an ongoing transaction, including post-purchase notifications and recurring billing statements.
Authentication conversations - Business-initiated conversations with customers that have opted into, enabling businesses to authenticate users with one-time passcodes (OTP), potentially at multiple steps in the login process (e.g., account verification, account recovery).
Marketing conversations - Business-initiated conversations with customers that have opted into, which may include promotions or offers, informational updates like a back-in-stock alert, or invitations for customers to respond or take action. A marketing conversation is any conversation that does not qualify as utility or authentication.
Service conversations - Any user-initiated conversation, such as to resolve a customer enquiry.
The conversation starts when the first business message in a conversation is delivered. However, the conversation type will be defined once a message has been sent by the business with the category of the template message used.
Per-Message Pricing
With the new per-message pricing model, businesses will be charged as follow:
Per message for each marketing template
Per message for each authentication template
Per message for each utility template sent outside of a customer service window
For example, if the business send a marketing template followed by two utility templates to a WhatsApp user, will incur three charges (1 for marketing, 2 for utility). However, if the two utility templates are sent within the customer service window, the business will only be charged for the marketing message.
Pricing Changes Timeline
Here’s a timeline of key events that will shape the WhatsApp Business Platform:
November 1, 2024: Service conversations will become free. (Find more details below)
February 1, 2025: The introduction of international rates for authentication in seven additional markets: Egypt, Malaysia, Nigeria, Pakistan, Saudi Arabia, South Africa, and the United Arab Emirates.
April 1, 2025: Utility templates will be free within the 24-hour customer service window. The launch of the per-message pricing model will start and some business will start transitioning to the new pricing structure.
July 1, 2025: Per-message pricing will officially take effect for 360dialog Partners and Clients.
Sessions
All conversations, or “sessions”, as we’ll refer to them here, with the exception of free entry point conversations, are measured in 24-hour window. A session starts whenever the first message is sent by a business, either in response to a user inquiry or if a business-initiated message template is delivered.
When a business sends a template message within an open service conversation and then sends another template message of a different category, a new conversation is started according to the category of the template. Consequently, charges apply for each template category used in the conversation. In the future, there will be charges for each message sent.
Customer Service Window
Please note that conversations rules are different and independent from customer service windows, which are used to understand if the business can send a free-form message or a template message.
Whenever a WhatsApp user messages you, a 24-hour timer called a customer service window starts (or refreshes if one has already been started).
When a customer service window is open between you and a user, you can send any type of free-form message to the user. If a window is not open between you and the user, you can only send template messages to the user, as template messages are the only type that can be sent outside of a customer service window.
Free Utility Templates in the Customer Service Window
Starting April 1, 2025, utility templates sent within a customer service window are free for all businesses. Utility templates sent outside a customer service window will continue to be charged the utility rate (per-message pricing model).
Example: If a WhatsApp user sends you a message asking when the package they ordered will be delivered, you can respond within the customer service window with a text message or utility template message, and neither incurs a charge.
Conversation Duration
Marketing, utility, authentication, and service conversations last 24 hours unless closed by a newly opened free-entry point conversation.
Free-entry point conversations last 72 hours.
Multiple Conversations
It is possible to have multiple open conversations between you and a customer. This can happen in the following situations:
An open marketing, utility, or authentication conversation exists between you and a customer and you send them a template message of a different category within 24 hours.
An open service conversation exists between you and a customer and you send them a template message within 24 hours.
Charges (Per Region Rate Cards)
Charges for conversations are based on the user’s phone number. Rates for business-initiated conversations and user-initiated conversations vary by market (country or region).
360dialog does not charge anything extra on top of the WhatsApp rates, so you can use the Meta Rate Cards for reference.
See the Rate Cards documentation for specific conversation pricing information.
Expansion of Authentication-International Rates
Effective February 1, 2025, Meta is expanding authentication-international rates to 7 new markets:
Egypt
Malaysia
Nigeria
Pakistan
Saudi Arabia
South Africa
United Arab Emirates
Other Recent Updates to Rate Cards
Authentication-International Rates — Effective June 1, 2024, Meta introduced authentication-international rates for specific markets. See Authentication-International Rates above to learn about these rates and if they apply to you.
Utility conversation rates — Effective August 1, 2024, rates for utility messages have been reduced to remain competitive with alternative communication channels. This reduction is designed to encourage businesses to use WhatsApp for a complete post-purchase customer journey.
Marketing conversation rates — Effective October 1, 2024, Marketing Messaging rates have been adjusted in specific markets. These rates may be updated quarterly to reflect the value delivered by marketing messages, so please stay attentive to future updates.
Free Service Conversations
Previously, each WABA would get 1,000 free service conversations each month across all of its business phone numbers. Marketing, utility and authentication conversations were not part of the free tier.
Starting November 1st, 2024, "Free Tier Conversations," user-initiated (service) conversations are free for all businesses instead of being capped at 1,000.
As a reminder, a customer service window must be open between you and a WhatsApp user before you can send non-template messages.
Example:
Hour 0: A WhatsApp user messages you outside of your business hours. This opens a customer service window, so you are now able to send any type of message to the user for 24 hours, not just template messages. (
"type":"template"
).Hour 0: Your 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.Hour 12: A customer service agent responds to the user with a
text
message.
This means that with the new policy, businesses can have as many user-initiated conversations as needed without incurring extra charges and reaching the tier limit, making it easier and more cost-effective to communicate with customers.
Free Tier Conversations 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 eitherFREE_TIER
(conversations opened before the 1K free tier limit was reached) orREGULAR
(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 asREGULAR
.Data after this date can include
conversation_types
with either value as well, butREGULAR
will be zero (0
), since all service conversations are now free and identified asFREE_TIER
.
Note that after per-message pricing applies in July 2025, the conversation_analytics
field will be deprecated. This should give you adequate time to fetch any historical conversation analytics you might need before the field is no longer usable.
See Checking Usage and Statistics.
Free Entry Points Conversations
Conversations are not charged when users message businesses using call-to-actions buttons on Ads that click to WhatsApp or a Facebook Page CTA. Free entry point conversations last 72 hours and can only be user-initiated. Only the first conversation that starts from the entry point is free of charge. Subsequent conversations with the user are charged.
Standard pricing will apply for Ads that Click to WhatsApp. The conversation that initiates from the ad is free, but not the ad itself.
Once the free entry point conversation is opened, you can send any type of message to the customer without incurring additional charges. However, you can only send non-templates messages if there is an open customer service window between you and the customer.
For example, if the customer messages you via a Click to WhatsApp Ad at 10am and you respond via a template message at 10pm the same day:
The free entry point conversation starts at 10pm and lasts 72 hours.
You can send template messages at no charge in those 72 hours.
You can send non-template messages until 10am the next day, at which point the customer service window closes, as it is independent of the free entry point conversation (if the customer messages you again, however, it opens another 24-hour customer service window in which you can send any type of message).
With the launch of per-message pricing in 2025, 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 within 24 hours (This opens a free entry point customer service window that lasts 72 hours). You can continue to message the user using any type of message while this window is open, at no charge.
Understanding the Conversations via Webhook
Per-Conversation Pricing Analytics
There is a conversation
object on the webhook, as well as a pricing
and an origin
object. These indicate the conversation ID, how it was initiated and the pricing schema that is applied.
conversation
conversation
The conversation
object tracks the attributes of your current conversation. The following fields are specified within the conversation
object:
origin
origin
The origin
object describes where a conversation has originated from. The following fields are specified within the origin
object:
pricing
pricing
The pricing
object includes your billing attributes, but does not include whether a message is part of your account’s free tier.
The following fields are specified within the webhooks pricing
object:
There is a field for category on the pricing object. Here's an example of a pricing
object in a message status webhook:
Per-Message Pricing Analytics
A new pricing_analytics
analytics field will be released April 1, 2025, that allows to get per-message pricing breakdowns for any messages the business have sent.
Once per-message pricing applies to you, messages webhooks containing pricing information will have the following changes to reflect the new pricing model:
conversation
is no longer an event type so will not be includedthe
pricing.pricing_model
property value can bePMP
, which indicates per-message pricinga new
pricing.type
property will be included with the following possible values:regular
— Indicates message is billable.free_customer_service
— Indicate the message is not billable because it was a utility template message, sent within a customer service window.free_entry_point
— Indicates the message is not billable, as it was sent within 24 hours of the user messaging you via a Click to WhatsApp Ad or Facebook Page Call-to-Action button.
Under the conversation-based pricing model, the pricing.category
values indicated which conversation rate was applied. Under the new model, these values will not change, but can be used 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.utility
— indicates a utility template message.service
— indicates a non-template message.referral_conversion
— indicates a WhatsApp user, using a device running Android or iOS, messaged you via a Click to WhatsApp Ad or Facebook Page Call-to-Action button and you responded with a message (of any type) within 24 hours.
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:
Note that the pricing.billable
property will be deprecated, so its recommended that after per-message pricing applies to you in July 2025, you start using pricing.type
to determine if a given webhook is associated with a billable message.
Here's an example of a messages
status webhook:
Last updated