Articles on: MyOperator

How is pricing information included in webhooks?

When a message is sent through the WhatsApp Business Platform, pricing information is only provided in the message status webhook (not in the initial send response). This webhook is the source of truth for tracking billable usage across both the Cloud API and On-Premises API.



✅ WHERE TO FIND PRICING


Pricing details are embedded in the statuses array of the webhook payload. They appear after delivery, which means the amount shown is final and billable.


Example Payload (Cloud API):


{
"statuses": [
{
"id": "wamid.HBgMNT...",
"status": "delivered",
"timestamp": "1693490986",
"pricing": {
"billable": true,
"pricing_model": "CBP",
"category": "utility",
"currency": "USD",
"price": 0.0075
}
}
]
}


Tip : pricing_model: "CBP" refers to Conversation-Based Pricing. The price value represents the cost of the conversation, not each individual message.



🛠️ HOW TO USE PRICING DATA


You can use the pricing object to:


  • Track costs in analytics dashboards or CRMs
  • Classify spend by category (e.g., utility vs. marketing)
  • Reconcile invoices against usage logs
  • Trigger alerts when spend exceeds thresholds



⚖️ DO / DON’T FOR PRICING DATA


Do

Don’t

Use delivered webhooks as the final cost reference

Assume the send API response contains pricing

Store webhook logs for monthly invoice reconciliation

Trust local counters without invoice cross-check

Rely on the category field to allocate usage by type

Manually tag messages with guessed categories

Configure dashboards to track currency from WABA billing

Hard-code "USD" if your account bills in another currency



🔍 CLOUD API VS. ON-PREMISES DIFFERENCES


Field

Cloud API

On-Premises API

pricing_model

Always "CBP"

May vary or be omitted on older versions

currency

Defaults to USD (or your WABA billing setup)

Mirrors configured local currency

category

Always provided (utility, marketing, authentication, service)

Same, but legacy setups may omit



📌 IMPORTANT NOTES


  • Conversation vs. Message: WhatsApp charges per conversation window, not per individual message. The webhook’s price reflects the applicable conversation category charge.
  • Retries don’t cost extra: If a message is retried or re-delivered within the same conversation window, you’re not billed again.
  • Currency alignment: The currency shown in the webhook matches your WABA billing settings (e.g., INR, EUR, GBP).



💡 PRO TIP


Maintain a dedicated billing log that stores every webhook with pricing data. This ensures:


  • Accurate month-end reconciliation with Meta invoices
  • Visibility into spend by conversation type
  • Faster resolution in case of billing disputes



✅ SUMMARY


  • Pricing is included in message status webhooks after delivery.
  • The pricing object shows billability, category, currency, and price.
  • Always reconcile webhook data with invoices to ensure accurate billing.


Need help interpreting pricing fields or setting up reconciliation? Contact WhatsApp Business Support.

Updated on: 23/09/2025