Skip to main content
Set up automatic loan repayment by connecting to the borrower’s payroll provider. The borrower authenticates through Truv Bridge, and Truv routes a fixed amount or percentage of each paycheck to your bank account. You also receive a verified income report alongside the deposit switch confirmation.
Integration pattern: Bridge Widget | Products: PLL (Paycheck-Linked Lending) | Demo: PaycheckLinkedLoans

Get started

1

Run the demo

Clone and run the PaycheckLinkedLoans demo to see the full paycheck-linked lending flow working locally.
git clone https://github.com/truvhq/demo-apps.git
cd demo-apps
npm install && npm start
Open http://localhost:5173, select Consumer Credit > Paycheck-Linked Loans, 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.
  2. Create a user — Your server calls POST /v1/users/ to create a Truv user.
  3. Create a bridge token — Your server calls POST /v1/users//tokens/ with product_type: "pll" and optionally company_mapping_id to deeplink Bridge to the employer. Include the account object with your bank details and deduction configuration.
  4. Initialize Bridge — Your frontend opens Truv Bridge with the bridge_token. The borrower connects their payroll and confirms the deduction.
  5. Receive webhooks — Truv sends a task-status-updated webhook when the enrollment completes. Verify the signature using the X-Webhook-Sign header with HMAC-SHA256.
  6. Retrieve dual reports — Fetch the VOIE report with POST /v1/users/{user_id}/reports/ for income data. Fetch the deposit switch report with GET /v1/users/{user_id}/deposit_switch/report/ for deduction confirmation.
3

Review the code

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

Consumer Credit-specific configuration

Bridge token for PLL

Set product_type to "pll" and include the account object with your bank details and deduction configuration:
{
  "product_type": "pll",
  "company_mapping_id": "COMPANY_MAPPING_ID",
  "account": {
    "account_number": "16002600",
    "routing_number": "123456789",
    "bank_name": "Your Bank",
    "account_type": "checking",
    "deposit_type": "amount",
    "deposit_value": "200.00"
  }
}

Deduction options

Control the repayment amount with deposit_type and deposit_value:
deposit_typedeposit_valueDescription
amount"200.00"Fixed dollar amount per paycheck
percent"10"Percentage of each paycheck

Dual reports

PLL verification produces two reports in parallel:
ReportEndpointWhat it contains
VOIE reportPOST /v1/users/{user_id}/reports/Verified income, employment, and pay history
Deposit switch reportGET /v1/users/{user_id}/deposit_switch/report/Deduction confirmation with allocation details
Both reports become available after the task-status-updated webhook fires with status: done. Fetch them in parallel for the fastest results.

Next steps

Smart Routing

Verify income before approval, then set up PLL after

Bridge Widget Guide

Full implementation guide for user creation, bridge tokens, and Bridge initialization

PLL Product

Product details for Paycheck-Linked Lending

Bridge Events

Handle all Bridge lifecycle events and error codes