Skip to main content
Assets (VOA) verification connects directly to clients’ bank accounts to capture income that traditional payroll verification can’t reach: self-employment, gig work, cash deposits, family support, and other non-payroll income streams. For public sector agencies, this is the primary tool for verifying the hardest-to-document income types. Assets verification also provides account balances for asset-tested programs, replacing manual bank statement collection entirely.
Why Assets verification matters for public sector: A significant portion of benefits clients earn income outside of traditional W-2 employment: rideshare drivers, freelancers, home daycare providers, cash-paid workers, and those receiving family assistance. Payroll verification alone misses these income streams. Assets verification captures them through bank transaction data.

Benefits

Instant verification

Real-time access to bank account data

Direct from source

Data pulled from financial institutions, not self-reported

Self-employed coverage

Bank income analysis for clients without traditional payroll

Expense tracking

Identify business expenses alongside income for complete financial picture

What you get

Account Information

  • Account type: Checking, savings, money market, CD, investment
  • Account ownership: Verified account holder name(s)
  • Current balance: Real-time balance as of the connection date
  • Available balance: Funds currently available for withdrawal
  • Account number: Masked account number for identification

Transaction History

  • Transaction details: Date, description, amount, credit/debit type
  • Deposit identification: Payroll deposits, government payments, transfers
  • Large deposits: Flagged for caseworker review
  • History depth: Up to 2 years (30-730 days, configurable via days_requested)

Documents

  • Bank statements (PDF)
  • Account verification letter

Government use cases

Verify self-employment and gig income

Many clients earn income outside traditional W-2 employment:
  • Self-employed: Home daycare, lawn care, cleaning services, freelance work
  • Gig economy: Rideshare (Uber, Lyft), delivery (DoorDash, Instacart), TaskRabbit — many gig platforms are also available as payroll connections through the income product
  • 1099 contractors: Independent contractors paid outside of payroll
  • Cash and informal income: Cash-paid work, family support, room rentals
  • Government payments: Social Security, disability, veterans benefits
Bank transactions make these income streams visible and verifiable. Deposits are categorized and can be used for self-certification workflows, giving caseworkers documented evidence of income that would otherwise require clients to self-report.Recommended products: income, assets (the income product automatically includes employment data)
Many benefits programs have asset limits. Assets verification provides verified balances across all connected accounts, giving caseworkers a complete picture of a client’s financial resources without collecting paper bank statements.Typical product: assets
Verify that clients meet asset thresholds for Section 8, public housing, or emergency rental assistance programs. Assets verification captures checking, savings, and investment account balances.Typical product: assets
For emergency programs (LIHEAP, disaster relief, emergency food assistance), Assets verification provides rapid financial verification so agencies can process applications quickly.Typical product: assets
Refresh bank account balances and transaction data at recertification time using the Order Refresh API. When the client’s bank connection is still active, Truv returns updated balances and recent transactions without requiring the client to reconnect.If the connection has expired, create a new order and send a verification link through your renewal workflow.See Data Refresh for implementation details.Typical product: assets

Data coverage

Financial Institutions

Truv connects to thousands of US banks and credit unions:
Institution TypeExamples
National banksChase, Bank of America, Wells Fargo, Citi
Regional banksPNC, US Bank, TD Bank, Regions
Credit unionsNavy Federal, State Employees CU, Pentagon FCU
Online banksAlly, Marcus, Discover, Capital One 360
NeobanksChime, Current, Varo

Supported Account Types

Account TypeBalanceTransactionsOwnership
CheckingYesYesYes
SavingsYesYesYes
Money marketYesYesYes
CDYesLimitedYes
Investment / brokerageYesLimitedYes

How to implement

PathCode requiredBest for
Customer PortalMinimalSelf-service client verification
Caseworker PortalNoneCaseworker-initiated orders via Dashboard
Document ProcessingMinimalUpload pay stubs and tax documents for extraction

Report structure

API Response

