> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes.

# WhatsApp calling

> Receive WhatsApp calls on a Meta-verified business number and route them to an AI Agent, Call Flow, SWML Script, Relay Application, or Video Room.

A customer opens a chat with your business in WhatsApp and taps the call button. The call arrives at
SignalWire, runs whatever Resource you attached to the number, and records, transcribes, and shows up
in your logs the way the rest of your traffic does.

WhatsApp calling uses the same Meta-verified business number as
[WhatsApp messaging](/docs/platform/messaging/whatsapp), so a number your customers already message
can take their calls too. It handles calls that customers place to your business number from
WhatsApp.

## How a call reaches your code

You attach the number to the [Resource](/docs/platform/resources) that should answer, such as an AI
Agent, a SWML Script, or a Call Flow, and every call placed to the number then runs that Resource.
Each call arrives with your business number as `to`, carrying a `whatsapp:` prefix, and the caller's
number as plain E.164 in `from`. One agent can therefore serve your phone number and your WhatsApp
number. [Receive WhatsApp calls](/docs/platform/voice/whatsapp/receive-calls#read-the-caller-and-business-numbers)
shows the request body and a complete agent that does this.

## What WhatsApp calling supports

* Inbound calls only: customers call your business number from WhatsApp. SignalWire doesn't place
  calls to WhatsApp users, so a `whatsapp:` number isn't a valid destination for `connect` or the
  REST Calling API.
* Audio only: a caller can't start a video call to your business number, even when a Video Room
  answers.
* No hold: putting a WhatsApp call on hold doesn't behave the way it does on a phone call, so leave
  hold and hold music out of flows that handle them.
* Everything else an inbound call can do: AI Agents, SWML Scripts, Call Flows, Relay Applications,
  and Video Rooms can answer, and recording, transcription, and the rest of SWML work as they do on a
  phone call.

## Next steps

#### [Connect a WhatsApp business number](/docs/platform/voice/whatsapp/onboarding)

Link your Meta Business account and bring your business numbers into your Space.

#### [Enable voice on a WhatsApp number](/docs/platform/voice/whatsapp/enable-voice)

Turn on calling for a connected business number and confirm it took effect.

#### [Receive WhatsApp calls](/docs/platform/voice/whatsapp/receive-calls)

Attach a Resource to answer inbound calls, and find them in your logs.

#### [WhatsApp messaging](/docs/platform/messaging/whatsapp)

Send and receive messages on the same business number.