MY WEBCAM TEST GUIDE

WhatsApp Voice Calling API: Integration Guide

How the WhatsApp Business voice calling API works: call types, permissions, webhooks, WebRTC or SIP media, integration steps and limits to verify first.

Is there a WhatsApp voice calling API?

Yes, but only for businesses. Meta offers voice calling as part of the WhatsApp Business Platform through the Cloud API. With it, a business phone number can receive calls from WhatsApp users and, once a user has given permission, place calls to that user. There is no public API for calling from a personal WhatsApp account. Tools that automate the consumer app are not an official integration route. Eligible countries, feature scope and pricing change over time, so confirm them in Meta's current developer documentation before you commit to a design.

How WhatsApp Business calling works

An integration has two separate parts: signaling and media. Signaling tells your system that a call exists and what state it is in. Call events arrive at your server as webhooks, and your server answers through Graph API requests that accept, reject or end the call. Media is the audio itself. Your application carries it over a real-time connection, typically WebRTC, which it negotiates by exchanging session descriptions (SDP) included in the webhook payloads and your API requests. Meta's documentation also describes a SIP-based option for teams connecting existing telephony systems. Check which options your account and region currently support.

User-initiated and business-initiated calls

A user-initiated call starts when a WhatsApp user taps the call button in a chat with the business or on its profile. Your webhook receives the incoming call, and your app decides whether to answer. A business-initiated call requires the user's permission first. The business sends a call permission request, and the user grants or declines it. Meta limits how often permission can be requested and how many calls can follow a grant. The exact limits depend on the platform version and are listed in the official documentation.

Prerequisites to confirm

  • A WhatsApp Business Account with a phone number registered on the Cloud API.
  • Calling enabled for that specific phone number, plus any account requirements Meta currently applies to calling.
  • A webhook endpoint subscribed to call events, separate from or alongside your message events.
  • Confirmation that calling is available for your business country and for the countries of the users you plan to call.
  • The current per-call pricing, which can differ between user-initiated and business-initiated calls.

Integrating calling into your app

The flow below applies to a WebRTC-based integration that answers incoming calls. Field names and the exact request bodies are version-dependent, so build against the reference for the API version you target.

  • Enable calling on the business number and subscribe your webhook to call events.
  • When an incoming call webhook arrives, read the caller details and the SDP offer it contains.
  • Create a WebRTC peer connection, apply the offer, attach the agent's audio track and generate an SDP answer.
  • Send the answer through the call management API. Current documentation describes an optional pre-accept step that lets media connect before the call is formally accepted, which helps avoid clipped first words.
  • Handle the terminate event or end the call from your side, then close the peer connection and log the call status for reporting.

WebRTC or SIP?

Choose WebRTC when agents answer in a browser or a custom app and you control the client code. Choose SIP when calls need to reach an existing contact-center platform, PBX or carrier setup that already speaks SIP. In that case, the WhatsApp side becomes another inbound and outbound trunk. Either way, plan for call routing, queueing and agent availability yourself, because the API delivers the call but does not manage your agents.

Audio setup for agents

Call quality on the business side depends heavily on the agent's equipment. A browser-based console needs microphone permission, and it should let the agent choose the correct input and output device instead of relying on the system default. A wired or reliable wireless headset reduces echo compared with laptop speakers. Keep the WebRTC audio constraints for echo cancellation, noise suppression and automatic gain control switched on unless you have a specific reason to disable them. A quick microphone and speaker check before each shift catches muted or wrong devices before a customer hears silence.

Limits and related questions

  • Voice versus video: the calling API is built around voice calls. Check current documentation before assuming video calls are supported.
  • Recording and privacy: the API does not by itself make call recording permitted. If your app captures audio, consent, notice and retention rules for your jurisdictions are your responsibility, so verify them with your legal or compliance team.
  • Network requirements: signaling can succeed while audio fails. Firewalls that block UDP or restrict real-time media traffic are a common cause of calls that connect with no sound.
  • Unofficial libraries: automating a personal or business app account outside the official platform can lead to the number being restricted or banned.
  • Messaging and calling together: calls and chats share the same business number, so align call permission requests with your messaging opt-in practices to avoid annoying users.
  • Changes over time: availability by country, rate limits and pricing have changed since launch and may change again, so recheck them before each major release of your integration.