Skip to main content

WhatsApp Business Management - Add Phone Numbers API | Developer Documentation

WhatsApp Business Management - Add Phone Numbers API

Copy for LLM
Version
API for adding phone numbers to a WhatsApp Business Account.
This endpoint allows businesses to add phone numbers to their WhatsApp Business Account
for messaging purposes.

Base URL

https://graph.facebook.com

Endpoints


POST /{Version}/{Business-ID}/add_phone_numbers

Add a preverified phone number to a WhatsApp Business Account. This endpoint is used by
Partners to create a pool of Partner owned numbers that end clients
can purchase.
Use Cases:
Add new phone numbers to scale messaging operations
Set up phone numbers for different business locations
Manage phone number inventory for business messaging
Configure phone numbers for specific messaging workflows
Rate Limiting:
Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.
Phone Number Requirements:
Must be in E.164 format (e.g., +1234567890)
Must not be already registered to another WhatsApp Business Account
Must be capable of receiving SMS for verification
Must comply with WhatsApp's business messaging policies

Request Syntax

POST /{Version}/{Business-ID}/add_phone_numbers
Try it
Select language

curl --request POST \
  --url 'https://graph.facebook.com/{Version}/{Business-ID}/add_phone_numbers' \
  --header 'Authorization: Bearer <Token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "phone_number": "+1234567890"
}'
Select status code

{
  "success": {
    "summary": "Phone number successfully added",
    "value": {
      "id": "1234567890123456"
    }
  }
}
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 WhatsApp Business Account ID. This ID can be found in your Business Manager
or through business management APIs.
Request BodyRequired
Phone number to add to the business account
Content Type: application/json
Schema: AddPhoneNumbersRequest
Show child attributes

AddPhoneNumbersRequest

phone_numberstring·required
Phone number to add to the business account. Accepts E.164 format or formatted numbers
with spaces, hyphens, and parentheses (e.g., +1234567890, +1 (631) 555-1000, +1-631-555-1000).
The phone number will be normalized and validated by the endpoint.
Responses
Add a preverified phone number to a WhatsApp Business Account. This endpoint is used by
Partners to create a pool of Partner owned numbers that end clients
can purchase.
Use Cases:
Add new phone numbers to scale messaging operations
Set up phone numbers for different business locations
Manage phone number inventory for business messaging
Configure phone numbers for specific messaging workflows
Rate Limiting:
Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.
Phone Number Requirements:
Must be in E.164 format (e.g., +1234567890)
Must not be already registered to another WhatsApp Business Account
Must be capable of receiving SMS for verification
Must comply with WhatsApp's business messaging policies
200
Phone number successfully added
Content Type: application/json
Schema: AddPhoneNumbersResponse
Show child attributes

AddPhoneNumbersResponse

idstring·required
Unique identifier for the preverified phone number entity that was created
400
Bad Request - Invalid parameters, malformed request, or phone number already registered
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}/add_phone_numbers' \
  --header 'Authorization: Bearer <Token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "phone_number": "+1234567890"
}'
Select status code

{
  "success": {
    "summary": "Phone number successfully added",
    "value": {
      "id": "1234567890123456"
    }
  }
}

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