Skip to main content
Verify borrower income, employment, and assets in real-time by embedding Truv Bridge directly in your point-of-sale system. The borrower searches for their employer, connects their accounts, and completes verification without leaving your application.
Integration pattern: Embedded Orders | Products: VOIE, VOE, VOA | Demo: Application
If you use a supported POS platform (nCino, Floify, BeSmartee, LenderLogix, TidalWave, Lodasoft), see POS Integrations instead.

Get started

1

Run the demo

Clone and run the Application demo to see the full borrower verification flow working locally.
git clone https://github.com/truvhq/demo-apps.git
cd demo-apps
npm install && npm start
Open http://localhost:5173, select Mortgage > POS Application, and walk through a verification using sandbox credentials (goodlogin / goodpassword).See full setup instructions for ngrok and environment configuration.
2

Understand the API flow

The demo follows this sequence:
  1. Search for employer — Your server calls GET /v1/company-mappings-search/ to find the borrower’s employer by name. For asset verification, search financial institutions with GET /v1/providers/.
  2. Create an order — Your server sends borrower PII and selected products to POST /v1/orders/. The response includes a bridge_token and user_id.
  3. Initialize Bridge — Your frontend opens Truv Bridge with the bridge_token. Set isOrder: true and optionally pass companyMappingId to deeplink directly to the employer.
  4. Receive webhooks — Truv sends an order-status-updated webhook when verification completes. Verify the signature using the X-Webhook-Sign header with HMAC-SHA256.
  5. Retrieve reports — Fetch the VOIE report with POST /v1/users/{user_id}/reports/ or the assets report with POST /v1/users/{user_id}/assets/reports/.
3

Review the code

Each step maps to a specific file in the demo. Use these as reference when building your integration.

Mortgage-specific configuration

Products

Request both income and assets for mortgage verification by passing products: ["income", "assets"] in the order. The income product includes employment data automatically — you don’t need to pass employment separately.

SSN for GSE matching

Include the borrower’s SSN in the order to enable GSE report matching for Fannie Mae D1C and Freddie Mac AIM:
{
  "products": ["income", "assets"],
  "ssn": "222233333",
  "first_name": "John",
  "last_name": "Doe",
  "external_user_id": "borrower_123"
}

External user ID

Use external_user_id to link multiple orders to the same borrower across your system. This enables follow-up verifications and data continuity.

Next steps

Deeplinking

Skip the employer search screen when you already know the borrower’s employer

Co-borrowers

Handle multiple borrowers and employers in a single loan file

GSE Testing

Validate Fannie Mae D1C and Freddie Mac AIM eligibility

Embedded Orders Guide

Full implementation guide for order creation, Bridge, callbacks, and data retrieval