Skip to main content

API and Webhook Reference

Updated: Nov 25, 2025

Calling API Endpoints

Configure/Update calling settings

Call the Update Phone Number Settings endpoint and pass in Calling API specific parameters to configure or update Calling API settings on an individual business phone number you designate in the request syntax.

Request syntax

Endpoint parameters

Request body

Body parameters

Parameter details: Calling status

When the status parameter is set to “ENABLED”, calling features are enabled for the business phone number. WhatsApp client applications will render the call button icon in both the business chat and business chat profile. When the status parameter is set to “DISABLED”, calling features are disabled, and both the business chat and business chat profile do not display the call button icon. Updates to status will update the call button icon in existing business chats in near real-time when the business phone number is in the WhatsApp user’s contacts. Otherwise, updates are real-time for a limited number of users in conversation with the business, and are eventual for the rest of conversations.

Parameter details: Call button icon visibility

When Calling API features are enabled for a business number, you can still choose whether to show the call button icon or not by using the call_icon_visibility parameter. Note: Disabling call button icon visibility does not disable a WhatsApp user’s ability to make unsolicited calls to your business. The behavior for supported options is as follows: DEFAULT The Call button icon will be displayed in the chat menu bar and the business info page, allowing for unsolicited calls to the business by WhatsApp users. Image DISABLE ALL The call button icon is hidden in the chat menu bar and the business info page, and all other entry points external to the chat are also disabled. Consumers cannot make unsolicited calls to the business. Your business can still send interactive messages or template messages with a Calling API CTA button. Image
Callback permissions
Calling a WhatsApp user requires explicit permission from the user. One way to obtain calling permissions is to request permission when a WhatsApp user calls your business. You can configure the call permission UI to automatically show in the WhatsApp user’s client app when they call your business number. The user may change their permission selection at any time. Image

Call hours

With the call_hours setting, you can specify the timezone, business operating hours, and holiday schedules that will be enforced for all user-initiated calls. Configuring this setting restricts calls only to available weekly hours you configure. User-initiated calls are unavailable outside of the weekly hours and holiday schedules you set. The WhatsApp client app will show users an option to chat with the business, or request a callback, if callback_permission_status is ENABLED. The user will also be shown the next available calling slot on the option screen. Image
The operating hours schedule for each day of the week. Each entry is an JSON object with 3 key/value pairs: day_of_week — ( Enum) [Required] The day of the week. Can take one of seven values: "MONDAY", “TUESDAY”, “WEDNESDAY”, “THURSDAY”, “FRIDAY”, “SATURDAY”, “SUNDAY” Opening and closing times represented in 24 hour format, e.g. ”1130” = 11:30AM Maximum of 2 entries allowed per day of week open_time must be before close_time Overlapping entries not allowed | <br />{<br />"day_of_week": "MONDAY",<br />"open_time": "0400",<br />"close_time": "1020"<br />},<br />{<br />"day_of_week":"TUESDAY",<br />"open_time": "0108",<br />"close_time": "1020"<br />}<br />...<br /> | | holiday_schedule
String | Optional
An optional override to the weekly schedule. Up to 20 overrides can be specified. Note: If holiday_schedule is not passed in the request, then the existing holiday_schedule will be deleted and replaced with an empty schedule. date — ( String) [Required] Date for which you want to specify the override. YYYY-MM-DD format. Opening and closing times represented in 24 hour format, e.g. ”1130” = 11:30AM Maximum of 2 entries allowed per day of week open_time must be before close_time Overlapping entries not allowed | <br />{<br />"date": "2026-01-01",<br />"start_time": "0000",<br />"end_time": "2359",<br />}<br />...<br /> |

Success response

Error response

Possible errors that can occur: Permissions/Authorization errors Invalid status Invalid schedule for call_hours Holiday given in call_hours is a past date Timezone is invalid in call_hours weekly_operating_hours in call_hours cannot be empty Date format in holiday_schedule for call_hours is invalid More than 2 entries not allowed in weekly_operating_hours schedule in call_hours Overlapping schedule in call_hours is not allowed View Calling API Error Codes and Troubleshooting for more information. View general Cloud API Error Codes here.

Get phone number calling settings

Call the Get Phone Number Settings endpoint to retrieve Calling API settings on an individual business phone number you designate in the request syntax. This endpoint can return information for other Cloud API feature settings.

