Articles on: MyOperator

How does Meta handle billing for conversations?

Meta bills WhatsApp Business Accounts (WABA) based on conversation categories. There are four categories:


  • Marketing → Paid
  • Utility → Paid
  • Authentication → Paid
  • Service → Free (if customer-initiated)


Each conversation type runs on a 24-hour billing window per category per customer.



📊 WhatsApp Conversation Categories & Billing Rules


Category

Who Starts It

Message Type

Billed?

Description

Marketing

Business

Template (Promos, Offers)

✅ Paid

Promotions, upsells, re-engagement

Utility

Business

Template (Updates)

✅ Paid

Order status, shipping, reminders

Authentication

Business

Template (OTP, Login)

✅ Paid

Verifying identity via OTP or login links

Service

Customer

Free-form (24h)

❌ Free

Customer-initiated chats (support, queries)



🖼️ Billing Flow Diagram




✉️ Template-Driven Conversations (Paid)


  • Business-initiated messages must use pre-approved templates.
  • Each template triggers a new 24-hour billing window if no same-category window is active.
  • Multiple categories can overlap (e.g., 1 Marketing + 1 Utility window active simultaneously).


Tip : Example: Sending a shipping update (Utility) and a promo (Marketing) to the same customer will incur two charges if sent in different categories.



💬 Service Conversations (Free)


  • Triggered only when a customer sends the first message.
  • Business can respond using free-form messages for 24 hours.
  • No billing applies during this window.


Warning : If you send a template during this window, a paid window for that template category will open.



⚠️ Key Billing Notes


  • Charges apply per 24-hour window, per category, per customer.
  • Service (customer-initiated) is always free, unless a template triggers a parallel paid window.
  • Multiple billing windows can overlap (Service + Marketing + Utility simultaneously).
  • Conversation pricing varies by region — refer to Meta’s official rate card.
  • Templates must be correctly categorized or may be rejected by Meta.



🔌 API Example & Schema


Sample API Response


{
"conversation": {
"id": "conv123",
"category": "utility",
"origin": "business_initiated",
"window": "24h",
"charge": "applied"
},
"message": {
"type": "template",
"template_name": "shipping_update"
}
}


Schema Reference


{
"conversation_id": "string",
"category": "marketing | utility | authentication | service",
"origin": "business_initiated | customer_initiated",
"window": "24h",
"charge": "applied | free"
}






Info : Think of billing as parallel 24-hour tracks: Service is free (customer-initiated). Marketing, Utility, Authentication are paid when initiated by templates. Multiple categories can overlap — charges apply per window, per customer, per category.

Updated on: 21/09/2025