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 today

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?