Skip to main content
Enable voice calling on your WhatsApp Business numbers to connect with customers directly through WhatsApp. Time to complete: ~15 minutes

Quick Start

What you’ll build
  • Inbound calling: Receive calls from users through your WhatsApp Business number
  • Outbound calling (Business Initiated Calling): Initiate calls to users (with proper permissions)
Prerequisites
  • Plivo account - Request Trial
  • WhatsApp Business Account linked to Plivo. Follow these steps
  • A WhatsApp-enabled phone number
  • A server endpoint to handle webhooks (for testing, use ngrok or similar)

Part 1: Receiving Inbound Calls (User-initiated Calls)

Step 1: Create a Plivo XML Application
  1. Navigate to Voice -> Applications -> XML -> Add New Application
  2. Configure the application
  • Application Name: WhatsApp Calling Application
  • Primary URL: https://yourdomain.com/receive_call/ (Replace this with your actual call URL)
    • This endpoint receives call events
    • Must return a valid Plivo XML
  • Hangup URL(Optional): URL called when the call ends
  • Fallback URL(Optional): Backup URL if Primary fails
  1. Click Create Application
Step 2: Enable Calling on Your WhatsApp Number
  1. Go to WhatsApp > WhatsApp Business Account
  2. Click Enable Calling next to your phone number
  3. Select the XML application you created: WhatsApp Calling Application
  4. Click Save Configuration
  5. Once calling is enabled:
    1. ✅ You should now see a call button next to your WhatsApp number on WhatsApp
Step 3: Configure Calling Hours Set when users can call your business number:
  1. Open Meta Business Manager → WhatsApp Manager → Phone Numbers
  2. Select your number → More → Calls → Available call hours
  3. Configure your business hours
Step 4: Test Inbound Calls
  1. Call your WhatsApp Business number from any WhatsApp account:
  2. Verify:
  • Call connects successfully
  • Audio is routed to your configured endpoint
  • Two-way audio works
Troubleshooting: Check Voice → Call Logs in the Plivo console if issues occur.

Part 2: Making outbound calls (Business Initiated Calls)

Understanding Callback permissions Important: As per Meta guideline, you must obtain explicit permission before calling a WhatsApp user.

Permission Methods

Method 1: Request Permission via Message Send a permission request using a WhatsApp template message / free-form message (see Step 1 below). **Create a callback request permission template: **
  1. Go to your Meta Business Profile > WhatsApp Manager > Manage Templates > Create Template
  2. Select the 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). Placing a call: Refer to the Plivo XML Dial element to configure and place an outbound call Use Plivo’s XML <Dial> element to initiate calls:

Required Parameters

ParameterDescriptionExample
callerIdYour WhatsApp Business number (must be WhatsApp-enabled)"918035737458"
callTypeMust be whatsapp for WhatsApp calls"whatsapp"
<User>Recipient’s WhatsApp phone number (E.164 format)<User>919412341234</User>

Limitations & Restrictions

Meta Restrictions

Geographic Restrictions

Outbound calls are NOT available from business numbers in:
  • 🇺🇸 United States
  • 🇨🇦 Canada
  • 🇹🇷 Turkey
  • 🇪🇬 Egypt
  • 🇳🇬 Nigeria
  • 🇻🇳 Vietnam
⚠️ Important: 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
    • Other than this, your Plivo account’s CPS (Calls Per Second) limits apply to all calls combined (including WhatsApp calls). Check your CPS limits here.

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 → User prompted to reconsider permission
    • After 4 consecutive missed calls → Permission automatically revoked