This document describes how to use Embedded Signup to migrate business phone numbers from one Solution Partner and WhatsApp Business Account (WABA) to another Solution Partner and WABA.
Customers can migrate their business phone numbers between WhatsApp Business Accounts (WABAs) and retain their display names, quality ratings, template messaging limits, Official Business Account statuses, and approved, high-quality templates. Migration typically is only performed when a customer wants to move their business phone number from one Solution Partner to another.
To perform a migration for a customer, you have two options: migration via Embedded Signup, or programmatic migration.
Migration via Embedded Signup is simpler and is the preferred solution because it can be initiated by your customers, automatically generates and grants ownership of all necessary assets, grants your app access to those assets, and requires fewer API calls.
Programmatic migration must be initiated by you and involves more API calls, as you must verify that dependent assets are configured correctly, must generate all new required assets on your own, and must associate them with other assets. For this reason, programmatic migration is only recommended if you will be working with the customer using the On-Behalf-Of model (i.e you will create and own the destination WABA and its assets and share them with the customer).
If you would like to migrate customer phone numbers programmatically, see our Migrating Numbers Between WhatsApp Business Accounts Programmatically document.
Customers can use your implementation of Embedded Signup (version 2) to start the migration process. Embedded Signup will prompt customers for their business phone number and a new destination WhatsApp Business Account (WABA).
When the customer completes the flow, Embedded Signup generates their new WABA, associates it with their Meta business portfolio, grants your app access to the WABA, then returns the newly created WABA ID and the business phone number ID.
You must capture these IDs and use them with the API to share your credit line, subscribe to webhooks, and register the number for use with Cloud API. Once you complete the final step (registration), the business phone number is reassociated with the destination WABA and the number can then be used to send and receive messages again.
Since the customer's business phone number is not changing, its display name, quality rating, messaging limit, and Official Business Account status are all preserved.
In addition, all eligible templates are automatically duplicated in the destination WABA and granted the same statuses as their source counterparts, and all media uploaded on the customer's business phone number can continue to be used.
Embedded Signup automatically generates the customer's new WABA, associates it with their Meta Business Account, and grants your app access to the WABA.
Templates are automatically duplicated in the destination WABA and initially granted the same status as their source counterparts.
After duplication however, templates are re-checked to ensure they are correctly categorized according to our guidelines. This may result in some duplicated templates having their status
set to REJECTED
.
Only templates with both a status
of APPROVED
and quality_score
of GREEN
are eligible for duplication. If the destination WABA cannot accommodate all of the new templates, we will duplicate as many as we can until the destination WABA's template limit has been reached. Unduplicated templates must be re-created and submitted for approval if they are to be used by the destination WABA.
Note that template quality ratings are not duplicated. All duplicated templates will start with an UNKNOWN
rating. This rating will remain for the first 24 hours, after which a new rating will be generated if sufficient data is available.
Business phone number registration happens instantly, therefore you can continue to send and receive messages without interruption.
However, template duplication takes time, therefore you will not be able to use affected templates until they are migrated.
To avoid this downtime, you can begin template migration first, before phone number registration.
Template duplication triggered automatically as part of the migration process does not count against your rate limit. API calls that you perform, however, do count against the limit.
name_status
is APPROVED
).UNKNOWN
rating. This rating will remain for the first 24 hours, after which a new rating will be generated if sufficient data is available.Ask the customer who owns the business phone number to confirm that they meet the following requirements. They can do this using the Meta Business Manager, if they own their WABA, by going to WhatsApp Accounts > (their WABA name) > Settings. If they do not own their WABA, they must ask their BSP to confirm.
At least one app must already be subscribed to webhooks on the destination WABA (see Webhooks), and you must be using Embedded Signup version 2 with session logging enabled.
If you haven't already done so, instruct your customer to use the WhatsApp Manager to disable two-step verification on their business phone number (or to ask their current Solution Provider to disable it for them).
You cannot complete the remaining steps until two-step verification is disabled.
Direct the customer to access your implementation of Embedded Signup (version 2) and to supply their business phone number and its display name when prompted for them in the flow.
When the customer completes the flow, capture the business phone number ID and new WABA returned in the message event.
Share your credit line with the WABA just like you normally would after onboarding a customer via Embedded Signup.
Subscribe your app to webhooks on the customer's new WABA.
Register the business phone number for use with Cloud API (you cannot register a migrated business business phone number for use with On-Premises API).
If the template migration process fails, please refer to the following documentation for instructions on how to manually trigger a template migration: Template Migration.