Skip to main content

WhatsApp Cloud API - Settings API | Developer Documentation

WhatsApp Cloud API - Settings API

Copy for LLM
Version
The Settings API allows you to configure various features and settings
for your WhatsApp Business Account phone numbers. You can manage calling
settings, user identity change settings, payload encryption, and data
storage configurations.

Base URL

https://graph.facebook.com

Endpoints


GET /{Version}/{Phone-Number-ID}/settings

Retrieve current settings for a WhatsApp Business phone number.
Returns calling settings, payload encryption settings, and data
storage configurations.

Request Syntax

GET /{Version}/{Phone-Number-ID}/settings
Try it
Select language

curl--requestGET \
--url'https://graph.facebook.com/{Version}/{Phone-Number-ID}/settings' \
--header'Authorization: Bearer <Token>' \
--header'Content-Type: application/json' \
--data'{}'
Select status code

{
"Basic settings response": {
"value": {
"calling": {
"status""enabled",
"call_icon_visibility""visible",
"ip_addresses": {
"default": [
"157.240.0.1",
"157.240.0.2"
          ]
        },
"callback_permission_status""enabled",
"video": {
"status""enabled"
        }
      },
"payload_encryption": {
"status""disabled"
      },
"storage_configuration": {
"status""default"
      }
    }
  },
"Settings with SIP and encryption": {
"value": {
"calling": {
"status""enabled",
"call_icon_visibility""visible",
"ip_addresses": {
"default": [
"157.240.0.1",
"157.240.0.2"
          ]
        },
"callback_permission_status""enabled",
"srtp_key_exchange_protocol""DTLS-SRTP",
"sip": {
"status""enabled",
"servers": [
            {
"app_id""12345",
"hostname""sip.whatsapp.com",
"port"5060
            }
          ]
        },
"video": {
"status""enabled"
        }
      },
"payload_encryption": {
"status""enabled",
"client_encryption_key_fingerprint""SHA256:abcd1234...",
"cloud_encryption_key""eyJhbGc..."
      },
"storage_configuration": {
"status""in_country_storage_enabled",
"data_localization_region""us"
      }
    }
  }
}
Header Parameters
User-Agentstring
The user agent string identifying the client software making the request.
Authorizationstring·required
Bearer token for API authentication. This should be a valid access token obtained through the appropriate OAuth flow or system user token.
Content-TypeOne of "application/json", "application/x-www-form-urlencoded", "multipart/form-data"·required
Media type of the request body
Path Parameters
Versionstring·required
Phone-Number-IDstring·required
Query Parameters
include_sip_credentialsboolean
Include SIP credentials in the response (requires additional permissions)
Responses
Retrieve current settings for a WhatsApp Business phone number.
Returns calling settings, payload encryption settings, and data
storage configurations.
200
Current phone number settings retrieved successfully
Content Type: application/json
Schema: PhoneNumberSettingsResponse
Show child attributes

PhoneNumberSettingsResponse

callingCallingSettingsResponse·required
Show child attributes

statusOne of "enabled", "disabled"·required
Current calling feature status

call_icon_visibilityOne of "visible", "hidden"·required
Current call icon visibility setting

ip_addressesobject·required
Show child attributes

defaultarray of string·required
Default IP addresses for calling
Show child attributes

default[]string

callback_permission_statusOne of "enabled", "disabled"·required
Callback permission status

srtp_key_exchange_protocolOne of "DTLS-SRTP", "SDES-SRTP"
SRTP key exchange protocol (optional)

call_hoursCallHoursSettings
Show child attributes

statusOne of "enabled", "disabled"·required
Call hours feature status

timezonestring
Timezone for call hours

day_of_week_startstring
Start day of the week

call_iconsCallIconsSettings
Show child attributes

restrict_to_user_countriesarray of string
List of countries where call icons are restricted
Show child attributes

restrict_to_user_countries[]string

sipSipSettingsResponse
Show child attributes

statusOne of "enabled", "disabled"·required
SIP calling status

serversarray of SipServerInfo
SIP server configuration
Show child attributes

servers[]SipServerInfo
Show child attributes

app_idstring·required
Application ID for SIP server

hostnamestring·required
SIP server hostname

portinteger
SIP server port (optional)

passwordstring
SIP password (only included when include_sip_credentials=true)

videoVideoSettingsResponse
Show child attributes

statusOne of "enabled", "disabled"·required
Video calling status

audioAudioSettingsResponse
Show child attributes

statusOne of "enabled", "disabled"
Audio calling status

restrictionsCallingRestrictionsResponse
Show child attributes

restrictionsarray of object
Show child attributes

restrictions[]object
Show child attributes

typestring
Type of restriction

expirationinteger (int64)
Expiration timestamp for the restriction

payload_encryptionPayloadEncryptionSettingsResponse
Show child attributes

statusOne of "enabled", "disabled"·required
Payload encryption status

client_encryption_key_fingerprintstring
Client encryption key fingerprint (when encryption is enabled)

cloud_encryption_keystring
Cloud encryption key (when encryption is enabled)

storage_configurationStorageConfigurationSettingsResponse·required
Show child attributes

statusOne of "default", "in_country_storage_enabled"·required
Data storage configuration status

data_localization_regionstring
Data localization region (when in-country storage is enabled)
400
Bad Request - Invalid request parameters
Content Type: application/json
403
Forbidden - Template not approved or insufficient permissions
Content Type: application/json
Select language

