Skip to main content
Welcome to the preview portal — This is an early release of the new Doc Hub experience, with more content coming soon.

Create Webhook Subscription


This section describes how to create a webhook subscription. The request you send is dependent on your system's security policy. You can subscribe to multiple webhook products and event types in the same request. After creating a subscription, you receive a notification every time your subscribed events occur.

Every webhooks integration uses mutual trust. In addition to mutual trust, you can also use the OAuth or OAuth with JWT security policy. If you are not using OAuth security to authenticate your webhook notifications, use the default mutual trust request.

Endpoints

Send a POST request to one of these endpoints:

POST /notification-subscriptions/v2/webhooks

POST /notification-subscriptions/v2/webhooks

POST /notification-subscriptions/v2/webhooks

Security Policy Methods

The required fields and the request body differ by security policy. Choose the method that matches your policy:

Optional Fields

FieldDescription
deactivateflagRequired if the healthCheckUrl field is present. Set to true to automatically activate the subscription.
healthCheckUrlSet to the health check URL. Required to auto-activate the subscription. If you do not include this field, the created subscription is inactive. An inactive subscription does not send notifications.
notificationScope.scopeDataSet to the organization IDs that you want to receive notifications for when subscribed events occur in those organizations. Concatenate each organization ID with the comma character (,).
retryPolicy.deactivateFlagSet to true to withhold notifications while your webhook URL or health check URL are unresponsive. The default value is false.
retryPolicy.firstRetryThe number of minutes before the notification is resent. The default value is 1.
retryPolicy.intervalThe number of minutes between each retry attempt. The default value is 1.
retryPolicy.numberOfRetriesThe number of retry attempts. The default value is 3.
retryPolicy.repeatSequenceCountThe number of times to repeat the retry sequence. The default value is 0.
retryPolicy.repeatSequenceWaitTimeThe number of minutes between each repeat sequence. The default value is 0.

Subscription ID

After sending this request, you receive a response with a subscription ID in the webhookId field. Save this ID in your system to send follow-on requests that enable you to update and manage the subscription.

Notification Scope Response Indicators

The notificationScope response field indicates which organizations receive the webhook notification. By default, notifications use the DESCENDANTS setting. To modify this setting, include the notificationScope.scopeData field in your request.

These are all possible field values:

ValueDescription
SELFOnly the organization creating the webhook subscription receives notifications when a subscribed event occurs.
DESCENDANTS (default)The organization creating the webhook subscription receives notifications when a subscribed event occurs in their organization and in any of their children/descendant accounts in their portfolio hierarchy. This is the default notification setting.
CUSTOMThe organization creating the webhook subscription receives notifications when a subscribed event occurs in their organization and in any organization listed in the notificationScope.scopeData request field.

Subscription Statuses

When you create a subscription, its status is indicated in the status response field. If you did not include a health check URL in your request, the subscription is set to INACTIVE. If you included a health check URL and receives a response from the health check URL, the subscription status is set to ACTIVE.

These are the three possible statuses a subscription can be set to:

StatusDescription
ACTIVEThe subscription is ready to send notifications or is actively sending notifications.
INACTIVEThe subscription has not been activated. Add a health check URL to activate it.
SUSPENDEDThe subscription was active, but the webhook URL or the health check URL became unreachable. When the URL becomes reachable, the status changes to ACTIVE and notifications resume.

Health Check URL

recommends that you include a health check URL in the subscription request. A health check URL ensures that you do not miss any notifications.

Including a health check URL enables to monitor your server's status for reliability. When detects that your health check URL is unresponsive, notification deliveries are withheld until your health check URL becomes responsive again.

To add a health check URL to your create a subscription request, include these fields:

  • healthCheckurl: set to your health check URL.
  • deactivateflag: set to true to enable to withhold notifications for periods when your server becomes unresponsive.

Automatic activation

After you successfully create or update a subscription, pings your health check URL within five to ten minutes:

  • If receives a response, the subscription status automatically becomes ACTIVE and notifications are delivered.
  • If does not receive a response, your subscription status remains SUSPENDED until receives a response.

If you did not include a health check URL when you created the subscription, pings your webhook URL for automatic activation instead. You can also activate a subscription that is not automatically activated by sending a PUT request.

Automatic revalidation

After the subscription's initial activation, continues to monitor your server status:

  • If detects that your server is unavailable, your subscription status automatically updates to SUSPENDED, and notifications are withheld.
  • If detects that your server is available again, your subscription status automatically updates to ACTIVE, and all withheld notifications are delivered.

URL Validation

When a webhook subscription is created or updated, the URLs associated with that subscription are evaluated through a validation and approval process.

URL validation is designed to:

  • Reduce security risk by preventing outbound calls to unapproved endpoints.
  • Improve compliance through stronger review and approval controls.
  • Increase transparency with clearer client-visible statuses.
  • Support scale through a standardized and repeatable validation process.

URL validation applies to:

  • Webhook URL (required)
  • OAuth URL (if applicable)
  • Health Check URL (if applicable)

Validation process:

  1. A webhook subscription is created or updated.
  2. Submitted URLs are checked against existing approval records.
  3. New or unknown URLs are evaluated through automated validation.
  4. If additional review is required, the subscription status changes to PENDING_REVIEW.
  5. If any URL is rejected or blocked, the subscription status changes to BLOCKED.
  6. If all required URLs are approved, the subscription status changes to INACTIVE.

Validation statuses: These are the statuses a subscription can be set to during URL validation:

StatusDescription
PENDING_REVIEWOne or more submitted URLs are being validated or awaiting required security approval.
BLOCKEDOne or more URLs were rejected or identified as unsafe or non-compliant. The subscription cannot proceed until the URL(s) are updated.
INACTIVEAll required approvals are complete, and the subscription is ready under the existing activation flow.

If your subscription is marked BLOCKED, one or more URLs associated with the subscription cannot be used in their current form. To continue, update the affected URLs and resubmit.

Retry Policy

If your webhook URL or health check URL are unresponsive when sent a notification, resends the notification according to the subscription's retry policy. By default, sends you 3 notification attempts, beginning 1 minute after the initial failed attempt. Retry attempts occur in 1 minute intervals if your URL remains unresponsive.

All subscriptions have a default retry policy. You can change the retry policy when you create a subscription or when you update the webhook subscription.

To configure a subscription's retry policy, include these required fields in the create a subscription request or an update a subscription request:

FieldDescription
retryPolicy.deactivateFlagSet to one of these values: false — Notifications are not withheld when your webhook URL or health check URL are unresponsive. This value is the default. true — Notifications are withheld when your webhook URL or health check URL are unresponsive, and the subscription status updates to SUSPENDED. When the URLs become responsive again, the withheld notifications are sent and the subscription status updates to ACTIVE.
retryPolicy.firstRetryThe number of minutes before the notification is resent. The default value is 1.
retryPolicy.intervalThe number of minutes between each retry attempt. The default value is 1.
retryPolicy.numberOfRetriesThe number of retry attempts. The default value is 3.
retryPolicy.repeatSequenceCountThe number of times to repeat the retry sequence. The default value is 0.
retryPolicy.repeatSequenceWaitTimeThe number of minutes between each repeat sequence. The default value is 0.

Example: This example shows how to format a retry policy in a request.

  "retryPolicy": {    "firstRetry": "1",    "interval": "1",    "numberOfRetries": "3",    "deactivateFlag": "false",    "repeatSequenceCount": "0",    "repeatSequenceWaitTime": "0"  }

Last published: October 28, 2026