Migration: BSP to CloudAPI
If you want to migrate from an existing Business Service Provider (BSP) to Meta's CloudAPI, without losing your display name, sending limit & approved templates.
Considering you have a Meta Developer account and a Verified Meta Business
Any High quality message templates previously approved
Low quality, rejected, or pending message templates.
Display name
-
Quality rating
-
Messaging limits
-
Official Business Account status
-
BASIC CHECKLIST
Create a Meta Developer App
Please follow the steps enlisted in the below-mentioned article. In case you have already done a valid app, you can choose to skip this step.
Meta CloudAPI - Developer AppSetup Payment Method
Make sure you have a payment method associated with the WABA.
Select the Business Account
[
Payment Settings
][
Add payment method
]
https://business.facebook.com/billing_hub/payment_settings?asset_id=&business_id=
<Business-ID>
Start the Migration
You can use Terminal
or CMD
. To make it easy, we have created a Postman Collection
.
Disable Two-step verification
You can skip this if your Phone Number already had Two-step verification
disabled.

Embedded Signup
You will need to access the Meta Business Manager.
1
Accounts3
Select the Business Account4
Settings5
WhatsApp Manager6
Select the WhatsApp Account7
Account Tools8
Phone numbersSettings (Gear Icon)
10
Two-step verification11
[ Turn off two-step verification ]11.a
Verify the eMail and click [ Ok ]
12
An eMail will be sent to the Business Manager's eMail.13
Click on the [ TURN OFF TWO-STEP VERIFICATION ]
https://business.facebook.com/wa/manage/phone-numbers/?business_id=
<Business-ID>
&phone_number=&waba_id=&childRoute=PHONE_PROFILE%2FRECOVERY





BSP Classic Signup / -or- / Self-Hosted On-Premise
Initiate Phone Migration
WABA-ID of the destination WABA
POST
https://graph.facebook.com/{{Version}}/{{WABA-ID}}/phone_numbers
To find the ID of a WhatsApp Business Account, go to Business Manager > Business Settings > Accounts > WhatsApp Business Accounts. Find the account you want to use and click on it. A panel opens, with information about the account, including the ID.
Headers
Authorization*
Bearer
Access Token
Request Body
cc*
NUM
Numerical country code for the phone number being registered.
phone_number*
NUM
Phone number being migrated, without the country code or plus symbol (+
).
migrate_phone_number*
Boolmen
To migrate a phone number, set this to true
.
{
"id": "<Phone-Number-ID>"
}
Verify Phone Ownership
Request the Code
Select SMS of VOICE to receive your code
POST
https://graph.facebook.com/{{Version}}/{{Phone-Number-ID}}/request_code
Now that you have requested the migration, you need to confirm it by verifying ownership of the phone number.
Headers
Authorization*
Bearer
Access Token
Request Body
code_method*
ENUM
Method of receiving the registration code. Supported values: SMS
and VOICE
.
{
"success": true
}
Verify the Code
To verify the code received
POST
https://graph.facebook.com/{{Version}}/{{Phone-Number-ID}}/verify_code
The code (6-digit pin) received from the previous Request the Code
step is to be used to verify the ownership.
Headers
Authorization*
Bearer
Access Token
Request Body
{
"success": true
}
Register Phone
Register the Phone Number to your WABA
POST
https://graph.facebook.com/{{Version}}/{{Phone-Number-ID}}/register
You need to register the phone number you want to use to send messages.
Headers
Authorization*
Bearer
Access Token
Request Body
messaging_product*
ENUM
Messaging service used. In this case, use "whatsapp"
.
{
"success": true
}
Troubleshoot
Verify if App is Subscribed
Make sure your Meta Developer App ID is listed in your WABA.
Override Callback URL
In case you are not receiving messages to your chat interface, you can choose to override the Callback URL.
Last updated
Was this helpful?