WhatsApp Business Accounts API | Developer Documentation
WhatsApp Business Accounts API
Copy for LLM
Version
API for managing WhatsApp Business Accounts under a business portfolio.
This endpoint allows businesses to retrieve and create WhatsApp Business Accounts (WABAs)
for messaging and business communication purposes. WABAs can be associated
with the specified business portfolio and configured with the provided parameters.
Base URL
https://graph.facebook.com |
Endpoints
GET | |
POST |
GET /{Version}/{Business-ID}/whatsapp_business_accounts
Retrieve a list of WhatsApp Business Accounts owned by the specified business portfolio.
This endpoint provides information about WhatsApp Business Accounts that are owned
by the business, including their configuration, status, and core properties. This
corresponds to the GraphBusinessWhatsAppBusinessAccountsEdge functionality.
Use Cases:
Retrieve list of owned WhatsApp Business Accounts
Monitor WABA status and configuration
Verify WABA details for business integrations
Manage business WhatsApp messaging setups
Rate Limiting:
Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.
Caching:
WABA information can be cached for moderate periods, but status information may change
frequently. Implement appropriate cache invalidation strategies.
Request Syntax
GET /{Version}/{Business-ID}/whatsapp_business_accounts
Try it
Select language
curl--requestGET \
--url'https://graph.facebook.com/{Version}/{Business-ID}/whatsapp_business_accounts' \
--header'Authorization: Bearer <Token>' \
--header'Content-Type: application/json' \
--data'{}'
Select status code
{
"multiple_accounts": {
"summary": "Multiple WhatsApp Business Accounts",
"value": {
"data": [
{
"id": "1234567890123456",
"name": "Primary Business WABA",
"account_review_status": "APPROVED",
"currency": "USD",
"country": "US",
"timezone_id": "1",
"business_verification_status": "VERIFIED",
"is_enabled_for_insights": true,
"message_template_namespace": "business_namespace_123"
},
{
"id": "2345678901234567",
"name": "Secondary Business WABA",
"account_review_status": "PENDING",
"currency": "EUR",
"country": "DE",
"timezone_id": "5",
"business_verification_status": "PENDING",
"is_enabled_for_insights": false,
"message_template_namespace": "business_namespace_456"
}
],
"paging": {
"cursors": {
"after": "QVFIUjNpUWpVWmRBd0Rn"
},
"next": "https://graph.facebook.com/v23.0/1234567890/whatsapp_business_accounts?after=QVFIUjNpUWpVWmRBd0Rn"
}
}
},
"single_account": {
"summary": "Single WhatsApp Business Account",
"value": {
"data": [
{
"id": "1234567890123456",
"name": "My Business WABA",
"account_review_status": "APPROVED",
"currency": "USD",
"country": "US",
"timezone_id": "1",
"business_verification_status": "VERIFIED",
"is_enabled_for_insights": true,
"message_template_namespace": "business_namespace_123"
}
]
}
},
"empty_response": {
"summary": "No WhatsApp Business Accounts",
"value": {
"data": []
}
}
}
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.
Path Parameters
Versionstring·required
Graph API version to use for this request. Determines the API behavior and available features.
Business-IDstring·required
Your business portfolio ID. This ID can be found in the Meta Business Suite
or through business management APIs.
Query Parameters
fieldsstring
Comma-separated list of fields to include in the response. If not specified,
default fields will be returned (id, name, currency, timezone_id).
Available fields: id, name, account_review_status, purchase_order_number, currency, timezone_id, business_verification_status, country, on_behalf_of_business_info, is_enabled_for_insights, message_template_namespace
business_typearray of One of "ENTERPRISE", "SMB"
Filter results by WhatsApp Business Account type
limitinteger [min: 1, max: 100]
Maximum number of WhatsApp Business Accounts to return per page. Default is 25, maximum is 100.
afterstring
Cursor for pagination. Use this to get the next page of results.
beforestring
Cursor for pagination. Use this to get the previous page of results.
findstring
Find a specific WhatsApp Business Account by ID
Responses
Retrieve a list of WhatsApp Business Accounts owned by the specified business portfolio.
This endpoint provides information about WhatsApp Business Accounts that are owned
by the business, including their configuration, status, and core properties. This
corresponds to the GraphBusinessWhatsAppBusinessAccountsEdge functionality.
Use Cases:
Retrieve list of owned WhatsApp Business Accounts
Monitor WABA status and configuration
Verify WABA details for business integrations
Manage business WhatsApp messaging setups
Rate Limiting:
Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.
Caching:
WABA information can be cached for moderate periods, but status information may change
frequently. Implement appropriate cache invalidation strategies.
200
Successfully retrieved WhatsApp Business Accounts
Content Type: application/json
Schema: WhatsAppBusinessAccountsResponse
Show child attributes
WhatsAppBusinessAccountsResponse
dataarray of WhatsAppBusinessAccount
Array of WhatsApp Business Accounts
Show child attributes
data[]WhatsAppBusinessAccount
WhatsApp Business Account details and configuration
Show child attributes
idstring·required
Unique identifier for the WhatsApp Business Account
namestring·required
Human-readable name of the WhatsApp Business Account
account_review_statusAccountReviewStatus
Review status of the WhatsApp Business Account
purchase_order_numberstring
Purchase order number associated with the account
currencystring
Currency code for the WABA (ISO 4217 format)
timezone_idstring
Timezone identifier for the WABA
business_verification_statusBusinessVerificationStatus
Verification status of the business associated with the WABA
countrystring
Country code where the WABA is registered
on_behalf_of_business_infoOnBehalfOfBusinessInfo
Information about the business on whose behalf the WABA operates
Show child attributes
idstring
Business ID
namestring
Business name
is_enabled_for_insightsboolean
Whether insights are enabled for this WABA
message_template_namespacestring
Namespace for message templates
pagingCursorPaging
Cursor-based pagination information
Show child attributes
cursorsobject
Show child attributes
beforestring
Cursor pointing to the start of the page of data
afterstring
Cursor pointing to the end of the page of data
previousstring
URL for the previous page of results
nextstring
URL for the next page of results
400
Bad Request - Invalid parameters or malformed request
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
401
Unauthorized - Invalid or missing access token
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
403
Forbidden - Insufficient permissions or access denied
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
404
Not Found - Business ID does not exist or is not accessible
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
422
Unprocessable Entity - Request parameters are valid but cannot be processed
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
429
Too Many Requests - Rate limit exceeded
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
500
Internal Server Error - Unexpected server error
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
Select language
curl--requestGET \
--url'https://graph.facebook.com/{Version}/{Business-ID}/whatsapp_business_accounts' \
--header'Authorization: Bearer <Token>' \
--header'Content-Type: application/json' \
--data'{}'
Select status code
{
"multiple_accounts": {
"summary": "Multiple WhatsApp Business Accounts",
"value": {
"data": [
{
"id": "1234567890123456",
"name": "Primary Business WABA",
"account_review_status": "APPROVED",
"currency": "USD",
"country": "US",
"timezone_id": "1",
"business_verification_status": "VERIFIED",
"is_enabled_for_insights": true,
"message_template_namespace": "business_namespace_123"
},
{
"id": "2345678901234567",
"name": "Secondary Business WABA",
"account_review_status": "PENDING",
"currency": "EUR",
"country": "DE",
"timezone_id": "5",
"business_verification_status": "PENDING",
"is_enabled_for_insights": false,
"message_template_namespace": "business_namespace_456"
}
],
"paging": {
"cursors": {
"after": "QVFIUjNpUWpVWmRBd0Rn"
},
"next": "https://graph.facebook.com/v23.0/1234567890/whatsapp_business_accounts?after=QVFIUjNpUWpVWmRBd0Rn"
}
}
},
"single_account": {
"summary": "Single WhatsApp Business Account",
"value": {
"data": [
{
"id": "1234567890123456",
"name": "My Business WABA",
"account_review_status": "APPROVED",
"currency": "USD",
"country": "US",
"timezone_id": "1",
"business_verification_status": "VERIFIED",
"is_enabled_for_insights": true,
"message_template_namespace": "business_namespace_123"
}
]
}
},
"empty_response": {
"summary": "No WhatsApp Business Accounts",
"value": {
"data": []
}
}
}
POST /{Version}/{Business-ID}/whatsapp_business_accounts
Create a new WhatsApp Business Account under the specified business portfolio.
This endpoint creates a new WABA with the provided configuration and associates it
with the business portfolio. The account will be set up with the specified payment
method and business settings.
Rate Limiting:
Standard Graph API rate limits apply. Account creation may have additional
rate limits to prevent abuse.
Business Logic:
Account name must be unique within the business portfolio
Payment method must be valid and active
Business must have appropriate permissions for WABA creation
Created account will be in pending state until verification is complete
Request Syntax
POST /{Version}/{Business-ID}/whatsapp_business_accounts
Try it
Select language
curl--request POST \
--url'https://graph.facebook.com/{Version}/{Business-ID}/whatsapp_business_accounts' \
--header'Authorization: Bearer <Token>' \
--header'Content-Type: application/json' \
--data'{
"name": "My Business WhatsApp Account",
"currency": "USD",
"timezone_id": 1
}'
Select status code
{
"successful_creation": {
"summary": "Successful WABA creation",
"value": {
"id": "1234567890123456",
"payment_account_id": "9876543210987654"
}
}
}
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.
Path Parameters
Versionstring·required
Graph API version to use for this request. Determines the API behavior and available features.
Business-IDstring·required
Your business portfolio ID. This ID can be found in the Meta Business Suite
or through business management APIs.
Request BodyRequired
Content Type: application/json
Schema: WhatsAppBusinessAccountCreationRequest
Show child attributes
WhatsAppBusinessAccountCreationRequest
namestring·required
Human-readable name for the WhatsApp Business Account
primary_funding_idstring
ID of the primary funding source (credit card or extended credit)
purchase_order_numberstring
Purchase order number for billing reference
currencystring
Currency code for billing (ISO 4217 format)
timezone_idinteger
Timezone ID for the account
business_typeWhatsAppBusinessType
Type of WhatsApp Business Account
on_behalf_of_business_idstring
Business ID when creating account on behalf of another business
Responses
Create a new WhatsApp Business Account under the specified business portfolio.
This endpoint creates a new WABA with the provided configuration and associates it
with the business portfolio. The account will be set up with the specified payment
method and business settings.
Rate Limiting:
Standard Graph API rate limits apply. Account creation may have additional
rate limits to prevent abuse.
Business Logic:
Account name must be unique within the business portfolio
Payment method must be valid and active
Business must have appropriate permissions for WABA creation
Created account will be in pending state until verification is complete
200
Successfully created WhatsApp Business Account
Content Type: application/json
Schema: WhatsAppBusinessAccountCreationResponse
Show child attributes
WhatsAppBusinessAccountCreationResponse
idstring·required
Unique identifier for the created WhatsApp Business Account
payment_account_idstring·required
ID of the associated payment account for billing
400
Bad Request - Invalid parameters or malformed request
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
401
Unauthorized - Invalid or missing access token
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
403
Forbidden - Insufficient permissions or access denied
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
404
Not Found - Business ID does not exist or is not accessible
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
422
Unprocessable Entity - Request parameters are valid but cannot be processed
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
429
Too Many Requests - Rate limit exceeded
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
500
Internal Server Error - Unexpected server error
Content Type: application/json
Schema: GraphAPIError
Show child attributes
GraphAPIError
errorobject·required
Show child attributes
messagestring·required
Human-readable error message
typestring·required
Error category type
codeinteger·required
Numeric error code
error_subcodeinteger
More specific error subcode when available
fbtrace_idstring
Unique identifier for debugging and support requests with Meta
is_transientboolean
Indicates whether this error is temporary and the request should be retried
error_user_titlestring
User-friendly error title for display purposes
error_user_msgstring
User-friendly error message for display purposes
Select language
curl--request POST \
--url'https://graph.facebook.com/{Version}/{Business-ID}/whatsapp_business_accounts' \
--header'Authorization: Bearer <Token>' \
--header'Content-Type: application/json' \
--data'{
"name": "My Business WhatsApp Account",
"currency": "USD",
"timezone_id": 1
}'
Select status code
{
"successful_creation": {
"summary": "Successful WABA creation",
"value": {
"id": "1234567890123456",
"payment_account_id": "9876543210987654"
}
}
}
Authentication
Scheme | Type | Location |
bearerAuth | HTTP Bearer | Header: Authorization |
Usage Examples
bearerAuth:
Include
Authorization: Bearer your-token-here in request headersGlobal Authentication Requirements
All endpoints require:
bearerAuth
No comments to display
No comments to display