Webhooks for WhatsApp Business Accounts

You can get real-time notifications when there are changes to your WhatsApp Business Account (WABA) by subscribing at the WhatsApp business account level. To set up Webhooks for WhatsApp business accounts:

  1. Set up your endpoint and configure the Webhooks. These are the same steps that you use to set up Webhooks for Facebook Pages.
  2. Subscribe your app under your WhatsApp business account. You must subscribe an app owned by your business —apps shared with your business cannot receive webhook notifications.
  3. If you are working as a Business Solution Provider (BSP), make sure your app has completed App Review and requested the whatsapp_business_management permission.

GET, POST, and DELETE calls to /{whats-app-business-account-id}/subscribed_apps are now subject to Business Use Case Rate Limits.

Set up Your Endpoint and Webhooks

Follow our Webhooks Getting Started guide to create your endpoint and configure your Webhooks. When you configure your Webhooks, make sure to choose WhatsApp Business Account and subscribe to one or more WhatsApp business account fields.

Available Subscription Fields

Field Name Description

account_review_update

A notification is sent to you when a WhatsApp Business Account (WABA) has been reviewed.

account_update

A notification is sent to you when a change to your WABA has occured. This change can include phone number update, a policy violation, a WABA has been banned and more.

business_capability_update

A notification is sent to you when a capability has been updated. This can include a change for the maximum number of phone numbers a WABA can have or conversation per phone number.

message_template_status_update

A notification is sent to you when the message template has been approved or rejected, or if it has been disabled.

messages

A notification is sent to you when your business has received a message.

phone_number_name_update

A notification is sent to you when the name associated with a phone number has been approved or rejected.

phone_number_quality_update

A notification is sent to you when the quality-related status for a phone number has an update.

Visit the WhatsApp Business Account Webhooks Reference for more information about each payload field and the WhatsApp Cloud API Webhooks Reference for more information on the different types of messages notifications you can receive.

Subscribe Your App

You need to subscribe your app to Webhook notifications for the WhatsApp business account. We only send notifications when your Webhooks-configured app is subscribed under the WhatsApp business account, and when the app has permission to edit the WhatsApp business account.

Create a subscription

Request

To subscribe your app, have your app send a POST request to the subscribed_apps endpoint for the WhatsApp business account:

curl -i -X POST \
  -d "access_token=<ACCESS_TOKEN>" \
  "https://graph.facebook.com/<VERSION>/<WHATSAPP_BUSINESS_ACCT_ID>/subscribed_apps"

Response

A successful response will read:

{"success": "true"}

Retrieve a subscription list

To see which apps your WhatsApp business account has subscribed to, send a GET request to the subscribed_apps endpoint.

Request

curl -i -X GET \
  -d "access_token=<ACCESS_TOKEN>" \
  "https://graph.facebook.com/<VERSION>/<WHATSAPP_BUSINESS_ACCT_ID>/subscribed_apps"

Response

A successful response will list the subscribed apps:

{
 "data": [
 { 
"name": "<APP_NAME>", 
"id": "<APP_ID>" } ]
}

Delete a subscription

To delete a subscription for an app, send a DELETE request to the subscribed_apps endpoint.

Request

curl -i -X DELETE \
  -d "access_token=<ACCESS_TOKEN>" \
  "https://graph.facebook.com/<VERSION>/<WHATSAPP_BUSINESS_ACCT_ID>/subscribed_apps"

Response

A successful response will read:

{"success": "true"}

Subscribe with Graph API Explorer

If you don't want to subscribe your app with direct API calls, you can easily do it with Graph API Explorer.

Replace the me?fields=id,name query with <WHATSAPP_BUSINESS_ACCT_ID>/subscribed_apps. It will subscribe the app you use to send the POST request in Graph Explorer.

Your app must have permission to edit the WhatsApp business account in order to successfully subscribe.

Example Webhook payload:

[
  {
    "object": "whatsapp_business_account",
    "entry": [
      {
        "id": "0",
        "time": 1602782939,
        "changes": [
          {
            "field": "phone_number_name_update",
            "value": {
              "display_phone_number": "16505551111",
              "decision": "APPROVED",
              "requested_verified_name": "WhatsApp",
              "rejection_reason": null
            }
          }
        ]
      }
    ]
  }
]