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 Solution Partner, make sure to include the whatsapp_business_management permission in your App Review submission.

GET, POST, and DELETE calls to /<WHATSAPP_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 webhook endpoint. When you configure your endpoint, make sure to choose WhatsApp Business Account and subscribe to individual WhatsApp Business Account (WABA) fields.

Available Subscription Fields

Field nameDescription

account_alerts

The account_alerts webhook notifies you of changes to a business phone number's messaging limit, business profile, and Official Business Account status.

account_review_update

The account_review_update webhook notifies you when a WhatsApp Business Account has been reviewed against our policy guidelines.

account_update

The account_update webhook notifies of changes to a WhatsApp Business Account's partner-led business verification submission, its authentication-international rate eligibility or primary business location, when it is shared with a solution provider, policy or terms violations, or when it is deleted.

automatic_events

The automatic_events webhook notifies you when we detect a purchase or lead event in a chat thread between you and a WhatsApp user who has messaged you via your Click to WhatsApp ad, if you have opted-in to Automatic Events reporting.

business_capability_update

The business_capability_update webhook notifies you of WhatsApp Business Account or business portfolio capability changes (messaging limits, phone number limits, etc.).

history

The history webhook is used to synchronize the WhatsApp Business app chat history of a business customer onboarded by a solution provider.

message_template_components_update

The message_template_components_update webhook notifies you of changes to a template's components.

message_template_quality_update

The message_template_quality_update webhook notifies you of changes to a template's quality score.

message_template_status_update

The message_template_status_update webhook notifies you of changes to the status of an existing template.

messages

The messages webhook describes messages sent from a WhatsApp user to a business and the status of messages sent by a business to a WhatsApp user.

partner_solutions

The partner_solutions webhook describes changes to the status of a Multi-Partner Solution.

payment_configuration_update

The payment_configuration_update webhook notifies you of changes to payment configurations for Payments API India and Payments API Brazil.

phone_number_name_update

The phone_number_name_update webhook notifies you of business phone number display name verification outcomes.

phone_number_quality_update

The phone_number_quality_update webhook notifies you of changes to a business phone number's throughput level.

security

The security webhook notifies you of changes to a business phone number's security settings.

smb_app_state_sync

The smb_app_state_sync webhook is used for synchronizing contacts of WhatsApp Business app users who have been onboarded via a solution provider.

smb_message_echoes

The smb_message_echoes webhook notifies you of messages sent via the WhatsApp Business app or a companion ("linked") device by a business customer who has been onboarded to Cloud API via a solution provider.

template_category_update

The template_category_update webhook notifies you of changes to template's category.

user_preferences

The user_preferences webhook notifies you of changes to a WhatsApp user's marketing message preferences.

Subscribe your app

You need to subscribe your app to webhooks on a given WABA. We only send notifications if your webhooks-configured app is subscribed to webhooks on a given WABA, and only if the app has permission to edit that WABA.

Create a subscription

Request

To subscribe your app to webhooks on a WABA, send a POST request to the WABA > Subscribed Apps endpoint.

curl -X POST 'https://graph.facebook.com/<API_VERSION>/<WHATSAPP_BUSINESS_ACCOUNT_ID>/subscribed_apps' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'

Response

Upon success:

{
  "success": "true"
}

Get subscribed apps

To get a list of apps subscribed to webhooks on a WABA, send a GET request to the WABA > Subscribed Apps endpoint.

Request

curl 'https://graph.facebook.com/v24.0/395394933592466/subscribed_apps' \
-H 'Authorization: Bearer BEAiil...'

Response

A successful response will list the subscribed apps:

{
  "data": [
    {
      "whatsapp_business_api_data": {
        "link": "<APP_1_URL>",
        "name": "<APP_1_NAME>",
        "id": "<APP_1_ID>"
      }
    },
    {
      "whatsapp_business_api_data": {
        "link": "<APP_2_URL>",
        "name": "<APP_2_NAME>",
        "id": "<APP_2_ID>"
      }
    },
    ...
  ]
}

Delete a subscription

To unsubscribe your app from webhooks on a WABA, send a DELETE request to the subscribed_apps endpoint.

Request

curl -X DELETE 'https://graph.facebook.com/v24.0/395394933592466/subscribed_apps' \
-H 'Authorization: Bearer BEAiil...'

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_ACCOUNT_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
            }
          }
        ]
      }
    ]
  }
]

Enabling mTLS on a WhatsApp Business Account

Enabling and disabling mTLS is not supported at the Business Phone Number or WABA level. It is only available for object Webhook subscriptions.

You can enable Mutual TLS (mTLS) on the webhooks you receive from WhatsApp for added security.

You must verify the callback URL before enabling mTLS. If you have more than one application accessing WhatsApp Cloud API, you will need to enable mTLS for each application.

mTLS toggle for WhatsApp Business accounts