What is conversation-based pricing on WhatsApp Business API?

What is conversation-based pricing on WhatsApp Business API?

You’re charged per 24‑hour conversation window, not per message. Windows open either when a customer messages you (Service) or when your business delivers an approved template (Marketing, Utility, Authentication). A special Free‑Entry Point (FEP) window lasts 72 hours and is billing‑free when a user comes via Click‑to‑WhatsApp Ad or Facebook Page CTA and you reply within 24 hours.


Quick navigation


Core model at a glance

  • One price per 24h window → unlimited messages inside that window.
  • Windows are per category (Marketing, Utility, Authentication) and a Service session (customer‑initiated).
  • Free‑Entry Point (FEP) is a 72h billing‑free window after CTWA/Page CTA if you reply within 24h. The 24h Service window still controls non‑template permissions.

Conversation categories & billing (matrix)

Category

Initiated by

Opens when…

Window length

Billed?

Service

Customer

Inbound customer message delivered

24h from last customer message

❌ No (session)

Marketing

Business

Template delivered (no open Marketing window)

24h from delivery

✅ Yes

Utility

Business

Template delivered (no open Utility window)

24h from delivery

✅ Yes

Authentication

Business

Template delivered (no open Auth window)

24h from delivery

✅ Yes

Free‑Entry (special billing)

Customer + your reply ≤24h

CTWA/Page CTA + your reply ≤24h

72h from qualifying reply

❌ Billing‑free

Same category within 24h → window reused (no new charge). Different categoryseparate paid window.

When a window opens (rules)

A paid conversation window (Marketing/Utility/Auth) opens when all are true:

  1. You send a template categorised as Marketing/Utility/Auth.
  2. The template is delivered to the customer.
  3. There is no active window of the same category for that customer.

A Service conversation opens (or resets) when the customer messages you.

Diagram — Conversation windows

Caption: Each category has its own 24h window; same‑category sends ≤24h reuse the window.


What you can send & what it costs (scenarios)

Timing vs customer’s last message

FEP active?

Can send non‑template?

Template allowed?

Charged?

Notes

≤24h

Irrelevant

✅ Yes

✅ Yes

Service free; biz‑initiated billed

Non‑template permitted while Service is open

>24h & <72h

Yes (FEP)

❌ No (blocked)

✅ Yes

Free (inside FEP)

Use template; billing waived under FEP

>24h & <72h

No

❌ No (blocked)

✅ Yes

Paid (by template category)

FEP inactive; category billing applies

≥72h

N/A

❌ No (blocked)

✅ Yes

Paid (by template category)

Send template to re‑engage


How to verify in your UI

A) Meta WhatsApp Inbox (example UI)

  1. Open Inbox → select the conversation.
  2. Find Customer Service Window: Active/Closed (24h timer).
  3. If you ran an ad/Page CTA, look for Free Entry Point — Active (72h countdown).
  4. Check header category chips (Marketing/Utility/Auth) with their own timers.

B) Your provider’s dashboard (typical)

  1. Open ticket details / attributes.
  2. Locate service_window.status/expires_at, free_entry.active/expires_at, and per‑category *.expires_at.
  3. Check Billing/Usage for separate line items per category or $0 for FEP.

API / logs (copy‑paste samples)

Names vary by provider. Use these shapes for monitoring/alerts.

1) Template opens a Marketing conversation (paid){ "event": "template_delivered", "template": { "name": "promo_launch", "category": "MARKETING" }, "conversation": { "category": "MARKETING", "opened": true, "expires_at": "2025-12-01T14:00:00Z" }, "pricing": { "billable": true }}

2) Same category within 24h (reused, no new charge){ "event": "template_delivered", "template": { "name": "order_update", "category": "UTILITY" }, "conversation": { "category": "UTILITY", "window": "REUSED", "new_charge": false, "expires_at": "2025-12-01T12:00:00Z" }}

3) Service open & FEP active (billing‑free){ "event": "message", "service_window": { "open": true, "seconds_remaining": 18000 }, "free_entry": { "active": true, "expires_at": "2025-12-31T23:59:59Z" }, "conversation": { "category": "SERVICE" }, "pricing": { "billable": false }}

4) >24h & <72h (Service closed, FEP active → template free){ "event": "message_send_attempt", "type": "non_template", "service_window": { "open": false }, "error": { "code": "NON_TEMPLATE_NOT_ALLOWED" }, "free_entry": { "active": true }}

5) Cloud API — send a template (copy/paste){ "messaging_product": "whatsapp", "to": "+15551234567", "type": "template", "template": { "name": "follow_up_request", "language": { "code": "en" }, "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "Hi Alex, just checking in." } ] } ] }}


Edge cases & limitations

  • Opt‑out/Blocked: Respect user preferences; sends may be blocked regardless of windows.
  • Delivery failure: If inbound or template fails delivery, the relevant conversation/state does not open/update.
  • Multiple categories: Windows can overlap; same‑category sends ≤24h reuse the window (no new charge).
  • Provider variance: Some UIs hide category chips during FEP; others show them as inactive.
  • Time zones: Timers rely on message timestamps, not agent local time.

Expected outcomes

  • ≤24h: Non‑template allowed; templates billed per category (unless FEP active → free).
  • >24h & <72h (FEP active): Non‑template blocked; templates send free.
  • ≥72h: Templates open a paid category window; non‑template allowed only after a customer replies.

Related FAQs

  • What opens a Service conversation?
    /help/whatsapp/service-conversation-opens
  • How long does a WhatsApp conversation last?
    /help/whatsapp/conversation-duration
  • How are Marketing, Utility, and Authentication conversations opened?
    /help/whatsapp/business-initiated-opens
  • How does a Free‑Entry conversation affect other open conversations?
    /help/whatsapp/fep-overrides

Support & escalation

If behavior differs from this FAQ or sends/billing look incorrect, open a Support ticket from your admin portal (attach message IDs, timestamps, pricing logs, and screenshots), or contact your Customer Success Manager. Typical response time: 1 business day.

    • Related Articles

    • What is conversation-based pricing on WhatsApp Business API?

      Conversation-based pricing charges businesses per conversation, not per individual message sent or received. Each conversation is a 24-hour message thread between the business and the customer.
    • What triggers the opening of a service conversation?

      A Service conversation opens when the customer sends you a message (customer‑initiated). That message starts a rolling 24‑hour customer service window during which you can send non‑template (free‑form) messages. This is separate from ...
    • How does a free-entry point conversation affect other open conversations?

      When a customer comes in via a free‑entry point (e.g., Click‑to‑WhatsApp Ad or Facebook Page CTA) and you reply within 24 hours, WhatsApp opens a 72‑hour free‑entry window. This closes all other open conversations with that customer and consolidates ...
    • WhatsApp Pricing Update: Per-message based billing

      WhatsApp Pricing Update – Effective July 1, 2025 AT A GLANCE: Per-template billing is here: WhatsApp will now charge per template message (Marketing, Utility, or Authentication), even if sent within a 24-hour window. Service replies stay free: ...
    • WhatsApp Pricing Update: Per-message based billing

      WhatsApp Pricing Update – Effective July 1, 2025 AT A GLANCE: Per-template billing is here: WhatsApp will now charge per template message (Marketing, Utility, or Authentication), even if sent within a 24-hour window. Service replies stay free: ...