01What is a voice call button?
A voice call button is a button in a WhatsApp business message that, when tapped, places a WhatsApp voice call to the business. It is one of the entry points for user-initiated calls on the WhatsApp Business Calling API, alongside the call icon in the chat header and wa.me/call/ deep links. The call travels over WhatsApp to the business's Cloud API number, where it is answered through the Calling API or by a contact centre connected over SIP.
There are two ways to send one. Inside an open 24-hour customer service window, an interactive message with type and action.name both set to voice_call carries a body and three parameters: display_text (up to 20 characters, "Call Now" by default), ttl_minutes (how long the button stays active, from 1 to 43,200 minutes, with a default of 10,080, seven days) and an optional payload of up to 512 characters. Outside the window, a message template can include a button of type voice_call, created with a TTL of one to 30 days and adjustable when you send it.
It is easy to confuse with the call-to-action (CTA) phone-number button, which hands a number to the phone's dialler and starts an ordinary call over the mobile network. A voice call button never leaves WhatsApp: the business needs calling enabled on its number, the customer needs the WhatsApp app on Android or iOS, and the call, a user-initiated call that carries no Meta call charge, arrives with the button's payload attached.
Key takeaways
- A voice call button starts a WhatsApp voice call to the business in one tap; the call stays inside WhatsApp instead of dialling a phone number.
- Send it free-form as an interactive message of type
voice_call, or outside the window as a template button of typevoice_call. display_texttakes up to 20 characters, andttl_minutessets how long the button works: 1 to 43,200 minutes, 7 days by default.- An optional
payloadof up to 512 characters comes back ascta_payloadin the call webhooks, so you know which message produced the call. - A phone-number CTA button dials a regular line over the mobile network; a voice call button rings your Calling API number.
02A voice call button in code
curl -X POST "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/messages" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-H "Content-Type: application/json" \-d '{"messaging_product": "whatsapp","recipient_type": "individual","to": "919812345678","type": "interactive","interactive": {"type": "voice_call","body": { "text": "Stuck on the address proof? Call us on WhatsApp and we will walk you through it." },"action": {"name": "voice_call","parameters": {"display_text": "Call for help","ttl_minutes": 2880,"payload": "kyc_LN4471"}}}}'
Free-form, so it needs an open customer service window.
03 · How it works, step by step
How does a voice call button work?
- Step 1
Enable calling on the number
The button rings a Cloud API number with calling enabled in its settings and a messaging limit of at least 2,000. Set call hours before you start sending buttons.
- Step 2
Choose free-form or template
Inside an open window, send an interactive
voice_callmessage. Outside it, create a template with avoice_callbutton, get it approved and send it like any template. - Step 3
Set the label, expiry and payload
display_textup to 20 characters;ttl_minutesfrom 1 to 43,200 at send time (1,440 to 43,200 when creating a template);payloadup to 512 characters for tracking. - Step 4
The customer taps
WhatsApp places a voice call to your number. Your
callswebhook receives aconnectevent with the SDP offer and the button'scta_payload. - Step 5
Answer and attribute
Route on the payload, answer through the Calling API, and read
cta_payloadagain in theterminatewebhook to count calls and minutes per message or campaign.
04A voice call button: key facts and limits
- Interactive type
- interactive.type and action.name: voice_call
- Label
- display_text, up to 20 characters (default Call Now)
- Expiry at send
- ttl_minutes 1–43,200; default 10,080 (7 days)
- Expiry at template creation
- 1,440–43,200 minutes (1–30 days)
- Payload
- Up to 512 characters, returned as cta_payload
- Meta call charge
- None: the customer places the call
- Link alternative
- wa.me/call/<number>?biz_payload=…
05Example: A stuck KYC upload at a Pune two-wheeler lender
A Pune two-wheeler finance company sees loan applications stall at the document step. It sends an approved utility template, "Your application LN4471 is waiting for your address proof", with a voice call button labelled "Call for help", a two-day TTL and the payload kyc_LN4471. Applicants who tap it reach the KYC desk directly, because the router reads the payload and opens the application on the agent's screen before the call is answered. After two days the button expires, so nobody rings a desk about a case that has already closed.
06 · Common mistakes, and the fix
Common mistakes with a voice call button
Sending buttons before calling is staffed
A button that rings an unattended number frustrates customers more than no button. Enable calling, set call hours and put agents on the queue before the first send.
Confusing it with the phone-number button
The CTA phone-number button dials a regular line through the mobile network and gives you no payload. Choose the voice call button when you want the call inside WhatsApp, routed by your Calling API setup.
An expiry that doesn't match the offer
The default is seven days. A button for a same-day delivery issue should expire within hours; one for a month-long service plan can last up to 30 days.
No payload
Without one, every call looks the same and you cannot tell which campaign or case produced it. Put a campaign or case ID in
payloadon every send.Labels over 20 characters
"Call our loan expert now" is 24 characters and will be rejected. Keep labels short and specific: "Call for help", "Call on WhatsApp".
07 · Tips from the bench
Best practices for a voice call button
- Use an action label such as "Call on WhatsApp" (16 characters).
- Encode campaign and case IDs in the payload, for example
diwali26:order4521. - Match call hours to the times you send buttons, so taps reach a person.
- Offer a typed alternative in the same body for customers who prefer to chat.
08Why does a voice call button matter?
A button turns "call us" from a number to copy into a single tap at the moment it matters: a failed payment, a delivery that needs directions, a loan application stuck on a document. The call arrives with context, because the payload says which order or campaign it came from, and it rings agents who can see the chat. Marketing and support can measure exactly which messages produce calls, and customers who would rather talk do not have to wait for an outbound callback.