# How to Configure Calling API

In this documentation, you will learn:

* [How to **enable WhatsApp Calling** via WhatsApp Manager](#enabling-via-the-whatsapp-manager)
* [How to **enable WhatsApp Calling** via  API](#enabling-programmatically)
* [How to **fetch current call settings** programmatically](#fetching-current-call-settings)
* [Which **webhook events** are triggered when calling is enabled](#webhook)
* [How to configure and manage the **call icon visibility** in the WhatsApp client](#enabling-the-call-icon)
* [Common errors and troubleshooting tips](#common-errors)

{% hint style="warning" %}
360Dialog supports the API connection itself, but **partners/clients are responsible** for configuring and managing SIP/WebRTC — including call quality and routing.
{% endhint %}

### Enabling via the WhatsApp Manager

{% stepper %}
{% step %}
Go to [WhatsApp Accounts](https://business.facebook.com/latest/settings/whatsapp_account).
{% endstep %}

{% step %}
Select your WhatsApp Account.
{% endstep %}

{% step %}
Click on **Phone Numbers**.
{% endstep %}

{% step %}
Click the gear icon next to the phone number you are using for calling.
{% endstep %}

{% step %}
Click the **More** dropdown, then select **Calls**.

<figure><img src="https://3527970750-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4sMxKjL6eJRvZn6jeG-887967055%2Fuploads%2FMNqj53PtqXONVccRCC9n%2Fsettings.png?alt=media&#x26;token=c292b9fb-6a4c-46b0-b4e2-83efae34567a" alt=""><figcaption><p>WhatsApp Manager Voice Calls Setting</p></figcaption></figure>
{% endstep %}
{% endstepper %}

***

### Enabling programmatically

{% stepper %}
{% step %}

#### Use the following **endpoint and body to complete enabling**

**Endpoint**

<mark style="color:$success;">`POST`</mark> `https://waba-v2.360dialog.io/calling/settings`

`--header 'D360-API-KEY: ••••••'`

**Request body**

```json
{
  "calling": {
    "status": "ENABLED",
    "call_icon_visibility": "DEFAULT",
    "call_hours": {
      "status": "ENABLED",
      "timezone_id": "America/Manaus",
      "weekly_operating_hours": [
        {
          "day_of_week": "MONDAY",
          "open_time": "0400",
          "close_time": "1020"
        },
        {
          "day_of_week": "TUESDAY",
          "open_time": "0108",
          "close_time": "1020"
        }
      ],
      "holiday_schedule": [
        {
          "date": "2026-01-01",
          "start_time": "0000",
          "end_time": "2359"
        }
      ]
    },
    "callback_permission_status": "ENABLED"
  }
}
```

{% endstep %}

{% step %}

#### Finally, you should receive the following response:&#x20;

```json
{ "success": true }
```

{% endstep %}
{% endstepper %}

## Fetching current call settings

You can also fetch the current call settings following these steps:&#x20;

{% stepper %}
{% step %}
To fetch the current call settings, use the following endpoint

<mark style="color:blue;">`GET`</mark> `https://waba-v2.360dialog.io/calling/settings`

`--header 'D360-API-KEY: ••••••'`
{% endstep %}

{% step %}
The response returns the current status, icon visibility, and permission status:

```json
{
  "calling": {
    "status": "ENABLED",
    "call_icon_visibility": "DEFAULT",
    "callback_permission_status": "ENABLED",
    "call_hours": {
      "status": "ENABLED",
      "timezone_id": "[REDACTED]",
      "weekly_operating_hours": [
        {
          "day_of_week": "MONDAY",
          "open_time": "0400",
          "close_time": "1020"
        },
        {
          "day_of_week": "TUESDAY",
          "open_time": "0108",
          "close_time": "1020"
        }
      ],
      "holiday_schedule": [
        {
          "date": "2026-01-01",
          "start_time": "0000",
          "end_time": "2359"
        }
      ]
    },
    "sip": {
      "status": "ENABLED",
      "servers": [
        {
          "hostname": "[REDACTED]",
          "sip_user_password": "[REDACTED]"
        }
      ]
    }
  },
  <Other non-calling feature configuration...>
}

```

{% endstep %}
{% endstepper %}

## Webhook&#x20;

A new set of webhook events will be exposed for calling-enabled apps to subscribe to. \
Those will be received as standard messages related webhooks.

Webhook events include:

* <mark style="color:green;">`connect`</mark>: user-initiated or business-initiated call starting
* <mark style="color:green;">`terminate`</mark>: call ended
* <mark style="color:green;">`status`</mark>: for business-initiated (e.g., ringing, accepted, rejected)

{% hint style="info" %}
If you'd like to use SIP,  please, use this section to understand how to configure it:&#x20;

[Broken mention](broken://pages/dn0pIhrwRxwL0ioC3uuO)
{% endhint %}

## Enabling the call icon

{% hint style="success" %}
**Supported WhatsApp Client Versions:**

* Android: 2.24.10.x and above
* iOS: 2.24.10.x and above
  {% endhint %}

When calling is enabled:

* The **call icon appears** in chat and business info (for recent contacts or users with the number saved).
* You can hide it using <mark style="color:green;">`call_icon_visibility = DISABLE_ALL`</mark>
* Icon updates may take time depending on client versions and contact recency.

<div><figure><img src="/files/7buNvFZnz52MxSB2Oyvz" alt=""><figcaption></figcaption></figure> <figure><img src="/files/FPyWHoGuqPY611BWMPLf" alt=""><figcaption></figcaption></figure></div>

<div><figure><img src="/files/FFMywFdexcmitZzTgjJi" alt=""><figcaption></figcaption></figure> <figure><img src="/files/dCG65C1glyfovdjV8vB6" alt=""><figcaption></figcaption></figure></div>

## Common errors

Please, check the following table with errors and solutions. If you can't find your case, you can contact our Support team:[Get support](/docs/support/get-support.md).

| Error code | Description                  | Resolution                                          |
| ---------- | ---------------------------- | --------------------------------------------------- |
| 138000     | Calling not enabled          | Ensure API call to /settings is made and successful |
| 138001     | Receiver uncallable          | Check user’s WhatsApp client and permissions        |
| 138006     | No approved call permission  | Trigger call permission request first               |
| 138012     | Business call limit exceeded | Wait 24h or reduce attempt                          |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.360dialog.com/docs/messaging/calling/how-to-configure-calling-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
