---
title: "Retrieve an Asset Report"
method: POST
path: "/asset_report/get"
tags: ["plaid"]
---

# Retrieve an Asset Report

`POST /asset_report/get`

The `/asset_report/get` endpoint retrieves the Asset Report in JSON format. Before calling `/asset_report/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.

By default, an Asset Report includes transaction descriptions as returned by the bank, as opposed to parsed and categorized by Plaid. You can also receive cleaned and categorized transactions, as well as additional insights like merchant name or location information. We call this an Asset Report with Insights. An Asset Report with Insights provides transaction category, location, and merchant information in addition to the transaction strings provided in a standard Asset Report. To retrieve an Asset Report with Insights, call the `/asset_report/get` endpoint with `include_insights` set to `true`.

For latency-sensitive applications, you can optionally call `/asset_report/create` with `options.add_ons` set to `["fast_assets"]`. This will cause Plaid to create two versions of the Asset Report: one with only current and available balance and identity information, and then later on the complete Asset Report. You will receive separate webhooks for each version of the Asset Report.

## Request body

- AssetReportGetRequest — AssetReportGetRequest defines the request schema for `/asset_report/get`
  - `client_id` string — Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
  - `secret` string — Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
  - `asset_report_token` string — A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update an Asset Report.
  - `user_token` string — The user token associated with the User for which to create an asset report for. The latest asset report associated with the User will be returned
  - `include_insights` boolean — `true` if you would like to retrieve the Asset Report with Insights, `false` otherwise. This field defaults to `false` if omitted.
  - `fast_report` boolean — `true` to fetch "fast" version of asset report. Defaults to false if omitted. Can only be used if `/asset_report/create` was called with `options.add_ons` set to `["fast_assets"]`.
  - `options` AssetReportGetRequestOptions — An optional object to filter or add data to `/asset_report/get` results. If provided, must be non-`null`.
    - `days_to_include` integer, nullable — The maximum number of days of history to include in the Asset Report.

## Response `200`

OK

- AssetReportGetResponse — AssetReportGetResponse defines the response schema for `/asset_report/get`
  - `report` AssetReport, required — An object representing an Asset Report
    - `asset_report_id` string, required — A unique ID identifying an Asset Report. Like all Plaid identifiers, this ID is case sensitive.
    - `insights` AccountInsights, nullable — This is a container object for all lending-related insights. This field will be returned only for European customers.
      - `risk` RiskIndicators, nullable — Risk indicators focus on providing signal on the possibility of a borrower defaulting on their loan repayments by providing data points related to its payment behavior, debt, and other relevant financial information, helping lenders gauge the level of risk involved in a certain operation.
        - `bank_penalties` BankPenaltiesIndicators, nullable — Insights into bank penalties and fees, including overdraft fees, NSF fees, and other bank-imposed charges.
          - `amount` number, double, nullable — The total value of outflow transactions categorized as `BANK_PENALTIES`, across all the accounts in the report within the requested time window.
          - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
          - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
            - `amount` number, double, nullable — The monthly average amount of all the aggregated transactions of the given category, across all the accounts for the given time window. The average is calculated by dividing the total amount of the transactions by the number of calendar months in the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `category_details` CategoryExpenses[] — Detailed categories view of all the transactions that fall into the `BANK_PENALTIES` credit category within the given time window, across all the accounts in the report.
            - `id` string — The ID of the credit category. See the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs.
            - `transactions_count` integer, nullable — The total number of transactions that fall into this credit category within the given time window.
            - `amount` number, double, nullable — The total value for all the transactions that fall into this category within the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
            - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
              - …
          - `transactions_count` integer, nullable — The total number of transactions that fall into the `BANK_PENALTIES` credit category, across all the accounts in the report.
          - `monthly_summaries` MonthlySummary[] — The monthly summaries of the transactions that fall into the `BANK_PENALTIES` credit category within the given time window, across all the accounts in the report.
            - `start_date` string, date, nullable — The start date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
            - `end_date` string, date, nullable — The end date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
            - `total_amount` AmountWithCurrency, nullable — A monetary amount with its associated currency information, supporting both official and unofficial currency codes.
              - …
          - `days_since_last_occurrence` integer, nullable — The number of days since the last transaction that falls into the `BANK_PENALTIES` credit category, across all the accounts in the report.
          - `percentage_of_income` number, double, nullable — The percentage of the user's monthly inflows that was spent on transactions that fall into the `BANK_PENALTIES` credit category within the given time window, across all the accounts in the report. For example, a value of 100 represents that 100% of the inflows were spent on transactions that fall into the `BANK_PENALTIES` credit category. If there's no available income for the given time period, this field value will be `-1`.
        - `gambling` GamblingIndicators, nullable — Insights into gambling-related transactions, including frequency, amounts, and top merchants.
          - `amount` number, double, nullable — The total value of transactions that fall into the `GAMBLING` credit category, across all the accounts in the report.
          - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
          - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
            - `amount` number, double, nullable — The monthly average amount of all the aggregated transactions of the given category, across all the accounts for the given time window. The average is calculated by dividing the total amount of the transactions by the number of calendar months in the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `top_merchants` string[] — Up to 3 top merchants that the user had the most transactions for in the given time window, in descending order of total spend. If the user has not spent money on any merchants in the given time window, this list will be empty.
          - `transactions_count` integer, nullable — The total number of transactions that fall into the `GAMBLING` credit category, across all the accounts in the report.
          - `monthly_summaries` MonthlySummary[] — The monthly summaries of the transactions that fall into the `GAMBLING` category within the given time window, across all the accounts in the report.
            - `start_date` string, date, nullable — The start date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
            - `end_date` string, date, nullable — The end date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
            - `total_amount` AmountWithCurrency, nullable — A monetary amount with its associated currency information, supporting both official and unofficial currency codes.
              - …
          - `days_since_last_occurrence` integer, nullable — The number of days since the last transaction that falls into the `GAMBLING` category, across all the accounts in the report.
          - `percentage_of_income` number, double, nullable — The percentage of the user's monthly inflows that was spent on transactions that fall into the `GAMBLING` category within the given time window, across all the accounts in the report. For example, a value of 100 indicates that 100% of the inflows were spent on transactions that fall into the `GAMBLING` credit category. If there's no available income for the given time period, this field value will be `-1`
        - `loan_disbursements` LoanDisbursementsIndicators, nullable — Insights into loan disbursement transactions received by the user, tracking incoming funds from loan providers.
          - `amount` number, double, nullable — The total value of inflow transactions categorized as `LOAN_DISBURSEMENTS`, across all the accounts in the report within the requested time window.
          - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
          - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `category_details` CategoryExpenses[] — Detailed categories view of all the transactions that fall into the `LOAN_DISBURSEMENTS` credit category within the given time window, across all the accounts in the report.
            - `id` string — The ID of the credit category. See the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs.
            - `transactions_count` integer, nullable — The total number of transactions that fall into this credit category within the given time window.
            - `amount` number, double, nullable — The total value for all the transactions that fall into this category within the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
            - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
              - …
          - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
            - `amount` number, double, nullable — The monthly average amount of all the aggregated transactions of the given category, across all the accounts for the given time window. The average is calculated by dividing the total amount of the transactions by the number of calendar months in the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `top_providers` string[] — Up to 3 top service providers that the user had the most transactions for in the given time window, in descending order of total spend. If the user has not received money from any provider in the given time window, this list will be empty.
          - `transactions_count` integer, nullable — The total number of transactions that fall into the `LOAN_DISBURSEMENTS` credit category, across all the accounts in the report.
          - `monthly_summaries` MonthlySummary[] — The monthly summaries of the transactions that fall into the `LOAN_DISBURSEMENTS` category within the given time window, across all the accounts in the report.
            - `start_date` string, date, nullable — The start date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
            - `end_date` string, date, nullable — The end date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
            - `total_amount` AmountWithCurrency, nullable — A monetary amount with its associated currency information, supporting both official and unofficial currency codes.
              - …
          - `days_since_last_occurrence` integer, nullable — The number of days since the last transaction that falls into the `LOAN_DISBURSEMENTS` credit category, across all the accounts in the report.
          - `percentage_of_income` number, double, nullable — The percentage of the user's monthly inflows that was received on transactions that fall into the `LOAN_DISBURSEMENTS` credit category within the given time window, across all the accounts in the report. For example, a value of 100 indicates that 100% of the inflows were spent on transactions that fall into the `LOAN_DISBURSEMENTS` credit category. If there's no available income for the given time period, this field value will be `-1`.
        - `loan_payments` LoanPaymentsIndicators, nullable — Insights into loan payment transactions made by the user, tracking outgoing payments to loan providers.
          - `amount` number, double, nullable — The total value of outflow transactions categorized as `LOAN_PAYMENTS`, across all the accounts in the report within the requested time window.
          - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
          - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
            - `amount` number, double, nullable — The monthly average amount of all the aggregated transactions of the given category, across all the accounts for the given time window. The average is calculated by dividing the total amount of the transactions by the number of calendar months in the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `category_details` CategoryExpenses[] — Detailed categories view of all the transactions that fall into the `LOAN_PAYMENTS` credit category within the given time window, across all the accounts in the report.
            - `id` string — The ID of the credit category. See the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs.
            - `transactions_count` integer, nullable — The total number of transactions that fall into this credit category within the given time window.
            - `amount` number, double, nullable — The total value for all the transactions that fall into this category within the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
            - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
              - …
          - `top_providers` string[] — Up to 3 top service providers that the user had the most transactions for in the given time window, in descending order of total spend. If the user has not spent money on any provider in the given time window, this list will be empty.
          - `transactions_count` integer, nullable — The total number of transactions that fall into the `LOAN_PAYMENTS` credit category, across all the accounts in the report.
          - `monthly_summaries` MonthlySummary[] — The monthly summaries of the transactions that fall into the `LOAN_PAYMENTS` credit category within the given time window, across all the accounts in the report.
            - `start_date` string, date, nullable — The start date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
            - `end_date` string, date, nullable — The end date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
            - `total_amount` AmountWithCurrency, nullable — A monetary amount with its associated currency information, supporting both official and unofficial currency codes.
              - …
          - `days_since_last_occurrence` integer, nullable — The number of days since the last transaction that falls into the `LOAN_PAYMENTS` credit category, across all the accounts in the report.
          - `percentage_of_income` number, double, nullable — The percentage of the user's monthly inflows that was spent on transactions that fall into the `LOAN_PAYMENTS` credit category within the given time window, across all the accounts in the report. For example, a value of 100 indicates that 100% of the inflows were spent on transactions that fall into the `LOAN_PAYMENTS` credit category. If there's no available income for the given time period, this field value will be `-1`
        - `negative_balance` NegativeBalanceInsights, nullable — Insights into negative balance occurrences, including frequency, duration, and minimum balance details.
          - `days_since_last_occurrence` integer, nullable — The number of days since the last transaction that caused any account in the report to have a negative balance. This value is inclusive of the date of the last negative balance, meaning that if the last negative balance occurred today, this value will be `0`.
          - `days_with_negative_balance` integer, nullable — The number of aggregated days that the accounts in the report has had a negative balance within the given time window.
          - `minimum_balance` AmountWithCurrency, nullable — A monetary amount with its associated currency information, supporting both official and unofficial currency codes.
            - `amount` number, double, nullable — If the parent object represents a category of transactions, such as `total_amount`, `transfers_in`, `total_income`, etc. the `amount` represents the sum of all of the transactions in the group. If the parent object is `cash_flow`, the `amount` represents the total value of all the inflows minus all the outflows across all the accounts in the report in the given time window. If the parent object is `minimum_balance`, the `amount` represents the lowest balance of the account during the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `occurrences` NegativeBalanceOccurrence[] — The summary of the negative balance occurrences for this account. If the user has not had a negative balance in the account in the given time window, this list will be empty.
            - `start_date` string, date, nullable — The date of the first transaction that caused the account to have a negative balance. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
            - `end_date` string, date, nullable — The date of the last transaction that caused the account to have a negative balance. The date will be returned in an ISO 8601 format (YYYY-MM-DD). This date is inclusive, meaning that this was the last date that the account had a negative balance.
            - `minimum_balance` AmountWithCurrency, nullable — A monetary amount with its associated currency information, supporting both official and unofficial currency codes.
              - …
      - `affordability` AffordabilityInsights, nullable — Affordability insights focus on providing signal on the ability of a borrower to repay their loan without experiencing financial strain. It provides insights on factors such as a user's monthly income and expenses, disposable income, average expenditure, etc., helping lenders gauge the level of affordability of a borrower.
        - `expenditure` ExpenditureInsights, nullable — Comprehensive analysis of spending patterns, categorizing expenses into essential, non-essential, and other categories.
          - `cash_flow` AmountWithCurrencyWithMonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
            - `amount` number, double, nullable — The monthly average amount of all the aggregated transactions of the given category, across all the accounts for the given time window. The average is calculated by dividing the total amount of the transactions by the number of calendar months in the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `total_expenditure` ExpenditureSummary, nullable — Summary statistics for a specific expenditure category, including total amount, monthly average, and percentage of income.
            - `amount` number, double, nullable — The total value of all the aggregated transactions in this expenditure category.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
            - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
              - …
            - `transactions_count` integer, nullable — The total number of outflow transactions in this expenses group, within the given time window across all the accounts in the report.
            - `percentage_of_income` number, double, nullable — The percentage of the total inflows that was spent in this expenses group, within the given time window across all the accounts in the report. For example, a value of 100 represents that 100% of the inflows were spent on transactions that fall into this expenditure group. If there's no available income for the given time period, this field value will be `-1`.
            - `top_categories` CategoryExpenses[] — The primary credit categories of the expenses within the given time window, across all the accounts in the report. The categories are sorted in descending order by the total value spent. See the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs.
              - …
          - `essential_expenditure` ExpenditureSummary, nullable — Summary statistics for a specific expenditure category, including total amount, monthly average, and percentage of income.
            - `amount` number, double, nullable — The total value of all the aggregated transactions in this expenditure category.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
            - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
              - …
            - `transactions_count` integer, nullable — The total number of outflow transactions in this expenses group, within the given time window across all the accounts in the report.
            - `percentage_of_income` number, double, nullable — The percentage of the total inflows that was spent in this expenses group, within the given time window across all the accounts in the report. For example, a value of 100 represents that 100% of the inflows were spent on transactions that fall into this expenditure group. If there's no available income for the given time period, this field value will be `-1`.
            - `top_categories` CategoryExpenses[] — The primary credit categories of the expenses within the given time window, across all the accounts in the report. The categories are sorted in descending order by the total value spent. See the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs.
              - …
          - `non_essential_expenditure` ExpenditureSummary, nullable — Summary statistics for a specific expenditure category, including total amount, monthly average, and percentage of income.
            - `amount` number, double, nullable — The total value of all the aggregated transactions in this expenditure category.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
            - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
              - …
            - `transactions_count` integer, nullable — The total number of outflow transactions in this expenses group, within the given time window across all the accounts in the report.
            - `percentage_of_income` number, double, nullable — The percentage of the total inflows that was spent in this expenses group, within the given time window across all the accounts in the report. For example, a value of 100 represents that 100% of the inflows were spent on transactions that fall into this expenditure group. If there's no available income for the given time period, this field value will be `-1`.
            - `top_categories` CategoryExpenses[] — The primary credit categories of the expenses within the given time window, across all the accounts in the report. The categories are sorted in descending order by the total value spent. See the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs.
              - …
          - `other` ExpenditureSummary, nullable — Summary statistics for a specific expenditure category, including total amount, monthly average, and percentage of income.
            - `amount` number, double, nullable — The total value of all the aggregated transactions in this expenditure category.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
            - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
              - …
            - `transactions_count` integer, nullable — The total number of outflow transactions in this expenses group, within the given time window across all the accounts in the report.
            - `percentage_of_income` number, double, nullable — The percentage of the total inflows that was spent in this expenses group, within the given time window across all the accounts in the report. For example, a value of 100 represents that 100% of the inflows were spent on transactions that fall into this expenditure group. If there's no available income for the given time period, this field value will be `-1`.
            - `top_categories` CategoryExpenses[] — The primary credit categories of the expenses within the given time window, across all the accounts in the report. The categories are sorted in descending order by the total value spent. See the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs.
              - …
          - `transfers_out` ExpenditureSummary, nullable — Summary statistics for a specific expenditure category, including total amount, monthly average, and percentage of income.
            - `amount` number, double, nullable — The total value of all the aggregated transactions in this expenditure category.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
            - `monthly_average` MonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
              - …
            - `transactions_count` integer, nullable — The total number of outflow transactions in this expenses group, within the given time window across all the accounts in the report.
            - `percentage_of_income` number, double, nullable — The percentage of the total inflows that was spent in this expenses group, within the given time window across all the accounts in the report. For example, a value of 100 represents that 100% of the inflows were spent on transactions that fall into this expenditure group. If there's no available income for the given time period, this field value will be `-1`.
            - `top_categories` CategoryExpenses[] — The primary credit categories of the expenses within the given time window, across all the accounts in the report. The categories are sorted in descending order by the total value spent. See the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs.
              - …
          - `outlier_transactions` OutlierTransactionsInsights, nullable — Insights into unusually large transactions that exceed typical spending patterns for the account.
            - `transactions_count` integer, nullable — The total number of transactions whose value is above the threshold of normal amounts for a given account.
            - `total_amount` AmountWithCurrency, nullable — A monetary amount with its associated currency information, supporting both official and unofficial currency codes.
              - …
            - `top_categories` CategoryExpenses[] — Up to 3 top categories of expenses in this group.
              - …
        - `income` IncomeInsights, nullable — Comprehensive income analysis including total income, income excluding transfers, and inbound transfer amounts.
          - `total_income` AmountWithCurrency, nullable — A monetary amount with its associated currency information, supporting both official and unofficial currency codes.
            - `amount` number, double, nullable — If the parent object represents a category of transactions, such as `total_amount`, `transfers_in`, `total_income`, etc. the `amount` represents the sum of all of the transactions in the group. If the parent object is `cash_flow`, the `amount` represents the total value of all the inflows minus all the outflows across all the accounts in the report in the given time window. If the parent object is `minimum_balance`, the `amount` represents the lowest balance of the account during the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `income_excluding_transfers` AmountWithCurrencyWithMonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
            - `amount` number, double, nullable — The monthly average amount of all the aggregated transactions of the given category, across all the accounts for the given time window. The average is calculated by dividing the total amount of the transactions by the number of calendar months in the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `transfers_in` AmountWithCurrencyWithMonthlyAverage, nullable — The monthly average amount calculated by dividing the total by the number of calendar months in the time period.
            - `amount` number, double, nullable — The monthly average amount of all the aggregated transactions of the given category, across all the accounts for the given time window. The average is calculated by dividing the total amount of the transactions by the number of calendar months in the given time window.
            - `iso_currency_code` string, nullable — The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
    - `client_report_id` string, nullable, required — An identifier you determine and submit for the Asset Report.
    - `date_generated` string, date-time, required — The date and time when the Asset Report was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. "2018-04-12T03:32:11Z").
    - `days_requested` number, required — The duration of transaction history you requested
    - `user` AssetReportUser, required — The user object allows you to provide additional information about the user to be appended to the Asset Report. All fields are optional. The `first_name`, `last_name`, and `ssn` fields are required if you would like the Report to be eligible for Fannie Mae's Day 1 Certainty™ program.
      - `client_user_id` string, nullable — An identifier you determine and submit for the user.
      - `first_name` string, nullable — The user's first name. Required for the Fannie Mae Day 1 Certainty™ program.
      - `middle_name` string, nullable — The user's middle name
      - `last_name` string, nullable — The user's last name. Required for the Fannie Mae Day 1 Certainty™ program.
      - `ssn` string, nullable — The user's Social Security Number. Required for the Fannie Mae Day 1 Certainty™ program. Format: "ddd-dd-dddd"
      - `phone_number` string, nullable — The user's phone number, in E.164 format: +{countrycode}{number}. For example: "+14151234567". Phone numbers provided in other formats will be parsed on a best-effort basis.
      - `email` string, nullable — The user's email address.
    - `items` AssetReportItem[], required — Data returned by Plaid about each of the Items included in the Asset Report.
      - `item_id` string, required — The `item_id` of the Item associated with this webhook, warning, or error
      - `institution_name` string, required — The full financial institution name associated with the Item.
      - `institution_id` string, required — The id of the financial institution associated with the Item.
      - `date_last_updated` string, date-time, required — The date and time when this Item's data was last retrieved from the financial institution, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
      - `accounts` AccountAssets[], required — Data about each of the accounts open on the Item.
        - `account_id` string, required — Plaid's unique identifier for the account. This value will not change unless Plaid can't reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account. The `account_id` can also change if the `access_token` is deleted and the same credentials that were used to generate that `access_token` are used to generate a new `access_token` on a later date. In that case, the new `account_id` will be different from the old `account_id`. If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API. Like all Plaid identifiers, the `account_id` is case sensitive.
        - `balances` AssetReportAccountBalance, required — A set of fields describing the balance for an account. Balance information may be cached unless the balance object was returned by `/accounts/balance/get`.
          - `available` number, double, nullable, required — The amount of funds available to be withdrawn from the account, as determined by the financial institution. For `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows. For `depository`-type accounts, the `available` balance typically equals the `current` balance less any pending outflows plus any pending inflows. For `depository`-type accounts, the `available` balance does not include the overdraft limit. For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the `available` balance is the total cash available to withdraw as presented by the institution. Note that not all institutions calculate the `available` balance. In the event that `available` balance is unavailable, Plaid will return an `available` balance value of `null`. Available balance may be cached and is not guaranteed to be up-to-date in real-time unless the value was returned by `/accounts/balance/get`. If `current` is `null` this field is guaranteed not to be `null`.
          - `current` number, double, nullable, required — The total amount of funds in or owed by the account. For `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder. For `loan`-type accounts, the current balance is the principal remaining on the loan, except in the case of student loan accounts at Sallie Mae (`ins_116944`). For Sallie Mae student loans, the account's balance includes both principal and any outstanding interest. For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the current balance is the total value of assets as presented by the institution. Note that balance information may be cached unless the value was returned by `/accounts/balance/get`; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require real-time balance information, use the `available` balance as provided by `/accounts/balance/get`. When returned by `/accounts/balance/get`, this field may be `null`. When this happens, `available` is guaranteed not to be `null`.
          - `limit` number, double, nullable, required — For `credit`-type accounts, this represents the credit limit. For `depository`-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe. In North America, this field is typically only available for `credit`-type accounts.
          - `margin_loan_amount` number, double, nullable, required — The total amount of borrowed funds in the account, as determined by the financial institution. For investment-type accounts, the margin balance is the total value of borrowed assets in the account, as presented by the institution. This is commonly referred to as margin or a loan.
          - `iso_currency_code` string, nullable, required — The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null.
          - `unofficial_currency_code` string, nullable, required — The unofficial currency code associated with the balance. Always null if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `last_updated_datetime` string, date-time, nullable — Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the oldest acceptable balance when making a request to `/accounts/balance/get`. This field is only used and expected when the institution is `ins_128026` (Capital One) and the Item contains one or more accounts with a non-depository account type, in which case a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For Capital One depository accounts as well as all other account types on all other institutions, this field is ignored. See [account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of account types. If the balance that is pulled is older than the given timestamp for Items with this field required, an `INVALID_REQUEST` error with the code of `LAST_UPDATED_DATETIME_OUT_OF_RANGE` will be returned with the most recent timestamp for the requested account contained in the response.
        - `mask` string, nullable, required — The last 2-4 alphanumeric characters of an account's official account number. Note that the mask may be non-unique between an Item's accounts, and it may also not match the mask that the bank displays to the user.
        - `name` string, required — The name of the account, either assigned by the user or by the financial institution itself
        - `official_name` string, nullable, required — The official name of the account as given by the financial institution
        - `type` 'investment' | 'credit' | 'depository' | 'loan' | 'brokerage' | 'other', required — `investment:` Investment account. In API versions 2018-05-22 and earlier, this type is called `brokerage` instead. `credit:` Credit card `depository:` Depository account `loan:` Loan account `other:` Non-specified account type See the [Account type schema](https://plaid.com/docs/api/accounts#account-type-schema) for a full listing of account types and corresponding subtypes.
        - `subtype` '401a' | '401k' | '403B' | '457b' | '529' | 'auto' | 'brokerage' | 'business' | 'cash isa' | 'cash management' | 'cd' | 'checking' | 'commercial' | 'construction' | 'consumer' | 'credit card' | 'crypto exchange' | 'ebt' | 'education savings account' | 'fhsa' | 'fixed annuity' | 'gic' | 'health reimbursement arrangement' | 'home equity' | 'hsa' | 'isa' | 'ira' | 'keogh' | 'lif' | 'life insurance' | 'limited purpose checking' | 'line of credit' | 'lira' | 'loan' | 'lrif' | 'lrsp' | 'money market' | 'mortgage' | 'mutual fund' | 'non-custodial wallet' | 'non-taxable brokerage account' | 'other' | 'other insurance' | 'other annuity' | 'overdraft' | 'paypal' | 'payroll' | 'pension' | 'prepaid' | 'prif' | 'profit sharing plan' | 'qshr' | 'rdsp' | 'resp' | 'retirement' | 'rlif' | 'roth' | 'roth 401k' | 'roth 403B' | 'roth 457b' | 'roth pension' | 'roth profit sharing plan' | 'roth thrift savings plan' | 'rrif' | 'rrsp' | 'sarsep' | 'savings' | 'sep ira' | 'simple ira' | 'sipp' | 'stock plan' | 'student' | 'thrift savings plan' | 'tfsa' | 'trust' | 'ugma' | 'utma' | 'variable annuity', nullable, required — See the [Account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full listing of account types and corresponding subtypes.
        - `verification_status` 'automatically_verified' | 'pending_automatic_verification' | 'pending_manual_verification' | 'manually_verified' | 'verification_expired' | 'verification_failed' | 'database_matched' — The current verification status of an Auth Item initiated through Automated or Manual micro-deposits. Returned for Auth Items only. `pending_automatic_verification`: The Item is pending automatic verification. `pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the micro-deposit. `automatically_verified`: The Item has successfully been automatically verified. `manually_verified`: The Item has successfully been manually verified. `verification_expired`: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link. `verification_failed`: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link. `database_matched`: (deprecated) The Item has successfully been verified using Plaid's data sources. Only returned for Auth Items created via Database Match.
        - `persistent_account_id` string — A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This is currently an opt-in field and only supported for Chase Items.
        - `days_available` number, required — The duration of transaction history available within this report for this Item, typically defined as the time since the date of the earliest transaction in that account.
        - `transactions` AssetReportTransaction[], required — Transaction history associated with the account.
          - `account_id` string, required — The ID of the account in which this transaction occurred.
          - `amount` number, double, required — The settled value of the transaction, denominated in the transaction's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative.
          - `iso_currency_code` string, nullable, required — The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
          - `unofficial_currency_code` string, nullable, required — The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `original_description` string, nullable, required — The string returned by the financial institution to describe the transaction.
          - `category` string[], nullable — A hierarchical array of the categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget). This field will only appear in an Asset Report with Insights.
          - `category_id` string, nullable — The ID of the category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget). This field will only appear in an Asset Report with Insights.
          - `credit_category` CreditCategory, nullable — Information describing the intent of the transaction. Most relevant for credit use cases, but not limited to such use cases. See the [`taxonomy csv file`](https://plaid.com/documents/credit-category-taxonomy.csv) for a full list of credit categories.
            - `primary` string, required — A high level category that communicates the broad category of the transaction.
            - `detailed` string, required — A granular category conveying the transaction's intent. This field can also be used as a unique identifier for the category.
          - `check_number` string, nullable — The check number of the transaction. This field is only populated for check transactions.
          - `date` string, date, required — For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ).
          - `date_transacted` string, nullable — The date on which the transaction took place, in ISO 8601 format.
          - `location` Location — A representation of where a transaction took place. Location data is provided only for transactions at physical locations, not for online transactions. Location data availability depends primarily on the merchant and is most likely to be populated for transactions at large retail chains; small, local businesses are less likely to have location data available.
            - `address` string, nullable, required — The street address where the transaction occurred.
            - `city` string, nullable, required — The city where the transaction occurred.
            - `region` string, nullable, required — The region or state where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `state`.
            - `postal_code` string, nullable, required — The postal code where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `zip`.
            - `country` string, nullable, required — The ISO 3166-1 alpha-2 country code where the transaction occurred.
            - `lat` number, double, nullable, required — The latitude where the transaction occurred.
            - `lon` number, double, nullable, required — The longitude where the transaction occurred.
            - `store_number` string, nullable, required — The merchant defined store number where the transaction occurred.
          - `name` string — The merchant name or transaction description. This is a legacy field that is no longer maintained. For merchant name, use the `merchant_name` field. For description, use the `original_description` field. This field will only appear in an Asset Report with Insights.
          - `merchant_name` string, nullable — The merchant name, as enriched by Plaid. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be `null`.
          - `payment_meta` PaymentMeta — Transaction information specific to inter-bank transfers. If the transaction was not an inter-bank transfer, all fields will be `null`. If the `transactions` object was returned by a Transactions endpoint such as `/transactions/sync` or `/transactions/get`, the `payment_meta` key will always appear, but no data elements are guaranteed. If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
            - `reference_number` string, nullable, required — The transaction reference number supplied by the financial institution.
            - `ppd_id` string, nullable, required — The ACH PPD ID for the payer.
            - `payee` string, nullable, required — For transfers, the party that is receiving the transaction.
            - `by_order_of` string, nullable, required — The party initiating a wire transfer. Will be `null` if the transaction is not a wire transfer.
            - `payer` string, nullable, required — For transfers, the party that is paying the transaction.
            - `payment_method` string, nullable, required — The type of transfer, e.g. 'ACH'
            - `payment_processor` string, nullable, required — The name of the payment processor
            - `reason` string, nullable, required — The payer-supplied description of the transfer.
          - `pending` boolean, required — When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
          - `pending_transaction_id` string, nullable — The ID of a posted transaction's associated pending transaction, where applicable.
          - `account_owner` string, nullable — The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts.
          - `transaction_id` string, required — The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
          - `transaction_type` 'digital' | 'place' | 'special' | 'unresolved' — `digital:` transactions that took place online. `place:` transactions that were made at a physical location. `special:` transactions that relate to banks, e.g. fees or deposits. `unresolved:` transactions that do not fit into the other three types.
          - `income_source_id` string — A unique identifier for an income source.
        - `investments` AssetReportInvestments — A set of fields describing the investments data on an account.
          - `holdings` AssetReportInvestmentHolding[] — Quantities and values of securities held in the investment account. Map to the `securities` array for security details.
            - `account_id` string, required — The Plaid `account_id` associated with the holding.
            - `security_id` string, required — The Plaid `security_id` associated with the holding. Security data is not specific to a user's account; any user who held the same security at the same financial institution at the same time would have identical security data. The `security_id` for the same security will typically be the same across different institutions, but this is not guaranteed. The `security_id` does not typically change, but may change if inherent details of the security change due to a corporate action, for example, in the event of a ticker symbol change or CUSIP change.
            - `ticker_symbol` string, nullable, required — The holding's trading symbol for publicly traded holdings, and otherwise a short identifier if available.
            - `institution_price` number, double, required — The last price given by the institution for this security.
            - `institution_price_as_of` string, date, nullable — The date at which `institution_price` was current.
            - `institution_value` number, double, required — The value of the holding, as reported by the institution.
            - `cost_basis` number, double, nullable, required — The original total value of the holding. This field is calculated by Plaid as the sum of the purchase price of all of the shares in the holding.
            - `quantity` number, double, required — The total quantity of the asset held, as reported by the financial institution. If the security is an option, `quantity` will reflect the total number of options (typically the number of contracts multiplied by 100), not the number of contracts.
            - `iso_currency_code` string, nullable, required — The ISO-4217 currency code of the holding. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable, required — The unofficial currency code associated with the holding. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
          - `securities` AssetReportInvestmentSecurity[] — Details of specific securities held in on the investment account.
            - `security_id` string, required — A unique, Plaid-specific identifier for the security, used to associate securities with holdings. Like all Plaid identifiers, the `security_id` is case sensitive. The `security_id` may change if inherent details of the security change due to a corporate action, for example, in the event of a ticker symbol change or CUSIP change.
            - `name` string, nullable, required — A descriptive name for the security, suitable for display.
            - `ticker_symbol` string, nullable, required — The security's trading symbol for publicly traded securities, and otherwise a short identifier if available.
            - `type` string, nullable, required — The security type of the holding. Valid security types are: `cash`: Cash, currency, and money market funds `cryptocurrency`: Digital or virtual currencies `derivative`: Options, warrants, and other derivative instruments `equity`: Domestic and foreign equities `etf`: Multi-asset exchange-traded investment funds `fixed income`: Bonds and certificates of deposit (CDs) `loan`: Loans and loan receivables `mutual fund`: Open- and closed-end vehicles pooling funds of multiple investors `other`: Unknown or other investment types
          - `transactions` AssetReportInvestmentTransaction[] — Transaction history on the investment account.
            - `investment_transaction_id` string, required — The ID of the Investment transaction, unique across all Plaid transactions. Like all Plaid identifiers, the `investment_transaction_id` is case sensitive.
            - `account_id` string, required — The `account_id` of the account against which this transaction posted.
            - `security_id` string, nullable, required — The `security_id` to which this transaction is related.
            - `date` string, date, required — The [ISO 8601](https://wikipedia.org/wiki/ISO_8601) posting date for the transaction.
            - `name` string, required — The institution's description of the transaction.
            - `quantity` number, double, required — The number of units of the security involved in this transaction. Positive for buy transactions; negative for sell transactions.
            - `vested_quantity` number, double, required — The total quantity of vested assets held, as reported by the financial institution. Vested assets are only associated with [equities](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-type).
            - `vested_value` number, double, required — The value of the vested holdings as reported by the institution.
            - `amount` number, double, required — The complete value of the transaction. Positive values when cash is debited, e.g. purchases of stock; negative values when cash is credited, e.g. sales of stock. Treatment remains the same for cash-only movements unassociated with securities. For transactions representing a simultaneous cash contribution and purchase of a security, the portion of the transaction representing the purchase takes precedence, and the `amount` is represented as positive.
            - `price` number, double, required — The price of the security at which this transaction occurred.
            - `fees` number, double, nullable, required — The combined value of all fees applied to this transaction
            - `type` 'buy' | 'sell' | 'cancel' | 'cash' | 'fee' | 'transfer', required — Value is one of the following: `buy`: Buying an investment `sell`: Selling an investment `cancel`: A cancellation of a pending transaction `cash`: Activity that modifies a cash position `fee`: A fee on the account `transfer`: Activity which modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer For descriptions of possible transaction types and subtypes, see the [Investment transaction types schema](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).
            - `subtype` 'account fee' | 'adjustment' | 'assignment' | 'buy' | 'buy to cover' | 'contribution' | 'deposit' | 'distribution' | 'dividend' | 'dividend reinvestment' | 'exercise' | 'expire' | 'fund fee' | 'interest' | 'interest receivable' | 'interest reinvestment' | 'legal fee' | 'loan payment' | 'long-term capital gain' | 'long-term capital gain reinvestment' | 'management fee' | 'margin expense' | 'merger' | 'miscellaneous fee' | 'non-qualified dividend' | 'non-resident tax' | 'pending credit' | 'pending debit' | 'qualified dividend' | 'rebalance' | 'return of principal' | 'request' | 'sell' | 'sell short' | 'send' | 'short-term capital gain' | 'short-term capital gain reinvestment' | 'spin off' | 'split' | 'stock distribution' | 'tax' | 'tax withheld' | 'trade' | 'transfer' | 'transfer fee' | 'trust fee' | 'unqualified gain' | 'withdrawal', required — For descriptions of possible transaction types and subtypes, see the [Investment transaction types schema](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).
            - `iso_currency_code` string, nullable, required — The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-`null`.
            - `unofficial_currency_code` string, nullable, required — The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
        - `owners` Owner[], required — Data returned by the financial institution about the account owner or owners. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29)
          - `names` string[], required — A list of names associated with the account by the financial institution. In the case of a joint account, Plaid will make a best effort to report the names of all account holders. If an Item contains multiple accounts with different owner names, some institutions will report all names associated with the Item in each account's `names` array.
          - `phone_numbers` PhoneNumber[], required — A list of phone numbers associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
            - `data` string, required — The phone number.
            - `primary` boolean, required — When `true`, identifies the phone number as the primary number on an account.
            - `type` 'home' | 'work' | 'office' | 'mobile' | 'mobile1' | 'other', required — The type of phone number.
          - `emails` Email[], required — A list of email addresses associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
            - `data` string, required — The email address.
            - `primary` boolean, required — When `true`, identifies the email address as the primary email on an account.
            - `type` 'primary' | 'secondary' | 'other', required — The type of email account as described by the financial institution.
          - `addresses` Address[], required — Data about the various addresses associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
            - `data` AddressData, required — Data about the components comprising an address.
              - …
            - `primary` boolean — When `true`, identifies the address as the primary address on an account.
        - `ownership_type` 'null' | 'individual' | 'joint' | 'association' | 'trust', nullable — How an asset is owned. `association`: Ownership by a corporation, partnership, or unincorporated association, including for-profit and not-for-profit organizations. `individual`: Ownership by an individual. `joint`: Joint ownership by multiple parties. `trust`: Ownership by a revocable or irrevocable trust.
        - `historical_balances` HistoricalBalance[], required — Calculated data about the historical balances on the account. Available for `credit` and `depository` type accounts.
          - `date` string, date, required — The date of the calculated historical balance, in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)
          - `current` number, double, required — The total amount of funds in the account, calculated from the `current` balance in the `balance` object by subtracting inflows and adding back outflows according to the posted date of each transaction. If the account has any pending transactions, historical balance amounts on or after the date of the earliest pending transaction may differ if retrieved in subsequent Asset Reports as a result of those pending transactions posting.
          - `iso_currency_code` string, nullable, required — The ISO-4217 currency code of the balance. Always `null` if `unofficial_currency_code` is non-`null`.
          - `unofficial_currency_code` string, nullable, required — The unofficial currency code associated with the balance. Always `null` if `iso_currency_code` is non-`null`. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
        - `account_insights` AccountInsights, nullable — This is a container object for all lending-related insights. This field will be returned only for European customers.
          - `risk` RiskIndicators, nullable — Risk indicators focus on providing signal on the possibility of a borrower defaulting on their loan repayments by providing data points related to its payment behavior, debt, and other relevant financial information, helping lenders gauge the level of risk involved in a certain operation.
            - `bank_penalties` BankPenaltiesIndicators, nullable — Insights into bank penalties and fees, including overdraft fees, NSF fees, and other bank-imposed charges.
              - …
            - `gambling` GamblingIndicators, nullable — Insights into gambling-related transactions, including frequency, amounts, and top merchants.
              - …
            - `loan_disbursements` LoanDisbursementsIndicators, nullable — Insights into loan disbursement transactions received by the user, tracking incoming funds from loan providers.
              - …
            - `loan_payments` LoanPaymentsIndicators, nullable — Insights into loan payment transactions made by the user, tracking outgoing payments to loan providers.
              - …
            - `negative_balance` NegativeBalanceInsights, nullable — Insights into negative balance occurrences, including frequency, duration, and minimum balance details.
              - …
          - `affordability` AffordabilityInsights, nullable — Affordability insights focus on providing signal on the ability of a borrower to repay their loan without experiencing financial strain. It provides insights on factors such as a user's monthly income and expenses, disposable income, average expenditure, etc., helping lenders gauge the level of affordability of a borrower.
            - `expenditure` ExpenditureInsights, nullable — Comprehensive analysis of spending patterns, categorizing expenses into essential, non-essential, and other categories.
              - …
            - `income` IncomeInsights, nullable — Comprehensive income analysis including total income, income excluding transfers, and inbound transfer amounts.
              - …
  - `warnings` Warning[], required — If the Asset Report generation was successful but identity information cannot be returned, this array will contain information about the errors causing identity information to be missing
    - `warning_type` string, required — The warning type, which will always be `ASSET_REPORT_WARNING`
    - `warning_code` 'OWNERS_UNAVAILABLE' | 'INVESTMENTS_UNAVAILABLE' | 'TRANSACTIONS_UNAVAILABLE' | 'BANK_INCOME_INSIGHTS_INSUFFICIENT_DATA' | 'BANK_INCOME_INSIGHTS_INCOMPLETE' | 'BANK_INCOME_INSIGHTS_STATUS_IN_PROGRESS' | 'BANK_INCOME_INSIGHTS_INTERNAL_ERROR' | 'BANK_INCOME_INSIGHTS_MISMATCHED_DAYS_REQUESTED', required — The warning code identifies a specific kind of warning. `OWNERS_UNAVAILABLE` indicates that account-owner information is not available. `INVESTMENTS_UNAVAILABLE` indicates that Investments specific information is not available. `TRANSACTIONS_UNAVAILABLE` indicates that transactions information associated with Credit and Depository accounts are unavailable. The `BANK_INCOME_INSIGHTS_*` codes apply to the Bank Income add-on: `BANK_INCOME_INSIGHTS_INSUFFICIENT_DATA` indicates there was not enough data to compute Bank Income Insights; `BANK_INCOME_INSIGHTS_INCOMPLETE` indicates the Bank Income Insights flow was not completed; `BANK_INCOME_INSIGHTS_STATUS_IN_PROGRESS` indicates Bank Income Insights are still being computed; `BANK_INCOME_INSIGHTS_INTERNAL_ERROR` indicates an internal error occurred while computing Bank Income Insights; `BANK_INCOME_INSIGHTS_MISMATCHED_DAYS_REQUESTED` indicates the days requested for Bank Income Insights did not match that of the Asset Report.
    - `cause` Cause, nullable, required — An error object and associated `item_id` used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.
      - `error_type` 'INVALID_REQUEST' | 'INVALID_RESULT' | 'INVALID_INPUT' | 'INSTITUTION_ERROR' | 'RATE_LIMIT_EXCEEDED' | 'API_ERROR' | 'ITEM_ERROR' | 'ASSET_REPORT_ERROR' | 'BASE_REPORT_ERROR' | 'RECAPTCHA_ERROR' | 'OAUTH_ERROR' | 'PAYMENT_ERROR' | 'BANK_TRANSFER_ERROR' | 'INCOME_VERIFICATION_ERROR' | 'MICRODEPOSITS_ERROR' | 'SANDBOX_ERROR' | 'PARTNER_ERROR' | 'SIGNAL_ERROR' | 'TRANSACTIONS_ERROR' | 'TRANSACTION_ERROR' | 'TRANSFER_ERROR' | 'CHECK_REPORT_ERROR' | 'CONSUMER_REPORT_ERROR' | 'USER_ERROR' | 'IDEMPOTENCY_ERROR' | 'ASSETS_ERROR' | 'CRA_MONITORING_ERROR' | 'CREDIT_PROFILE_REPORT_ERROR' | 'ENCOMPASS_ERROR' | 'ENRICH_ERROR' | 'FRAUD_INSIGHTS_ERROR' | 'FREDDIE_MAC_ERROR' | 'LINK_DELIVERY_ERROR' | 'PROFILE_ERROR' | 'RECURRING_TRANSACTIONS_ERROR' | 'STATEMENTS_ERROR' | 'TRANSFER_RECURRING_ERROR' | 'TRANSFER_REFUND_ERROR', required — A broad categorization of the error. Safe for programmatic use.
      - `error_code` string, required — The particular error code. Safe for programmatic use.
      - `error_code_reason` string, nullable — The specific reason for the error code. Currently, reasons are only supported for OAuth-based item errors; `null` will be returned otherwise. Safe for programmatic use. Possible values: `OAUTH_INVALID_TOKEN`: The user's OAuth connection to this institution has been invalidated. `OAUTH_CONSENT_EXPIRED`: The user's access consent for this OAuth connection to this institution has expired. `OAUTH_USER_REVOKED`: The user's OAuth connection to this institution is invalid because the user revoked their connection.
      - `error_message` string, required — A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
      - `display_message` string, nullable, required — A user-friendly representation of the error code. `null` if the error is not related to user action. This may change over time and is not safe for programmatic use.
      - `request_id` string — A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.
      - `causes` unknown[] — In this product, a request can pertain to more than one Item. If an error is returned for such a request, `causes` will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified. `causes` will be provided for the `error_type` `ASSET_REPORT_ERROR` or `CHECK_REPORT_ERROR`. `causes` will also not be populated inside an error nested within a `warning` object.
        - unknown
      - `status` integer, nullable — The HTTP status code associated with the error. This will only be returned in the response body when the error information is provided via a webhook.
      - `documentation_url` string — The URL of a Plaid documentation page with more information about the error
      - `suggested_action` string, nullable — Suggested steps for resolving the error
      - `required_account_subtypes` string[] — A list of the account subtypes that were requested via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.
      - `provided_account_subtypes` string[] — A list of the account subtypes that were extracted but did not match the requested subtypes via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.
      - `item_id` string, required — The `item_id` of the Item associated with this webhook, warning, or error
  - `request_id` string, required — A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.

## Other responses

- `default` — Error response

---

[API](https://skmtc.net/plaid/apis/the-plaid-api.md) · [All operations](https://skmtc.net/plaid/apis/the-plaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/plaid/the-plaid-api/versions/64c4514ea59b/schema)
