Migrate Phone Number to a Different WABA

BSPs and businesses directly integrated with the WhatsApp Business Platform can migrate a registered phone number from one WhatsApp Business Account (WABA) to another. Migrated phone numbers keep their display name, quality ratingmessaging limitsOfficial Business Account status, and any High quality message templates previously approved.

In practice, migration means that a business can keep the same phone number if:

  • They are using the platform with one of our BSPs and want to switch to a different provider.
  • They are using their own implementation and want to switch to a BSP.

Only Business Solution Providers (BSPs) and businesses directly integrated with the WhatsApp Business Platform can perform the phone number migration.

Overview

The migration process involves 3 main assets:

A source WABAA phone numberA destination WABA
The account the phone number is currently registered to.The number that will be migrated.The account the number will be migrated to.

Phone migration is always initiated by the BSP or business that owns the destination WABA.

WABAs are accounts created inside a business on Business Manager. Each business has an ID — that ID is also commonly known as Business Manager ID.

Both source and destination WABAs can be associated with businesses in two different ways:

How Migration Works

Downtime

Until migration is completed by registering the phone number on the destination WABA, the source WABA can continue to send and receive messages without disruption in service. After migration is complete, the destination WABA can start sending messages immediately, without any downtime.

Message Templates

All high quality message templates in the source WABA will be duplicated and automatically approved in the destination WABA as long as the destination WABA can accommodate new templates. Existing message templates in the destination WABA will not be affected. Low quality, rejected, or pending templates will not be duplicated.

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.

Billing Migration

Messages sent before migration are charged to the source business. Messages sent after migration are charged to the destination business. Messages sent from the source, and are not delivered before migration, are still charged to the source business when they get delivered.

Rate Limits

Standard Graph API rate limits apply to the migration.

Limitations

  • Test business phone numbers issued by WhatsApp cannot be migrated.
  • Business phone numbers in use with the WhatsApp Business App cannot be migrated using this process. To migrate a number from the WhatsApp Business app, see Migrating an Existing Number for On-Premises API and Migrating an Existing Number for Cloud API.
  • Message and chat history are not migrated with this process.
  • The API does not support bulk migration; business phone numbers must be migrated individually.

Summary

MigratedDisplay nameQuality ratingMessaging limitsOfficial Business Account statusAny High quality message templates previously approvedNot MigratedLow quality, rejected, or pending message templates.

Before You Start

To be eligible for migration, a business’ assets must meet the following criteria:

AssetRequirements for Migration
Phone numberMust be currently registered with the source WABA.If two-factor authentication was ever enabled for this number, it needs to be disabled. This means the source WABA owner needs to disable the two-factor 6-digit pin that was previously set.The phone number’s owner is responsible for reaching out to the source WABA’s owner.
Source WABAMust have Business Verification completed and approved.WABA’s review status must be Approved.
Destination WABAMust have Business Verification and WABA review completed and approved.Must have a payment method set up.Must message on behalf of the same business as the source WABA.Must represent the same business as the source WABA, meaning: the ID of the business that owns the source WABA or the ID of the business that the source WABA is messaging for must match the ID of the business that owns the destination WABA or the ID of the business that the destination WABA is messaging for.
WebhooksPhone numbers on Cloud API only
At least one app must be subscribed to webhooks for the destination WABA. See Webhooks in Cloud API.

Permissions

All API calls for phone migration must be made with an application that has whatsapp_business_management permission. See Using The WhatsApp Business Management API section to learn more about App Review, Access Tokens, and making API calls. Phone migration is always initiated by the BSP or business that owns the destination WABA.

Preparing the Destination WABA

The type of destination WABA determines what needs to be done for the account to be ready for migration:

Type of WABAConsiderations for BSPs performing migration
Existing WABAConfirm that the existing (destination) WABA is set up to message for the same Business Manager ID as the source WABA, and also has a payment method set up.
If the source WABA is on Cloud API, make sure at least one app is subscribed to webhooks for the destination WABA.
New WABA created by a BSP messaging for a clientWhen creating a new WABA in the Business Manager, a BSP must:Enter an Account Name for client (WABA Name)Select a payment methodSelect Client’s Account in the Messaging for field, andEnter the client’s Business Manager ID — see Find Your Business ID in Business Manager. This must be the same ID that the source WABA is connected to.BSPs can then instruct their clients to accept the Messaging For request sent to their Business Manager. To guide your customers, see Create Your WhatsApp Business Account With WhatsApp Business Solution Providers, Approve messaging on behalf of your business. Once the request has been accepted, the destination WABA is ready for phone migration.
If the source WABA is on Cloud API, make sure at least one app is subscribed to webhooks for the destination WABA.
New WABA created by a client and shared with a BSP via Embedded SignupThis type of WABA is created once a client goes through the Embedded Signup flow on the BSP’s website. To guide your customers, see Create Your WhatsApp Business Account With WhatsApp Business Solution Providers, Embedded Signup. During the Embedded Signup flow, instruct the client to:Select the same business as the one that owns their existing WABA.Do not add a phone number via signup flow —we’ll be using the migration API for this. Clients can finish the Embedded Signup flow after creating their WhatsApp Business Account.Use Embedded Signup APIs to get the WABA created by the clientadd system users, and set up a payment method for the WABA.
Since the WABA is already shared with the BSP, the WABA is ready for phone migration. Reminder: The migration only happens if the client’s business has completed Business Verification.
If the source WABA is on Cloud API, make sure at least one app is subscribed to webhooks for the destination WABA.

