Skip to main content
  • What: Make and receive voice calls on your WhatsApp Business numbers using the same Plivo Call API and XML elements as regular calls
  • How: In the WhatsApp Numbers page, open Configure Number for your WhatsApp number, set a Webhook URL for inbound messages, toggle Enable WhatsApp Calling, and set an Answer URL for voice calls
  • Requires: WABA (WhatsApp Business Account) linked to Plivo, WhatsApp-enabled phone number
  • Outbound restriction: Not available from business numbers in US, Canada, Turkey, Egypt, Nigeria, or Vietnam. Users must grant permission first (by calling you or responding to a permission template)
  • Limitation: Max 1,000 simultaneous calls per WhatsApp Business number. Cannot forward WhatsApp calls to PSTN
Enable voice calling on your WhatsApp Business numbers to connect with customers directly through WhatsApp. Once configured, WhatsApp calls work like any other Plivo voice call — use the same Call API and XML elements you already know. Time to complete: ~15 minutes

Overview

WhatsApp Calling lets you:
  • Receive inbound calls from users through your WhatsApp Business number
  • Make outbound calls (Business Initiated Calling) to users who have granted permission

Prerequisites

  • A Plivo account — sign up
  • A WhatsApp Business Account (WABA) linked to Plivo — see WABA Onboarding
  • A WhatsApp-enabled phone number
  • A server endpoint to handle webhooks (for testing, use ngrok or similar)

Setup

New console flow. In the current Plivo console, you no longer need to create an XML Application for WhatsApp Calling. Configure your Webhook URL (for inbound messages) and Answer URL (for voice calls) directly on the WhatsApp number.

Step 1: Open the Configure Number modal

  1. Go to WhatsApp → Numbers in the Plivo console.
  2. Click the WhatsApp number you want to enable calling on.
  3. The Configure Number side panel opens.

Step 2: Set the Webhook URL

The Webhook URL receives inbound message events (text, media, replies) from your WhatsApp number.
  1. Under Configuration Type, select Webhook URL.
  2. In the Webhook URL field, enter your endpoint — for example, https://yourdomain.com/whatsapp/webhook.
If you’re building with Plivo AI Agents instead of a custom backend, select AI Agents under Configuration Type. See Voice Agents for the agent setup flow.

Step 3: Enable WhatsApp Calling and set the Answer URL

  1. Toggle Enable WhatsApp Calling on.
  2. In the Answer URL field, enter the endpoint that returns Plivo XML to handle inbound calls — for example, https://yourdomain.com/whatsapp/answer.
The Answer URL must return a valid Plivo XML response. Use standard XML elements — Speak, Play, GetInput, Dial — just like any other Plivo voice call.

Step 4: Choose the Account Mapping

Under Account Mapping, choose the Plivo account that should own the WhatsApp traffic:
  • Main Account — applies to the whole WABA
  • Subaccount — route WhatsApp traffic to a specific subaccount
Account Mapping applies to the entire WhatsApp Business Account. It affects every number linked to this WABA, not just the number you’re configuring. Changing it for one number changes it for all.

Step 5: Save the configuration

Click Save changes. Once enabled, users see a call button next to your WhatsApp number in the WhatsApp app.

Step 6: Configure calling hours (optional)

Set when users can call your business number from Meta Business Manager:
  1. Open Meta Business Manager → WhatsApp Manager → Phone Numbers.
  2. Select your number → More → Calls → Available call hours.
  3. Configure your availability.

Step 7: Test inbound calls

  1. Call your WhatsApp Business number from any WhatsApp account.
  2. Verify:
    • The call connects
    • Audio routes to your Answer URL endpoint
    • Two-way audio works
Troubleshooting: Check Voice → Logs in the Plivo console if issues occur.

Making Outbound Calls (Business Initiated Calling)

Get permission first

Per Meta’s guidelines, you must obtain explicit permission before calling a WhatsApp user. Method 1 — Request permission via message. Send a permission request using a WhatsApp template message or free-form message. To create a callback permission template:
  1. Open Meta Business Manager → WhatsApp Manager → Manage Templates → Create Template.
  2. Select Calling permissions request under Marketing or Utility.
  3. Configure the template and submit for approval.
Method 2 — Automatic callback permission. When a user calls your business first, they automatically grant temporary callback permission (if enabled on your number in Meta Business Manager).

Place the call

Use the Dial XML element to initiate WhatsApp calls. Required parameters:
ParameterDescriptionExample
callerIdYour WhatsApp Business number (must be WhatsApp-enabled)918035737458
callTypeMust be whatsapp for WhatsApp callswhatsapp
<User>Recipient’s WhatsApp phone number (E.164 format)<User>919412341234</User>
See the Call API reference for the full set of options.

Limitations and Restrictions

Geographic restrictions

Outbound calls are not available from business numbers in:
  • United States
  • Canada
  • Turkey
  • Egypt
  • Nigeria
  • Vietnam
This restriction applies to your business phone number’s country code only. Users can call from any country where the WhatsApp Cloud API is available.

Call routing

  • Calls cannot be forwarded to PSTN (traditional phone) numbers
  • Calls must be answered via a Cloud platform
  • WhatsApp-to-WhatsApp call forwarding is not supported

Capacity limits

  • Maximum concurrent calls: 1,000 simultaneous calls per WhatsApp Business number
  • Your Plivo account’s CPS (Calls Per Second) limits apply to all calls combined (including WhatsApp calls). Check your CPS limits in the Plivo Console.

Permission rules

RuleLimitDetails
Request frequencyOnce per 24 hoursMaximum 2 requests in 7 days
Calls allowed5 calls per 24 hoursAfter permission granted
Permission duration7 daysFrom approval date
Auto-revocationAfter 4 missed callsConsecutive missed calls
Permission expires in these scenarios:
  1. Time-based expiration — 7 days after approval, rejection, or no response.
  2. New permission granted — when a new call permission request is approved.
  3. Missed call warnings — after 2 consecutive missed calls, the user is prompted to reconsider permission. After 4 consecutive missed calls, permission is automatically revoked.