> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truv.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Assets for Government

> Verify self-employment income, gig work, and financial assets for government programs

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.

<Note>
  **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.
</Note>

## Benefits

<CardGroup cols={2}>
  <Card title="Instant verification" icon="bolt">Real-time access to bank account data</Card>
  <Card title="Direct from source" icon="building-columns">Data pulled from financial institutions, not self-reported</Card>
  <Card title="Self-employed coverage" icon="user">Bank income analysis for clients without traditional payroll</Card>
  <Card title="Expense tracking" icon="receipt">Identify business expenses alongside income for complete financial picture</Card>
</CardGroup>

***

## 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

<AccordionGroup>
  <Accordion title="Verify self-employment and gig income" icon="money-bill-wave" defaultOpen>
    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](/developers/integration/embedded-orders/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)
  </Accordion>

  <Accordion title="Asset-tested benefits (SNAP, Medicaid)" icon="hand-holding-dollar">
    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`
  </Accordion>

  <Accordion title="Housing assistance qualification" icon="house">
    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`
  </Accordion>

  <Accordion title="Emergency assistance eligibility" icon="circle-exclamation">
    For emergency programs (LIHEAP, disaster relief, emergency food assistance), Assets verification provides rapid financial verification so agencies can process applications quickly.

    **Typical product:** `assets`
  </Accordion>

  <Accordion title="Recertification and renewals" icon="rotate">
    Refresh bank account balances and transaction data at recertification time using the [Order Refresh API](/api-reference/orders/orders_create_refresh_order). 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](/developers/integration/embedded-orders/data-refresh) for implementation details.

    **Typical product:** `assets`
  </Accordion>
</AccordionGroup>

***

## Data coverage

### Financial Institutions

Truv connects to thousands of US banks and credit unions:

| Institution Type | Examples                                       |
| ---------------- | ---------------------------------------------- |
| National banks   | Chase, Bank of America, Wells Fargo, Citi      |
| Regional banks   | PNC, US Bank, TD Bank, Regions                 |
| Credit unions    | Navy Federal, State Employees CU, Pentagon FCU |
| Online banks     | Ally, Marcus, Discover, Capital One 360        |
| Neobanks         | Chime, Current, Varo                           |

### Supported Account Types

| Account Type           | Balance | Transactions | Ownership |
| ---------------------- | ------- | ------------ | --------- |
| Checking               | Yes     | Yes          | Yes       |
| Savings                | Yes     | Yes          | Yes       |
| Money market           | Yes     | Yes          | Yes       |
| CD                     | Yes     | Limited      | Yes       |
| Investment / brokerage | Yes     | Limited      | Yes       |

***

## How to implement

| Path                                                            | Code required | Best for                                          |
| --------------------------------------------------------------- | ------------- | ------------------------------------------------- |
| [Customer Portal](/government/integration/customer-portal)      | Minimal       | Self-service client verification                  |
| [Caseworker Portal](/government/integration/caseworker-portal)  | None          | Caseworker-initiated orders via Dashboard         |
| [Document Processing](/government/products/document-processing) | Minimal       | Upload 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`.

| Field           | Path                                                  | Example               |
| --------------- | ----------------------------------------------------- | --------------------- |
| Account type    | `links[].accounts[].type`                             | `CHECKING`, `SAVINGS` |
| Masked number   | `links[].accounts[].mask`                             | `"1234"`              |
| Account holder  | `links[].accounts[].owners[].full_name`               | `"Jane Smith"`        |
| Current balance | `links[].accounts[].balances.current`                 | `"5420.75"`           |
| Direct deposit  | `links[].accounts[].transactions[].is_direct_deposit` | `true`                |

<Accordion title="View full response example" icon="code">
  ```json theme={null}
  {
    "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"
    }
  }
  ```
</Accordion>

<Info>
  For the full schema, see the [Asset verification reports reference](/api-reference/user-asset-verification-reports/object).
</Info>

***

## API reference

<CardGroup cols={2}>
  <Card title="Orders" icon="file-circle-plus" href="/api-reference/orders/object">Create and manage verification orders</Card>
  <Card title="Assets Report" icon="piggy-bank" href="/api-reference/user-asset-verification-reports/object">Retrieve asset data</Card>
  <Card title="Accounts" icon="building-columns" href="/api-reference/balances/object">Financial account details</Card>
  <Card title="Webhooks" icon="webhook" href="/api-reference/webhooks">Receive status notifications</Card>
</CardGroup>

***

## 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

<AccordionGroup>
  <Accordion title="Request 60 days of transactions" icon="calendar">
    60 days provides enough history to identify regular deposits, income patterns, and expenses without overwhelming the caseworker with data.
  </Accordion>

  <Accordion title="Allow multiple bank connections" icon="building-columns">
    Many clients have accounts at more than one institution. Allow at least 3 connections so clients can add all relevant accounts in one session.
  </Accordion>

  <Accordion title="Pair with Income & Employment for complete financial picture" icon="layer-group">
    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](/api-reference/orders/orders_create) for all available fields.
  </Accordion>

  <Accordion title="Review total balance across all accounts" icon="calculator">
    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.
  </Accordion>

  <Accordion title="Use self-certification for non-payroll income" icon="file-lines">
    Enable [self-certification](/developers/integration/embedded-orders/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.
  </Accordion>

  <Accordion title="Set the locale for threshold languages" icon="globe">
    Pass the `locale` parameter when creating an order to render Bridge, emails, and SMS in the client's preferred language. See [threshold languages](/government/overview#threshold-languages) for supported languages.
  </Accordion>
</AccordionGroup>

***

## Next steps

<CardGroup cols={2}>
  <Card title="Implementation Guide" icon="code" href="/government/integration/customer-portal">
    Step-by-step technical setup
  </Card>

  <Card title="Overview" icon="sitemap" href="/government/overview">
    Integration scenarios across all channels
  </Card>

  <Card title="Customer Portal" icon="desktop" href="/government/integration/customer-portal">
    API examples and code patterns
  </Card>

  <Card title="Testing" icon="flask" href="/developers/testing/test-credentials">
    Sandbox test credentials
  </Card>
</CardGroup>
