Proof of Address
A step-by-step guide on how to verify physical addresses in your application with vouch.
Step 1: Select datasource
The following table shows all of the available data sources that can help with address verification:
Loading data sources...
The following providers are currently undergoing our quality assurance process and will be integrated soon:
- Banks: Bank Polski (PKO BP), Bank Pekao, Santander, ING, Alior Bank, mBank, BNP Paribas, Millennium Bank, Credit Agricole
- Other Financial Services: Binance
- Telecom Providers: Netia, Vectra, Orange
- Utilities & Energy: Tauron, E.ON, PGE, Energa, PGNiG
- Government Services: ePUAP
Step 2: Redirect users to vouch
To trigger proof generation, redirect the user to the vouch:
import { Vouch } from '@getvouch/sdk';
const vouch = new Vouch();
const verificationUrl = vouch.getStartUrl({
requestId: crypto.randomUUID(),
datasourceId: "41b9a0c3-4339-40a1-af71-f36d1032502d", // Revolut - Proof of Address
customerId: "1be03be8-5014-413c-835a-feddf4020da2", // Your unique customer ID
redirectBackUrl: `https://docs.getvouch.io/examples/proof-of-address`, // Return destination
webhookUrl: `https://docs.getvouch.io/api/web-proof` // Proof delivery endpoint (optional)
});
// Redirect the user to vouch
window.location.href = verificationUrl;This code opens the vouch application in a new tab. The user will complete the verification process and be redirected back to your application.
Step 3: Understanding the webhook payload
When user verification is complete, vouch sends a POST request to your webhookUrl with the following structure:
requestId: The unique ID of the verification requestwebProofs: Array of Web Proofs generated for this requestdecodedTranscript: The HTTP request/response proving the verificationrecv: HTTP response from the provider (e.g., Revolut)sent: HTTP request to the provider's API
presentationJson: Cryptographic proof data for independent verificationdata: Hex-encoded proof datameta: Notary service metadata (e.g.,notaryUrl, optionalwebsocketProxyUrl)
outputs: Aggregated extracted and verified results across allwebProofs
Please note: The webProofs array will be absent when the data source contains sensitive data.
You can pass the presentationJson object to our server for verification. This ensures that the web proof hasn't been tampered with.
Step 4: Test the verification flow
Try the button below to see the complete vouch verification flow in action.
Prerequisite
To run Desktop verification flow, install the vlayer extension.