Skip to main content
Start here when you have a new user and don’t know their employer, payroll provider, or bank upfront. Truv Bridge presents a search screen where the user finds and connects their accounts. Embedded order and widget Embedded Orders support the following data source types: If you already know the user’s employer or provider, use deeplinking to skip the search screen and go directly to the login flow.

How it works

  1. Create an order via API with desired products
  2. User opens the widget using the bridge token
  3. User connects accounts (payroll, banks)
  4. Receive data via webhook notifications
  5. Retrieve results using the order ID

Implement

Step 1: Create an order [Server-side]

Create an Order to link different data providers. The response includes a bridge_token to initialize Truv Bridge.
When you include income in the products array, employment data is automatically included. You do not need to pass both income and employment.
Best practice: Include email and phone on the order along with notification_settings to send a delayed notification if the user doesn’t complete verification during the embedded session:
This gives the user time to finish in-app, then sends a reminder if they haven’t completed within 6 hours.
The create order endpoint accepts additional fields to customize the verification:Explore the full request schema →
Orders can be configured in two modes that control how users interact with pre-populated employers:Within open orders, two skip behaviors are available:
  • Require attempt, then allow skip — User must try connecting before they can skip
  • Allow skip without attempting — User can skip immediately
This is an account-level setting. Contact your Truv representative or support@truv.com to configure.
Extract the bridge_token from the response.

Step 2: Initialize widget [Client-side]

Load Truv Bridge and pass the bridge_token from Step 1.
isOrder: true is required for Embedded Orders. Initializing without it causes unexpected behavior.
Wait for the COMPLETED event with source: "order" before advancing the user in your application. This event fires when the order reaches its final state: all connections succeeded or were skipped. Do not use onSuccess or onClose to advance the user, as the order may still have pending connections.

Callbacks

Display modes

By default the widget opens as a centered dialog. To embed it inline inside your own container, see Display Modes.
When the user picks an employer, the connection widget opens as a modal on top of the inline order page. To show your own modal (for example, a session-timeout dialog) without it being hidden behind that widget, call bridge.close({ mode: 'onlyModal' }). The inline order page stays mounted; only the modal connection widget is dismissed. See Close options.

Step 3: Test in sandbox

Test your implementation with sandbox credentials. See Test Credentials for all scenarios.

Step 4: Monitor webhooks [Server-side]

Webhooks notify you when task and order statuses change. Use user_id to match events to a specific order. Task-level webhook, fires as each connection progresses.
Order-level webhook, fires when the user finishes the order.
See Task lifecycle for all status transitions.

Step 5: Retrieve data [Server-side]

Fetch order details using the order_id. The response includes employer data, employment history, income statements, and report IDs.
See Order object for the full response schema.

Content Security Policy (CSP)

If your application uses a Content Security Policy, you must allow these domains for the embedded widget to load and function correctly:
Missing CSP configuration is one of the most common causes of the widget failing to load in embedded contexts. If the widget doesn’t appear or shows a blank frame, check your CSP settings first.

Demo apps

Application Demo

Applicant verifies income, employment, or assets through Bridge in a single session.

Follow-up Demo

Applicant returns to complete multiple verification tasks tied to one file.

Next steps

Add Employer

Add additional employers to an existing order

Data Refresh

Pull updated data without user re-authentication

Deeplinking

Skip employer search for higher conversion