Events
Callback Set - V3 Event
Sent once when a V3 subscription or callback URL is added, so you can confirm your URL receives events. V2 equivalent: sandbox-start user event.
{
"object": "whatsapp_business_account",
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"statuses": [
{
"type": "set-callback"
}
]
}
}
]
}
]
}Payload Description
| Key | Description | Example |
|---|---|---|
| statuses[].type | Always set-callback | set-callback |
| gs_app_id | Gupshup app ID | 82ed52f4-30c0-4f12-81b4-e7ad07bd41de |
Enqueued - V3 Event
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"statuses": [
{
"gs_id": "2baff204-c39a-4121-90b5-f53f26d522b3",
"id": "wamid.HBgMOTE5MTYzODA1ODczFQIAERgSNkZCMThGMEEwQzJDOUFGQjFBAA==",
"recipient_id": "9191****873",
"status": "enqueued",
"timestamp": 1710941393420
}
]
}
}
]
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| object | Type of object that sent the event | whatsapp_business_account |
| gs_app_id | Gupshup application ID | 82ed52f4-30c0-4f12-81b4-e7ad07bd41de |
| messaging_product | Messaging product | |
| statuses[].id | WhatsApp message ID (wamid) | wamid.HBgMOTE5... |
| statuses[].recipient_id | Destination phone number | 9191****873 |
| statuses[].status | Message status | enqueued |
| statuses[].timestamp | Time when status was updated (s or ms) | 1710941393420 |
Sent - V3 Event
Sent when Meta accepts the message for delivery. The pricing object shows whether the message is charged; for per-message pricing values see PMP Events.
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "91XXXXXXXX58",
"phone_number_id": "158072934066266"
},
"statuses": [
{
"conversation": {
"expiration_timestamp": "1710936120",
"id": "3dabdf65abaf1cbbf85217d232cce91f",
"origin": {
"type": "user_initiated"
}
},
"gs_id": "7daeb742-f2dc-4c09-90e0-d879d20f7b98",
"id": "wamid.HBgMOTE5MTYzODA1ODczFQIAERgSMDQ4Rj...",
"pricing": {
"billable": true,
"category": "service",
"pricing_model": "CBP"
},
"recipient_id": "91XXXXXXXX73",
"status": "sent",
"timestamp": "1710930461"
}
]
}
}
],
"id": "112535025189792"
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| object | Type of object that sent the event | whatsapp_business_account |
| gs_app_id | Gupshup application ID | 82ed52f4-30c0-4f12-81b4-e7ad07bd41de |
| metadata.display_phone_number | Display phone number | 9******8 |
| metadata.phone_number_id | Phone number ID | 158072934066266 |
| statuses[].conversation.id | Conversation ID | 3dabdf65abaf1cbbf85217d232cce91f |
| statuses[].id | WhatsApp message ID (wamid) | wamid.HBgMOTE5... |
| statuses[].recipient_id | Destination phone number | 91*****3 |
| statuses[].status | Message status | sent |
| statuses[].timestamp | Timestamp (in seconds) | 1710930461 |
| statuses[].conversation.expiration_timestamp | When the conversation window closes | 1710936120 |
| statuses[].conversation.origin.type | Who opened the conversation | user_initiated |
| statuses[].pricing.billable | Whether the message is charged | true |
| statuses[].pricing.pricing_model | CBP, or PMP for per-message pricing | CBP |
| statuses[].pricing.category | Pricing category | service |
Delivered - V3 Event
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "9*****58",
"phone_number_id": "158072934066266"
},
"statuses": [
{
"conversation": {
"id": "3dabdf65abaf1cbbf85217d232cce91f"
},
"gs_id": "7daeb742-f2dc-4c09-90e0-d879d20f7b98",
"id": "wamid.HBgMOTE5MTYzODA1ODczFQIAERgSMDQ4Rj...",
"recipient_id": "91****873",
"status": "delivered",
"timestamp": "1710930462"
}
]
}
}
],
"id": "112535025189792"
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| object | Type of object that sent the event | whatsapp_business_account |
| gs_app_id | Gupshup application ID | 82ed52f4-30c0-4f12-81b4-e7ad... |
| metadata.display_phone_number | Display phone number | 91****58 |
| metadata.phone_number_id | Phone number ID | 158072934066266 |
| statuses[].conversation.id | Unique conversation ID | 3dabdf65abaf1cbbf85217d232cce91f |
| statuses[].id | WhatsApp message ID (wamid) | wamid.HBgMOTE5MTYz... |
| statuses[].recipient_id | Destination phone number | 91*****3 |
| statuses[].status | Message status | delivered |
| statuses[].timestamp | Timestamp (in seconds) for delivery | 1710930462 |
Read-V3 Event
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "9*******8",
"phone_number_id": "158072934066266"
},
"statuses": [
{
"gs_id": "7b8f0910-db98-4cce-be5f-e6e1e847b4bd",
"id": "wamid.HBgMOTE5MTYzODA1ODczFQIAERgSMUUzNz...",
"recipient_id": "91*******73",
"status": "read",
"timestamp": "1720779817"
}
]
}
}
],
"id": "112535025189792"
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| object | Type of object that sent the event | whatsapp_business_account |
| gs_app_id | Gupshup application ID | 82ed52f4-30c0-4f12-81b4-e7ad... |
| metadata.display_phone_number | Display phone number | 91*****8 |
| metadata.phone_number_id | Phone number ID | 158072934066266 |
| statuses[].id | WhatsApp message ID (wamid) | wamid.HBgMOTE5MTYz... |
| statuses[].recipient_id | Destination phone number | 91****73 |
| statuses[].status | Message status | read |
| statuses[].timestamp | Timestamp for the "read" status | 1720779817 |
Failed-V3 Event
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "91*******8",
"phone_number_id": "158072934066266"
},
"statuses": [
{
"errors": [
{
"code": 131047,
"href": "https://developers.facebook.com/docs/whatsapp/cloud-api/support/error-codes/",
"title": "Message failed to send..."
}
],
"gs_id": "91f58e90-f5ba-4cfc-9ca7-e4ab965b9449",
"id": "wamid.HBgMOTE3OTgwODkwOTc4FQIAERgSNERF...",
"recipient_id": "91*******78",
"status": "failed",
"timestamp": "1710941507"
}
]
}
}
],
"id": "112535025189792"
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
} Payload Description
| Key | Description | Example |
|---|---|---|
| object | Type of object that sent the event | whatsapp_business_account |
| gs_app_id | Gupshup application ID | 82ed52f4-30c0-4f12-81b4-e7ad... |
| metadata.display_phone_number | Display phone number | 91*******8 |
| metadata.phone_number_id | Phone number ID | 158072934066266 |
| statuses[].errors[].code | Error code | 131047 |
| statuses[].errors[].title | Error title | "Message failed to send..." |
| statuses[].id | WhatsApp message ID (wamid) | wamid.HBgMOTE3OTgwODkwOTc4FQIAERgSNERF... |
| statuses[].recipient_id | Destination phone number | 91*******8 |
| statuses[].status | Message status | failed |
| statuses[].timestamp | Timestamp of message failure | 1710941507 |
Failed (internal) Event
Sent when Gupshup rejects the message before it reaches Meta, for example when a template does not match. The id (wamid) is absent because the message never reached Meta; only gs_id is present.
Subscription mode: FAILED (or OTHERS when new subscription modes are off)
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"statuses": [
{
"errors": [
{
"code": 4003,
"title": "Message Sending failed as template did not match"
}
],
"gs_id": "ad6b9f16-33ce-4405-9abd-5f90f88195c8",
"recipient_id": "91XXXXXXXX73",
"status": "failed",
"timestamp": 1725367035088
}
]
}
}
]
}
],
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| statuses[].errors[].code | Gupshup error code | 4003 |
| statuses[].errors[].title | Error description | Message Sending failed as template did not match |
| statuses[].gs_id | Gupshup message ID (no wamid, since Meta never received the message) | ad6b9f16-33ce-4405-9abd-5f90f88195c8 |
| statuses[].timestamp | Failure time in milliseconds | 1725367035088 |
V3 Incoming Media Messages Event
Video
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"contacts": [
{
"profile": {
"name": "Avadhoot Yadav"
},
"user_id": "IN.35081637581480220",
"wa_id": "917506080480"
}
],
"messages": [
{
"from": "917506080480",
"from_user_id": "IN.35081637581480220",
"id": "wamid.HBgMOTE3NTA2MDgwNDgwFQIAEhgUM0E0MkM5RjE2RkRBRjQzRDRGMDEA",
"timestamp": "1782372987",
"type": "video",
"video": {
"id": "1791860341777005",
"mime_type": "video/mp4",
"sha256": "zCYvqunwILzc9sXt3/2HyNYWv0L0V7WfXe5a0gqn8t0=",
"url": "https://filemanager.gupshup.io/wa/07c7c72d-20e3-4ff9-a5a1-14d1186eeec8/wa/media/1791860341777005?download=false"
}
}
],
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "917835039205",
"phone_number_id": "105523045970845"
}
}
}
],
"id": "116676371511027"
}
],
"gs_app_id": "07c7c72d-20e3-4ff9-a5a1-14d1186eeec8",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| type | Type of object that sent the event | video |
| gs_app_id | Gupshup application ID | 07c7c72d-20e3-4ff9-a5a1-14d1186eeec8 |
| messaging_product | Messaging product | |
| contacts[].profile.name | Name of the contact | Avadhoot Yadav |
| contacts[].user_id | User ID of the contact | IN.35081637581480220 |
| contacts[].wa_id | WhatsApp ID of the contact | 917506080480 |
| messages[].from | Sender's phone number | 917506080480 |
| messages[].from_user_id | Sender's user ID | IN.35081637581480220 |
| messages[].id | Message ID (wamid) | wamid.HBgMOTE3NTA2MDgwNDgwFQIAEhgUM0E0MkM5RjE2RkRBRjQzRDRGMDEA |
| messages[].timestamp | Time when message was sent (seconds) | 1782372987 |
| messages[].type | Type of message content | video |
| messages[].video.id | Video ID | 1791860341777005 |
| messages[].video.mime_type | Video MIME type | video/mp4 |
| messages[].video.sha256 | Video SHA256 hash | zCYvqunwILzc9sXt3/2HyNYWv0L0V7WfXe5a0gqn8t0= |
| messages[].video.url | Video URL | https://filemanager.gupshup.io/wa/07c7c72d-20e3-4ff9-a5a1-14d1186eeec8/wa/media/1791860341777005?download=false |
| metadata.display_phone_number | Display phone number | 917835039205 |
| metadata.phone_number_id | Phone number ID | 105523045970845 |
| entry[].changes[].field | Field that changed | messages |
| entry[].id | Account ID | 116676371511027 |
| object | Object type | whatsapp_business_account |
Audio
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"contacts": [
{
"profile": {
"name": "Avadhoot Yadav"
},
"user_id": "IN.35081637581480220",
"wa_id": "917506080480"
}
],
"messages": [
{
"audio": {
"id": "3609461882553011",
"mime_type": "audio/ogg; codecs=opus",
"sha256": "wua6L0gsWIGhTqM0SxPYpfcT2rkJrvRB0lpqI+cpISo=",
"url": "https://filemanager.gupshup.io/wa/07c7c72d-20e3-4ff9-a5a1-14d1186eeec8/wa/media/3609461882553011?download=false",
"voice": true
},
"from": "917506080480",
"from_user_id": "IN.35081637581480220",
"id": "wamid.HBgMOTE3NTA2MDgwNDgwFQIAEhgUM0E2QjQ5NUUyMUZDQzg2MDJEMjEA",
"timestamp": "1782372953",
"type": "audio"
}
],
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "917835039205",
"phone_number_id": "105523045970845"
}
}
}
],
"id": "116676371511027"
}
],
"gs_app_id": "07c7c72d-20e3-4ff9-a5a1-14d1186eeec8",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| type | Type of object that sent the event | audio |
| gs_app_id | Gupshup application ID | 07c7c72d-20e3-4ff9-a5a1-14d1186eeec8 |
| messaging_product | Messaging product | |
| contacts[].profile.name | Name of the contact | Avadhoot Yadav |
| contacts[].user_id | User ID of the contact | IN.35081637581480220 |
| contacts[].wa_id | WhatsApp ID of the contact | 917506080480 |
| messages[].from | Sender's phone number | 917506080480 |
| messages[].from_user_id | Sender's user ID | IN.35081637581480220 |
| messages[].id | Message ID (wamid) | wamid.HBgMOTE3NTA2MDgwNDgwFQIAEhgUM0E2QjQ5NUUyMUZDQzg2MDJEMjEA |
| messages[].timestamp | Time when message was sent (seconds) | 1782372953 |
| messages[].type | Type of message content | audio |
| messages[].audio.id | Audio ID | 3609461882553011 |
| messages[].audio.mime_type | Audio MIME type | audio/ogg; codecs=opus |
| messages[].audio.sha256 | Audio SHA256 hash | wua6L0gsWIGhTqM0SxPYpfcT2rkJrvRB0lpqI+cpISo= |
| messages[].audio.url | Audio URL | https://filemanager.gupshup.io/wa/07c7c72d-20e3-4ff9-a5a1-14d1186eeec8/wa/media/3609461882553011?download=false |
| messages[].audio.voice | Whether this is a voice message | true |
| metadata.display_phone_number | Display phone number | 917835039205 |
| metadata.phone_number_id | Phone number ID | 105523045970845 |
| entry[].changes[].field | Field that changed | messages |
| entry[].id | Account ID | 116676371511027 |
| object | Object type | whatsapp_business_account |
Image
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"contacts": [
{
"profile": {
"name": "Avadhoot Yadav"
},
"user_id": "IN.35081637581480220",
"wa_id": "917506080480"
}
],
"messages": [
{
"from": "917506080480",
"from_user_id": "IN.35081637581480220",
"id": "wamid.HBgMOTE3NTA2MDgwNDgwFQIAEhgUM0FGQkI0QTUyM0NCNjlCMkNBNkMA",
"image": {
"id": "1751740922668458",
"mime_type": "image/jpeg",
"sha256": "nH77thkhdX34LtswPHcKJJIViehvFyEQkfM2kaDO/oI=",
"url": "https://filemanager.gupshup.io/wa/07c7c72d-20e3-4ff9-a5a1-14d1186eeec8/wa/media/1751740922668458?download=false"
},
"timestamp": "1782372910",
"type": "image"
}
],
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "917835039205",
"phone_number_id": "105523045970845"
}
}
}
],
"id": "116676371511027"
}
],
"gs_app_id": "07c7c72d-20e3-4ff9-a5a1-14d1186eeec8",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| type | Type of object that sent the event | image |
| gs_app_id | Gupshup application ID | 07c7c72d-20e3-4ff9-a5a1-14d1186eeec8 |
| messaging_product | Messaging product | |
| contacts[].profile.name | Name of the contact | Avadhoot Yadav |
| contacts[].user_id | User ID of the contact | IN.35081637581480220 |
| contacts[].wa_id | WhatsApp ID of the contact | 917506080480 |
| messages[].from | Sender's phone number | 917506080480 |
| messages[].from_user_id | Sender's user ID | IN.35081637581480220 |
| messages[].id | Message ID (wamid) | wamid.HBgMOTE3NTA2MDgwNDgwFQIAEhgUM0FGQkI0QTUyM0NCNjlCMkNBNkMA |
| messages[].timestamp | Time when message was sent (seconds) | 1782372910 |
| messages[].type | Type of message content | image |
| messages[].image.id | Image ID | 1751740922668458 |
| messages[].image.mime_type | Image MIME type | image/jpeg |
| messages[].image.sha256 | Image SHA256 hash | nH77thkhdX34LtswPHcKJJIViehvFyEQkfM2kaDO/oI= |
| messages[].image.url | Image URL | https://filemanager.gupshup.io/wa/07c7c72d-20e3-4ff9-a5a1-14d1186eeec8/wa/media/1751740922668458?download=false |
| metadata.display_phone_number | Display phone number | 917835039205 |
| metadata.phone_number_id | Phone number ID | 105523045970845 |
| entry[].changes[].field | Field that changed | messages |
| entry[].id | Account ID | 116676371511027 |
| object | Object type | whatsapp_business_account |
Document
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"contacts": [
{
"profile": {
"name": "Avadhoot Yadav"
},
"user_id": "IN.35081637581480220",
"wa_id": "917506080480"
}
],
"messages": [
{
"document": {
"filename": "demo.docx",
"id": "1046654134600113",
"mime_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"sha256": "JpMp/HrlSz8omzrFLv3jh+3C5WbvmkjWN+hBAix+Dqs=",
"url": "https://filemanager.gupshup.io/wa/07c7c72d-20e3-4ff9-a5a1-14d1186eeec8/wa/media/1046654134600113?download=false&fileName=demo.docx"
},
"from": "917506080480",
"from_user_id": "IN.35081637581480220",
"id": "wamid.HBgMOTE3NTA2MDgwNDgwFQIAEhgUM0EwMjA2OUQzMzlDMUM3MTNFMjIA",
"timestamp": "1782372793",
"type": "document"
}
],
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "917835039205",
"phone_number_id": "105523045970845"
}
}
}
],
"id": "116676371511027"
}
],
"gs_app_id": "07c7c72d-20e3-4ff9-a5a1-14d1186eeec8",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| type | Type of object that sent the event | document |
| gs_app_id | Gupshup application ID | 07c7c72d-20e3-4ff9-a5a1-14d1186eeec8 |
| messaging_product | Messaging product | |
| contacts[].profile.name | Name of the contact | Avadhoot Yadav |
| contacts[].user_id | User ID of the contact | IN.35081637581480220 |
| contacts[].wa_id | WhatsApp ID of the contact | 917506080480 |
| messages[].from | Sender's phone number | 917506080480 |
| messages[].from_user_id | Sender's user ID | IN.35081637581480220 |
| messages[].id | Message ID (wamid) | wamid.HBgMOTE3NTA2MDgwNDgwFQIAEhgUM0EwMjA2OUQzMzlDMUM3MTNFMjIA |
| messages[].timestamp | Time when message was sent (seconds) | 1782372793 |
| messages[].type | Type of message content | document |
| messages[].document.filename | Document filename | demo.docx |
| messages[].document.id | Document ID | 1046654134600113 |
| messages[].document.mime_type | Document MIME type | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| messages[].document.sha256 | Document SHA256 hash | JpMp/HrlSz8omzrFLv3jh+3C5WbvmkjWN+hBAix+Dqs= |
| messages[].document.url | Document URL | https://filemanager.gupshup.io/wa/07c7c72d-20e3-4ff9-a5a1-14d1186eeec8/wa/media/1046654134600113?download=false&fileName=demo.docx |
| metadata.display_phone_number | Display phone number | 917835039205 |
| metadata.phone_number_id | Phone number ID | 105523045970845 |
| entry[].changes[].field | Field that changed | messages |
| entry[].id | Account ID | 116676371511027 |
| object | Object type | whatsapp_business_account |
Referral (Click to WhatsApp ads)
A message from a customer who tapped a Click to WhatsApp ad carries a referral object describing the ad. The referral object can appear on text, location, contact, image, video, document, voice and sticker messages.
Subscription mode: MESSAGE
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"contacts": [
{
"profile": {
"name": "CUSTOMER_NAME"
},
"wa_id": "91XXXXXXXX73"
}
],
"messages": [
{
"from": "91XXXXXXXX73",
"id": "wamid.HBgMOTE4ODcxNjAxMjk3FQIAEhgUM0FEOUJDNjc1NDJGMUNEMUNFMDEA",
"referral": {
"body": "Shop now and save on your favourite items.",
"ctwa_clid": "ARAHuTtGzmFlOO_WcXezfYBRzrxoH2Emo4kj",
"headline": "Chat with us",
"image_url": "https://www.example.com/ad/12345/image.jpg",
"media_type": "image",
"source_id": "6570618339781",
"source_type": "ad",
"source_url": "https://fb.me/3tkSI06bP"
},
"text": {
"body": "Hello! Can I get more info on this?"
},
"timestamp": "1712229906",
"type": "text"
}
],
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "91XXXXXXXX58",
"phone_number_id": "158072934066266"
}
}
}
],
"id": "112535025189792"
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| referral.source_url | Meta URL of the ad or post the customer clicked | https://fb.me/3tkSI06bP |
| referral.source_type | ad or post | ad |
| referral.source_id | Meta ID of the ad or post | 6570618339781 |
| referral.headline | Headline of the ad or post | Chat with us |
| referral.body | Body text of the ad or post | Shop now and save on your favourite items. |
| referral.media_type | image or video | image |
| referral.image_url | Ad image, when media_type is image | https://www.example.com/ad/12345/image.jpg |
| referral.video_url | Ad video, when media_type is video | https://www.example.com/ad/12345/video.mp4 |
| referral.thumbnail_url | Video thumbnail, when media_type is video | https://www.example.com/ad/12345/thumb.jpg |
| referral.ctwa_clid | Click ID Meta generates for ads that open WhatsApp | ARAHuTtGzmFlOO_WcXezfYBRzrxoH2Emo4kj |
Call Permission Reply - V3 Event
Sent when a user taps Allow or Decline on a call permission request. The request can be an interactive call permission request message or a call permission request template (isCPR=true).
Subscription mode: MESSAGE
The reply arrives on the MESSAGE mode, not the VOICE mode. A subscription with only the VOICE mode does not receive it. The VOICE mode carries the call events (
connect,terminate, call statuses, recording and transcript). See WhatsApp Calling Webhook Events.
{
"entry": [
{
"changes": [
{
"field": "messages",
"value": {
"contacts": [
{
"profile": {
"name": "<USER_NAME>"
},
"user_id": "<USER_BSUID>",
"wa_id": "<USER_WA_ID>"
}
],
"messages": [
{
"context": {
"from": "919355040978",
"gs_id": "54749858-4392-4c32-b3f3-93a5d0e92483",
"id": "1e03c4df-e669-4909-948d-db29bcf4211a",
"meta_msg_id": "wamid.HBgMOTE3NTA2MDgwNDgwFQIAERgSODA0MzBDQzMzNEQxRkYyOUI0AA=="
},
"from": "<USER_WA_ID>",
"from_user_id": "<USER_BSUID>",
"id": "wamid.HBgMOTE3NTA2MDgwNDgwFQIAEhgUM0FEODA1MEJCOTc1MUZDODdENzIA",
"interactive": {
"call_permission_reply": {
"is_permanent": true,
"response": "accept",
"response_source": "user_action"
},
"type": "call_permission_reply"
},
"timestamp": "1791966148",
"type": "interactive"
}
],
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "919355040978",
"phone_number_id": "269033402967482"
}
}
}
],
"id": "293928007134319"
}
],
"gs_app_id": "<APP_ID>",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| messages[].type | Always interactive | interactive |
| messages[].interactive.type | Always call_permission_reply | call_permission_reply |
| messages[].interactive.call_permission_reply.response | accept when the user tapped Allow, reject when the user tapped Decline | accept |
| messages[].interactive.call_permission_reply.is_permanent | true when the user granted permanent permission. Not sent for a temporary permission | true |
| messages[].interactive.call_permission_reply.expiration_timestamp | When a temporary permission expires (Unix seconds). Sent instead of is_permanent | 1759836840 |
| messages[].interactive.call_permission_reply.response_source | user_action when the user tapped the button | user_action |
| messages[].context.gs_id / context.id | Gupshup message ID of the call permission request this reply answers | 54749858-4392-4c32-b3f3-93a5d0e92483 |
| messages[].context.meta_msg_id | Meta message ID of the request | wamid.HBgMOTE3NTA2... |
| messages[].from / from_user_id | The user's number and BSUID (BSUID only when enabled for the app) | 91XXXXXXXXXX |
User Events - V3
When a V3 subscription or callback URL is added, a Callback Set event (described at the top of this page) is sent to it. This replaces the V2 sandbox-start event.
User Preferences (stop or resume marketing)
Sent when a WhatsApp user stops or resumes marketing messages from your business. If you send a marketing message to a user who has stopped them, you receive a Failed event with error code 131050. V2 equivalent: opted-in / opted-out.
Subscription mode: OTHERS
{
"entry": [
{
"changes": [
{
"field": "user_preferences",
"value": {
"contacts": [
{
"profile": {
"name": "CUSTOMER_NAME"
},
"wa_id": "91XXXXXXXX73"
}
],
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "91XXXXXXXX58",
"phone_number_id": "158072934066266"
},
"user_preferences": [
{
"category": "marketing_messages",
"detail": "User requested to stop marketing messages",
"timestamp": 1744498732,
"value": "stop",
"wa_id": "91XXXXXXXX73"
}
]
}
}
],
"id": "112535025189792"
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| user_preferences[].category | Preference category | marketing_messages |
| user_preferences[].value | stop or resume | stop |
| user_preferences[].detail | Human-readable reason | User requested to stop marketing messages |
| user_preferences[].wa_id | Customer’s WhatsApp ID | 91XXXXXXXX73 |
| user_preferences[].timestamp | When the user changed the setting (seconds) | 1744498732 |
Billing Events - V3
Billing events are sent to subscriptions with the BILLING mode whenever the wallet is debited. For per-message pricing (PMP), see PMP Events.
Billing (conversation-based pricing)
Sent when the wallet is debited for a conversation, for businesses still on conversation-based pricing. Since 1 July 2025 most traffic uses per-message pricing; see the PMP Events page.
Subscription mode: BILLING
{
"entry": [
{
"changes": [
{
"field": "billing-event",
"value": {
"billing": {
"deductions": {
"billable": false,
"conversation_type": "service",
"model": "CBP",
"source": "whatsapp",
"type": "FTC"
},
"references": {
"conversation_id": "532b57b5f6e63595ccd74c6010e5c5c7",
"destination": "91XXXXXXXX73",
"gs_id": "7daeb742-f2dc-4c09-90e0-d879d20f7b98",
"id": "wamid.HBgMOTE5MTYzODA1ODczFQIAERgSMDQ4Rj..."
}
}
}
}
]
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| deductions.billable | Whether the wallet was debited | false |
| deductions.conversation_type | Conversation type | service |
| deductions.model | Pricing model | CBP |
| deductions.source | whatsapp (Meta charge) or gupshup | |
| deductions.type | Deduction type, e.g. FTC (free tier), FEP (free entry point), or a category | FTC |
| references.conversation_id | Meta conversation ID | 532b57b5f6e63595ccd74c6010e5c5c7 |
| references.destination | Customer phone number | 91XXXXXXXX73 |
| references.gs_id | Gupshup message ID | 7daeb742-f2dc-4c09-90e0-d879d20f7b98 |
| references.id | WhatsApp message ID | wamid.HBgMOTE5... |
MM Lite Bidding / Max Price
The following billing payload example uses the marketing_lite_dynamic category for MM Lite bidding / Max Price.
Subscription mode: BILLING
[
{
"changes": [
{
"field": "billing-event",
"value": {
"billing": {
"deductions": {
"billable": true,
"category": "marketing_lite_dynamic",
"model": "PMP",
"source": "whatsapp",
"type": "regular"
},
"references": {
"destination": "919131210181",
"gs_id": "8ae79be7-8e2d-456d-b181-1c762c6a009b",
"id": "10314pO711j2g3119119i2EYa6ZX2Z",
"user_id": "IN.969686396164426"
}
}
}
}
]
}
]Payload Description
| Key | Description | Example |
|---|---|---|
| changes | Contains the changes reported by the event. | See the example payload. |
| field | Identifies the event as a billing event. | billing-event |
| value | Contains the billing information. | See the example payload. |
| billing | Contains the deductions and references for the billing event. | See the example payload. |
| deductions | Contains the billing deduction details. | See the example payload. |
| billable | Whether the wallet was debited | true |
| category | Pricing category | marketing_lite_dynamic |
| model | Pricing model | PMP |
| source | whatsapp (Meta charge) or gupshup | |
| type | Deduction type | regular |
| references | Contains the message and customer identifiers associated with the event. | See the example payload. |
| destination | Customer phone number | 919131210181 |
| gs_id | Gupshup message ID | 8ae79be7-8e2d-456d-b181-1c762c6a009b |
| id | WhatsApp message ID | 10314pO711j2g3119119i2EYa6ZX2Z |
| user_id | Customer user ID | IN.969686396164426 |
Call Billing
Sent after each WhatsApp call. Two events are sent per call: one for the Meta charge (source: whatsapp) and one for the Gupshup charge (source: gupshup, always billable: false).
Subscription mode: BILLING
{
"entry": [
{
"changes": [
{
"field": "billing-event",
"value": {
"billing": {
"deductions": {
"billable": "true",
"conversation_type": "call",
"source": "whatsapp"
},
"references": {
"conversation_type": "CALL",
"destination": "91XXXXXXXX12",
"direction": "USER_INITIATED",
"duration": 18,
"end_time": 1743598139,
"id": "wacid.HBgMOTE5NjQzNTk1NDUyFQIAEhggMTczN0EzM0E4Q0MyRjk5RUQwQzQwRTZBQjk5NkRDODQcGAw5MTkzNTUwMTU5MTIVAgAA",
"source": "91XXXXXXXX52",
"start_time": 1743598121
}
}
}
}
],
"time": 1743598141518
}
],
"gs_app_id": "b6016edd-12fb-4da1-8e96-e5bb634e271f",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| deductions.billable | Whether the wallet was debited | true |
| deductions.conversation_type | Always call | call |
| deductions.source | whatsapp for the Meta charge, gupshup for the Gupshup charge | |
| references.conversation_type | MESSAGE or CALL | CALL |
| references.direction | USER_INITIATED or BUSINESS_INITIATED | USER_INITIATED |
| references.id | WhatsApp call ID | wacid.HBgMOTE5... |
| references.duration | Call duration in seconds | 18 |
| references.start_time | Call start time (seconds) | 1743598121 |
| references.end_time | Call end time (seconds) | 1743598139 |
| references.source | Caller's phone number | 91XXXXXXXX52 |
| references.destination | Recipient's phone number | 91XXXXXXXX12 |
System Events - V3
System events tell you about changes to your templates and your WhatsApp Business Account. Template events are sent to subscriptions with the TEMPLATE mode and account events to subscriptions with the ACCOUNT mode. Events that come from Meta are forwarded in Meta's format with gs_app_id added.
Template Events
Template status update
Sent when Meta approves, rejects, flags, pauses, disables or deletes a template. V2 equivalent: template-event with type status-update.
Subscription mode: TEMPLATE
{
"entry": [
{
"changes": [
{
"field": "message_template_status_update",
"value": {
"event": "REJECTED",
"message_template_id": 1100458124470144,
"message_template_name": "order_update",
"message_template_language": "en_US",
"reason": "INVALID_FORMAT"
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| event | APPROVED, REJECTED, FLAGGED, PAUSED, DISABLED, PENDING_DELETION, REINSTATED | REJECTED |
| message_template_id | Meta template ID | 1100458124470144 |
| message_template_name | Template name | order_update |
| message_template_language | Template language code | en_US |
| reason | Rejection reason, or NONE: SCAM, ABUSIVE_CONTENT, PROMOTIONAL, INCORRECT_CATEGORY, INVALID_FORMAT | INVALID_FORMAT |
Template paused
Sent when Meta pauses a template for low quality: 3 hours the first time, 6 hours the second time, then disabled. other_info.title tells which.
Subscription mode: TEMPLATE
{
"entry": [
{
"changes": [
{
"field": "message_template_status_update",
"value": {
"event": "PAUSED",
"message_template_id": 1100458124470144,
"message_template_name": "order_update",
"message_template_language": "en_US",
"reason": "NONE",
"other_info": {
"title": "FIRST_PAUSE",
"description": "Your WhatsApp message template has been paused for 3 hours until Sep 5 at 5:57 PM UTC because it had issues."
}
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| other_info.title | FIRST_PAUSE, SECOND_PAUSE or DISABLED | FIRST_PAUSE |
| other_info.description | Meta’s explanation, including when the pause ends | Your WhatsApp message template has been paused for 3 hours… |
Template flagged
Sent when Meta flags a template and schedules it to be disabled.
Subscription mode: TEMPLATE
{
"entry": [
{
"changes": [
{
"field": "message_template_status_update",
"value": {
"event": "FLAGGED",
"message_template_id": 1100458124470144,
"message_template_name": "order_update",
"message_template_language": "en_US",
"reason": "NONE",
"disable_info": {
"disable_date": "September 24, 2026"
}
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| disable_info.disable_date | Date the template will be disabled | September 24, 2026 |
Template category update
Sent when Meta changes a template's category. V2 equivalent: template-event with type category-update.
Subscription mode: TEMPLATE
{
"entry": [
{
"changes": [
{
"field": "template_category_update",
"value": {
"message_template_id": 1100458124470144,
"message_template_language": "en_US",
"message_template_name": "order_update",
"new_category": "MARKETING",
"previous_category": "UTILITY"
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| previous_category | Category before the change | UTILITY |
| new_category | Category after the change | MARKETING |
Template correct-category alert
Sent when Meta finds a miscategorised template. It names the correct category, which Meta applies on the 1st of the next month; a category update event follows then. Tell the two apart by the key: correct_category here, previous_category on the real update.
Subscription mode: TEMPLATE
{
"entry": [
{
"changes": [
{
"field": "template_category_update",
"value": {
"correct_category": "UTILITY",
"message_template_id": 1100458124470144,
"message_template_language": "en_US",
"message_template_name": "order_update",
"new_category": "MARKETING"
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| new_category | Category the template has now | MARKETING |
| correct_category | Category Meta will move it to next month | UTILITY |
Template quality update
Sent when Meta changes a template's quality rating.
Subscription mode: TEMPLATE
{
"entry": [
{
"changes": [
{
"field": "message_template_quality_update",
"value": {
"message_template_id": 1100458124470144,
"message_template_language": "en_US",
"message_template_name": "order_update",
"new_quality_score": "YELLOW",
"previous_quality_score": "GREEN"
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| previous_quality_score | GREEN, YELLOW, RED or UNKNOWN | GREEN |
| new_quality_score | GREEN, YELLOW, RED or UNKNOWN | YELLOW |
Account Events
For the volume-based pricing tier update, see Tier Based Pricing.
Go-Live (account verified)
Sent when an app completes onboarding and goes live.
Subscription mode: ACCOUNT
{
"entry": [
{
"changes": [
{
"field": "account-event",
"value": {
"payload": {
"status": "ACCOUNT_VERIFIED"
},
"type": "status-event"
}
}
],
"id": "731055923430007",
"time": 1778737735857
}
],
"gs_app_id": "4b886e79-6bc4-4fd6-8612-81e4db0a1a94",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| value.type | Always status-event | status-event |
| value.payload.status | Always ACCOUNT_VERIFIED | ACCOUNT_VERIFIED |
Marketing Messages Lite: ad account linked
Sent for each WhatsApp Business Account under the Business Manager once Marketing Messages Lite onboarding completes.
Subscription mode: ACCOUNT
{
"entry": [
{
"changes": [
{
"field": "account_update",
"value": {
"event": "AD_ACCOUNT_LINKED",
"waba_info": {
"ad_account_id": "521842584195455",
"owner_business_id": "1998042230628192",
"waba_id": "216141188246170"
}
}
}
],
"id": "216141188246170",
"time": 1734607255
}
],
"gs_app_id": "bf9ee64c-3d4d-4ac4-8668-732e577007c4",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| value.event | Always AD_ACCOUNT_LINKED | AD_ACCOUNT_LINKED |
| waba_info.ad_account_id | Ad account created during onboarding | 521842584195455 |
| waba_info.owner_business_id | Meta business ID | 1998042230628192 |
| waba_info.waba_id | WhatsApp Business Account ID | 216141188246170 |
Account review
Sent when Meta finishes reviewing your WhatsApp Business Account. V2 equivalent: review-event.
Subscription mode: ACCOUNT
{
"entry": [
{
"changes": [
{
"field": "account_review_update",
"value": {
"decision": "APPROVED"
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| decision | APPROVED or REJECTED | APPROVED |
Account violation
Sent when your WhatsApp Business Account breaks WhatsApp policy. V2 equivalent: status-event with ACCOUNT_VIOLATION.
Subscription mode: ACCOUNT
{
"entry": [
{
"changes": [
{
"field": "account_update",
"value": {
"event": "ACCOUNT_VIOLATION",
"violation_info": {
"violation_type": "SCAM"
}
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| event | ACCOUNT_VIOLATION | ACCOUNT_VIOLATION |
| violation_info.violation_type | Meta policy violation type | SCAM |
Account restriction
Sent when Meta restricts what your WhatsApp Business Account can do until a set time. V2 equivalent: status-event with ACCOUNT_RESTRICTED.
Subscription mode: ACCOUNT
{
"entry": [
{
"changes": [
{
"field": "account_update",
"value": {
"event": "ACCOUNT_RESTRICTION",
"restriction_info": [
{
"expiration": "2026-11-14T17:58:42+0000",
"restriction_type": "RESTRICTED_ADD_PHONE_NUMBER_ACTION"
},
{
"expiration": "2026-11-14T17:58:42+0000",
"restriction_type": "RESTRICTED_BIZ_INITIATED_MESSAGING"
}
]
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| restriction_info[].restriction_type | RESTRICTED_ADD_PHONE_NUMBER_ACTION, RESTRICTED_BIZ_INITIATED_MESSAGING or RESTRICTED_CUSTOMER_INITIATED_MESSAGING | RESTRICTED_BIZ_INITIATED_MESSAGING |
| restriction_info[].expiration | When the restriction ends | 2026-11-14T17:58:42+0000 |
Account disabled or reinstated
Sent when Meta schedules, applies or lifts a ban on your WhatsApp Business Account. V2 equivalent: status-event with DISABLE or REINSTATE.
Subscription mode: ACCOUNT
{
"entry": [
{
"changes": [
{
"field": "account_update",
"value": {
"ban_info": {
"waba_ban_date": "October 30, 2026",
"waba_ban_state": "REINSTATE"
},
"event": "DISABLED_UPDATE"
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| ban_info.waba_ban_state | SCHEDULE_FOR_DISABLE, DISABLE or REINSTATE | REINSTATE |
| ban_info.waba_ban_date | Date of the ban change | October 30, 2026 |
Display name decision
Sent when Meta approves or rejects a requested display name. V2 equivalent: pndn-event.
Subscription mode: ACCOUNT
{
"entry": [
{
"changes": [
{
"field": "phone_number_name_update",
"value": {
"decision": "APPROVED",
"display_phone_number": "91XXXXXXXX58",
"rejection_reason": "NONE",
"requested_verified_name": "Example Store"
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| decision | APPROVED, REJECTED or DEFERRED | APPROVED |
| requested_verified_name | The name that was requested | Example Store |
| rejection_reason | Reason when rejected, otherwise NONE | NONE |
Messaging limit (tier) change
Sent when a phone number's messaging limit changes or the number is flagged. V2 equivalent: tier-event.
Subscription mode: ACCOUNT
{
"entry": [
{
"changes": [
{
"field": "phone_number_quality_update",
"value": {
"current_limit": "TIER_10K",
"display_phone_number": "91XXXXXXXX58",
"event": "UPGRADE",
"old_limit": "TIER_1K"
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| event | ONBOARDING, UPGRADE, DOWNGRADE, FLAGGED or UNFLAGGED | UPGRADE |
| current_limit | New messaging limit | TIER_10K |
| old_limit | Previous limit (absent on FLAGGED and UNFLAGGED) | TIER_1K |
Business capability update
Sent when Meta changes your business's messaging or phone number limits. V2 equivalent: capability-event.
Subscription mode: ACCOUNT
{
"entry": [
{
"changes": [
{
"field": "business_capability_update",
"value": {
"max_daily_conversation_per_phone": 100000,
"max_phone_numbers_per_waba": 25
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| max_daily_conversation_per_phone | Daily limit per phone number | 100000 |
| max_phone_numbers_per_waba | Phone number limit (some events send max_phone_numbers_per_business instead) | 25 |
Business profile updated
Sent when the business profile is changed through the Profile API, so you can spot changes you didn't make.
Subscription mode: ACCOUNT. Sent only when the app setting sendAccountUpdateEvent is turned on.
{
"entry": [
{
"changes": [
{
"field": "account-event",
"type": "profile-update-req",
"value": {
"payload": {
"about": "We deliver in 30 minutes",
"address": "1 Example Road, Mumbai",
"alternateWebsite": "https://www.example.org",
"category": "RETAIL",
"description": "Neighbourhood grocery",
"displayName": "Example Store",
"email": "[email protected]",
"profilePhoto": "https://www.example.com/logo.png",
"website": "https://www.example.com"
}
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| changes[].type | Always profile-update-req | profile-update-req |
| value.payload | The profile fields that were set | {…} |
Webhook subscription changed
Sent to every existing subscription when one is created, updated or deleted. On an update it also goes to the old URL.
Subscription mode: ACCOUNT. Sent only when the app setting sendAccountUpdateEvent is turned on.
{
"entry": [
{
"changes": [
{
"field": "account-event",
"type": "webhook-update",
"value": {
"action": "update",
"callbackUrl": "https://new.example.com/webhook",
"id": "SUBSCRIPTION_ID",
"previousUrl": "https://old.example.com/webhook"
}
}
],
"id": "112535025189792",
"time": 1761637200
}
],
"gs_app_id": "82ed52f4-30c0-4f12-81b4-e7ad07bd41de",
"object": "whatsapp_business_account"
}Payload Description
| Key | Description | Example |
|---|---|---|
| changes[].type | Always webhook-update | webhook-update |
| value.action | create, update, delete or delete_all | update |
| value.id | Subscription ID | SUBSCRIPTION_ID |
| value.callbackUrl | URL after the change | https://new.example.com/webhook |
| value.previousUrl | URL before the change | https://old.example.com/webhook |
Updated 7 days ago