Request syntax

Endpoint parameters

App permission required

whatsapp_business_management: Advanced access is required to update use the API for end business clients

Response body

Include SIP user password

Optionally, you can include SIP user credentials in your response body by adding the SIP credentials query parameter in the POST request:
Where the response will look like this:

Response details

The GET /&lt;PHONE_NUMBER_ID&gt;/settings endpoint returns Calling API settings, along with other configuration information for your WhatsApp business phone number. Learn more about Calling API settings and their values

Error response

Possible errors that can occur: Permissions/Authorization errors View Calling API Error Codes and Troubleshooting for more information View general Cloud API Error Codes here

Pre-accept call

In essence, when you pre-accept an inbound call, you are allowing the calling media connection to be established before attempting to send call media through the connection. When you then call the accept call endpoint, media begins flowing immediately since the connection has already been established Pre-accepting calls is recommended because it facilitates faster connection times and avoids audio clipping issues. There is about 30 to 60 seconds after the Call Connect webhook is sent for the business to accept the phone call. If the business does not respond, the call is terminated on the WhatsApp user side with a “Not Answered” notification and a Terminate Webhook is delivered back to you. Note: Since the WebRTC connection is established before calling the Accept Call endpoint, make sure to flow the call media only after you receive a 200 OK response back. If call media flows too early, the caller will miss the first few words of the call. If call media flows too late, callers will hear silence.

Request Syntax

Request Body

Body Parameters

Success Response

Error Response

Possible errors that can occur: Invalid call-id Invalid phone-number-id Error related to your payment method Invalid Connection info eg sdp, ice Accept/Reject an already In Progress/Completed/Failed call Permissions/Authorization errors View Calling API Error Codes and Troubleshooting for more information. View general Cloud API Error Codes here.

Accept call

Use this endpoint to connect to a call by providing a call agent’s SDP. You have about 30 to 60 seconds after the Call Connect Webhook is sent to accept the phone call. If your business does not respond, the call is terminated on the WhatsApp user side with a “Not Answered” notification and a Terminate Webhook is delivered back to you.

Request Syntax

Request Body

Body Parameters

Success Response

Error Response

Possible errors that can occur: Invalid call-id Invalid phone-number-id Error related to your payment method Invalid Connection info eg sdp, ice etc Accept/Reject an already In Progress/Completed/Failed call Permissions/Authorization errors SDP answer provided in accept does not match the SDP answer given in the Pre-Accept endpoint for the same call-id View Calling API Error Codes and Troubleshooting for more information. View general Cloud API Error Codes here.

Reject call

Use this endpoint to reject a call. You have about 30 to 60 seconds after the Call Connect webhook is sent to accept the phone call. If the business does not respond the call is terminated on the WhatsApp user side with a “Not Answered” notification and a Terminate Webhook is delivered back to you.

Request Syntax

Request Body

Body Parameters

Success Response

Error Response

Possible errors that can occur: Invalid call-id Invalid phone-number-id Accept/Reject an already In Progress/Completed/Failed call Permissions/Authorization errors View Calling API Error Codes and Troubleshooting for more information. View general Cloud API Error Codes here.

Initiate call

Use this endpoint to initiate a call to a WhatsApp user by providing a phone number and a WebRTC call offer.

Request Syntax

Request Body

Body Parameters

Success Response

Error Response

Possible errors that can occur: Invalid phone-number-id Permissions/Authorization errors Request format validation errors, e.g. connection info, sdp, ice SDP validation errors View Calling API Error Codes and Troubleshooting for more information. View general Cloud API Error Codes here.

Terminate call

Use this endpoint to terminate an active call. This must be done even if there is an RTCP BYE packet in the media path. Ending the call this way also ensures pricing is more accurate. When the WhatsApp user terminates the call, you do not have to call this endpoint. Once the call is successfully terminated, a Call Terminate Webhook will be sent to you.

Request Syntax

Request Body

Body Parameters

Success Response

Error Response

Possible errors that can occur: Invalid call id Invalid phone-number-id The WhatsApp user has already terminated the call Reject call is already in progress Permissions/Authorization errors View Calling API Error Codes and Troubleshooting for more information. View general Cloud API Error Codes here.

Get current call permission state

Use this endpoint to get the call permission state for a business phone number with a single WhatsApp user phone number.

Request syntax

Request parameters

Response body