---
title: "Retrieve information from the bank accounts used for income verification"
method: POST
path: "/credit/bank_income/get"
tags: ["plaid"]
---

# Retrieve information from the bank accounts used for income verification

`POST /credit/bank_income/get`

`/credit/bank_income/get` returns the bank income report(s) for a specified user. A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link). To return older reports, use the `options.count` field.

## Request body

- CreditBankIncomeGetRequest — CreditBankIncomeGetRequest defines the request schema for `/credit/bank_income/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.
  - `user_token` string — The user token associated with the user for which data is being requested. This field is used only by customers with pre-existing integrations that already use the `user_token` field. All other customers should use the `user_id` instead. For more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis).
  - `user_id` string — A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10, 2025 use this field to identify a user instead of the `user_token`. For more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis).
  - `options` CreditBankIncomeGetRequestOptions — An optional object for `/credit/bank_income/get` request options.
    - `count` integer — How many Bank Income Reports should be fetched. Multiple reports may be available if the report has been re-created or refreshed. If more than one report is available, the most recent reports will be returned first.

## Response `200`

OK

- CreditBankIncomeGetResponse — CreditBankIncomeGetResponse defines the response schema for `/credit/bank_income/get`
  - `bank_income` CreditBankIncome[]
    - `bank_income_id` string — The unique identifier associated with the Bank Income Report.
    - `generated_time` string, date-time — The time when the report was generated.
    - `days_requested` integer — The number of days requested by the customer for the report.
    - `items` CreditBankIncomeItem[] — The list of Items in the report along with the associated metadata about the Item.
      - `bank_income_accounts` CreditBankIncomeAccount[] — The Item's accounts that have Bank Income data.
        - `account_id` string, required — Plaid's unique identifier for the account.
        - `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 bank account.
        - `official_name` string, nullable, required — The official name of the bank account.
        - `subtype` 'checking' | 'savings' | 'hsa' | 'cd' | 'money market' | 'paypal' | 'prepaid' | 'cash management' | 'ebt' | 'limited purpose checking' | 'all', required — Valid account subtypes for depository accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-depository).
        - `type` 'depository', required — The account type. This will always be `depository`.
        - `owners` Owner[], required — Data returned by the financial institution about the account owner or owners. Identity information is optional, so field may return an empty array.
          - `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.
      - `bank_income_sources` CreditBankIncomeSource[] — The income sources for this Item. Each entry in the array is a single income source.
        - `income_source_id` string — A unique identifier for an income source.
        - `income_description` string — The most common name or original description for the underlying income transactions.
        - `income_category` 'SALARY' | 'UNEMPLOYMENT' | 'CASH' | 'GIG_ECONOMY' | 'RENTAL' | 'CHILD_SUPPORT' | 'MILITARY' | 'RETIREMENT' | 'LONG_TERM_DISABILITY' | 'BANK_INTEREST' | 'CASH_DEPOSIT' | 'TRANSFER_FROM_APPLICATION' | 'TAX_REFUND' | 'BENEFIT_OTHER' | 'OTHER' — The income category. `BANK_INTEREST`: Interest earned from a bank account. `BENEFIT_OTHER`: Government benefits other than retirement, unemployment, child support, or disability. Currently used only in the UK, to represent benefits such as Cost of Living Payments. `CASH`: Deprecated and used only for existing legacy implementations. Has been replaced by `CASH_DEPOSIT` and `TRANSFER_FROM_APPLICATION`. `CASH_DEPOSIT`: A cash or check deposit. `CHILD_SUPPORT`: Child support payments received. `GIG_ECONOMY`: Income earned as a gig economy worker, e.g. driving for Uber, Lyft, Postmates, DoorDash, etc. `LONG_TERM_DISABILITY`: Disability payments, including Social Security disability benefits. `OTHER`: Income that could not be categorized as any other income category. `MILITARY`: Veterans benefits. Income earned as salary for serving in the military (e.g. through DFAS) will be classified as `SALARY` rather than `MILITARY`. `RENTAL`: Income earned from a rental property. Income may be identified as rental when the payment is received through a rental platform, e.g. Airbnb; rent paid directly by the tenant to the property owner (e.g. via cash, check, or ACH) will typically not be classified as rental income. `RETIREMENT`: Payments from private retirement systems, pensions, and government retirement programs, including Social Security retirement benefits. `SALARY`: Payment from an employer to an earner or other form of permanent employment. `TAX_REFUND`: A tax refund. `TRANSFER_FROM_APPLICATION`: Deposits from a money transfer app, such as Venmo, Cash App, or Zelle. `UNEMPLOYMENT`: Unemployment benefits. In the UK, includes certain low-income benefits such as the Universal Credit.
        - `account_id` string — Plaid's unique identifier for the account.
        - `start_date` string, date — Minimum of all dates within the specific income sources in the user's bank account for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
        - `end_date` string, date — Maximum of all dates within the specific income sources in the user's bank account for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
        - `pay_frequency` 'WEEKLY' | 'BIWEEKLY' | 'SEMI_MONTHLY' | 'MONTHLY' | 'DAILY' | 'UNKNOWN' — The income pay frequency.
        - `total_amount` number — Total amount of earnings in the user's bank account for the specific income source for days requested by the client.
        - `transaction_count` integer — Number of transactions for the income source within the start and end date.
        - `historical_summary` CreditBankIncomeHistoricalSummary[]
          - `total_amount` number — Total amount of earnings for the income source(s) of the user for the month in the summary. This may return an incorrect value if the summary includes income sources in multiple currencies. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-items-bank-income-sources-historical-summary-total-amounts) instead.
          - `iso_currency_code` string, nullable — The ISO 4217 currency code of the amount or balance. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-items-bank-income-sources-historical-summary-total-amounts) instead.
          - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount or 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. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-items-bank-income-sources-historical-summary-total-amounts) instead.
          - `total_amounts` CreditAmountWithCurrency[] — Total amount of earnings for the income source(s) of the user for the month in the summary. This can contain multiple amounts, with each amount denominated in one unique currency.
            - `amount` number, required — Value of amount with up to 2 decimal places.
            - `iso_currency_code` string, nullable, required — The ISO 4217 currency code of the amount or balance.
            - `unofficial_currency_code` string, nullable, required — The unofficial currency code associated with the amount or 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.
          - `start_date` string, date — The start date of the period covered in this monthly summary. This date will be the first day of the month, unless the month being covered is a partial month because it is the first month included in the summary and the date range being requested does not begin with the first day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
          - `end_date` string, date — The end date of the period included in this monthly summary. This date will be the last day of the month, unless the month being covered is a partial month because it is the last month included in the summary and the date range being requested does not end with the last day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
          - `transactions` CreditBankIncomeTransaction[]
            - `amount` number — 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, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative.
            - `date` string, date — 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 format (YYYY-MM-DD).
            - `name` string — The merchant name or transaction description.
            - `original_description` string, nullable — The string returned by the financial institution to describe the transaction.
            - `pending` boolean — When true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
            - `transaction_id` string — The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
            - `check_number` string, nullable — The check number of the transaction. This field is only populated for check transactions.
            - `iso_currency_code` string, nullable — The ISO 4217 currency code of the amount or balance.
            - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount or 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.
      - `last_updated_time` string, date-time — The time when this Item's data was last retrieved from the financial institution.
      - `institution_id` string — The unique identifier of the institution associated with the Item.
      - `institution_name` string — The name of the institution associated with the Item.
      - `item_id` string — The unique identifier for the Item.
    - `bank_income_summary` CreditBankIncomeSummary — Summary for bank income across all income sources and items (max history of 730 days).
      - `total_amount` number — Total amount of earnings across all the income sources in the end user's Items for the days requested by the client. This may return an incorrect value if the summary includes income sources in multiple currencies. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-bank-income-summary-total-amounts) instead.
      - `iso_currency_code` string, nullable — The ISO 4217 currency code of the amount or balance. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-bank-income-summary-total-amounts) instead.
      - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount or 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. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-bank-income-summary-total-amounts) instead.
      - `total_amounts` CreditAmountWithCurrency[] — Total amount of earnings across all the income sources in the end user's Items for the days requested by the client. This can contain multiple amounts, with each amount denominated in one unique currency.
        - `amount` number, required — Value of amount with up to 2 decimal places.
        - `iso_currency_code` string, nullable, required — The ISO 4217 currency code of the amount or balance.
        - `unofficial_currency_code` string, nullable, required — The unofficial currency code associated with the amount or 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.
      - `start_date` string, date — The earliest date within the days requested in which all income sources identified by Plaid appear in a user's account. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
      - `end_date` string, date — The latest date in which all income sources identified by Plaid appear in the user's account. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
      - `income_sources_count` integer — Number of income sources per end user.
      - `income_categories_count` integer — Number of income categories per end user.
      - `income_transactions_count` integer — Number of income transactions per end user.
      - `historical_summary` CreditBankIncomeHistoricalSummary[]
        - `total_amount` number — Total amount of earnings for the income source(s) of the user for the month in the summary. This may return an incorrect value if the summary includes income sources in multiple currencies. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-items-bank-income-sources-historical-summary-total-amounts) instead.
        - `iso_currency_code` string, nullable — The ISO 4217 currency code of the amount or balance. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-items-bank-income-sources-historical-summary-total-amounts) instead.
        - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount or 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. Please use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-items-bank-income-sources-historical-summary-total-amounts) instead.
        - `total_amounts` CreditAmountWithCurrency[] — Total amount of earnings for the income source(s) of the user for the month in the summary. This can contain multiple amounts, with each amount denominated in one unique currency.
          - `amount` number, required — Value of amount with up to 2 decimal places.
          - `iso_currency_code` string, nullable, required — The ISO 4217 currency code of the amount or balance.
          - `unofficial_currency_code` string, nullable, required — The unofficial currency code associated with the amount or 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.
        - `start_date` string, date — The start date of the period covered in this monthly summary. This date will be the first day of the month, unless the month being covered is a partial month because it is the first month included in the summary and the date range being requested does not begin with the first day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
        - `end_date` string, date — The end date of the period included in this monthly summary. This date will be the last day of the month, unless the month being covered is a partial month because it is the last month included in the summary and the date range being requested does not end with the last day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).
        - `transactions` CreditBankIncomeTransaction[]
          - `amount` number — 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, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative.
          - `date` string, date — 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 format (YYYY-MM-DD).
          - `name` string — The merchant name or transaction description.
          - `original_description` string, nullable — The string returned by the financial institution to describe the transaction.
          - `pending` boolean — When true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
          - `transaction_id` string — The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
          - `check_number` string, nullable — The check number of the transaction. This field is only populated for check transactions.
          - `iso_currency_code` string, nullable — The ISO 4217 currency code of the amount or balance.
          - `unofficial_currency_code` string, nullable — The unofficial currency code associated with the amount or 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.
    - `warnings` CreditBankIncomeWarning[] — If data from the report was unable to be retrieved, the warnings will contain information about the error that caused the data to be incomplete.
      - `warning_type` 'BANK_INCOME_WARNING' — The warning type which will always be `BANK_INCOME_WARNING`.
      - `warning_code` 'IDENTITY_UNAVAILABLE' | 'TRANSACTIONS_UNAVAILABLE' | 'ITEM_UNAPPROVED' | 'REPORT_DELETED' | 'DATA_UNAVAILABLE' — The warning code identifies a specific kind of warning. `IDENTITY_UNAVAILABLE`: Unable to extract identity for the Item `TRANSACTIONS_UNAVAILABLE`: Unable to extract transactions for the Item `ITEM_UNAPPROVED`: User exited flow before giving permission to share data for the Item `REPORT_DELETED`: Report deleted due to customer or consumer request `DATA_UNAVAILABLE`: No relevant data was found for the Item
      - `cause` CreditBankIncomeCause — 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` 'INTERNAL_SERVER_ERROR' | 'INSUFFICIENT_CREDENTIALS' | 'ITEM_LOCKED' | 'USER_SETUP_REQUIRED' | 'COUNTRY_NOT_SUPPORTED' | 'INSTITUTION_DOWN' | 'INSTITUTION_NO_LONGER_SUPPORTED' | 'INSTITUTION_NOT_RESPONDING' | 'INVALID_CREDENTIALS' | 'INVALID_MFA' | 'INVALID_SEND_METHOD' | 'ITEM_LOGIN_REQUIRED' | 'MFA_NOT_SUPPORTED' | 'NO_ACCOUNTS' | 'ITEM_NOT_SUPPORTED' | 'ACCESS_NOT_GRANTED', required — A broad categorization of the error. Safe for programmatic use.
        - `error_code` string, required — We use standard HTTP response codes for success and failure notifications, and our errors are further classified by `error_type`. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. Error fields will be `null` if no error has occurred.
        - `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, 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.
        - `item_id` string, required — The `item_id` of the Item associated with this warning.
  - `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/revisions/e536704a333f/schema)
