WhatsApp Business API
Channels API
Create, update, and remove WhatsApp Business channels on Vobiz - connect your WABA, manage display names, and rotate access tokens via REST API.
GET
/
api
/
v1
/
messaging
/
channels
/
whatsapp
Channels API
curl --request GET \
--url https://api.vobiz.ai/api/v1/messaging/channels/whatsapp \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"waba_id": "<string>",
"code": "<string>"
}
'import requests
url = "https://api.vobiz.ai/api/v1/messaging/channels/whatsapp"
payload = {
"waba_id": "<string>",
"code": "<string>"
}
headers = {
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Auth-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({waba_id: '<string>', code: '<string>'})
};
fetch('https://api.vobiz.ai/api/v1/messaging/channels/whatsapp', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"account_id": "<string>",
"waba_id": "<string>",
"phone_number_id": "<string>",
"phone_number": "<string>",
"number_onboarding_mode": "<string>",
"number_provider": "<string>",
"number_order_id": "<string>",
"verification_status": "<string>",
"display_name": "<string>",
"business_profile": "<string>",
"status": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
}Base URL:
Returns all WhatsApp channels connected to your Vobiz account.
Connect a new WhatsApp Business number using your WABA credentials from Meta Business Manager. Returns
Complete channel creation after the Meta Embedded Signup OAuth flow. Pass the authorization code returned by Meta. Returns
Update an existing channel’s display name or refresh its Meta access token when the previous token expires. Both fields are optional; send only what you want to change. Returns
Disconnect and remove a WhatsApp channel from Vobiz. Does not delete the WABA or phone number from Meta. Returns
https://api.vobiz.ai/api/v1/messaging
Authentication: every request requires X-Auth-ID: MA_XXXXXXXX and X-Auth-Token: <token> headers (a Authorization: Bearer <JWT> header is also accepted). Send Content-Type: application/json on requests with a body. Get your credentials from console.vobiz.ai.
List WhatsApp channels
GET https://api.vobiz.ai/api/v1/messaging/channels/whatsapp
cURL
curl -X GET \
"https://api.vobiz.ai/api/v1/messaging/channels/whatsapp" \
-H "X-Auth-ID: MA_XXXXXXXX" \
-H "X-Auth-Token: {auth_token}"
200 OK
{
"items": [
{
"id": "2f8892e1-59b7-40a2-b518-e7a7c31a754d",
"account_id": "MA_XXXXXXXX",
"waba_id": "1911116896216319",
"phone_number_id": "974161339121558",
"phone_number": "+15551234567",
"number_onboarding_mode": "bring_your_own",
"number_provider": "meta_direct",
"number_order_id": null,
"verification_status": "verified",
"display_name": "My Business",
"business_profile": "Retail and support line",
"status": "active",
"created_at": "2026-03-01T10:00:00Z",
"updated_at": "2026-03-01T10:00:00Z"
}
]
}
Create WhatsApp channel
POST https://api.vobiz.ai/api/v1/messaging/channels/whatsapp
201 Created with the new channel.
string
required
WhatsApp Business Account ID from Meta.
string
Phone Number ID from Meta. Required unless
number_onboarding_mode is buy_from_vobiz.string
required
Phone number in E.164 format (e.g.
+15551234567).string
required
One of
buy_from_vobiz, bring_your_own, or embedded_signup.string
required
Number provider, e.g.
meta_direct.string
UUID of a completed Vobiz number order. Optional.
string
required
Meta system-user access token (starts with
EAA…). Stored securely and never returned in responses.string
required
Business display name shown to your customers.
cURL
curl -X POST \
"https://api.vobiz.ai/api/v1/messaging/channels/whatsapp" \
-H "X-Auth-ID: MA_XXXXXXXX" \
-H "X-Auth-Token: {auth_token}" \
-H "Content-Type: application/json" \
-d '{
"waba_id": "1911116896216319",
"phone_number_id": "974161339121558",
"phone_number": "+15551234567",
"number_onboarding_mode": "bring_your_own",
"number_provider": "meta_direct",
"access_token": "EAAx...",
"display_name": "My Business"
}'
201 Created
{
"id": "2f8892e1-59b7-40a2-b518-e7a7c31a754d",
"account_id": "MA_XXXXXXXX",
"waba_id": "1911116896216319",
"phone_number_id": "974161339121558",
"phone_number": "+15551234567",
"number_onboarding_mode": "bring_your_own",
"number_provider": "meta_direct",
"number_order_id": null,
"verification_status": "pending",
"display_name": "My Business",
"business_profile": "",
"status": "active",
"created_at": "2026-03-01T10:00:00Z",
"updated_at": "2026-03-01T10:00:00Z"
}
Embedded signup
POST https://api.vobiz.ai/api/v1/messaging/channels/whatsapp/embedded-signup
201 Created.
string
required
OAuth authorization code returned by Meta Embedded Signup.
string
required
WhatsApp Business Account ID from Meta.
string
Phone Number ID from Meta.
string
Phone number in E.164 format.
string
Number provider, e.g.
meta_direct.string
Onboarding mode, typically
embedded_signup.cURL
curl -X POST \
"https://api.vobiz.ai/api/v1/messaging/channels/whatsapp/embedded-signup" \
-H "X-Auth-ID: MA_XXXXXXXX" \
-H "X-Auth-Token: {auth_token}" \
-H "Content-Type: application/json" \
-d '{
"code": "AQB...",
"waba_id": "1911116896216319",
"phone_number_id": "974161339121558",
"phone_number": "+15551234567",
"number_provider": "meta_direct",
"number_onboarding_mode": "embedded_signup"
}'
201 Created
{
"channel": {
"id": "2f8892e1-59b7-40a2-b518-e7a7c31a754d",
"account_id": "MA_XXXXXXXX",
"waba_id": "1911116896216319",
"phone_number_id": "974161339121558",
"phone_number": "+15551234567",
"number_onboarding_mode": "embedded_signup",
"number_provider": "meta_direct",
"number_order_id": null,
"verification_status": "pending",
"display_name": "My Business",
"business_profile": "",
"status": "active",
"created_at": "2026-03-01T10:00:00Z",
"updated_at": "2026-03-01T10:00:00Z"
},
"phone_number": "+15551234567",
"display_name": "My Business"
}
Update channel
PUT https://api.vobiz.ai/api/v1/messaging/channels/whatsapp/{id}
200 OK with the updated channel.
string
New Meta system-user access token (starts with
EAA…).string
Updated business display name.
cURL
curl -X PUT \
"https://api.vobiz.ai/api/v1/messaging/channels/whatsapp/2f8892e1-59b7-40a2-b518-e7a7c31a754d" \
-H "X-Auth-ID: MA_XXXXXXXX" \
-H "X-Auth-Token: {auth_token}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Updated Business Name",
"access_token": "EAAx_new..."
}'
Delete channel
DELETE https://api.vobiz.ai/api/v1/messaging/channels/whatsapp/{id}
204 No Content.
Deleting a channel stops all messaging for that number. Active conversations will be closed.
cURL
curl -X DELETE \
"https://api.vobiz.ai/api/v1/messaging/channels/whatsapp/2f8892e1-59b7-40a2-b518-e7a7c31a754d" \
-H "X-Auth-ID: MA_XXXXXXXX" \
-H "X-Auth-Token: {auth_token}"
Channel object
string
Unique channel identifier (UUID).
string
Your Vobiz account ID (
MA_XXXXXXXX).string
WhatsApp Business Account ID from Meta.
string
Phone Number ID from Meta.
string
Connected phone number in E.164 format.
string
How the number was onboarded:
buy_from_vobiz, bring_your_own, or embedded_signup.string
Number provider, e.g.
meta_direct.string
UUID of the associated Vobiz number order, if any. May be
null.string
Meta verification state:
verified, pending, or rejected.string
Business display name shown to customers.
string
Business profile description.
string
Channel status:
active, inactive, or suspended.string
Creation timestamp (RFC3339 UTC).
string
Last update timestamp (RFC3339 UTC).
The
access_token is stored securely and is never returned in any API response.Was this page helpful?
⌘I
Channels API
curl --request GET \
--url https://api.vobiz.ai/api/v1/messaging/channels/whatsapp \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"waba_id": "<string>",
"code": "<string>"
}
'import requests
url = "https://api.vobiz.ai/api/v1/messaging/channels/whatsapp"
payload = {
"waba_id": "<string>",
"code": "<string>"
}
headers = {
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Auth-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({waba_id: '<string>', code: '<string>'})
};
fetch('https://api.vobiz.ai/api/v1/messaging/channels/whatsapp', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"account_id": "<string>",
"waba_id": "<string>",
"phone_number_id": "<string>",
"phone_number": "<string>",
"number_onboarding_mode": "<string>",
"number_provider": "<string>",
"number_order_id": "<string>",
"verification_status": "<string>",
"display_name": "<string>",
"business_profile": "<string>",
"status": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
}