Get Started

All migration calls are made to the endpoint with the destination WABA’s ID. Phone migration is always initiated by the BSP or business that owns the destination WABA.

Step 1: Initiate Phone Migration

Make a POST call to the /WHATSAPP_BUSINESS_ACCOUNT_ID/phone_numbers endpoint —remember that WHATSAPP_BUSINESS_ACCOUNT_ID represents the ID of the destination WABA. On the call, specify the following fields:

NameDescription
ccRequired.Numerical country code for the phone number being registered.
phone_numberRequired.Phone number being migrated, without the country code or plus symbol (+).
migrate_phone_numberRequired.To migrate a phone number, set this to true.

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.

API call example:

curl -X POST \
  'https://graph.facebook.com/v15.0/DESTINATION_WHATSAPP_BUSINESS_ACCOUNT_ID/phone_numbers' \
  -d 'cc=1' \
  -d 'phone_number=PHONE_NUMBER' \
  -d 'migrate_phone_number=true' \
  -d 'access_token=ACCESS_TOKEN' #See Acquire an Access Token for information.

A successful API call returns:

{
  'id': 'PHONE_NUMBER_ID'
}

Step 2: Verify Phone Ownership

Now that you have requested the migration, you need to confirm it by verifying ownership of the phone number. To do that, request a registration code with a POST call to /PHONE_NUMBER_ID/request_code. Here, PHONE_NUMBER_ID represents the ID returned from Step 1.

On the call, specify the following fields:

NameDescription
code_methodRequired.Method of receiving the registration code. Supported values: SMS and VOICE.
languageRequired.Language in which you want to receive the registration code. See language codes.

A sample call looks like this:

curl -X POST \ 
'https://graph.facebook.com/v15.0/PHONE_NUMBER_ID/request_code' \
  -d 'code_method=SMS' \
  -d 'language=en_US' \
  -d 'access_token=ACCESS_TOKEN' #See Acquire an Access Token for information.

If your API call returns success: true, you should get your code via the selected code_method to the phone number being migrated —it may take a few minutes for the code to be delivered. The phone number’s owner needs to provide this code before you can verify the code.

To verify the code, make an API call to the /PHONE_NUMBER_ID/verify_code endpoint. Specify the following field:

NameDescription
codeRequired.6-digit registration code received after making the /PHONE_NUMBER_ID/request_code call.

For example:

curl -X POST \ 
'https://graph.facebook.com/v15.0/PHONE_NUMBER_ID/verify_code' \
  -d 'code=6-DIGIT-CODE' \
  -d 'access_token=ACCESS_TOKEN' #See Acquire an Access Token for information.

If your API call returns {"success":true}, the ownership of your phone number is verified.

Step 3: Register Phone Number

On-Premises Numbers

Now you can download the certificate from Business Manager, or make an API call to download the certificate.

To register your phone, make an API call to the account endpoint. Since the phone number is already verified, you do not need to worry about the registration code. The verify API call is not required.

The phone number remains active with the source WABA until the phone number is registered with the API Client. To keep your account secure, enable the two-factor authentication pin after migration.

Cloud API Numbers

Send a POST request along with your 6-digit PIN to the Phone Number Register endpoint to register the phone number again. See Register the business phone number.

Step 4 for OBAs: Re-Enable 2-Factor Authentication

This step is only Official Business Accounts (OBA). To keep your account secure and to retain OBA status, re-enable the two-factor authentication pin after migration.

If you migrated the business phone number to an Official Business Account (OBA) WABA on the On-Premises API, enable two-step authentication again in order to keep your account secure and retain OBA status.

Add a Phone Number to WhatsApp Business Platform Cloud API

Navigate to the Meta App that is set-up for WhatsApp by going to developers.facebook.com > My Apps > Select your App.

