Webhook Notifications

Receive event notifications with webhooks

VGS now uses webhooks when an event happens in your organization. Available webhook events today are particularly useful for tracking events like when someone changes or updates a live route, or tracking proxy upstream error occurrences.

Begin using webhooks with VGS integration in just three steps:

  1. Create a webhook endpoint on your server

  2. Add an endpoint in the VGS Dashboard

  3. Complete your integration by adding events

Set up instructions

chevron-rightSetting up Notifications in the Vault Dashboard hashtag

To set up a webhook, go to the Administration section in the left side navigation > Organization Settings > Notifications dashboard page, click Add Notifications on the right to reveal a form to add an endpoint for receiving events.

You can enter any valid and existing URL as the destination for events. After you have added an endpoint, you’ll be able to add/select individual events.

Pick events from the dropdown list, and they will immediately appear in the Events List. Once an event is added to the list, you can set up resources (vaults, users) associated with it. If none is selected, notifications will be triggered for all of them.

chevron-rightSetting up Notifications in the CMP Dashboard (preferred)hashtag

To set up Notifications in the CMP Dashboard, go Settings > Organization > Notifications.

  • If your Organization is not enabled for notifications, the dashboard will display a message with guidance to contact support.

  • If your Organization is enabled for Notifications, the dashboard will display a table view of any existing notifications. Click the "Create new" call to action to kick of the new notification flow.

Clicking into a notification will surface a detailed view of the notification, along with capabilities to edit, delete, and alter the active/inactive status of the notification.

When creating a new notification, or editing an existing event listed for a notification, the user will be prompted to define both the event, as well as its source. Events are sorted into categories according to the product or service it relates to.

Once an event is selected, the user can define the source of the event. Event sources can include CMP accounts, individual vaults/tenants (for which one exists for every CMP account), users, or organizations. Each eligible event source will also denote whether the source exists in a Sandbox, or Live environment.

List of available notifications events

Event
Scope
Grouping
Details

route.created

VAULT

EVERY_SINGLE

  • route_id

  • route_name

  • environment

route.updated

VAULT

EVERY_SINGLE

  • route_id

  • route_name

  • environment

route.delete

VAULT

EVERY_SINGLE

  • route_id

  • route_name

  • environment

vault.created

ORGANIZATION

EVERY_SINGLE

  • vault_id

  • vault_name

  • environment

au_card.updated

EVERY_SINGLE

  • card_id

  • old_account_number

  • old_expiration_date

  • new_expiration_date

  • occurred_at

au_card.expired

EVERY_SINGLE

  • card_id

  • old_account_number

  • old_expiration_date

  • new_expiration_date

  • occurred_at

au_card.closed

EVERY_SINGLE

  • card_id

  • old_account_number

  • occurred_at

au_card.non_participating

EVERY_SINGLE

  • card_id

  • occurred_at

au_card.contact_cardholder_advice

EVERY_SINGLE

  • card_id

  • old_account_number

  • old_expiration_date

  • occurred_at

au_card.unknown

EVERY_SINGLE

  • card_id

  • occurred_at

au_card.enrolled

EVERY_SINGLE

  • card_id

  • occurred_at

au_card.opt_out

EVERY_SINGLE

  • card_id

  • occurred_at

user.permissions_updated

USER

EVERY_SINGLE

  • user_email

  • org_id

  • list<permission>

user.permissions_deleted

USER

EVERY_SINGLE

  • user_email

  • org_id

  • list<permission>

user.logged_in

USER

EVERY_SINGLE

  • user_ip

  • user_email

user.password_updated

USER

EVERY_SINGLE

  • user_ip

  • user_email

user.mfa_created

USER

EVERY_SINGLE

  • user_ip

  • user_email

user.mfa_deleted

USER

EVERY_SINGLE

  • user_ip

  • user_email

proxy.upstream_error

VAULT

EXP_REPEAT

  • upstream_host

  • upstream_error

  • environment

alias.reveal_failed

VAULT

EXP_REPEAT

  • environment

  • storage

Managing Webhooks

Existing webhook endpoints can be updated or deleted in the Dashboard’s Notifications section. You also have the option of disabling a webhook endpoint temporarily. VGS does not retry any notifications that are generated while the endpoint has been disabled. For every webhook integration, a unique secret is generated, it is used to verify requests on the client-side.

Webhook Delivery Schedule

VGS will attempt to deliver a webhook 8 times. If all webhook delivery attempts receive non-200 responses, the webhook delivery will be cancelled. The delivery attempt schedule is detailed below:

  • Immediately

  • 5 seconds

  • 5 minutes

  • 30 minutes

  • 2 hours

  • 5 hours

  • 10 hours

  • 10 hours (in addition to the previous)

Webhook Grouping

Some frequent events like proxy.upstream_error or record.reveal_failed are grouped to prevent spamming the delivery server. In this case, only 1st, 10th, 100th, 1000th, etc, are being sent for 5-minute time windows. The occurrence field in a webhook payload contains a number of those grouped events.

Webhook Signatures

Each webhook request contains a unique signature within the HTTP header vgs-signature to verify the request’s VGS origin.

Example:

t - UTC timestamp, it must be within a typical 60s delivery time window v0 - request signature itself

The signature is a sha256 hash of a raw request body. Python verification example below:

Please note: the 60s timestamp tolerance is very strict. If you require flexibility and/or want to decrease the chance the likelihood of webhook request rejection, it is possible to increase this limit to the allowance you are comfortable with.

Additionally, upon retry, the webhook request will be sent again with the same timestamp. If you have very narrow timestamp 60s, a retry that happens after 30 minutes will be rejected.

IP List

The following is a list of IPs that VGS notifications will be arriving from:

  • 44.228.126.217

  • 50.112.21.217

  • 52.24.126.164

  • 54.148.139.208

  • 2600:1f24:64:8000::/52

  • 54.164.207.221

  • 54.90.7.123

  • 2600:1f28:37:4000::/52

Webhook Integration Limits

Currently, we support only the webhook delivery method, and there is a general limit of 20 integrations per organization. This number can be increased by sending a request to the VGS support team.

Last updated