curl--requestGET \
--url'https://graph.facebook.com/{Version}/{Phone-Number-ID}/settings' \
--header'Authorization: Bearer <Token>' \
--header'Content-Type: application/json' \
--data'{}'
Select status code

{
"Basic settings response": {
"value": {
"calling": {
"status""enabled",
"call_icon_visibility""visible",
"ip_addresses": {
"default": [
"157.240.0.1",
"157.240.0.2"
          ]
        },
"callback_permission_status""enabled",
"video": {
"status""enabled"
        }
      },
"payload_encryption": {
"status""disabled"
      },
"storage_configuration": {
"status""default"
      }
    }
  },
"Settings with SIP and encryption": {
"value": {
"calling": {
"status""enabled",
"call_icon_visibility""visible",
"ip_addresses": {
"default": [
"157.240.0.1",
"157.240.0.2"
          ]
        },
"callback_permission_status""enabled",
"srtp_key_exchange_protocol""DTLS-SRTP",
"sip": {
"status""enabled",
"servers": [
            {
"app_id""12345",
"hostname""sip.whatsapp.com",
"port"5060
            }
          ]
        },
"video": {
"status""enabled"
        }
      },
"payload_encryption": {
"status""enabled",
"client_encryption_key_fingerprint""SHA256:abcd1234...",
"cloud_encryption_key""eyJhbGc..."
      },
"storage_configuration": {
"status""in_country_storage_enabled",
"data_localization_region""us"
      }
    }
  }
}

POST /{Version}/{Phone-Number-ID}/settings

Update various settings for a WhatsApp Business phone number.
You can configure calling settings, user identity change settings,
payload encryption, and data storage configurations.
Only one feature setting can be specified per request.

Request Syntax

POST /{Version}/{Phone-Number-ID}/settings
Try it
Select language

curl--request POST \
--url'https://graph.facebook.com/{Version}/{Phone-Number-ID}/settings' \
--header'Authorization: Bearer <Token>' \
--header'Content-Type: application/json' \
--data'{
  "calling": {
    "status": "enabled",
    "call_icon_visibility": "visible",
    "video": {
      "status": "enabled"
    }
  }
}'
Select status code

{
"Settings updated successfully": {
"value": {
"success"true
    }
  }
}
Header Parameters
User-Agentstring
The user agent string identifying the client software making the request.
Authorizationstring·required
Bearer token for API authentication. This should be a valid access token obtained through the appropriate OAuth flow or system user token.
Content-TypeOne of "application/json", "application/x-www-form-urlencoded", "multipart/form-data"·required
Media type of the request body
Path Parameters
Versionstring·required
Phone-Number-IDstring·required
Request BodyOptional
Content Type: application/json
Schema: Must be one of: CallingSettingsRequest, UserIdentityChangeSettingsRequest, PayloadEncryptionSettingsRequest, StorageConfigurationSettingsRequest
Show child attributes

Must be one of: CallingSettingsRequest, UserIdentityChangeSettingsRequest, PayloadEncryptionSettingsRequest, StorageConfigurationSettingsRequest

CallingSettingsRequest
Show child attributes

callingCallingSettings·required
Show child attributes

statusOne of "enabled", "disabled"·required
Enable or disable calling feature

call_icon_visibilityOne of "visible", "hidden"
Control visibility of the call icon

videoVideoSettings
Show child attributes

statusOne of "enabled", "disabled"·required
Enable or disable video calling

sipSipSettings
Show child attributes

statusOne of "enabled", "disabled"·required
Enable or disable SIP calling

srtp_key_exchange_protocolOne of "DTLS-SRTP", "SDES-SRTP"
SRTP key exchange protocol

UserIdentityChangeSettingsRequest
Show child attributes

user_identity_changeUserIdentityChangeSettings·required
Show child attributes

enabledboolean·required
Enable or disable user identity change notifications

PayloadEncryptionSettingsRequest
Show child attributes

payload_encryptionPayloadEncryptionSettings·required
Show child attributes

statusOne of "enabled", "disabled"·required
Enable or disable payload encryption

client_encryption_keystring
Base64-encoded public key for payload encryption
(required when enabling encryption)

StorageConfigurationSettingsRequest
Show child attributes

storage_configurationStorageConfigurationSettings·required
Show child attributes

enabledboolean·required
Enable or disable custom storage configuration

regionstring
Data storage region
Responses
Update various settings for a WhatsApp Business phone number.
You can configure calling settings, user identity change settings,
payload encryption, and data storage configurations.
Only one feature setting can be specified per request.
200
Settings updated successfully
Content Type: application/json
Schema: object
Show child attributes

successboolean
400
Bad Request - Invalid request parameters
Content Type: application/json
403
Forbidden - Template not approved or insufficient permissions
Content Type: application/json
Select language

curl--request POST \
--url'https://graph.facebook.com/{Version}/{Phone-Number-ID}/settings' \
--header'Authorization: Bearer <Token>' \
--header'Content-Type: application/json' \
--data'{
  "calling": {
    "status": "enabled",
    "call_icon_visibility": "visible",
    "video": {
      "status": "enabled"
    }
  }
}'
Select status code

{
"Settings updated successfully": {
"value": {
"success"true
    }
  }
}

Authentication

Scheme
Type
Location
bearerAuth
HTTP Bearer
Header: Authorization

Usage Examples

bearerAuth:
Include Authorization: Bearer your-token-here in request headers

Global Authentication Requirements

All endpoints require:
bearerAuth