The Assets response uses the VoaApplicantReport schema. The report contains a links array (one per financial institution connection), each with an accounts array. Each account includes balances, owners, and transactions.
FieldPathExample
Account typelinks[].accounts[].typeCHECKING, SAVINGS
Masked numberlinks[].accounts[].mask"1234"
Account holderlinks[].accounts[].owners[].full_name"Jane Smith"
Current balancelinks[].accounts[].balances.current"5420.75"
Direct depositlinks[].accounts[].transactions[].is_direct_deposittrue
{
  "report_id": "7d4fcb86b81a4880955beea558092391",
  "created_at": "2024-01-15T10:00:00Z",
  "completed_at": "2024-01-15T10:30:00Z",
  "days_requested": 60,
  "borrower": {
    "first_name": "Maria",
    "last_name": "Garcia"
  },
  "links": [
    {
      "link_id": "150491a20bdb4292bb2a2ad8554fecba",
      "provider": "first_national",
      "provider_name": "First National Bank",
      "accounts": [
        {
          "id": "4d601895417c46ec99633978db12a866",
          "type": "CHECKING",
          "mask": "4521",
          "owners": [
            {
              "full_name": "Maria Garcia",
              "email": "maria.garcia@example.com"
            }
          ],
          "balances": {
            "balance": "2340.75",
            "available_balance": "2240.75",
            "currency_code": "USD"
          },
          "transactions": [
            {
              "id": "txn_001",
              "transacted_at": "2024-01-12T00:00:00Z",
              "description": "DIRECT DEPOSIT - SPRINGFIELD COUNTY",
              "amount": "1850.00",
              "type": "CREDIT",
              "status": "POSTED"
            },
            {
              "id": "txn_002",
              "transacted_at": "2024-01-10T00:00:00Z",
              "description": "VENMO - PAYMENT FROM J GARCIA",
              "amount": "500.00",
              "type": "CREDIT",
              "status": "POSTED"
            }
          ]
        },
        {
          "id": "5e702906528d53a0bb3b3089ec23b977",
          "type": "SAVINGS",
          "mask": "4522",
          "owners": [
            {
              "full_name": "Maria Garcia"
            }
          ],
          "balances": {
            "balance": "8500.00",
            "available_balance": "8500.00",
            "currency_code": "USD"
          },
          "transactions": []
        }
      ]
    }
  ],
  "summary": {
    "total_balance": "10840.75"
  }
}
For the full schema, see the Asset verification reports reference.

API reference

Orders

Create and manage verification orders

Assets Report

Retrieve asset data

Accounts

Financial account details

Webhooks

Receive status notifications

Expense tracking

For self-employed clients, agencies often need to verify expenses alongside income to determine net self-employment income. Bank transaction data captures both sides:
  • Business expenses: Supplies, equipment, vehicle costs, subcontractor payments
  • Income deposits: Client payments, platform payouts, recurring transfers
Transaction descriptions and categorization help caseworkers distinguish business expenses from personal spending. Use self-certification to let the client annotate which transactions are business-related.

Best practices

60 days provides enough history to identify regular deposits, income patterns, and expenses without overwhelming the caseworker with data.
Many clients have accounts at more than one institution. Allow at least 3 connections so clients can add all relevant accounts in one session.
Bank transactions reveal income that payroll data doesn’t capture: gig payments, family transfers, cash deposits. Request both income and assets products in one order. See the Create Order API reference for all available fields.
For asset-tested programs, use the summary.total_balance field to quickly compare against program thresholds. Individual account details are available for caseworker review when needed.
Enable self-certification so clients can review and confirm bank transaction data. Clients who receive income outside of traditional payroll (freelance, cash, family support) can annotate their deposits to help caseworkers verify income sources.
Pass the locale parameter when creating an order to render Bridge, emails, and SMS in the client’s preferred language. See threshold languages for supported languages.

Next steps

Implementation Guide

Step-by-step technical setup

Overview

Integration scenarios across all channels

Customer Portal

API examples and code patterns

Testing

Sandbox test credentials