Skip to main content
Test Income & Employment (VOIE) and Employment History (VOE) flows in sandbox using the credentials below. VOIE and VOE share the same payroll credentials — only the product_type value on the bridge token or order differs (income for VOIE, employment for VOE). In Truv Bridge, search for the Truv Payroll Provider to use any of these credentials.
For additional login fields, use Phone: (111)111-1111 and Email: goodlogin@domain.com.

Quick start

Use goodlogin / goodpassword for the happy path. A successful login returns a complete VOIE report with bi-weekly paystubs, an annual income summary, W-2s, and bank account allocations. For the underlying JSON shape, see the User Income and Employment Report object. Sample response — captured from a live sandbox order. Expand a credential to see the response it returns.
The complete report a successful payroll connection returns: employment metadata, an annual income summary, per-pay-period statements (one shown; the rest follow the same shape), W-2s, and bank account allocations. Captured from a live sandbox order. Pay-period, earnings, and deduction arrays are truncated here for length.

Credential scenarios

Every credential here connects through the Truv Payroll Provider and returns the same report shape as Quick start — the Sample responses panels show only the fields that differ. The VOIE-* scenario ID is a stable test-case identifier you can cite in tickets.
Every scenario below uses the password goodpassword — only the username changes. The error scenarios are the exception: there the password field carries the trigger.

Pay frequency

All four scenarios return SSN 991-91-9991; only the pay cadence differs. Use these to validate your handling of pay_frequency (W, BW, SM, M, SA) and to confirm your annualization logic across cadences.
Same report shape as the quick-start response above; pay_frequency is W and statements arrive weekly.

Earnings composition

These credentials connect through the Truv Payroll Provider. They return paychecks where pay includes more than base wages. Use them to check how your decisioning reads the bonus and commission statement fields, their *_ytd totals, and the earnings[].category on each line.
Bonus payments land on some statements and not others. bonus is null on a statement with no bonus. bonus_ytd adds up across the year, and annual_income_summary[].bonus carries the yearly total.

Employment type

Salaried full-time employee with regular paystubs.

Tenure

Use these credentials when your decisioning depends on the borrower’s tenure with their current employer — for example, PLL eligibility rules that require a minimum employment length, or income-stability decisioning that looks at months at current employer. Both credentials produce the same response shape as goodlogin / goodpassword — the only difference is that start_date is set to a date inside the last 12 months. Use one or the other (or both) when your QA matrix has multiple sub-12-month scenarios that need distinct credentials.
start_date falls inside the last 12 months. Use to confirm tenure-based eligibility logic.

Benefits and special cases

Both scenarios return SSN 9988. Retirement, disability, and Veterans benefits: Search for the benefit type in Truv Bridge (for example, “SSA” for Social Security or “VA Benefits”), pick a login method, and use goodlogin / goodpassword. Retirement and disability return a Social Security Administration Benefits Verification Letter. Veterans Benefits return a VA Benefit Summary Letter via the Veterans Affairs provider, or a retirement paystub via the DFAS myPay provider.
Military service member pay record.

Gig and shift workers

Gig provider connections return different field coverage than W-2 payroll connections. DoorDash returns gross pay and hours but no net pay or deductions; Uber returns gross and net pay but no hours. Validate your decisioning logic against partial-coverage responses, not against the assumption that every field will be populated.
Gig worker with earned wage access; field coverage differs from W-2 payroll.

Income changes and outliers

These credentials connect through the Truv Payroll Provider. Each returns a statement history with a clear value pattern. One trends up, one trends down, one holds high values, and one carries a single spike. Use them to check how your trend, averaging, and outlier logic reads movement across statements instead of a single period.
pay.raise and pay.reduction only show their pattern across the full statement set. Read the statements[] array from oldest to newest, not just latest_statement. outlier.paystub returns normal statements with one spike. Check each statement value, not the average alone.
gross_pay rises on every statement, so the most recent statement is the highest. The values in the sample below show the trend.

Error scenarios

VOIE shares the universal authentication-error credentials. Use these to test your error handling and retry UX. See Task lifecycle for the full status reference and the meaning of each error state.

Fraud and suspicious documents

Document-uploaded VOIE uses filename-driven triggers in sandbox to simulate fraud detection. The full filename → task status + error_message map lives on the Test Documents page. For interpreting is_suspicious on the report, fraud-tier behavior, and recommended manual-review workflows, see Fraud Detection & Manual Review.

Webhook events

When testing VOIE end to end, your webhook endpoint receives one task-status-updated event per status transition plus one order-status-updated event per connection when the user finishes the order.
Per-task event (one per employer connection):
Order event (one per connection — fires for each unique link_id when the user closes Bridge via Finish and Share, so an order with more than one connection emits multiple order-status-updated events):
For the difference between these two events and why tracking_info is the reliable mapping key, see the Orders object reference.

Mortgage VOIE (GSE testing)

For Fannie Mae Day 1 Certainty and Freddie Mac AIM testing — with borrower test accounts that map to specific GSE submission outcomes — see GSE Testing and the credential tables on the Fannie Mae D1C and Freddie Mac AIM pages.

Next steps

Bridge Widget Guide

Mint a bridge token and embed the widget

Embedded Orders

Order-driven VOIE with auto-generated reports

GSE Testing

Fannie Mae D1C and Freddie Mac AIM workflows

Report Object

JSON schema for the VOIE report