Vouch logovouch
Examples

Non-Doc KYC & KYB

This guide shows you how to implement address verification, one of the Non-Doc KYC & KYB verification types available in vouch. See all verification types →

Implementation Example: Address Verification

Address verification is critical for KYC and KYB compliance and fraud prevention. vouch enables your business to verify physical addresses by allowing users to prove their address through authenticated access to their financial accounts, utility bills, or other trusted data sources.

This example demonstrates how users can prove their address through authenticated access to their Revolut account, with cryptographic proof that defeats (AI-generated) fraud.

See It in Action

Watch how KYC/KYB address verification works with Revolut. Users prove their residential address through authenticated access to their Revolut account:

Step 1: Select Data Source

For this KYC/KYB address verification example, we'll use "Revolut - Verify Address" as our data source. This data source allows users to verify their physical address by proving access to their Revolut account. Revolut stores verified address information that vouch can cryptographically confirm.

See all address verification data sources →

Step 2: Redirect Users to vouch

To trigger the address verification process, redirect the user to vouch:

import { Vouch } from '@getvouch/sdk';

const vouch = new Vouch();

const verificationUrl = vouch.getStartUrl({
  requestId: crypto.randomUUID(),
  datasourceId: "41b9a0c3-4339-40a1-af71-f36d1032502d", // Revolut - Verify Address
  customerId: "1be03be8-5014-413c-835a-feddf4020da2",   // Your unique customer ID
  redirectBackUrl: `https://docs.getvouch.io/examples/non_doc_kyc`, // Return destination
  webhookUrl: `https://docs.getvouch.io/api/web-proof` // Verification delivery endpoint (optional)
});

// Redirect the user to vouch
window.location.href = verificationUrl;

This opens vouch in a new tab where users authenticate with their Revolut account to verify their address. After verification, they're redirected back to your application with the verified data.

Step 3: Receive Verification Data

When address verification is complete, vouch sends a POST request to the webhookUrl you specified in Step 2:

{  "requestId": "75859231-36ae-4e8b-a2d5-d11de8f9881e",  "outputs": {    "city": "NY",    "region": "NY",    "country": "US",    "lastName": "Conroy",    "postcode": "11208",    "firstName": "Sean",    "fullAddress": {      "city": "NY",      "region": "NY",      "country": "US",      "postcode": "11208",      "streetLine1": "224 Houston St",      "streetLine2": "Apt B"    },    "streetLine1": "224 Houston St",    "streetLine2": "Apt B"  }}

Payload Structure:

  • requestId - The unique ID of the verification request
  • outputs - Verified address data extracted from the user's Revolut account

Sensitive Data:

The "Revolut - Verify Address" data source is marked as Sensitive Data. This means that:

  • The webProofs array is excluded from the webhook payload
  • Only extracted outputs (address information) are retained
  • The transcript is redacted to protect sensitive financial account data

This design ensures you receive verified address data for KYC/KYB compliance while protecting the user's sensitive financial information. For non-sensitive data sources, the webhook includes the full webProofs array for cryptographic verification. Learn more about verifying webproofs →

Step 4: Test the Flow

Test the complete address verification flow using the interactive demo below. This demonstrates the exact experience your users will have:

Prerequisite

To run the Desktop verification flow, install the vouch extension.

Available Data Sources

Next Steps

Ready to get started? Check out our Getting Started guide to learn how to integrate vouch into your application.

Non-Doc KYC & KYB | vouch Docs