Vouch logovouch Documentation
Examples

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 request
  • webProofs: Array of Web Proofs generated for this request
    • decodedTranscript: The HTTP request/response proving the verification
      • recv: HTTP response from the provider (e.g., Revolut)
      • sent: HTTP request to the provider's API
    • presentationJson: Cryptographic proof data for independent verification
      • data: Hex-encoded proof data
      • meta: Notary service metadata (e.g., notaryUrl, optional websocketProxyUrl)
  • outputs: Aggregated extracted and verified results across all webProofs

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.