If your phone number is currently registered with WhatsApp Messenger or the WhatsApp Business App, you need to first delete it. See Migrate an Existing WhatsApp Number to a Business Account.

  1. Use left menu to navigate to the WhatsApp > Getting Started (or Setup) panel.
  2. On the right pane select Add phone number button under Step 5: Add a phone number.
  3. Use the display name guidelines to enter a display name for your phone number. This is the name that will show for your business phone number once approved.
  4. Select your Timezone. This will be used for WhatsApp Billing and analytics.
  5. Select a Category for your business and enter a Business description.
  6. Select Next to begin the phone number verification process.
  7. Select your country code from the drop down and enter the phone number you would like to register.
  8. Select how you would like to receive your verification code, either by Text Message or Phone and click Next to continue. You will need access to the phone number before selecting Next to receive the verification code.
  9. Enter the verification code once received and click Next to continue.
  10. The phone number will appear in the From drop down menu of the Send and receive messages section of the panel.
  11. Select the newly added phone number to begin sending messages.

If your phone number fails to register, you will see a message below the drop down that says “Please register your phone number to send messages.” Click on the link to access the configuration screen, then click on the slider button next to Registered to register your phone number again.

Migrate an Existing WhatsApp Number to a Business Account

You can use a phone number that is already registered with the WhatsApp Messenger or the WhatsApp Business App. Remember to back up your chat history from the WhatsApp Business App. These are guides on how to do so for Android or iOS.

Once you migrate a phone number to the WhatsApp Business Platform, you cannot use that number on the WhatsApp Business App concurrently. Your number must be used either on the Business Platform or on the Business App.

To migrate a number, you must first delete the WhatsApp Messenger or WhatsApp Business App account.

  1. Open WhatsApp Messenger or WhatsApp Business app on your Android or iPhone
  2. Navigate to Settings > Account
  3. Select Delete my account. Messages sent to this phone number will be queued in the meantime
  4. Follow the steps to delete the WhatsApp account for that phone number. It may take up to 3 minutes for the disconnected number to become available
Account SettingsDelete My AccountDeletion Steps

Once the number is available, follow the instructions to Add a Phone Number.

Robots.txt & Why It Matters

Robots.txt is a file with instructions for search engines. It tells them which pages they should or shouldn’t crawl so they don’t overwork your website or index the wrong pages. In this article, you’ll learn how robots.txt files work, how to create them, and the best practices to keep in mind.

An SEO competitor analysis is a research strategy that can help you rank higher, get more traffic, and increase conversions. It uncovers SEO opportunities you may not have seen or considered otherwise. This article breaks down how to run an effective SEO competitive analysis, step by step.

Social media platforms help you increase brand awareness, engage with your audience, and gather valuable insights. But with so many to choose from, it’s difficult to know which ones to focus on. This article highlights the 28 top social media platforms worldwide. And how to use them for your business.

50+ speakers from brands like Adobe, Adidas, Vimeo, Linkedin, and Nestle will open their playbooks to share invaluable marketing insights with you and around 150,000 attendees. Tune in anytime, from anywhere.

The optional module, intl, is not installed, or has been disabled.

If you are using ubuntu you can take update

$ sudo apt-get update

And install extension in case of php 5.6

$ sudo apt-get install php5.6-intl

And in case of php 7.0

$ sudo apt-get install php7.0-intl

And in case of php 8.1

$ sudo apt-get install php8.1-intl

And restart your apache after

$ sudo service apache2 restart

And restart your nginx after

$ sudo systemctl restart nginx

If you are using xampp then remove semicolon ( ; ) in xampp/php/php.ini from below line

 ;extension=php_intl.dll

how to install imagemagick in ubuntu / php

The optional module, imagick, is not installed, or has been disabled.

$ sudo apt update
$ sudo apt install php php-common gcc
$ sudo apt install imagemagick
$ sudo apt install php7.4-imagick //install for specific php version
$ sudo apt install php-imagick //always install for latest php version
$ sudo systemctl restart apache2

Aws, DigitalOcean hosted website not working properly

1. Aws, DigitalOcean hosted website not browsing properly
2. Aws, DigitalOcean hosted website not working properly
3. Website not working properly on VodaFone hotspot
4. Website not working properly on VodaFone IP Address

Aws, DigitalOcean पर hosted कुछ वेबसाइट नही खुल रहा है

update wordpress 6.1 manually ftp

Replace WordPress files

  1. Get the latest WordPress zip (or tar.gz) file.
  2. Unpack the zip file that you downloaded.
  3. Deactivate plugins.
  4. Delete the old wp-includes and wp-admin directories on your web host (through your FTP or shell access).
  5. Using FTP or your shell access, upload the new wp-includes and wp-admin directories to your web host, in place of the previously deleted directories.
  6. Upload the individual files from the new wp-content folder to your existing wp-content folder, overwriting existing files. Do NOT delete your existing wp-content folder. Do NOT delete any files or folders in your existing wp-content directory (except for the one being overwritten by new files).
  7. Upload all new loose files from the root directory of the new version to your existing WordPress root directory.

