Integration pattern: Embedded Orders | Products: VOIE, VOE, VOA | Demo: Follow-up
Get started
Run the demo
Clone and run the Follow-up demo to see multi-task verification working locally.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.Understand the API flow
The demo follows this sequence:
- Create orders for each task — Your server calls POST /v1/orders/ once per product (income, employment, assets). All orders share the same
external_user_idso Truv links them to one borrower. - Initialize Bridge per task — Your frontend opens Truv Bridge with each order’s
bridge_token. SetisOrder: trueto use the Orders flow. - Borrower completes verification — The borrower connects payroll providers for income and employment, and financial institutions for assets. Each task runs through Bridge independently.
- Receive webhooks — Truv sends an
order-status-updatedwebhook when each task completes. Verify the signature using theX-Webhook-Signheader with HMAC-SHA256. - Retrieve reports — Fetch the VOIE report with
POST /v1/users/{user_id}/reports/, the VOE report withis_voe: true, or the assets report withPOST /v1/users/{user_id}/assets/reports/.
Review the code
Each step maps to a specific file in the demo. Use these as reference when building your integration.
| Step | Demo file | API reference |
|---|---|---|
| Order creation (batch) | src/demos/FollowUp.jsx | POST /v1/orders/ |
| Bridge initialization | src/components/screens/BridgeScreen.jsx | Bridge SDK |
| Webhook verification | server/webhooks.js | Webhook events |
| Report retrieval | server/routes/user-reports.js | Income reports |
Mortgage-specific configuration
Link orders with external_user_id
All orders for a single loan share the sameexternal_user_id. This lets Truv link multiple verifications to one borrower and enables data refresh across connections.
Common mortgage scenarios
| Scenario | Products | Orders |
|---|---|---|
| Purchase with co-borrower | income, assets | 1 per borrower |
| Refinance (single borrower) | income | 1 |
| Self-employed borrower | income, assets | 1 |
| Multiple employers | income | 1 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