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
andport
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.