Skip to main content

How to set up webhooks

Automatically take action when something important happens inside Vouchsafe

Jaye Hackett avatar
Written by Jaye Hackett
Updated over a month ago

Webhooks let you connect Vouchsafe to other tools by sending a message when something changes, like when someone completes a verification.

For example, you can send a webhook to your CRM when a verification succeeds, so you can update the customer’s record or give them access to your service.

Setting up a webhook

You don’t need to write code to use webhooks. Just:

  1. Get a webhook URL from the tool you want to send messages to.
    Most no-code tools like Zapier can create these URLs.

  2. Paste the URL into your verification flow settings in Vouchsafe.

Events that trigger a webhook

You’ll get a message when a verification:

  • is created – the user has started the process

  • is completed – the user has finished, but results are not ready yet

  • succeeds – all checks passed

  • fails – the check was abandoned or flagged as likely fraud

The full list of supported events is:

  • Created = verification has been requested, either in the dashboard or via an integration

  • UserCompleted = the user has completed their steps but extra action is still needed (eg. from a referee)

  • Verified = the user has been automatically verified

  • Refused = the user couldn’t be verified due to one or more fraud signals, and you need to review them

  • Alert = for time-sensitive due diligence notifications e.g. a user appearing in a sanctions list

Each message includes different information depending on the event.

Make sure a webhook has come from Vouchsafe

There are two ways to ensure a webhook event is genuine:

  • add a long, unguessable token to your webhook URL and verify it in your handling logic

  • upon receiving a webhook, verify the contained data with a call to the get verification endpoint

Example webhook body

{
"event": Created | UserCompleted | Verified | Refused | Alert, // reason for the notification
"id": "string",
"email": "string",
"redirect_url": "string",
"status": "InProgress",
"created_at": "string",
"expires_at": "string",
"workflow_id": "string",
"external_id": "string",
}
Did this answer your question?