---
title: "Create an assets report"
method: POST
path: "/v1/users/{user_id}/assets/reports/"
tags: ["VOA Reports"]
---

# Create an assets report

`POST /v1/users/{user_id}/assets/reports/`

The endpoint creates an assets report for the user.

## Request body

- AssetsRequest — Verification of Assets report parameters.
  - `days_requested` integer — The specific duration in days for which the report is requested to be generated.
  - `as_of_date` string, date — The end date for the report period. Start date will be calculated as as_of_date - days_requested. Defaults to current date if not provided.
  - `large_deposit_threshold` object
    - `fixed_amount` integer — Amount that must be met or exceeded for deposits to be marked as large, when OTHER loan type is specified.
    - `sales_price` number — Amount that must be met or exceeded for deposits to be marked as large, when FHA loan type is specified.
    - `qualifying_monthly_income` number — Amount that must be met or exceeded for deposits to be marked as large, when CONVENTIONAL loan type is specified.
    - `loan_type` 'FHA' | 'CONVENTIONAL' | 'OTHER' — Loan type.
  - `is_voe` boolean — A boolean parameter to request a deposit based Verification of Employment report.
  - `account_ids` string[] — List of bank account IDs to include in VOA report. All accounts will be included if not set.

## Response `201`

- VoaApplicantReport
  - `report_id` string, required — Unique identifier of the report.
  - `created_at` string, date-time, required — Timestamp when the report was created.
  - `completed_at` string, date-time, required — Timestamp when the report was completed.
  - `days_requested` integer, required — Number of days for which transactions are requested.
  - `as_of_date` string, date — The end date for the report period. Start date will be calculated as as_of_date - days_requested. Defaults to current date if not provided.
  - `large_deposit_threshold` integer, nullable, required — Amount that must be met or exceeded for deposits to be marked as large.
  - `is_voe` boolean, required — Indicates whether the report is a Deposit-based Verification of Employment (DVOE).
  - `borrower` Applicant, required
    - `id` string, required — Unique identifier of the user.
    - `external_user_id` string, nullable, required — External user id.
    - `first_name` string, nullable — First name of the user.
    - `last_name` string, nullable — Last name of the user.
    - `email` string, email, nullable — User's email.
    - `phone` string, nullable — User's phone number in E.164 format (`+` followed by the country code and number).
    - `ssn` string, nullable — User's SSN, masked. Only the last 4 digits are visible — the leading digits are replaced with `*` (for example `*****3333`). When only the last 4 digits are on file, the value is fully masked (`****`).
    - `created_at` string, date-time, required — Timestamp when the user was created.
    - `updated_at` string, date-time, required — Timestamp when the user was updated last time.
  - `links` LinkAssets[], required — List of assets links
    - `link_id` string, required — Unique identifier of the link.
    - `tracking_info` string, nullable — Additional optional identifier passed by user.
    - `provider` string — Data provider ID.
    - `provider_name` string — Data provider name.
    - `accounts` AssetsAccount[], required — List of assets accounts.
      - `id` string, required — Unique identifier of the account.
      - `created_at` string, date-time, required — The date and time at which the account was created.
      - `updated_at` string, date-time, required — The date and time at which the account was most recently updated.
      - `type` string — The parent type of the account, e.g., CHECKING or SAVINGS.
      - `subtype` string, nullable — The account's subtype, e.g., PLAN_401_K, MONEY_MARKET, or HOME_EQUITY.
      - `mask` string, nullable — The masked banking account number associated with a particular account.
      - `routing_number` string, nullable — Routing number
      - `nickname` string, nullable — An alternate name for the account.
      - `days_available` integer, required — Days of transaction history available at report generation time, from earliest transaction to report date (inclusive).
      - `balance_as_of` string, date-time — Timestamp from the financial institution indicating when the balance was last updated.
      - `balances` AssetsAccountBalances, required
        - `currency_code` string, nullable — The three-character ISO 4217 currency code.
        - `balance` number, nullable — The current balance of the account.
        - `available_balance` number, nullable — The balance that is available for use in asset accounts like checking and savings. PENDING transactions are typically taken into account with the available balance, but this may not always be the case.
        - `credit_limit` number, nullable — The credit limit associated with the account.
      - `transactions` AssetsTransaction[], required — List of transactions for account.
        - `id` string, required — Unique identifier of the transaction.
        - `external_id` string, required — Identifier of the transaction in the external system.
        - `amount` string, decimal, nullable — The monetary amount of the transaction.
        - `currency_code` string, nullable — The three-character ISO 4217 currency code.
        - `check_number` string, nullable — The check number for the transaction.
        - `categories` string[], required — List of categories assigned to this transaction.
        - `description` string, nullable — A human-readable transaction description.
        - `status` 'POSTED' | 'PENDING' | 'AUTHORIZATION' | 'MEMO', required — The status of the transaction.
        - `type` 'DEBIT' | 'CREDIT' | 'MEMO', required — The type of transaction. This will be either CREDIT, DEBIT, or MEMO.
        - `posted_at` string, date-time, nullable — Timestamp when the transaction was posted.
        - `transacted_at` string, date-time, required — Timestamp when the the transaction took place.
        - `merchant_name` string, nullable — Merchant name extracted from the transaction description.
        - `merchant_category_code` integer, nullable — The ISO 18245 category code for the transaction.
        - `ending_daily_balance` number, nullable — Ending daily balance.
        - `is_direct_deposit` boolean, nullable — Indicates if the transaction represents a direct deposit.
        - `is_subscription` boolean, nullable — Indicates if the transaction represents a payment for a subscription.
      - `owners` AssetsOwner[], required — List of owners for account.
        - `id` string, string, required — Unique identifier of the owner.
        - `full_name` string — The account owner's name.
        - `email` string, email, nullable — The account owner's email address.
        - `phone` string, nullable — The account owner's phone number.
        - `address` object — The account owner's address.
          - `street` string, nullable — Street address as provided by the financial institution. May contain multiple lines separated by `\n`.
          - `city` string, nullable — City as provided by the financial institution.
          - `state` string, nullable — State or region. For US addresses this is typically a 2-letter state code; returned as provided by the financial institution.
          - `zip` string, nullable — Postal code as provided by the financial institution. Typically a 5-digit US ZIP code; ZIP+4, 9 digits without a separator, and non-US postal codes also occur.
          - `country` string, nullable — 2-letter ISO 3166-1 alpha-2 country code. Defaults to `US` when the source does not specify a country.
        - `relation_type` 'PRIMARY' | 'BUSINESS' | 'JOINT' | 'SECONDARY' | 'AUTHORIZED_USER' | 'FOR_BENEFIT_OF' | 'ACCOUNT_BENEFICIARY' | 'CUSTODIAN' | 'OTHER' | 'null', nullable — The relationship this person has to the account.
      - `summary` AssetsAccountSummary
        - `avg_30` string, decimal, nullable, required — The average balance for 30 days.
        - `avg_60` string, decimal, nullable, required — The average balance for 60 days.
        - `avg_90` string, decimal, nullable, required — The average balance for 90 days.
        - `currency_code` string, nullable, required — The three-character ISO 4217 currency code.
        - `balance` string, decimal, nullable, required — Total balance.
      - `same_owner_as_requested` boolean — Indicates whether the borrower is found among the list of owners.
      - `direct_deposit_from_employer` boolean — Account is used for direct deposits from employer.
      - `nsf` integer — Insufficient funds occurrence count.
  - `summary` AssetsAccountSummary, required
    - `avg_30` string, decimal, nullable, required — The average balance for 30 days.
    - `avg_60` string, decimal, nullable, required — The average balance for 60 days.
    - `avg_90` string, decimal, nullable, required — The average balance for 90 days.
    - `currency_code` string, nullable, required — The three-character ISO 4217 currency code.
    - `balance` string, decimal, nullable, required — Total balance.

## Other responses

- `400` — HTTP 400 Bad Request
- `401` — HTTP 401 Unauthorized
- `403` — HTTP 403 Forbidden

---

[API](https://skmtc.net/truv/apis/truv-api.md) · [All operations](https://skmtc.net/truv/apis/truv-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/truv/truv-api/revisions/1884c5bfe3a5/schema)
