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 requestoutputs- 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
webProofsarray 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.