Calling API

This is a restricted Beta program. Feature is not generally available, so please, be careful while handling this content.

What is Cloud API Calling?

Cloud API Calling enables businesses to handle voice calls (VoIP) via WhatsApp using the Cloud API — in addition to messaging. While end-users initiate calls through the WhatsApp app, businesses use the Graph API for signaling and call control.

Key Requirements

  • Setup is required per phone number

  • Business must have at least a 1K business-initiated messaging limit

  • Calling can be enabled or disabled anytime

Supported Use Cases

Common Scenarios

  • End-user initiates a voice call → Human agent responds (medium complexity)

  • End-user initiates a voice call → Voice bot manages conversation (advanced)

  • Business-initiated voice calls to end-users

Example Applications

  • Customer support escalation

  • Lead qualification (e.g. real estate, automotive)

  • Delivery or logistics coordination

Important Considerations

  • A third-party VoIP tool is required to handle audio; Cloud API alone is not enough

  • Meta does not recommend specific providers

  • This is not recommended for businesses with no VoIP experience or no developer resources

  • Inbound calls can be routed to cloud contact centers

  • Supported: WebRTC and SIP

  • Not supported: Routing to PSTN (mobile or landline) networks

Meta’s Participation Requirements

  • Business must have at least 1K messaging tier (business-initiated)

  • Use case must be for service, marketing, or utility

  • Available in all countries that Cloud API is available except for the USA, Canada, Turkey, Egypt, Vietnam, and Nigeria.

Pricing

Calling API pricing is different for business and user-initiated calls:

1

User-initiated calls

  • Not charged.

  • When the user calls the business via WhatsApp and the business answer using the API, the call is not charged.

2

Business-initiated calls

  • Charged to the business.

  • The cost is calculated based on:

    • Call duration, measured in 6-second increments (always rounded up)

    • The country code of the user’s phone number (rates vary per country)

3

Call permission request messages

These are regular template messages and follow the standard pricing (e.g. Marketing or Utility category)

Country rates are available on the official rate card. Analytics and cost tracking will be available with the call_analytics endpoint in Meta's Documentation.

Customer Service Window and Calls

To place a call, clients must have an open customer service window. This session can be opened as usual using a template message.

The 24-hour window is also opened or refreshed when:

  • A user calls your business, even if the call is not answered

  • A user answers a call initiated by your business

Once the session is active, your business can send free-form messages within the 24-hour window.

Practical Example: Calculating the Cost

Scenario: your business (in Brazil) calls a customer in Mexico. The call lasts 1 minute and 10 seconds (70 seconds), and it’s a business-initiated call.

Step-by-step cost calculation:

  1. Round up the duration Calls are charged in 6-second blocks. → 70 seconds ÷ 6 = 11.67 → rounded up to 12 blocks

  2. Apply the rate card Let’s assume the rate per block for calls to Mexico is $0.01 (for example only)

  3. Final cost → 12 × $0.01 = $0.12 USD

You can check real country rates on the official rate card.


What if the customer calls the business?

✅ In this case, there’s no cost for the business. However, the 24-hour service window is opened, allowing you to send messages without a template during that period


FAQs

Are messages charged separately during a call?

Yes. Messages exchanged during or around a call are charged separately and follow standard messaging rates based on their category (e.g., Marketing, Utility, etc.).

How is call duration calculated for billing?

Calls are charged in 6-second increments, always rounded up. For example, a call lasting 11.5 seconds will be charged as 12 seconds.

Does a voice call open a new 24-hour messaging window?

Yes. According to Meta’s documentation, when:

  • A user calls your business (even if not answered), or

  • A user answers your call,

→ A new 24-hour customer service window is opened for you to send standard Cloud API messages.

Can messaging and calling happen at the same time?

Yes. You can exchange messages with the end-user via the standard Cloud API while the voice call is ongoing.

What is the maximum number of concurrent calls allowed?

The limit is 1,000 concurrent calls per WhatsApp Business Account.

What happens if the calling rate limit is exceeded?

If the 1,000 concurrent call limit is exceeded:

  • The user trying to place a call will receive a generic error message (no specific audio or webhook is triggered).

  • Meta has indicated that this limit may be increased in the future, so the likelihood of hitting it is low.

You can find the official FAQ from Meta here: 🔗 https://developers.facebook.com/docs/whatsapp/cloud-api/calling/faq


Testing with Postman

Start testing with our Postman Collection for Calling API. You can fork the collection and simulate call flows in your development environment.


Getting Started

Initial Setup & Configuration

Includes: ✅ Required permissions & messaging tier ✅ How to enable calling (via API or UI) ✅ Managing call icon visibility & callback settings

User-Initiated WhatsApp Calls

Includes: ✅ Webhook call flow: connect → pre_accept → accept → terminate ✅ WebRTC media (SDP) ✅ DTMF & dialpad handling ✅ Deep links and call buttons

Business-Initiated WhatsApp Calls

Includes: ✅ How to request call permission (interactive or template) ✅ User consent and auto-revocation logic ✅ Call setup via /calls endpoint ✅ Webhook events: ringing, accepted, rejected, terminated

Last updated

Was this helpful?