Optimization Protection
Webhook verification
The Notification API automatically verifies that it can deliver notifications to the callback URL you provide when you subscribe to a webhook notification.
How webhook verification works
- You create a webhook subscription using the
POST /subscriptionsendpoint. - Notifications automatically opts your subscription for verification and prepares a webhook notification with type:
subscriptionVerificationand subtype:webhookVerification.- Ensure that your server accepts webhooks with this type and subtype.
- Notifications attempts to deliver the verification webhook to your server using the
callbackURLandsecurityPreferencesyou provided.- If we receive a 200 or 201 HTTP response, your subscription is
ACTIVATED. - If verification fails, the subscription status updates to
FAILED_VERIFICATIONand a merchant servicing case is created.
- If we receive a 200 or 201 HTTP response, your subscription is
The following is a sample of the verification webhook you would receive during the verification process:
Json
{
"notificationId": "2bf2b445-60c0-4535-9225-5decd6100c7f",
"platformId": "",
"notificationType": "SubscriptionVerification",
"notificationSubType": "WebhookVerification",
"notificationDescription": "Notification for validating webhook URL for subscriptionId: a7d703ca-38bd-4795-91cf-fd521105c145",
"messageCreateTimestamp": "2026-06-08T19:52:01.139Z",
"subscriptionId": "a7d703ca-38bd-4795-91cf-fd521105c145",
"subscriptionVerification": {
"webhookVerification": {
"subscriptionCreatedTimestamp": "2026-06-08T19:52:01.139Z",
"requestId": "68305209-3e02-4a0b-b60c-49b02e6e148f"
}
}
}Verification status
The status of a webhook verification can be one of the following:
| Verification status | Description | Comments |
|---|---|---|
PENDING_VERIFICATION |
The verification process is underway. |
|
ACTIVATED |
The verification was successful and your subscription is active. |
|
FAILED_VERIFICATION |
The verification was unsuccessful and your subscription is inactive. | If verification fails for the subscription, try the following:
|
Retrieve the status of a webhook verification
You can retrieve the verification status by performing a GET request to /pendingSubscriptions/{request-id} using your subscription’s request ID.
Required header fields:
| Header name | Description |
|---|---|
entity-id |
Unique identifier for the entity. |
entity-type |
The type of entity identifier. Valid values are:
|
request-id |
A unique identifier provided by the requestor for each request. |
The following is a sample code block of retrieving a webhook verification:
HTTP method: GET
Endpoint: /pendingSubscriptions/{request-id}
Json
{
"notifications": {
"disputeNotification": [
"DisputeClosed"
]
},
"subscriptionId": "c766945b-e703-4ed1-9e4e-a8ca17caa34e",
"subscriptionCreateTimestamp": "2026-05-18T12:46:33.802Z",
"subscriptionUpdatedTimestamp": "2026-05-18T12:46:47.994Z",
"callbackURL": "https://merchant.notification.com",
"responseStatus": "SUCCESS",
"responseCode": "ACCEPTED",
"responseMessage": "Request Accepted",
"subscriptionChannels": [
"WEBHOOK"
],
"subscriptionStatus": "ACTIVATED"
}