Skip to main content
Handle co-borrowers, multiple employers, and post-application verification by creating multiple orders linked to a single loan file. Each borrower completes verification independently through Truv Bridge, and your system aggregates the results.
Integration pattern: Embedded Orders | Products: VOIE, VOE, VOA | Demo: Follow-up

Get started

1

Run the demo

Clone and run the Follow-up demo to see multi-task verification working locally.
git clone https://github.com/truvhq/demo-apps.git
cd demo-apps
npm install && npm start
Open http://localhost:5173, select Mortgage > Follow-up Tasks, enter an Application ID, and complete verification for each task 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. Create orders for each task — Your server calls POST /v1/orders/ once per product (income, employment, assets). All orders share the same external_user_id so Truv links them to one borrower.
  2. Initialize Bridge per task — Your frontend opens Truv Bridge with each order’s bridge_token. Set isOrder: true to use the Orders flow.
  3. Borrower completes verification — The borrower connects payroll providers for income and employment, and financial institutions for assets. Each task runs through Bridge independently.
  4. Receive webhooks — Truv sends an order-status-updated webhook when each task 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/, the VOE report with is_voe: true, 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

All orders for a single loan share the same external_user_id. This lets Truv link multiple verifications to one borrower and enables data refresh across connections.
{
  "products": ["income"],
  "external_user_id": "loan-001-primary",
  "first_name": "John",
  "last_name": "Doe",
  "ssn": "222233333"
}

Common mortgage scenarios

ScenarioProductsOrders
Purchase with co-borrowerincome, assets1 per borrower
Refinance (single borrower)income1
Self-employed borrowerincome, assets1
Multiple employersincome1 order, multiple connections

SSN for GSE matching

Include the borrower’s SSN in each order to enable GSE report matching for Fannie Mae D1C and Freddie Mac AIM.

Next steps

Data Refresh

Pull fresh data from existing connections without borrower action

Deeplinking

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

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