WhatsApp Pricing Changes (Effective July 1, 2025) & Channel-Level Analytics Support
This document is currently being updated. However, all information provided so far is accurate. Further updates will add more details or expand on existing sections.
1. Meta Pricing Model Update (July 1, 2025)
Summary of Change:
Meta is transitioning from conversation-based pricing to per-message pricing across all template message categories:
Marketing
Utility
Authentication
This change applies to all WABAs starting July 1, 2025.
Pricing Characteristics:
Each template message sent will be individually billed.
Utility template messages sent in response to a user's message will become free.
Service conversations (user-initiated messages responded to within 24 hours) remain free.
Rates vary by message category, destination country, and volume tier.
2. Impact for Partners
Key Implications:
More transparent, message-level billing.
Potential cost shifts based on message volume and type.
Encourages more efficient use of template messages.
Cloud API messages webhook payloads will include new pricing-related values and properties reflecting the per-message pricing model, requiring partners to update any webhook handling logic accordingly.
This also applies to Marketing Messages Lite API.
On-Premises API messages status and pricing notification changes will mirror the Cloud API version 24.0 webhook changes
No changes required to how partners interact with our existing balance APIs.*
*Important: Partners can continue using our existing public info/balance endpoints on channel and client level without any changes. These remain fully compatible and will continue to function as-is.
3. New Channel-Level Pricing Analytics Proxy Endpoint
To help partners better understand and track pricing under the new model, on July 1st we are introducing a channel-level pricing analytics proxy endpoint.
Overview:
Returns current pricing breakdowns for a specific phone number (channel) within a WABA for any messages delivered within a specified date range
Abstracts all Meta-specific complexity, so that partners don’t need to implement or maintain their own integration with Meta’s pricing services.
Allows partners to proactively monitor pricing without needing direct integration with Meta.
GET
https://hub.360dialog.io/api/v2/partners/{partner_id}/clients/{client_id}/channels/{channel_id}/info/usage
Query parameters
The endpoint supports the following optional input parameters to filter and shape the usage data:
start_date (required) - The start date in UNIX Timestamp (UTC). Returned data will be equal to or newer than the specified date.
end_date (required) - The end date in UNIX Timestamp (UTC). Returned data will be equal to or older than the specified date.
granularity (required) - The granularity by which you would like to retrieve the analytics. Supported options: ['daily', 'half_hour', 'monthly']
countries - The countries list for which you would like to retrieve analytics. Provide a 2 letter country codes for the countries you would like to include. If not provided, usage data will be returned for all countries you have communicated with.
pricing_types - Filter messages per pricing types list. Supported values: ['free_customer_service', 'free_entry_point', 'regular']
pricing_categories - Filter messages per pricing categories list. Supported values: ['authentication', 'authentication_international', 'marketing', 'service', 'utility']
metrics - Metric types you would like to receive. If not provided, we return results for all metric types. Supported options: ['cost', 'volume']
dimensions - Breakdowns you would like to apply to your metrics. If not provided, we return results without any breakdowns. Supported options: ['pricing_category', 'pricing_type', 'country', 'phone', 'tier']
Example Response
{
"id": "WABA_ID",
"currency": "USD",
"pricing_analytics": {
"data": [
{
"data_points": [
{
"start": 1749193200,
"end": 1749279600,
"country": "IN",
"pricing_type": "FREE_CUSTOMER_SERVICE",
"pricing_category": "SERVICE",
"volume": 2,
"cost": 0.00
},
{
"start": 1749106800,
"end": 1749193200,
"country": "IN",
"tier": "0:750000",
"pricing_type": "REGULAR",
"pricing_category": "AUTHENTICATION_INTERNATIONAL",
"volume": 2,
"cost": 4.60
}
]
}
]
}
}
Rate Limits:
10 requests/hour per phone number (channel)
200 requests/hour per WABA
Last updated
Was this helpful?