# Verification of Assets (VOA)
source: https://developer.mastercard.com/open-finance-us/documentation/products/lend/reports/voa/index.md

## Overview {#overview}

The Verification of Assets (VOA) product provides insights into the customer's assets, balances, and transaction history via a verification report.

Learn more about Mastercard's [Assets and Balances](https://developer.mastercard.com/open-finance-us/documentation/products/lend/product-solutions/index.md) products.

### Key Product Features {#key-product-features}

* **Account Owner:** See the listed account owner name and address to assist in fraud reduction.
* **Assets Summary:** Provided as a balance summary across all accounts, and includes the current balance, the average 2-month daily balance, and the average 6-month daily balance.
* **Data History:** Up to 12 months of transaction data based on availability from the FI. Length of history is customizable using `fromDate` and defaults to 2 months.
* **Non-Sufficient Funds (NSF) Summary:** The presence of NSFs can be a key indicator of financial distress.

#### Additional Product Information {#additional-product-information}

* **Connected Accounts Summary:** Includes information such as the financial institution (FI) name, last four digits of the account number, account type, and balance
* **FI Certification Type:** Verification of Assets (VOA). Each FI goes through a certification process to make sure the right data is consistently provided to make the product successful. See [the list of certified FIs](https://developer.mastercard.com/open-finance-us/documentation/financial-institution/supported-institutions/index.md) for this product.
* **Report Generation Time (median):** Less than 20 seconds
* **Report Refreshes:** This report can be refreshed with new data as long as the accounts are still connected, and consent is active. Refreshes are provided at no cost within 60 days after the first report is created. A report pulled after this period will incur a new charge.
* **Supported Account Types:** Checking, Savings, Money Market, CD, Investment account types, Education Savings, Health Savings Account
* **Supported Report Format:** JSON and PDF

### Use Cases {#use-cases}

The VOA product can be used for the following use cases:

* Auto
* Credit Card Issuance
* Credit Line Management
* Consumer/Portfolio Monitoring
* Debt Collection
* [Mortgage Lending](https://developer.mastercard.com/open-finance-us/documentation/usecases/mortgage-lending/index.md)
* Personal Financial Management
* Personal Lending
* Servicing
* Small and Medium Business
* Tenant Screening

## How it Works {#how-it-works}

### Prerequisites {#prerequisites}

This product is dependent on the customer linking their bank accounts via Data Connect. Refer to [Generating Reports](https://developer.mastercard.com/open-finance-us/documentation/products/lend/generating-reports/index.md) for more information.

* [Generate the required credentials](https://developer.mastercard.com/open-finance-us/documentation/quick-start-guide/index.md#generate-your-credentials)
* [Create Access Token](https://developer.mastercard.com/open-finance-us/documentation/quick-start-guide/index.md#step-1---create-access-token)
* [Create a customer record](https://developer.mastercard.com/open-finance-us/documentation/customer-records/index.md#active-customers)
* [Create a consumer record](https://developer.mastercard.com/open-finance-us/documentation/customer-records/index.md#consumers)
* [Generate a Data Connect URL](https://developer.mastercard.com/open-finance-us/documentation/connect/generate-2-connect-url-apis/index.md) and [link customer accounts](https://developer.mastercard.com/open-finance-us/documentation/connect/index.md#the-connect-flow)

### Generate VOA Report {#generate-voa-report}

To generate or refresh a VOA report, use the following endpoint:

API Reference: `POST /decisioning/v2/customers/{customerId}/voa`

The response includes the status of the report generation and a report ID. A webhook notification is sent when report generation is finished (see [Report Webhooks](https://developer.mastercard.com/open-finance-us/documentation/webhooks/webhooks-report/index.md)).

#### Implementation Notes {#implementation-notes}

* Use the `fromDate` parameter to customize the transaction history provided in the report, up to 12 months maximum. By default, 2 months of history will be aggregated as available.
* Customize which accounts are included in the report using the `accountIds` parameter. By default, the report includes all supported account types connected by the customer.
* If you don't want the Non-Sufficient Funds (NSF) information, set the `showNsf` parameter to `false`.

### Get VOA Report {#get-voa-report}

Once the report generation is finished, you can then retrieve the report. See [Getting Reports](https://developer.mastercard.com/open-finance-us/documentation/products/lend/get-reports/index.md).

#### Example Report {#example-report}

The Get Report APIs response contains different data depending on the type of report requested. The following example shows what a successful JSON response could look like for this report. Examples are meant for reference only and may lag production changes.

```json
{
  "id": "u4hstnnak45g",
  "customerId": 1000006677,
  "consumerId": "ac39e237c7619a4ecf014b8d399c0696",
  "consumerSsn": "6789",
  "disputeStatement": "Invalid data present.",
  "requesterName": "Decisioning API",
  "endUser": {
    "name": "ABC Apartments",
    "address": "123 Main St",
    "city": "Murray",
    "state": "UT",
    "zip": "84123",
    "phone": "555-2106",
    "email": "customerservice@example.com",
    "url": "example.com"
  },
  "requestId": "sfb7xp439w",
  "type": "voa",
  "status": "success",
  "createdDate": 1588350269,
  "constraints": {
    "accountIds": [
      "1000535275",
      "1000535276"
    ],
    "fromDate": 1577986990,
    "reportCustomFields": [
      {
        "label": "loanID",
        "value": "12345",
        "shown": true
      },
      {
        "label": "trackingID",
        "value": "5555",
        "shown": true
      },
      {
        "label": "loanType",
        "value": "car",
        "shown": false
      },
      {
        "label": "vendorID",
        "value": "1613aa23",
        "shown": true
      },
      {
        "label": "vendorName",
        "value": "PSC Finance",
        "shown": false
      }
    ],
    "showNsf": false
  },
  "customerType": "active",
  "title": "Mastercard Open Banking Verification of Assets",
  "startDate": 1572625469,
  "endDate": 1588350269,
  "days": 180,
  "seasoned": false,
  "consolidatedAvailableBalance": 2345,
  "portfolioId": "dyr6qvqd2yhb-1-port",
  "institutions": {
    "id": 101732,
    "name": "FinBank",
    "urlHomeApp": "https://finbank.prod.fini.city/CCBankImageMFA/login.jsp",
    "accounts": {
      "id": 1000023996,
      "number": "1111",
      "ownerName": "JOHN DOE",
      "ownerAddress": "924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518",
      "ownerAsOfDate": 1588350276,
      "name": "Checking",
      "type": "checking",
      "availableBalance": 501.24,
      "aggregationStatusCode": 0,
      "balance": 501.24,
      "balanceDate": 1588350276,
      "averageMonthlyBalance": 501.02,
      "totNumberInsufficientFundsFeeDebitTxAccount": 0,
      "totNumberInsufficientFundsFeeDebitTxOver2MonthsAccount": 0,
      "totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount": 120,
      "transactions": [
        {
          "id": 100000527471,
          "amount": 22.21,
          "postedDate": 1582286400,
          "description": "FINICITY INC PAYROLL",
          "memo": "Finicity amount credit",
          "investmentTransactionType": "dividend",
          "normalizedPayee": "Finicity",
          "institutionTransactionId": "100000000",
          "category": "Paycheck",
          "bestRepresentation": "FINICITY INC PAYROLL"
        }
      ],
      "details": {
        "interestMarginBalance": -50000,
        "availableCashBalance": 1500,
        "vestedBalance": 300000,
        "currentLoanBalance": 0,
        "availableBalanceAmount": 1000,
        "marginBalance": 100,
        "currentBalance": 1000
      },
      "position": {
        "id": 637054,
        "currency": "USD",
        "symbol": "MCD",
        "securityName": "Common Stock",
        "units": 5,
        "marketValue": 1403.55,
        "currentPrice": 280.71,
        "securityType": "Stock"
      },
      "asset": {
        "currentBalance": 1000,
        "twoMonthAverage": -1865.96,
        "sixMonthAverage": -7616.01,
        "beginningBalance": -17795.6
      }
    }
  },
  "assets": {
    "type": "checking",
    "availableBalance": 1000,
    "currentBalance": 1000,
    "twoMonthAverage": -1865.96,
    "sixMonthAverage": -7616.01,
    "beginningBalance": -17795.6
  }
}
```

A human-readable PDF version of the report is available, which is great for underwriters or any other manual viewing of the report.

How to read a VOA report:
[VOA_Report_HTR.pdf](https://static.developer.mastercard.com/content/open-finance-us/uploads/reports/lend/VOA_Report_HTR.pdf) (1MB)

## Testing {#testing}

Refer to [Generating Reports -- Testing](https://developer.mastercard.com/open-finance-us/documentation/products/lend/generating-reports/index.md#testing).

Ensure you use a test profile that contains supported account types such as [Profile_03](https://developer.mastercard.com/open-finance-us/documentation/integration-and-testing/test-the-apis/index.md#oauth-connection-profiles).
