Skip to main content
Verify borrower income and employment instantly for loan underwriting and credit decisions. Truv connects directly to payroll systems, returning verified details in seconds.
Try the demo — Run the Smart Routing demo or Payroll Income demo to see income verification working end-to-end. Clone the demo app ->

Benefits

Instant Verification

Verified income and employment data in seconds

85%+ Coverage

ADP, Paychex, Workday, UKG, and 100+ payroll providers

Automated Decisioning

Structured data ready for your decision engine

Multiple Income Types

W-2, 1099, gig, and self-employed income

What you get

Income Data

  • Base salary, hourly rate, commission, bonus
  • Pay frequency
  • Year-to-date gross and net pay
  • Historical pay statements
  • Tax deductions and withholdings

Employment Data

  • Employer name, address, EIN
  • Employment status (active, terminated, leave)
  • Start and end dates
  • Job title and position

Documents

  • Pay stubs (PDF)
  • W-2 forms (when available)

Supported Income Types

  • W-2 employees
  • 1099 contractors
  • Multiple employers
  • Self-employed (limited)

Use cases

Verify borrower income in real time during the application flow. Supports both prime and subprime decisioning with gross pay, pay frequency, and employment tenure.
Calculate debt-to-income ratios using verified pay data. Ideal for debt consolidation, home improvement, and emergency expense loans.
Use current income to set or increase credit limits. Works for new account applications and periodic limit reviews.
Quick income checks at the point of sale. Verify affordability for installment plans and higher-ticket purchases.

Data coverage

Payroll Providers

Truv connects to payroll providers covering 85%+ of US employees:
ProviderCoverage
ADP~20% of US workers
Paychex~10% of US workers
WorkdayLarge enterprises
UKG (Kronos)Healthcare, retail
PaylocityMid-market
GustoSmall business
And 100+ more

Supported Income Types

  • W-2 employees
  • 1099 contractors
  • Multiple employers
  • Self-employed (limited)

How to implement

Choose your integration path based on your tech stack:
PathCode requiredBest for
Smart RoutingMinimalPayroll-first with document fallback
Payroll IncomeMinimalDirect payroll connection
Truv DashboardNoneManual orders, pilot testing
The income product automatically includes employment data. Do not pass both income and employment in the same order.
Combine with Assets for stronger decisions. Request both income and assets product types in a single order to get a complete financial picture of the borrower. Learn about Assets verification —>
For a full implementation walkthrough including webhook handling and Truv Bridge Token setup, see the Smart Routing guide or Payroll Income guide.

Report structure

The response follows the IncomeCheck schema with a top-level employments array. Each employment includes income summary fields, company details, borrower profile, and an array of pay statements.
FieldPathExample
Annual incomeemployments[].income"70000.00"
Income periodemployments[].income_unitYEARLY
Pay per periodemployments[].pay_rate"6500.00"
Pay frequencyemployments[].pay_frequencySM (Semi-Monthly)
Employeremployments[].company.name"Acme Corporation"
Pay statementsemployments[].statements[]Array of pay stubs
{
  "id": "24d7e80942ce4ad58a93f70ce4115f5c",
  "status": "done",
  "provider": "adp",
  "data_source": "payroll",
  "employments": [
    {
      "income": "70000.00",
      "income_unit": "YEARLY",
      "pay_rate": "6500.00",
      "pay_frequency": "SM",
      "company": {
        "name": "Acme Corporation",
        "address": {
          "street": "123 Main St",
          "city": "New York",
          "state": "NY",
          "zip": "10001"
        }
      },
      "profile": {
        "first_name": "John",
        "last_name": "Doe"
      },
      "statements": [
        {
          "pay_date": "2024-01-19",
          "gross_pay": "2650.00",
          "net_pay": "1950.00"
        },
        {
          "pay_date": "2024-01-05",
          "gross_pay": "2650.00",
          "net_pay": "1950.00"
        }
      ]
    }
  ]
}
Pay frequency codes: M (Monthly), SM (Semi-Monthly), W (Weekly), BW (Bi-Weekly), A (Annually), SA (Semiannually), C (Commission)
The income product automatically includes employment data. You never need to request both income and employment separately.

API reference

Bridge Token

Create tokens for Truv Bridge

Income Report

Retrieve income data

Employment Report

Retrieve employment data

Users

Create and manage users

Best practices

For most consumer lending decisions, reviewing 90 days of pay statements provides a solid baseline for income calculation. Truv returns available pay statements from the payroll provider. Check the statements array in the response and verify that coverage meets your underwriting requirements.
Borrowers may have side jobs or gig work. Each payroll connection creates a separate employment entry in the employments array. To capture multiple income sources, have the borrower connect each employer through the Truv Bridge widget sequentially.
Trigger verification as part of the loan application flow rather than as a separate step to improve completion rates.

Next steps

Smart Routing

Payroll-first with document fallback

Assets Verification

Add asset data to your decisions