Setting Up WhatsApp Business Profile & Calling/SIP Settings via Meta Cloud API

Before you can manage your WhatsApp Business profile and calling/SIP settings, you must have your WhatsApp account registered with the Meta Cloud API.
The easiest way to get started is to sign up with an official provider such as:

  • ORENCloud — Malaysia’s first provider to offer full WhatsApp Chat + Calling in one platform.

  • Twilio — Global WhatsApp Business API provider.

Once registered, you will receive:

  • Phone Number ID — the unique identifier for your WhatsApp number.

  • Permanent Access Token — to authenticate API calls.

Keep these handy, as we’ll need them for every API request.


1. Retrieve Current Profile & Calling/SIP Settings

Endpoint:
GET /{phone-number-id}/whatsapp_business_profile
GET /{phone-number-id}/settings?fields=calling&include_sip_credentials=true

Example:

# Variables
PHONE_ID="123456789012345"
TOKEN="EAAGxxxxxxxxxxxxxxxx"
GRAPH="https://graph.facebook.com/v23.0"

# Get business profile
curl -s -X GET \
  "$GRAPH/$PHONE_ID/whatsapp_business_profile?fields=about,address,description,email,websites,vertical,profile_picture_url" \
  -H "Authorization: Bearer $TOKEN" | jq

# Get calling/SIP settings (with credentials)
curl -s -X GET \
  "$GRAPH/$PHONE_ID/settings?fields=calling&include_sip_credentials=true" \
  -H "Authorization: Bearer $TOKEN" | jq

2. Update Business Profile (if required)

Only send non-empty fields. You can update about, description, address, email, vertical, and up to 2 websites.

Example:

curl -s -X POST \
  "$GRAPH/$PHONE_ID/whatsapp_business_profile" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "about": "Usually replies within minutes",
    "description": "Providing premium communication services",
    "address": "123 Business St, Kuala Lumpur",
    "email": "[email protected]",
    "vertical": "OTHERS",
    "websites": ["https://example.com", "https://support.example.com"]
  }' | jq

3. Configure Calling & SIP

SIP settings are nested under calling.sip.
Meta can generate a SIP password (see next step). Once you enabled this, SIP will straight away work.

Example:

curl -s -X POST \
  "$GRAPH/$PHONE_ID/settings" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "calling": {
      "status": "ENABLED",
      "call_icon_visibility": "DEFAULT",
      "sip": {
        "status": "ENABLED",
        "servers": [{
          "hostname": "sip.yourpbx.com",
          "port": 5061
        }]
      },
      "call_hours": {
        "status": "ENABLED",
        "timezone_id": "Asia/Kuala_Lumpur",
        "weekly_operating_hours": [
          { "day_of_week": "MONDAY", "open_time": "0900", "close_time": "1800" },
          { "day_of_week": "TUESDAY", "open_time": "0900", "close_time": "1800" }
        ]
      }
    }
  }' | jq

4. Viewing Generated SIP Credentials

Once SIP is enabled and configured, you can fetch your password, if you want to.

curl -s -X GET \
  "$GRAPH/$PHONE_ID/settings?fields=calling&include_sip_credentials=true" \
  -H "Authorization: Bearer $TOKEN" | jq

Note:

  • Username: Always your WhatsApp business phone number (without the +)

  • Password: Returned by Meta (store securely)

  • SIP Server: The hostname and port you provided


5. Security & Best Practices

  • Never share your Access Token publicly — treat it like a password.

  • Store SIP credentials securely; rotate if compromised.

  • If you disable SIP in settings, Meta will revoke credentials.


With these cURL commands, you can manage your WhatsApp Business profile and Calling/SIP entirely via the Meta Cloud API.