NOTE – you should replace all the old WordPress files with the new ones in the wp-includes and wp-admin directories and sub-directories, and in the root directory (such as index.phpwp-login.php and so on). Don’t worry – your wp-config.php will be safe.

Be careful when you come to copying the wp-content directory. You should make sure that you only copy the files from inside this directory, rather than replacing your entire wp-content directory. This is where your themes and plugins live, so you will want to keep them. If you have customized the default or classic themes without renaming them, make sure not to overwrite those files, otherwise you will lose your changes. (Though you might want to compare them for new features or fixes..)

Lastly you should take a look at the wp-config-sample.php file, to see if any new settings have been introduced that you might want to add to your own wp-config.php.

zip all files and folders including hidden

How to use zip command in ubuntu, Linux, Unix

below command include all hidden files.

# zip 1.zip * .[^.]*
$ sudo zip 1.zip * .[^.]*

zip all files and folders including subfolder and hidden files

# zip -r 1.zip your_folder/.

To ignore a folder when using the zip command, utilize the -x option for exclusion.

Here is the general syntax:

Code

zip -r archive_name.zip source_directory -x "source_directory/folder_to_ignore/*"

Explanation:

  • zip -r: This initiates the zip command with recursive inclusion, meaning it will include all subdirectories and files within the source_directory.
  • archive_name.zip: This is the name you want to give your resulting zip file.
  • source_directory: This is the main directory you are zipping.
  • -x: This is the exclude option.
  • "source_directory/folder_to_ignore/*": This specifies the folder to be excluded.
    • source_directory/folder_to_ignore/: This provides the full path to the folder you wish to exclude, relative to the source_directory.
    • *: This wildcard ensures that all contents within folder_to_ignore are also excluded.
    • Quotes ("): Using quotes around the exclusion pattern is important, especially if the path contains spaces or special characters, to prevent the shell from interpreting them.

Example:

To zip a directory named my_project and exclude a subfolder named node_modules:

Code

zip -r my_project_archive.zip my_project -x "my_project/node_modules/*"

Excluding multiple folders:

You can specify multiple folders to exclude by adding more -x options:

Code

zip -r my_project_archive.zip my_project -x "my_project/node_modules/*" -x "my_project/logs/*"

Excluding folders by name (regardless of path):

To exclude any folder with a specific name, regardless of its location within the source directory, you can use a wildcard at the beginning:

Code

zip -r my_project_archive.zip my_project -x "*/node_modules/*"

This would exclude any node_modules folder found within my_project or any of its subdirectories.

when ipv4 not detected aws hosted website not working

Short description

To troubleshoot why your Amazon EC2 can’t access the internet, do the following:

  • Verify that the EC2 instance meets all prerequisites.
  • Verify that the instance has a public IP address.
  • Verify that a firewall isn’t blocking the access.

Resolution

Verify that the instance meets all prerequisites

The instance must meet the following conditions:

  • The route table that’s associated with your instance’s subnet has a default route to an internet gateway (0.0.0.0/0).
  • The internet gateway that’s associated with the route isn’t deleted.
  • The security group that’s attached to the instance’s elastic network interface has rules allowing outbound internet traffic (0.0.0.0/0) for your ports and protocols.
  • The network access control list (network ACL) that is associated with the instance’s subnet has rules allowing both outbound and inbound traffic to the internet.

Verify that the instance has a public IP address

If the instance in a public subnet doesn’t have a public IP address, then the instance isn’t accessible outside the virtual private cloud (VPC) where it resides in. This is true even if the instance has an internet gateway.

To allow the instance connectivity to the internet, allocate an Elastic IP address, and then associate this Elastic IP address with the instance.

Verify that a firewall isn’t blocking access

If the instance meets the preceding conditions and internet connectivity issues persist, then you might have a local firewall running in the operating system. It’s a best practice to use security groups instead of having a local firewall in the operating system. Be sure that disabling the local firewall doesn’t impact your workload.

# For Uncomplicated Firewall
sudo ufw disable

# For firewalld
sudo systemctl disable firewalld --now

If you must use a firewall, then the internet connectivity issues are usually related to the OUTPUT chain. You can allow outgoing traffic by running the following commands:

sudo iptables -P OUTPUT ACCEPT
sudo iptables -I OUTPUT 1 -j ACCEPT

Windows Server:

For Windows Server default firewalls, run the following command:

netsh advfirewall firewall show rule name=all

source