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:
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.
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.
| Field name | Description |
|---|---|
The account_alerts webhook notifies you of changes to a business phone number's messaging limit, business profile, and Official Business Account status. | |
The account_review_update webhook notifies you when a WhatsApp Business Account has been reviewed against our policy guidelines. | |
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. | |
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. | |
The business_capability_update webhook notifies you of WhatsApp Business Account or business portfolio capability changes (messaging limits, phone number limits, etc.). | |
The history webhook is used to synchronize the WhatsApp Business app chat history of a business customer onboarded by a solution provider. | |
The message_template_components_update webhook notifies you of changes to a template's components. | |
The message_template_quality_update webhook notifies you of changes to a template's quality score. | |
The message_template_status_update webhook notifies you of changes to the status of an existing template. | |
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. | |
The partner_solutions webhook describes changes to the status of a Multi-Partner Solution. | |
The payment_configuration_update webhook notifies you of changes to payment configurations for Payments API India and Payments API Brazil. | |
The phone_number_name_update webhook notifies you of business phone number display name verification outcomes. | |
The phone_number_quality_update webhook notifies you of changes to a business phone number's throughput level. | |
The security webhook notifies you of changes to a business phone number's security settings. | |
The smb_app_state_sync webhook is used for synchronizing contacts of WhatsApp Business app users who have been onboarded via a solution provider. | |
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. | |
The template_category_update webhook notifies you of changes to template's category. | |
The user_preferences webhook notifies you of changes to a WhatsApp user's marketing message preferences. |
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.
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>'
Upon success:
{
"success": "true"
}
To get a list of apps subscribed to webhooks on a WABA, send a GET request to the WABA > Subscribed Apps endpoint.
curl 'https://graph.facebook.com/v24.0/395394933592466/subscribed_apps' \ -H 'Authorization: Bearer BEAiil...'
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>"
}
},
...
]
}To unsubscribe your app from webhooks on a WABA, send a DELETE request to the subscribed_apps endpoint.
curl -X DELETE 'https://graph.facebook.com/v24.0/395394933592466/subscribed_apps' \ -H 'Authorization: Bearer BEAiil...'
A successful response will read:
{
"success": "true"
}
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 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.
