How to properly update your WhatsApp Business account name with Cloud API.

From https://reinhart1010.id/blog/2024/09/03/how-to-properly-update-your-whatsapp-business-account-name-with-cloud-api. Scan the QR Code to view the article on your device or web browser.

QR Code

Content may subject to copyright. Visit the original website to view copyright and licensing information about this content. QR Code is a registered trademark of DENSO WAVE, Inc. in Japan and other countries. Generated on 2024-10-10 16:13:06.

This tutorial requires the use of the command-line interface. For Windows, we recommend instead to use PowerShell instead of the Command Prompt.

Warning: There are three different dashboards to interact with WhatsApp Business Platform. For the purpose of clarity, here's what we really meant about:

The WhatsApp Business platform also consists of different set of credentials as listed below. Here, we only need to use the Access Token, the WhatsApp Phone Number ID (not the Business Account ID), and the WhatsApp Two-Step Verification PIN (more on that later).

If you are not familiar, the Facebook Graph API introduced an universal ID format for every kinds of object/entities. That means if there is a WhatsApp Business Account ID of 123123123, then it is guaranteed that the number are not used in any other forms of objects, like the WhatsApp Phone Number ID, the Facebook Pages ID, the Instagram Post ID, and so on.

Step 1: Request a display name change on WhatsApp Manager.

You cannot try this feature on the default Test WhatsApp Business Account or any account that has the Display Name change featured disabled for administrative reasons.

Go to WhatsApp Manager > Account Tools > Phone Numbers. Make sure that you are selecting the correct WhatsApp Account on the top-right corner.

A snapshot of the upper right corner of the Meta WhatsApp Manager, with a selection of the active WhatsApp Business Accounts as well as respective Account IDs.

You can also see that there's the "WhatsApp account ID", which is actually your WhatsApp Business Account ID. It is different than WhatsApp Phone Number ID that we need later, as some WhatsApp Business Account are allowed to add more than one phone numbers.

Now, on your desired phone number, change the display name. You can only move to the next step if the new display name is approved.

Step 2: Set up (or update) your WhatsApp Two-Step Verification PIN.

This is the part where we start to use the command-line.

If you never set up those PINs, you can send a request to the WhatsApp Business Cloud API:

Replace the {{ACCESS_TOKEN}}, {{PHONE_NUMBER_ID}} and {{PIN}} with the Access Token, WhatsApp Phone Number ID, and WhatsApp Two-Step Verification PIN respectively.

# Windows (requires PowerShell)
Invoke-WebRequest -Method Post -Body '{ "pin": "{{PIN}}" } -Headers @{ Authorization = "Bearer {{ACCESS_TOKEN}}" } -ContentType 'application/json' https://graph.facebook.com/v20.0/{{PHONE_NUMBER_ID}}

# macOS and Linux (requires curl)
curl -X  POST 'https://graph.facebook.com/v20.0/{{PHONE_NUMBER_ID}}' -H 'Authorization: Bearer {{ACCESS_TOKEN}}' -H 'Content-Type: application/json' -d '{"pin" : "{{PIN}}"}'

Note: We recommend to use the System User Access Token instead of the temporary token generated from the Meta App Dashboard.

Make sure that the server responds with {"success":true}.

Step 3: Trigger the display name change on the WhatsApp Cloud API.

Lastly, we can trigger the following command to apply the display name change.

Replace the {{ACCESS_TOKEN}}, {{PHONE_NUMBER_ID}} and {{PIN}} with the Access Token, WhatsApp Phone Number ID, and WhatsApp Two-Step Verification PIN respectively.

# Windows (requires PowerShell)
Invoke-WebRequest -Method Post -Body '{ "messaging_product": "whatsapp", "pin": "{{PIN}}" } -Headers @{ Authorization = "Bearer {{ACCESS_TOKEN}}" } -ContentType 'application/json' https://graph.facebook.com/v20.0/{{PHONE_NUMBER_ID}}/register

# macOS and Linux (requires curl)
curl 'https://graph.facebook.com/v20.0/{{PHONE_NUMBER_ID}}/register' -H 'Content-Type: application/json' -H 'Authorization: Bearer {{ACCESS_TOKEN}}' -d '{ "messaging_product": "whatsapp", "pin": "{{PIN}}" }'

Make sure that the server responds with {"success":true}.