openapi: 3.0.0
servers:
  - description: Production
    url: https://production.plaid.com
  - description: Development
    url: https://development.plaid.com
  - description: Sandbox
    url: https://sandbox.plaid.com
info:
  contact:
    name: Plaid Developer Team
    url: https://plaid.com
  description: The Plaid REST API. Please see https://plaid.com/docs/api for more details.
  termsOfService: https://plaid.com/legal/
  title: The Plaid API
  version: 2020-09-14_1.345.1
  x-apisguru-categories:
    - financial
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/plaid/plaid-openapi/master/2020-09-14.yml
      version: "3.0"
  x-providerName: plaid.com
security:
  - clientId: []
    plaidVersion: []
    secret: []
tags:
  - description: The Plaid API
    name: plaid
paths:
  /accounts/balance/get:
    post:
      description: The `/accounts/balance/get` endpoint returns the real-time balance for each of an Item's accounts. While other endpoints may return a balance object, only `/accounts/balance/get` forces the available and current balance fields to be refreshed rather than cached. This endpoint can be used for existing Items that were added via any of Plaid’s other products. This endpoint can be used as long as Link has been initialized with any other product, `balance` itself is not a product that can be used to initialize Link. As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints; if you encounter errors, you may find it necessary to adjust your timeout period when making requests.
      externalDocs:
        url: /api/products/balance/#accountsbalanceget
      operationId: accountsBalanceGet
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  access_token: string
                  client_id: string
                  options:
                    account_ids:
                      - string
                  secret: string
            schema:
              $ref: "#/components/schemas/AccountsBalanceGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
                        balances:
                          available: 100
                          current: 110
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "0000"
                        name: Plaid Checking
                        official_name: Plaid Gold Standard 0% Interest Checking
                        persistent_account_id: 8cfb8beb89b774ee43b090625f0d61d0814322b43bff984eaf60386e
                        subtype: checking
                        type: depository
                      - account_id: dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK
                        balances:
                          available: null
                          current: 410
                          iso_currency_code: USD
                          limit: 2000
                          unofficial_currency_code: null
                        mask: "3333"
                        name: Plaid Credit Card
                        official_name: Plaid Diamond 12.5% APR Interest Credit Card
                        subtype: credit card
                        type: credit
                      - account_id: Pp1Vpkl9w8sajvK6oEEKtr7vZxBnGpf7LxxLE
                        balances:
                          available: null
                          current: 65262
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "7777"
                        name: Plaid Student Loan
                        official_name: null
                        subtype: student
                        type: loan
                    item:
                      available_products:
                        - balance
                        - identity
                        - investments
                      billed_products:
                        - assets
                        - auth
                        - liabilities
                        - transactions
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_3
                      item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: qk5Bxes3gDfv4F2
              schema:
                $ref: "#/components/schemas/AccountsGetResponse"
          description: OK
      summary: Retrieve real-time balance data
      tags:
        - plaid
  /accounts/get:
    post:
      description: |-
        The `/accounts/get` endpoint can be used to retrieve a list of accounts associated with any linked Item. Plaid will only return active bank accounts — that is, accounts that are not closed and are capable of carrying a balance.
        For items that went through the updated account selection pane, this endpoint only returns accounts that were permissioned by the user when they initially created the Item. If a user creates a new account after the initial link, you can capture this event through the [`NEW_ACCOUNTS_AVAILABLE`](https://plaid.com/docs/api/items/#new_accounts_available) webhook and then use Link's [update mode](https://plaid.com/docs/link/update-mode/) to request that the user share this new account with you.

        This endpoint retrieves cached information, rather than extracting fresh information from the institution. As a result, balances returned may not be up-to-date; for realtime balance information, use `/accounts/balance/get` instead. Note that some information is nullable.
      externalDocs:
        url: /api/accounts/#accountsget
      operationId: accountsGet
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  access_token: string
                  client_id: string
                  options:
                    account_ids:
                      - string
                  secret: string
            schema:
              $ref: "#/components/schemas/AccountsGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo
                        balances:
                          available: 100
                          current: 110
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "0000"
                        name: Plaid Checking
                        official_name: Plaid Gold Standard 0% Interest Checking
                        persistent_account_id: 8cfb8beb89b774ee43b090625f0d61d0814322b43bff984eaf60386e
                        subtype: checking
                        type: depository
                      - account_id: 6PdjjRP6LmugpBy5NgQvUqpRXMWxzktg3rwrk
                        balances:
                          available: null
                          current: 23631.9805
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "6666"
                        name: Plaid 401k
                        official_name: null
                        subtype: 401k
                        type: investment
                      - account_id: XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58
                        balances:
                          available: null
                          current: 65262
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "7777"
                        name: Plaid Student Loan
                        official_name: null
                        subtype: student
                        type: loan
                    item:
                      available_products:
                        - balance
                        - identity
                        - payment_initiation
                        - transactions
                      billed_products:
                        - assets
                        - auth
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_117650
                      item_id: DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: bkVE1BHWMAZ9Rnr
              schema:
                $ref: "#/components/schemas/AccountsGetResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Retrieve accounts
      tags:
        - plaid
  /application/get:
    post:
      description: Allows financial institutions to retrieve information about Plaid clients for the purpose of building control-tower experiences
      operationId: applicationGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ApplicationGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApplicationGetResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Retrieve information about a Plaid application
      tags:
        - plaid
  /asset_report/audit_copy/create:
    post:
      description: |-
        Plaid can provide an Audit Copy of any Asset Report directly to a participating third party on your behalf. For example, Plaid can supply an Audit Copy directly to Fannie Mae on your behalf if you participate in the Day 1 Certainty™ program. An Audit Copy contains the same underlying data as the Asset Report.

        To grant access to an Audit Copy, use the `/asset_report/audit_copy/create` endpoint to create an `audit_copy_token` and then pass that token to the third party who needs access. Each third party has its own `auditor_id`, for example `fannie_mae`. You’ll need to create a separate Audit Copy for each third party to whom you want to grant access to the Report.
      externalDocs:
        url: /api/products/assets/#asset_reportaudit_copycreate
      operationId: assetReportAuditCopyCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportAuditCopyCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    audit_copy_token: a-sandbox-3TAU2CWVYBDVRHUCAAAI27ULU4
                    request_id: Iam3b
              schema:
                $ref: "#/components/schemas/AssetReportAuditCopyCreateResponse"
          description: OK
      summary: Create Asset Report Audit Copy
      tags:
        - plaid
  /asset_report/audit_copy/get:
    post:
      description: "`/asset_report/audit_copy/get` allows auditors to get a copy of an Asset Report that was previously shared via the `/asset_report/audit_copy/create` endpoint.  The caller of `/asset_report/audit_copy/create` must provide the `audit_copy_token` to the auditor.  This token can then be used to call `/asset_report/audit_copy/create`."
      externalDocs:
        url: /none/
      operationId: assetReportAuditCopyGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportAuditCopyGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssetReportGetResponse"
          description: OK
      summary: Retrieve an Asset Report Audit Copy
      tags:
        - plaid
  /asset_report/audit_copy/remove:
    post:
      description: The `/asset_report/audit_copy/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Asset Report, the Asset Report itself and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
      externalDocs:
        url: /api/products/assets/#asset_reportaudit_copyremove
      operationId: assetReportAuditCopyRemove
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportAuditCopyRemoveRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    removed: true
                    request_id: m8MDnv9okwxFNBV
              schema:
                $ref: "#/components/schemas/AssetReportAuditCopyRemoveResponse"
          description: OK
      summary: Remove Asset Report Audit Copy
      tags:
        - plaid
  /asset_report/create:
    post:
      description: |-
        The `/asset_report/create` endpoint initiates the process of creating an Asset Report, which can then be retrieved by passing the `asset_report_token` return value to the `/asset_report/get` or `/asset_report/pdf/get` endpoints.

        The Asset Report takes some time to be created and is not available immediately after calling `/asset_report/create`. When the Asset Report is ready to be retrieved using `/asset_report/get` or `/asset_report/pdf/get`, Plaid will fire a `PRODUCT_READY` webhook. For full details of the webhook schema, see [Asset Report webhooks](https://plaid.com/docs/api/products/assets/#webhooks).

        The `/asset_report/create` endpoint creates an Asset Report at a moment in time. Asset Reports are immutable. To get an updated Asset Report, use the `/asset_report/refresh` endpoint.
      externalDocs:
        url: /api/products/assets/#asset_reportcreate
      operationId: assetReportCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    asset_report_id: 1f414183-220c-44f5-b0c8-bc0e6d4053bb
                    asset_report_token: assets-sandbox-6f12f5bb-22dd-4855-b918-f47ec439198a
                    request_id: Iam3b
              schema:
                $ref: "#/components/schemas/AssetReportCreateResponse"
          description: OK
      summary: Create an Asset Report
      tags:
        - plaid
  /asset_report/filter:
    post:
      description: |-
        By default, an Asset Report will contain all of the accounts on a given Item. In some cases, you may not want the Asset Report to contain all accounts. For example, you might have the end user choose which accounts are relevant in Link using the Account Select view, which you can enable in the dashboard. Or, you might always exclude certain account types or subtypes, which you can identify by using the `/accounts/get` endpoint. To narrow an Asset Report to only a subset of accounts, use the `/asset_report/filter` endpoint.

        To exclude certain Accounts from an Asset Report, first use the `/asset_report/create` endpoint to create the report, then send the `asset_report_token` along with a list of `account_ids` to exclude to the `/asset_report/filter` endpoint, to create a new Asset Report which contains only a subset of the original Asset Report's data.

        Because Asset Reports are immutable, calling `/asset_report/filter` does not alter the original Asset Report in any way; rather, `/asset_report/filter` creates a new Asset Report with a new token and id. Asset Reports created via `/asset_report/filter` do not contain new Asset data, and are not billed.

        Plaid will fire a [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook once generation of the filtered Asset Report has completed.
      externalDocs:
        url: /api/products/assets/#asset_reportfilter
      operationId: assetReportFilter
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportFilterRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    asset_report_id: fdc09207-0cef-4d88-b5eb-0d970758ebd9
                    asset_report_token: assets-sandbox-bc410c6a-4653-4c75-985c-e757c3497c5c
                    request_id: qEg07
              schema:
                $ref: "#/components/schemas/AssetReportFilterResponse"
          description: OK
      summary: Filter Asset Report
      tags:
        - plaid
  /asset_report/get:
    post:
      description: |-
        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.

        If report_type was set to `VERIFICATION_OF_EMPLOYMENT` when the Asset Report was created in asset_report/create, debit transactions and transaction amounts won’t be included in the report.

        To retrieve an Asset Report with Insights, call the `/asset_report/get` endpoint with `include_insights` set to `true`.
      externalDocs:
        url: /api/products/assets/#asset_reportget
      operationId: assetReportGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    report:
                      asset_report_id: 028e8404-a013-4a45-ac9e-002482f9cafc
                      client_report_id: client_report_id_1221
                      date_generated: 2023-03-30T18:27:37Z
                      days_requested: 5
                      items:
                        - accounts:
                            - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8
                              balances:
                                available: 43200
                                current: 43200
                                iso_currency_code: USD
                                unofficial_currency_code: null
                              days_available: 5
                              historical_balances:
                                - current: 49050
                                  date: 2023-03-29
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: 49050
                                  date: 2023-03-28
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: 49050
                                  date: 2023-03-27
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: 49050
                                  date: 2023-03-26
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: 49050
                                  date: 2023-03-25
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                              mask: "4444"
                              name: Plaid Money Market
                              official_name: Plaid Platinum Standard 1.85% Interest Money Market
                              owners:
                                - addresses:
                                    - data:
                                        city: Malakoff
                                        postal_code: "14236"
                                        region: NY
                                        street: 2992 Cameron Road
                                      primary: true
                                    - data:
                                        city: San Matias
                                        postal_code: 93405-2255
                                        region: CA
                                        street: 2493 Leisure Lane
                                      primary: false
                                  emails:
                                    - data: accountholder0@example.com
                                      primary: true
                                      type: primary
                                    - data: accountholder1@example.com
                                      primary: false
                                      type: secondary
                                    - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                                      primary: false
                                      type: other
                                  names:
                                    - Alberta Bobbeth Charleson
                                  phone_numbers:
                                    - data: "1112223333"
                                      primary: false
                                      type: home
                                    - data: "1112224444"
                                      primary: false
                                      type: work
                                    - data: "1112225555"
                                      primary: false
                                      type: mobile
                              ownership_type: null
                              subtype: money market
                              transactions:
                                - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8
                                  amount: 5850
                                  date: 2023-03-30
                                  iso_currency_code: USD
                                  original_description: ACH Electronic CreditGUSTO PAY 123456
                                  pending: false
                                  transaction_id: gGQgjoeyqBF89PND6K14Sow1wddZBmtLomJ78
                                  unofficial_currency_code: null
                              type: depository
                            - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
                              balances:
                                available: 100
                                current: 110
                                iso_currency_code: USD
                                unofficial_currency_code: null
                              days_available: 5
                              historical_balances:
                                - current: 110
                                  date: 2023-03-29
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: -390
                                  date: 2023-03-28
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: -373.67
                                  date: 2023-03-27
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: -284.27
                                  date: 2023-03-26
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: -284.27
                                  date: 2023-03-25
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                              mask: "0000"
                              name: Plaid Checking
                              official_name: Plaid Gold Standard 0% Interest Checking
                              owners:
                                - addresses:
                                    - data:
                                        city: Malakoff
                                        postal_code: "14236"
                                        region: NY
                                        street: 2992 Cameron Road
                                      primary: true
                                    - data:
                                        city: San Matias
                                        postal_code: 93405-2255
                                        region: CA
                                        street: 2493 Leisure Lane
                                      primary: false
                                  emails:
                                    - data: accountholder0@example.com
                                      primary: true
                                      type: primary
                                    - data: accountholder1@example.com
                                      primary: false
                                      type: secondary
                                    - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                                      primary: false
                                      type: other
                                  names:
                                    - Alberta Bobbeth Charleson
                                  phone_numbers:
                                    - data: "1112223333"
                                      primary: false
                                      type: home
                                    - data: "1112224444"
                                      primary: false
                                      type: work
                                    - data: "1112225555"
                                      primary: false
                                      type: mobile
                              ownership_type: null
                              subtype: checking
                              transactions:
                                - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
                                  amount: 89.4
                                  date: 2023-03-27
                                  iso_currency_code: USD
                                  original_description: SparkFun
                                  pending: false
                                  transaction_id: 4zBRq1Qem4uAPnoyKjJNTRQpQddM4ztlo1PLD
                                  unofficial_currency_code: null
                                - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
                                  amount: 12
                                  date: 2023-03-28
                                  iso_currency_code: USD
                                  original_description: "McDonalds #3322"
                                  pending: false
                                  transaction_id: dkjL41PnbKsPral79jpxhMWdW55gkPfBkWpRL
                                  unofficial_currency_code: null
                                - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
                                  amount: 4.33
                                  date: 2023-03-28
                                  iso_currency_code: USD
                                  original_description: Starbucks
                                  pending: false
                                  transaction_id: a84ZxQaWDAtDL3dRgmazT57K7jjN3WFkNWMDy
                                  unofficial_currency_code: null
                                - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
                                  amount: -500
                                  date: 2023-03-29
                                  iso_currency_code: USD
                                  original_description: United Airlines **** REFUND ****
                                  pending: false
                                  transaction_id: xG9jbv3eMoFWepzB7wQLT3LoLggX5Duy1Gbe5
                                  unofficial_currency_code: null
                              type: depository
                          date_last_updated: 2023-03-30T18:25:26Z
                          institution_id: ins_109508
                          institution_name: First Platypus Bank
                          item_id: AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7
                      user:
                        client_user_id: uid_40332
                        email: abcharleston@example.com
                        first_name: Anna
                        last_name: Charleston
                        middle_name: B
                        phone_number: 1-415-867-5309
                        ssn: 111-22-1234
                    request_id: GVzMdiDd8DDAQK4
                    warnings: []
              schema:
                $ref: "#/components/schemas/AssetReportGetResponse"
          description: OK
      summary: Retrieve an Asset Report
      tags:
        - plaid
  /asset_report/pdf/get:
    post:
      description: |-
        The `/asset_report/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/asset_report/pdf/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.

        The response to `/asset_report/pdf/get` is the PDF binary data. The `request_id`  is returned in the `Plaid-Request-ID` header.

        If report_type was set to `VERIFICATION_OF_EMPLOYMENT` when the Asset Report was created in asset_report/create, debit transactions and transaction amounts won’t be included in the report.

        [View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).
      externalDocs:
        url: /api/products/assets/#asset_reportpdfget
      operationId: assetReportPdfGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportPDFGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/pdf:
              schema:
                $ref: "#/components/schemas/AssetReportPDFGetResponse"
          description: A PDF of the Asset Report
      summary: Retrieve a PDF Asset Report
      tags:
        - plaid
  /asset_report/refresh:
    post:
      description: |-
        An Asset Report is an immutable snapshot of a user's assets. In order to "refresh" an Asset Report you created previously, you can use the `/asset_report/refresh` endpoint to create a new Asset Report based on the old one, but with the most recent data available.

        The new Asset Report will contain the same Items as the original Report, as well as the same filters applied by any call to `/asset_report/filter`. By default, the new Asset Report will also use the same parameters you submitted with your original `/asset_report/create` request, but the original `days_requested` value and the values of any parameters in the `options` object can be overridden with new values. To change these arguments, simply supply new values for them in your request to `/asset_report/refresh`. Submit an empty string ("") for any previously-populated fields you would like set as empty.
      externalDocs:
        url: /api/products/assets/#asset_reportrefresh
      operationId: assetReportRefresh
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportRefreshRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    asset_report_id: c33ebe8b-6a63-4d74-a83d-d39791231ac0
                    asset_report_token: assets-sandbox-8218d5f8-6d6d-403d-92f5-13a9afaa4398
                    request_id: NBZaq
              schema:
                $ref: "#/components/schemas/AssetReportRefreshResponse"
          description: OK
      summary: Refresh an Asset Report
      tags:
        - plaid
  /asset_report/remove:
    post:
      description: |-
        The `/item/remove` endpoint allows you to invalidate an `access_token`, meaning you will not be able to create new Asset Reports with it. Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove them specifically.

        The `/asset_report/remove` endpoint allows you to remove an Asset Report. Removing an Asset Report invalidates its `asset_report_token`, meaning you will no longer be able to use it to access Report data or create new Audit Copies. Removing an Asset Report does not affect the underlying Items, but does invalidate any `audit_copy_tokens` associated with the Asset Report.
      externalDocs:
        url: /api/products/assets/#asset_reportremove
      operationId: assetReportRemove
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportRemoveRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    removed: true
                    request_id: I6zHN
              schema:
                $ref: "#/components/schemas/AssetReportRemoveResponse"
          description: OK
      summary: Delete an Asset Report
      tags:
        - plaid
  /auth/get:
    post:
      description: |-
        The `/auth/get` endpoint returns the bank account and bank identification numbers (such as routing numbers, for US accounts) associated with an Item's checking and savings accounts, along with high-level account data and balances when available.

        Note: This request may take some time to complete if `auth` was not specified as an initial product when creating the Item. This is because Plaid must communicate directly with the institution to retrieve the data.

        Versioning note: In API version 2017-03-08, the schema of the `numbers` object returned by this endpoint is substantially different. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2018-05-22).
      externalDocs:
        url: /api/products/auth/#authget
      operationId: authGet
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/AuthGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                        balances:
                          available: 100
                          current: 110
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "9606"
                        name: Plaid Checking
                        official_name: Plaid Gold Checking
                        subtype: checking
                        type: depository
                    item:
                      available_products:
                        - balance
                        - identity
                        - payment_initiation
                        - transactions
                      billed_products:
                        - assets
                        - auth
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_117650
                      item_id: DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    numbers:
                      ach:
                        - account: "9900009606"
                          account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                          routing: "011401533"
                          wire_routing: "021000021"
                      bacs:
                        - account: "31926819"
                          account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                          sort_code: "601613"
                      eft:
                        - account: "111122223333"
                          account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                          branch: "01140"
                          institution: "021"
                      international:
                        - account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                          bic: NWBKGB21
                          iban: GB29NWBK60161331926819
                    request_id: m8MDnv9okwxFNBV
              schema:
                $ref: "#/components/schemas/AuthGetResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Default error
      summary: Retrieve auth data
      tags:
        - plaid
  /bank_transfer/balance/get:
    post:
      description: |-
        Use the `/bank_transfer/balance/get` endpoint to see the available balance in your bank transfer account. Debit transfers increase this balance once their status is posted. Credit transfers decrease this balance when they are created.

        The transactable balance shows the amount in your account that you are able to use for transfers, and is essentially your available balance minus your minimum balance.

        Note that this endpoint can only be used with FBO accounts, when using Bank Transfers in the Full Service configuration. It cannot be used on your own account when using Bank Transfers in the BTS Platform configuration.
      externalDocs:
        url: /bank-transfers/reference#bank_transferbalanceget
      operationId: bankTransferBalanceGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BankTransferBalanceGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    balance:
                      available: "1721.70"
                      transactable: "721.70"
                    origination_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/BankTransferBalanceGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get balance of your Bank Transfer account
      tags:
        - plaid
  /bank_transfer/cancel:
    post:
      description: Use the `/bank_transfer/cancel` endpoint to cancel a bank transfer.  A transfer is eligible for cancelation if the `cancellable` property returned by `/bank_transfer/get` is `true`.
      externalDocs:
        url: /bank-transfers/reference#bank_transfercancel
      operationId: bankTransferCancel
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BankTransferCancelRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/BankTransferCancelResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Cancel a bank transfer
      tags:
        - plaid
  /bank_transfer/create:
    post:
      description: Use the `/bank_transfer/create` endpoint to initiate a new bank transfer.
      externalDocs:
        url: /bank-transfers/reference#bank_transfercreate
      operationId: bankTransferCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BankTransferCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    bank_transfer:
                      account_id: 6qL6lWoQkAfNE3mB8Kk5tAnvpX81qefrvvl7B
                      ach_class: ppd
                      amount: "12.34"
                      cancellable: true
                      created: 2020-08-06T17:27:15Z
                      custom_tag: my tag
                      description: Testing2
                      direction: outbound
                      failure_reason: null
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      iso_currency_code: USD
                      metadata:
                        key1: value1
                        key2: value2
                      network: ach
                      origination_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      status: pending
                      type: credit
                      user:
                        email_address: plaid@plaid.com
                        legal_name: John Smith
                        routing_number: "111111111"
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/BankTransferCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create a bank transfer
      tags:
        - plaid
  /bank_transfer/event/list:
    post:
      description: Use the `/bank_transfer/event/list` endpoint to get a list of Plaid-initiated ACH or bank transfer events based on specified filter criteria. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://plaid.com/docs/auth/coverage/microdeposit-events/).
      externalDocs:
        url: /api/products/auth#bank_transfereventlist
      operationId: bankTransferEventList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BankTransferEventListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    bank_transfer_events:
                      - account_id: 6qL6lWoQkAfNE3mB8Kk5tAnvpX81qefrvvl7B
                        bank_transfer_amount: "12.34"
                        bank_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                        bank_transfer_iso_currency_code: USD
                        bank_transfer_type: credit
                        direction: outbound
                        event_id: 1
                        event_type: pending
                        failure_reason: null
                        origination_account_id: ""
                        timestamp: 2020-08-06T17:27:15Z
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/BankTransferEventListResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: List bank transfer events
      tags:
        - plaid
  /bank_transfer/event/sync:
    post:
      description: "`/bank_transfer/event/sync` allows you to request up to the next 25 Plaid-initiated bank transfer events that happened after a specific `event_id`. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://www.plaid.com/docs/auth/coverage/microdeposit-events/)."
      externalDocs:
        url: /api/products/auth/#bank_transfereventsync
      operationId: bankTransferEventSync
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BankTransferEventSyncRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    bank_transfer_events:
                      - account_id: 6qL6lWoQkAfNE3mB8Kk5tAnvpX81qefrvvl7B
                        bank_transfer_amount: "12.34"
                        bank_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                        bank_transfer_iso_currency_code: USD
                        bank_transfer_type: credit
                        direction: outbound
                        event_id: 1
                        event_type: pending
                        failure_reason: null
                        origination_account_id: ""
                        timestamp: 2020-08-06T17:27:15Z
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/BankTransferEventSyncResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Sync bank transfer events
      tags:
        - plaid
  /bank_transfer/get:
    post:
      description: The `/bank_transfer/get` fetches information about the bank transfer corresponding to the given `bank_transfer_id`.
      externalDocs:
        url: /bank-transfers/reference#bank_transferget
      operationId: bankTransferGet
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/BankTransferGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    bank_transfer:
                      account_id: 6qL6lWoQkAfNE3mB8Kk5tAnvpX81qefrvvl7B
                      ach_class: ppd
                      amount: "12.34"
                      cancellable: true
                      created: 2020-08-06T17:27:15Z
                      custom_tag: my tag
                      description: Testing2
                      direction: outbound
                      failure_reason:
                        ach_return_code: R13
                        description: Invalid ACH routing number
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      iso_currency_code: USD
                      metadata:
                        key1: value1
                        key2: value2
                      network: ach
                      origination_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      status: pending
                      type: credit
                      user:
                        email_address: plaid@plaid.com
                        legal_name: John Smith
                        routing_number: "111111111"
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/BankTransferGetResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Retrieve a bank transfer
      tags:
        - plaid
  /bank_transfer/list:
    post:
      description: |
        Use the `/bank_transfer/list` endpoint to see a list of all your bank transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired bank transfers.
      externalDocs:
        url: /bank-transfers/reference#bank_transferlist
      operationId: bankTransferList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BankTransferListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    bank_transfers:
                      - account_id: 6qL6lWoQkAfNE3mB8Kk5tAnvpX81qefrvvl7B
                        ach_class: ppd
                        amount: "12.34"
                        cancellable: true
                        created: 2020-08-06T17:27:15Z
                        custom_tag: my tag
                        description: Testing2
                        direction: outbound
                        failure_reason:
                          ach_return_code: R13
                          description: Invalid ACH routing number
                        id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                        iso_currency_code: USD
                        metadata:
                          key1: value1
                          key2: value2
                        network: ach
                        origination_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                        originator_client_id: 569ed2f36b3a3a021713abc1
                        status: pending
                        type: credit
                        user:
                          email_address: plaid@plaid.com
                          legal_name: John Smith
                          routing_number: "111111111"
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/BankTransferListResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: List bank transfers
      tags:
        - plaid
  /bank_transfer/migrate_account:
    post:
      description: As an alternative to adding Items via Link, you can also use the `/bank_transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items.  Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Bank Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/bank_transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
      externalDocs:
        url: /bank-transfers/reference#bank_transfermigrate_account
      operationId: bankTransferMigrateAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BankTransferMigrateAccountRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    access_token: access-sandbox-435beced-94e8-4df3-a181-1dde1cfa19f0
                    account_id: zvyDgbeeDluZ43AJP6m5fAxDlgoZXDuoy5gjN
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/BankTransferMigrateAccountResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Migrate account into Bank Transfers
      tags:
        - plaid
  /bank_transfer/sweep/get:
    post:
      description: The `/bank_transfer/sweep/get` endpoint fetches information about the sweep corresponding to the given `sweep_id`.
      externalDocs:
        url: /api/products/transfer/#bank_transfersweepget
      operationId: bankTransferSweepGet
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/BankTransferSweepGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
                    sweep:
                      amount: "12.34"
                      created_at: 2020-08-06T17:27:15Z
                      id: d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d
                      iso_currency_code: USD
              schema:
                $ref: "#/components/schemas/BankTransferSweepGetResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Retrieve a sweep
      tags:
        - plaid
  /bank_transfer/sweep/list:
    post:
      description: The `/bank_transfer/sweep/list` endpoint fetches information about the sweeps matching the given filters.
      externalDocs:
        url: /api/products/transfer/#bank_transfersweeplist
      operationId: bankTransferSweepList
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/BankTransferSweepListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
                    sweeps:
                      - amount: "12.34"
                        created_at: 2020-08-06T17:27:15Z
                        id: d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d
                        iso_currency_code: USD
              schema:
                $ref: "#/components/schemas/BankTransferSweepListResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: List sweeps
      tags:
        - plaid
  /beta/credit/v1/bank_employment/get:
    post:
      description: "`/credit/bank_employment/get` returns the employment report(s) derived from bank transaction data for a specified user."
      externalDocs:
        url: /api/products/income/#creditbank_employmentget
      operationId: creditBankEmploymentGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditBankEmploymentGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    bank_employment_reports:
                      - bank_employment_report_id: 0a7eaed6-5da7-4846-baaf-ad787306575e
                        days_requested: 90
                        generated_time: 2023-01-23T22:47:53Z
                        items:
                          - bank_employment_accounts:
                              - account_id: GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9
                                mask: "8888"
                                name: Plaid Checking Account
                                official_name: Plaid Checking Account
                                owners:
                                  - addresses:
                                      - data:
                                          city: Malakoff
                                          country: US
                                          postal_code: "14236"
                                          region: NY
                                          street: 2992 Cameron Road
                                        primary: true
                                      - data:
                                          city: San Matias
                                          country: US
                                          postal_code: 93405-2255
                                          region: CA
                                          street: 2493 Leisure Lane
                                        primary: false
                                    emails:
                                      - data: accountholder0@example.com
                                        primary: true
                                        type: primary
                                      - data: accountholder1@example.com
                                        primary: false
                                        type: secondary
                                      - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                                        primary: false
                                        type: other
                                    names:
                                      - Alberta Bobbeth Charleson
                                    phone_numbers:
                                      - data: "1112223333"
                                        primary: false
                                        type: home
                                      - data: "1112224444"
                                        primary: false
                                        type: work
                                      - data: "1112225555"
                                        primary: false
                                        type: mobile
                                subtype: checking
                                type: depository
                            bank_employments:
                              - account_id: GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9
                                bank_employment_id: f17efbdd-caab-4278-8ece-963511cd3d51
                                earliest_deposit_date: 2022-01-15
                                employer:
                                  name: Plaid Inc.
                                latest_deposit_date: 2023-01-15
                            institution_id: ins_0
                            institution_name: Plaid Bank
                            item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                            last_updated_time: 2023-01-23T22:47:53Z
                        warnings: []
                    request_id: LhQf0THi8SH1yJm
              schema:
                $ref: "#/components/schemas/CreditBankEmploymentGetResponse"
          description: OK
      summary: Retrieve information from the bank accounts used for employment verification
      tags:
        - plaid
    x-hidden-from-docs: true
  /beta/transactions/rules/v1/create:
    post:
      description: |-
        The `/transactions/rules/v1/create` endpoint creates transaction categorization rules.

        Rules will be applied on the Item's transactions returned in `/transactions/get` response.

        The product is currently in beta. To request access, contact transactions-feedback@plaid.com.
      operationId: transactionsRulesCreate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  access_token: access-sandbox-71e02f71-0960-4a27-abd2-5631e04f2175
                  client_id: 7f57eb3d2a9j6480121fx361
                  personal_finance_category: FOOD_AND_DRINK_FAST_FOOD
                  rule_details:
                    field: NAME
                    query: Burger Shack
                    type: SUBSTRING_MATCH
                  secret: 79g03eoofwl8240v776r2h667442119
            schema:
              $ref: "#/components/schemas/TransactionsRulesCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 4zlKapIkTm8p5KM
                    rule:
                      created_at: 2022-02-28T11:00:00Z
                      id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNo
                      item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
                      personal_finance_category: FOOD_AND_DRINK_FAST_FOOD
                      rule_details:
                        field: NAME
                        query: Burger Shack
                        type: SUBSTRING_MATCH
              schema:
                $ref: "#/components/schemas/TransactionsRulesCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create transaction category rule
      tags:
        - plaid
  /beta/transactions/rules/v1/list:
    post:
      description: The `/transactions/rules/v1/list` returns a list of transaction rules created for the Item associated with the access token.
      operationId: transactionsRulesList
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  access_token: access-sandbox-71e02f71-0960-4a27-abd2-5631e04f2175
                  client_id: 7f57eb3d2a9j6480121fx361
                  secret: 79g03eoofwl8240v776r2h667442119
            schema:
              $ref: "#/components/schemas/TransactionsRulesListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 4zlKapIkTm8p5KM
                    rules:
                      - created_at: 2022-02-28T11:00:00Z
                        id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNo
                        item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
                        personal_finance_category: FOOD_AND_DRINK_FAST_FOOD
                        rule_details:
                          field: NAME
                          query: Burger Shack
                          type: SUBSTRING_MATCH
                      - created_at: 2022-02-27T14:50:00Z
                        id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBF
                        item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
                        personal_finance_category: TRANSFER_IN_ACCOUNT_TRANSFER
                        rule_details:
                          field: TRANSACTION_ID
                          query: kgygNvAVPzSX9KkddNdWHaVGRVex1MHm3k9no
                          type: EXACT_MATCH
              schema:
                $ref: "#/components/schemas/TransactionsRulesListResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Return a list of rules created for the Item associated with the access token.
      tags:
        - plaid
  /beta/transactions/rules/v1/remove:
    post:
      description: The `/transactions/rules/v1/remove` endpoint is used to remove a transaction rule.
      operationId: transactionsRulesRemove
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  access_token: access-sandbox-71e02f71-0960-4a27-abd2-5631e04f2175
                  client_id: 7f57eb3d2a9j6480121fx361
                  rule_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBF
                  secret: 79g03eoofwl8240v776r2h667442119
            schema:
              $ref: "#/components/schemas/TransactionsRulesRemoveRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/TransactionsRulesRemoveResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Remove transaction rule
      tags:
        - plaid
  /beta/transactions/v1/enhance:
    post:
      description: |-
        The `/beta/transactions/v1/enhance` endpoint enriches raw transaction data provided directly by clients.

        The product is currently in beta.
      operationId: transactionsEnhance
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransactionsEnhanceGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    enhanced_transactions:
                      - amount: 2307.21
                        description: Debit purchase Apple 1235
                        enhancements:
                          category:
                            - Shops
                            - Computers and Electronics
                          category_id: "19013000"
                          check_number: null
                          counterparties:
                            - logo_url: https://plaid-merchant-logos.plaid.com/apple_63.png
                              name: Apple
                              type: merchant
                              website: apple.com
                          location:
                            address: 300 Post St
                            city: San Francisco
                            country: US
                            lat: 40.740352
                            lon: -74.001761
                            postal_code: "94108"
                            region: CA
                            store_number: "1235"
                          logo_url: https://plaid-merchant-logos.plaid.com/apple_63.png
                          merchant_name: Apple
                          payment_channel: in store
                          personal_finance_category:
                            detailed: ELECTRONICS
                            primary: GENERAL_MERCHANDISE
                          personal_finance_category_icon_url: https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png
                          website: apple.com
                        id: 6135818adda16500147e7c1d
                        iso_currency_code: USD
              schema:
                $ref: "#/components/schemas/TransactionsEnhanceGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: enhance locally-held transaction data
      tags:
        - plaid
  /categories/get:
    post:
      description: Send a request to the `/categories/get` endpoint to get detailed information on categories returned by Plaid. This endpoint does not require authentication.
      externalDocs:
        url: /api/products/transactions/#categoriesget
      operationId: categoriesGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CategoriesGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    categories:
                      - category_id: "10000000"
                        group: special
                        hierarchy:
                          - Bank Fees
                      - category_id: "10001000"
                        group: special
                        hierarchy:
                          - Bank Fees
                          - Overdraft
                      - category_id: "12001000"
                        group: place
                        hierarchy:
                          - Community
                          - Animal Shelter
                    request_id: ixTBLZGvhD4NnmB
              schema:
                $ref: "#/components/schemas/CategoriesGetResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      security: []
      summary: Get Categories
      tags:
        - plaid
  /credit/asset_report/freddie_mac/get:
    post:
      description: The `credit/asset_report/freddie_mac/get` endpoint retrieves the Asset Report in Freddie Mac's JSON format.
      externalDocs:
        url: /none/
      operationId: creditAssetReportFreddieMacGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetReportFreddieGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    DEAL:
                      LOANS:
                        LOAN:
                          LOAN_IDENTIFIERS:
                            LOAN_IDENTIFIER:
                              LoanIdentifier: "100016746"
                              LoanIdentifierType: LenderLoan
                      PARTIES:
                        PARTY:
                          - INDIVIDUAL:
                              NAME:
                                FirstName: John
                                LastName: Deere
                            ROLES:
                              ROLE:
                                ROLE_DETAIL:
                                  PartyRoleType: Borrower
                            TAXPAYER_IDENTIFIERS:
                              TAXPAYER_IDENTIFIER:
                                TaxpayerIdentifierType: SocialSecurityNumber
                                TaxpayerIdentifierValue: 123-45-6789
                      SERVICES:
                        SERVICE:
                          STATUSES:
                            STATUS:
                              StatusCode: success
                              StatusDescription: null
                          VERIFICATION_OF_ASSET:
                            REPORTING_INFORMATION:
                              ReportingInformationIdentifier: a-prod-kol4xb5y4nf2zecqalb2d55mze
                            SERVICE_PRODUCT_FULFILLMENT:
                              SERVICE_PRODUCT_FULFILLMENT_DETAIL:
                                ServiceProductFulfillmentIdentifier: VOA
                                VendorOrderIdentifier: PLAD
                            VERIFICATION_OF_ASSET_RESPONSE:
                              ASSETS:
                                ASSET:
                                  - ASSET_DETAIL:
                                      AssetAccountIdentifier: "3847"
                                      AssetAsOfDate: 2022-07-27
                                      AssetAvailableBalanceAmount: 2073.99
                                      AssetCurrentBalanceAmount: 2007.09
                                      AssetDaysRequestedCount: 61
                                      AssetDescription: Unlimited Cash Rewards Visa Signature
                                      AssetOwnershipType: null
                                      AssetType: Other
                                      AssetTypeAdditionalDescription: credit card
                                      AssetUniqueIdentifier: c251a55e-c503-471b-a3b1-11a9243bc189
                                    ASSET_HOLDER:
                                      NAME:
                                        FullName: Wells Fargo
                                    ASSET_OWNERS:
                                      ASSET_OWNER:
                                        - AssetOwnerText: Alberta Bobbeth Charleson
                                    ASSET_TRANSACTIONS:
                                      ASSET_TRANSACTION:
                                        - ASSET_TRANSACTION_DESCRIPTON:
                                            - AssetTransactionDescription: TONYS PIZZA NAPOLETANA SAN FRANCISCOCA
                                          ASSET_TRANSACTION_DETAIL:
                                            AssetTransactionAmount: 34.43
                                            AssetTransactionCategoryType: FoodDining
                                            AssetTransactionDate: 2022-07-19
                                            AssetTransactionPaidByName: null
                                            AssetTransactionPostDate: 2022-07-19
                                            AssetTransactionType: Debit
                                            AssetTransactionTypeAdditionalDescription: null
                                            AssetTransactionUniqueIdentifier: 7jagxo9Eq6cXPKM8eMNJUgeeNnbgQdSDw6zgN
                                            FinancialInstitutionTransactionIdentifier: null
                                    VALIDATION_SOURCES:
                                      VALIDATION_SOURCE:
                                        - ValidationSourceName: ""
                                          ValidationSourceReferenceIdentifier: ""
                    SchemaVersion: 1
                    request_id: eYupqX1mZkEuQRx
              schema:
                $ref: "#/components/schemas/AssetReportFreddieGetResponse"
          description: OK
      summary: Retrieve an Asset Report with Freddie Mac format. Only Freddie Mac can use this endpoint.
      tags:
        - plaid
  /credit/audit_copy_token/create:
    post:
      description: |-
        Plaid can create an Audit Copy token of an Asset Report and/or Income Report to share with participating Government Sponsored Entity (GSE). If you participate in the Day 1 Certainty™ program, Plaid can supply an Audit Copy token directly to Fannie Mae on your behalf. An Audit Copy token contains the same underlying data as the Asset Report and/or Income Report (result of /credit/payroll_income/get).

        Use the `/credit/audit_copy_token/create` endpoint to create an `audit_copy_token` and then pass that token to the GSE who needs access.
      externalDocs:
        url: /api/products/income/#creditaudit_copy_tokencreate
      operationId: creditAuditCopyTokenCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditAuditCopyTokenCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    audit_copy_token: a-production-3tau2cwvybdvrhucaaai27ulu4
                    request_id: Iam3b
              schema:
                $ref: "#/components/schemas/CreditAuditCopyTokenCreateResponse"
          description: OK
      summary: Create Asset or Income Report Audit Copy Token
      tags:
        - plaid
  /credit/audit_copy_token/remove:
    post:
      description: The `/credit/audit_copy_token/remove` endpoint allows you to remove an Audit Copy. Removing an Audit Copy invalidates the `audit_copy_token` associated with it, meaning both you and any third parties holding the token will no longer be able to use it to access Report data. Items associated with the Report data and other Audit Copies of it are not affected and will remain accessible after removing the given Audit Copy.
      externalDocs:
        url: /api/products/income/#creditaudit_copy_tokenremove
      operationId: creditReportAuditCopyRemove
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditAuditCopyTokenRemoveRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    removed: true
                    request_id: m8MDnv9okwxFNBV
              schema:
                $ref: "#/components/schemas/CreditAuditCopyTokenRemoveResponse"
          description: OK
      summary: Remove an Audit Copy token
      tags:
        - plaid
  /credit/audit_copy_token/update:
    post:
      description: The `/credit/audit_copy_token/update` endpoint updates an existing  Audit Copy Token by adding the report tokens in the `report_tokens` field to the `audit_copy_token`. If the Audit Copy Token already contains a report of a certain type, it will be replaced with the token provided in the `report_tokens` field.
      externalDocs:
        url: /none/
      operationId: creditAuditCopyTokenUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditAuditCopyTokenUpdateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: eYupqX1mZkEuQRx
                    updated: true
              schema:
                $ref: "#/components/schemas/CreditAuditCopyTokenUpdateResponse"
          description: OK
      summary: Update an Audit Copy Token
      tags:
        - plaid
  /credit/bank_income/get:
    post:
      description: "`/credit/bank_income/get` returns the bank income report(s) for a specified user."
      externalDocs:
        url: /api/products/income/#creditbank_incomeget
      operationId: creditBankIncomeGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditBankIncomeGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    bank_income:
                      - bank_income_id: abc123
                        bank_income_summary:
                          end_date: 2022-01-15
                          historical_summary:
                            - end_date: 2021-11-30
                              iso_currency_code: USD
                              start_date: 2021-11-02
                              total_amount: 100
                              total_amounts:
                                - amount: 100
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                              transactions:
                                - amount: -100
                                  check_number: null
                                  date: 2021-11-15
                                  iso_currency_code: USD
                                  name: “PLAID_INC_DIRECT_DEP_PPD”
                                  original_description: PLAID_INC_DIRECT_DEP_PPD 123
                                  pending: false
                                  transaction_id: 6RddrWNwE1uM63Ex5GKLhzlBl76aAZfgzlQNm
                                  unofficial_currency_code: null
                              unofficial_currency_code: null
                            - end_date: 2021-12-31
                              iso_currency_code: USD
                              start_date: 2021-12-01
                              total_amount: 100
                              total_amounts:
                                - amount: 100
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                              transactions:
                                - amount: -100
                                  check_number: null
                                  date: 2021-12-15
                                  iso_currency_code: USD
                                  name: “PLAID_INC_DIRECT_DEP_PPD”
                                  original_description: PLAID_INC_DIRECT_DEP_PPD 123
                                  pending: false
                                  transaction_id: 7BddrWNwE1uM63Ex5GKLhzlBl82aAZfgzlCBl
                                  unofficial_currency_code: null
                              unofficial_currency_code: null
                            - end_date: 2021-01-31
                              iso_currency_code: USD
                              start_date: 2022-01-01
                              total_amount: 100
                              total_amounts:
                                - amount: 100
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                              transactions:
                                - amount: -100
                                  check_number: null
                                  date: 2022-01-31
                                  iso_currency_code: USD
                                  name: “PLAID_INC_DIRECT_DEP_PPD”
                                  original_description: PLAID_INC_DIRECT_DEP_PPD 123
                                  pending: false
                                  transaction_id: 9FddrWNwE1uM95Ex5GKLhzlBl76aAZfgzlNQr
                                  unofficial_currency_code: null
                              unofficial_currency_code: null
                          income_categories_count: 1
                          income_sources_count: 1
                          income_transactions_count: 1
                          iso_currency_code: USD
                          start_date: 2021-11-15
                          total_amount: 300
                          total_amounts:
                            - amount: 300
                              iso_currency_code: USD
                              unofficial_currency_code: null
                          unofficial_currency_code: null
                        days_requested: 90
                        generated_time: 2022-01-31T22:47:53Z
                        items:
                          - bank_income_accounts:
                              - account_id: “GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9”
                                mask: "8888"
                                name: Plaid Checking Account
                                official_name: Plaid Checking Account
                                owners:
                                  - addresses:
                                      - data:
                                          city: Malakoff
                                          country: US
                                          postal_code: "14236"
                                          region: NY
                                          street: 2992 Cameron Road
                                        primary: true
                                      - data:
                                          city: San Matias
                                          country: US
                                          postal_code: 93405-2255
                                          region: CA
                                          street: 2493 Leisure Lane
                                        primary: false
                                    emails:
                                      - data: accountholder0@example.com
                                        primary: true
                                        type: primary
                                      - data: accountholder1@example.com
                                        primary: false
                                        type: secondary
                                      - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                                        primary: false
                                        type: other
                                    names:
                                      - Alberta Bobbeth Charleson
                                    phone_numbers:
                                      - data: "1112223333"
                                        primary: false
                                        type: home
                                      - data: "1112224444"
                                        primary: false
                                        type: work
                                      - data: "1112225555"
                                        primary: false
                                        type: mobile
                                subtype: checking
                                type: depository
                            bank_income_sources:
                              - account_id: GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9
                                end_date: 2022-01-15
                                historical_summary:
                                  - end_date: 2021-11-30
                                    iso_currency_code: USD
                                    start_date: 2021-11-02
                                    total_amount: 100
                                    total_amounts:
                                      - amount: 100
                                        iso_currency_code: USD
                                        unofficial_currency_code: null
                                    transactions:
                                      - amount: -100
                                        check_number: null
                                        date: 2021-11-15
                                        iso_currency_code: USD
                                        name: “PLAID_INC_DIRECT_DEP_PPD”
                                        original_description: PLAID_INC_DIRECT_DEP_PPD 123
                                        pending: false
                                        transaction_id: 6RddrWNwE1uM63Ex5GKLhzlBl76aAZfgzlQNm
                                        unofficial_currency_code: null
                                    unofficial_currency_code: null
                                  - end_date: 2021-12-31
                                    iso_currency_code: USD
                                    start_date: 2021-12-01
                                    total_amount: 100
                                    total_amounts:
                                      - amount: 100
                                        iso_currency_code: USD
                                        unofficial_currency_code: null
                                    transactions:
                                      - amount: -100
                                        check_number: null
                                        date: 2021-12-15
                                        iso_currency_code: USD
                                        name: “PLAID_INC_DIRECT_DEP_PPD”
                                        original_description: PLAID_INC_DIRECT_DEP_PPD 123
                                        pending: false
                                        transaction_id: 7BddrWNwE1uM63Ex5GKLhzlBl82aAZfgzlCBl
                                        unofficial_currency_code: null
                                    unofficial_currency_code: null
                                  - end_date: 2021-01-31
                                    iso_currency_code: USD
                                    start_date: 2022-01-01
                                    total_amount: 100
                                    total_amounts:
                                      - amount: 100
                                        iso_currency_code: USD
                                        unofficial_currency_code: null
                                    transactions:
                                      - amount: -100
                                        check_number: null
                                        date: 2022-01-31
                                        iso_currency_code: USD
                                        name: “PLAID_INC_DIRECT_DEP_PPD”
                                        original_description: PLAID_INC_DIRECT_DEP_PPD 123
                                        pending: false
                                        transaction_id: 9FddrWNwE1uM95Ex5GKLhzlBl76aAZfgzlNQr
                                        unofficial_currency_code: null
                                    unofficial_currency_code: null
                                income_category: SALARY
                                income_description: “PLAID_INC_DIRECT_DEP_PPD”
                                income_source_id: “f17efbdd-caab-4278-8ece-963511cd3d51”
                                pay_frequency: MONTHLY
                                start_date: 2021-11-15
                                total_amount: 300
                                transaction_count: 1
                            institution_id: ins_0
                            institution_name: Plaid Bank
                            item_id: “eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6”
                            last_updated_time: 2022-01-31T22:47:53Z
                        warnings: []
                    request_id: LhQf0THi8SH1yJm
              schema:
                $ref: "#/components/schemas/CreditBankIncomeGetResponse"
          description: OK
      summary: Retrieve information from the bank accounts used for income verification
      tags:
        - plaid
  /credit/bank_income/pdf/get:
    post:
      description: "`/credit/bank_income/pdf/get` returns the most recent bank income report for a specified user in PDF format."
      externalDocs:
        url: /api/products/income/#creditbank_incomepdfget
      operationId: creditBankIncomePdfGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditBankIncomePDFGetRequest"
        required: true
      responses:
        "200":
          content:
            application/pdf:
              schema:
                $ref: "#/components/schemas/CreditBankIncomePDFGetResponse"
          description: A PDF of the Bank Income Report
      summary: Retrieve information from the bank accounts used for income verification in PDF format
      tags:
        - plaid
  /credit/bank_income/refresh:
    post:
      description: "`/credit/bank_income/refresh` refreshes the bank income report data for a specific user."
      externalDocs:
        url: /api/products/income/#creditbank_incomerefresh
      operationId: creditBankIncomeRefresh
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditBankIncomeRefreshRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: LhQf0THi8SH1yJm
              schema:
                $ref: "#/components/schemas/CreditBankIncomeRefreshResponse"
          description: OK
      summary: Refresh a user's bank income information
      tags:
        - plaid
  /credit/employment/get:
    post:
      description: "`/credit/employment/get` returns a list of items with employment information from a user's payroll provider that was verified by an end user."
      externalDocs:
        url: /api/products/income/#creditemploymentget
      operationId: creditEmploymentGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditEmploymentGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    items:
                      - employments:
                          - account_id: GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9
                            employee_type: FULL_TIME
                            employer:
                              name: Plaid Inc
                            end_date: null
                            last_paystub_date: 2022-01-15
                            platform_ids:
                              employee_id: "1234567"
                              payroll_id: "1234567"
                              position_id: "8888"
                            start_date: 2020-01-01
                            status: ACTIVE
                            title: Software Engineer
                        item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                    request_id: LhQf0THi8SH1yJm
              schema:
                $ref: "#/components/schemas/CreditEmploymentGetResponse"
          description: OK
      summary: Retrieve a summary of an individual's employment information
      tags:
        - plaid
  /credit/freddie_mac/reports/get:
    post:
      description: The `credit/asset_report/freddie_mac/get` endpoint retrieves the Verification of Assets and Verification of Employment reports.
      externalDocs:
        url: /none/
      operationId: creditFreddieMacReportsGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditFreddieMacReportsGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    VOA:
                      DEAL:
                        LOANS:
                          LOAN:
                            LOAN_IDENTIFIERS:
                              LOAN_IDENTIFIER:
                                - LoanIdentifier: "100016746"
                                  LoanIdentifierType: LenderLoan
                            LoanRoleType: SubjectLoan
                        PARTIES:
                          PARTY:
                            - INDIVIDUAL:
                                NAME:
                                  FirstName: John
                                  LastName: Deere
                                  MiddleName: S
                              ROLES:
                                ROLE:
                                  ROLE_DETAIL:
                                    PartyRoleType: Borrower
                              TAXPAYER_IDENTIFIERS:
                                TAXPAYER_IDENTIFIER:
                                  TaxpayerIdentifierType: SocialSecurityNumber
                                  TaxpayerIdentifierValue: 123-45-6789
                        SERVICES:
                          SERVICE:
                            STATUSES:
                              STATUS:
                                StatusCode: success
                                StatusDescription: null
                            VERIFICATION_OF_ASSET:
                              - REPORTING_INFORMATION:
                                  ReportDateTime: ""
                                  ReportIdentifierType: ReportID
                                  ReportingInformationIdentifier: a-prod-kol4xb5y4nf2zecqalb2d55mze
                                SERVICE_PRODUCT_FULFILLMENT:
                                  SERVICE_PRODUCT_FULFILLMENT_DETAIL:
                                    ServiceProductFulfillmentIdentifier: VOA
                                    VendorOrderIdentifier: PLAD
                                VERIFICATION_OF_ASSET_RESPONSE:
                                  ASSETS:
                                    ASSET:
                                      - ASSET_DETAIL:
                                          AssetAccountIdentifier: "3847"
                                          AssetAsOfDate: 2022-07-27
                                          AssetAvailableBalanceAmount: 2073.99
                                          AssetCurrentBalanceAmount: 2007.09
                                          AssetDaysRequestedCount: 61
                                          AssetDescription: Unlimited Cash Rewards Visa Signature
                                          AssetOwnershipType: null
                                          AssetType: Other
                                          AssetTypeAdditionalDescription: credit card
                                          AssetUniqueIdentifier: c251a55e-c503-471b-a3b1-11a9243bc189
                                        ASSET_HOLDER:
                                          NAME:
                                            FullName: Wells Fargo
                                        ASSET_OWNERS:
                                          ASSET_OWNER:
                                            - AssetOwnerText: Alberta Bobbeth Charleson
                                        ASSET_TRANSACTIONS:
                                          ASSET_TRANSACTION:
                                            - ASSET_TRANSACTION_DESCRIPTION:
                                                - AssetTransactionDescription: TONYS PIZZA NAPOLETANA SAN FRANCISCOCA
                                              ASSET_TRANSACTION_DETAIL:
                                                AssetTransactionAmount: 34.43
                                                AssetTransactionCategoryType: FoodDining
                                                AssetTransactionDate: 2022-07-19
                                                AssetTransactionPaidByName: null
                                                AssetTransactionPostDate: 2022-07-19
                                                AssetTransactionType: Debit
                                                AssetTransactionTypeAdditionalDescription: null
                                                AssetTransactionUniqueIdentifier: 7jagxo9Eq6cXPKM8eMNJUgeeNnbgQdSDw6zgN
                                                FinancialInstitutionTransactionIdentifier: null
                                        VALIDATION_SOURCES:
                                          VALIDATION_SOURCE:
                                            - ValidationSourceName: ""
                                              ValidationSourceReferenceIdentifier: ""
                      SchemaVersion: 2.4
                    VOE:
                      DEAL:
                        LOANS:
                          LOAN:
                            LOAN_IDENTIFIERS:
                              LOAN_IDENTIFIER:
                                - LoanIdentifier: "100016746"
                                  LoanIdentifierType: LenderLoan
                            LoanRoleType: SubjectLoan
                        PARTIES:
                          PARTY:
                            - INDIVIDUAL:
                                NAME:
                                  FirstName: John
                                  LastName: Freddie
                                  MiddleName: S
                              ROLES:
                                ROLE:
                                  ROLE_DETAIL:
                                    PartyRoleType: Borrower
                              TAXPAYER_IDENTIFIERS:
                                TAXPAYER_IDENTIFIER:
                                  TaxpayerIdentifierType: SocialSecurityNumber
                                  TaxpayerIdentifierValue: 123-45-6789
                        SERVICES:
                          SERVICE:
                            STATUSES:
                              STATUS:
                                StatusCode: success
                                StatusDescription: null
                            VERIFICATION_OF_ASSET:
                              - REPORTING_INFORMATION:
                                  ReportDateTime: ""
                                  ReportIdentifierType": ReportID
                                  ReportingInformationIdentifier: a-prod-kol4xb5y4nf2zecqalb2d55mze
                                SERVICE_PRODUCT_FULFILLMENT:
                                  SERVICE_PRODUCT_FULFILLMENT_DETAIL:
                                    ServiceProductFulfillmentIdentifier: VOETRANSACTIONS
                                    VendorOrderIdentifier: PLAD
                                VERIFICATION_OF_ASSET_RESPONSE:
                                  ASSETS:
                                    ASSET:
                                      - ASSET_DETAIL:
                                          AssetAccountIdentifier: "3847"
                                          AssetAsOfDate: 2022-07-27
                                          AssetDaysRequestedCount: 61
                                          AssetDescription: Unlimited Cash Rewards Visa Signature
                                          AssetOwnershipType: null
                                          AssetType: Other
                                          AssetTypeAdditionalDescription: credit card
                                          AssetUniqueIdentifier: c251a55e-c503-471b-a3b1-11a9243bc189
                                        ASSET_HOLDER:
                                          NAME:
                                            FullName: Wells Fargo
                                        ASSET_OWNERS:
                                          ASSET_OWNER:
                                            - AssetOwnerText: Alberta Bobbeth Charleson
                                        ASSET_TRANSACTIONS:
                                          ASSET_TRANSACTION:
                                            - ASSET_TRANSACTION_DESCRIPTION:
                                                - AssetTransactionDescription: TONYS PIZZA NAPOLETANA SAN FRANCISCOCA
                                              ASSET_TRANSACTION_DETAIL:
                                                AssetTransactionCategoryType: FoodDining
                                                AssetTransactionDate: 2022-07-19
                                                AssetTransactionPaidByName: null
                                                AssetTransactionPaidToName: null
                                                AssetTransactionPostDate: 2022-07-19
                                                AssetTransactionType: Debit
                                                AssetTransactionTypeAdditionalDescription: null
                                                AssetTransactionUniqueIdentifier: 7jagxo9Eq6cXPKM8eMNJUgeeNnbgQdSDw6zgN
                                                FinancialInstitutionTransactionIdentifier: null
                      SchemaVersion: 2.5
                    request_id: eYupqX1mZkEuQRx
              schema:
                $ref: "#/components/schemas/CreditFreddieMacReportsGetResponse"
          description: OK
      summary: Retrieve an Asset Report with Freddie Mac format (aka VOA - Verification Of Assets), and a Verification Of Employment (VOE) report if this one is available. Only Freddie Mac can use this endpoint.
      tags:
        - plaid
  /credit/payroll_income/get:
    post:
      description: This endpoint gets payroll income information for a specific user, either as a result of the user connecting to their payroll provider or uploading a pay related document.
      externalDocs:
        url: /api/products/income/#creditpayroll_incomeget
      operationId: creditPayrollIncomeGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditPayrollIncomeGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    items:
                      - accounts:
                          - account_id: GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9
                            pay_frequency: BIWEEKLY
                            rate_of_pay:
                              pay_amount: 100000
                              pay_rate: ANNUAL
                        institution_id: ins_92
                        institution_name: ADP
                        item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                        payroll_income:
                          - account_id: GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9
                            form1099s:
                              - april_amount: null
                                august_amount: null
                                card_not_present_transaction: null
                                crop_insurance_proceeds: 1000
                                december_amount: null
                                document_id: mvMZ59Z2a5
                                document_metadata:
                                  document_type: US_TAX_1099_MISC
                                  download_url: null
                                  name: form_1099_misc.pdf
                                  status: PROCESSING_COMPLETE
                                excess_golden_parachute_payments: 1000
                                feburary_amount: null
                                federal_income_tax_withheld: 1000
                                filer:
                                  address:
                                    city: null
                                    country: null
                                    postal_code: null
                                    region: null
                                    street: null
                                  name: null
                                  tin: null
                                  type: null
                                fishing_boat_proceeds: 1000
                                form_1099_type: FORM_1099_TYPE_MISC
                                gross_amount: 1000
                                gross_proceeds_paid_to_an_attorney: 1000
                                january_amount: null
                                july_amount: null
                                june_amount: null
                                march_amount: null
                                may_amount: null
                                medical_and_healthcare_payments: 1000
                                merchant_category_code: null
                                nonemployee_compensation: 1000
                                november_amount: null
                                number_of_payment_transactions: null
                                october_amount: null
                                other_income: 1000
                                payer:
                                  address:
                                    city: SAN FRANCISCO
                                    country: US
                                    postal_code: "94111"
                                    region: CA
                                    street: 1098 HARRISON ST
                                  name: PLAID INC
                                  telephone_number: (123)456-7890
                                  tin: 12-3456789
                                payer_made_direct_sales_of_500_or_more_of_consumer_products_to_buyer: null
                                payer_state_number: CA 12345
                                payer_state_number_lower: null
                                primary_state: null
                                primary_state_id: CA 12345
                                primary_state_income_tax: 1000
                                pse_name: null
                                pse_telephone_number: null
                                recipient:
                                  account_number: "45678"
                                  address:
                                    city: SAN FRANCISCO
                                    country: US
                                    postal_code: "94133"
                                    region: CA
                                    street: 2140 TAYLOR ST
                                  facta_filing_requirement: CHECKED
                                  name: Josie Georgia Harrison
                                  second_tin_exists: NOT CHECKED
                                  tin: 12-3456789
                                rents: 1000
                                royalties: 1000
                                secondary_state: null
                                secondary_state_id: null
                                secondary_state_income_tax: null
                                section_409a_deferrals: 1000
                                section_409a_income: 1000
                                september_amount: null
                                state_income: 1000
                                state_income_lower: null
                                state_tax_withheld: 1000
                                state_tax_withheld_lower: null
                                substitute_payments_in_lieu_of_dividends_or_interest: null
                                tax_year: "2022"
                                transactions_reported: null
                            pay_stubs:
                              - deductions:
                                  breakdown:
                                    - current_amount: 123.45
                                      description: taxes
                                      iso_currency_code: USD
                                      unofficial_currency_code: null
                                      ytd_amount: 246.9
                                  total:
                                    current_amount: 123.45
                                    iso_currency_code: USD
                                    unofficial_currency_code: null
                                    ytd_amount: 246.9
                                document_id: 2jkflanbd
                                document_metadata:
                                  document_type: PAYSTUB
                                  download_url: null
                                  name: paystub.pdf
                                  status: PROCESSING_COMPLETE
                                earnings:
                                  breakdown:
                                    - canonical_description: REGULAR_PAY
                                      current_amount: 200.22
                                      description: salary earned
                                      hours: 80
                                      iso_currency_code: USD
                                      rate: null
                                      unofficial_currency_code: null
                                      ytd_amount: 400.44
                                    - canonical_description: BONUS
                                      current_amount: 100
                                      description: bonus earned
                                      hours: null
                                      iso_currency_code: USD
                                      rate: null
                                      unofficial_currency_code: null
                                      ytd_amount: 100
                                  total:
                                    current_amount: 300.22
                                    hours: 160
                                    iso_currency_code: USD
                                    unofficial_currency_code: null
                                    ytd_amount: 500.44
                                employee:
                                  address:
                                    city: SAN FRANCISCO
                                    country: US
                                    postal_code: "94133"
                                    region: CA
                                    street: 2140 TAYLOR ST
                                  marital_status: SINGLE
                                  name: ANNA CHARLESTON
                                  taxpayer_id:
                                    id_mask: "3333"
                                    id_type: SSN
                                employer:
                                  address:
                                    city: SAN FRANCISCO
                                    country: US
                                    postal_code: "94111"
                                    region: CA
                                    street: 1098 HARRISON ST
                                  name: PLAID INC
                                net_pay:
                                  current_amount: 123.34
                                  description: TOTAL NET PAY
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                  ytd_amount: 253.54
                                pay_period_details:
                                  distribution_breakdown:
                                    - account_name: Big time checking
                                      bank_name: bank of plaid
                                      current_amount: 176.77
                                      iso_currency_code: USD
                                      mask: "1223"
                                      type: checking
                                      unofficial_currency_code: null
                                  end_date: 2020-12-15
                                  gross_earnings: 4500
                                  iso_currency_code: USD
                                  pay_amount: 1490.21
                                  pay_date: 2020-12-15
                                  pay_frequency: BIWEEKLY
                                  start_date: 2020-12-01
                                  unofficial_currency_code: null
                            w2s:
                              - allocated_tips: "1000"
                                box_12:
                                  - amount: "200"
                                    code: AA
                                box_9: box9
                                dependent_care_benefits: "1000"
                                document_id: 1pkflebk4
                                document_metadata:
                                  document_type: US_TAX_W2
                                  download_url: null
                                  name: w_2.pdf
                                  status: PROCESSING_COMPLETE
                                employee:
                                  address:
                                    city: San Francisco
                                    country: US
                                    postal_code: "94103"
                                    region: CA
                                    street: 1234 Grand St
                                  marital_status: SINGLE
                                  name: Josie Georgia Harrison
                                  taxpayer_id:
                                    id_mask: "1234"
                                    id_type: SSN
                                employer:
                                  address:
                                    city: New York
                                    country: US
                                    postal_code: "10010"
                                    region: NY
                                    street: 456 Main St
                                  name: Acme Inc
                                employer_id_number: 12-1234567
                                federal_income_tax_withheld: "1000"
                                medicare_tax_withheld: "1000"
                                medicare_wages_and_tips: "1000"
                                nonqualified_plans: "1000"
                                other: other
                                retirement_plan: CHECKED
                                social_security_tax_withheld: "1000"
                                social_security_tips: "1000"
                                social_security_wages: "1000"
                                state_and_local_wages:
                                  - employer_state_id_number: 11111111111AAA
                                    local_income_tax: "200"
                                    local_wages_and_tips: "200"
                                    locality_name: local
                                    state: UT
                                    state_income_tax: "200"
                                    state_wages_tips: "200"
                                statutory_employee: CHECKED
                                tax_year: "2020"
                                third_party_sick_pay: CHECKED
                                wages_tips_other_comp: "1000"
                        status:
                          processing_status: PROCESSING_COMPLETE
                        updated_at: 2022-08-02T21:14:54Z
                    request_id: 2pxQ59buGdsHRef
              schema:
                $ref: "#/components/schemas/CreditPayrollIncomeGetResponse"
          description: OK
      summary: Retrieve a user's payroll information
      tags:
        - plaid
  /credit/payroll_income/precheck:
    post:
      description: |-
        `/credit/payroll_income/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification. If the user is eligible for digital verification, that information will be associated with the user token, and in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.

        While all request fields are optional, providing `employer` data will increase the chance of receiving a useful result.

        When testing in Sandbox, you can control the results by providing special test values in the `employer` and `access_tokens` fields. `employer_good` and `employer_bad` will result in `HIGH` and `LOW` confidence values, respectively. `employer_multi` will result in a `HIGH` confidence with multiple payroll options. Likewise, `access_good` and `access_bad` will result in `HIGH` and `LOW` confidence values, respectively. Any other value for `employer` and `access_tokens` in Sandbox will result in `UNKNOWN` confidence.
      externalDocs:
        url: /api/products/income/#creditpayroll_incomeprecheck
      operationId: creditPayrollIncomePrecheck
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditPayrollIncomePrecheckRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    confidence: HIGH
                    request_id: lMjeOeu9X1VUh1F
              schema:
                $ref: "#/components/schemas/CreditPayrollIncomePrecheckResponse"
          description: OK
      summary: Check income verification eligibility and optimize conversion
      tags:
        - plaid
  /credit/payroll_income/refresh:
    post:
      description: "`/credit/payroll_income/refresh` refreshes a given digital payroll income verification."
      externalDocs:
        url: /api/products/income/#creditpayroll_incomerefresh
      operationId: creditPayrollIncomeRefresh
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditPayrollIncomeRefreshRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: nTkbCH41HYmpbm5
                    verification_refresh_status: USER_PRESENCE_REQUIRED
              schema:
                $ref: "#/components/schemas/CreditPayrollIncomeRefreshResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Refresh a digital payroll income verification
      tags:
        - plaid
  /credit/relay/create:
    post:
      description: |-
        Plaid can share an Asset Report directly with a participating third party on your behalf. The shared Asset Report is the exact same Asset Report originally created in `/asset_report/create`.

        To grant a third party access to an Asset Report, use the `/credit/relay/create` endpoint to create a `relay_token` and then pass that token to your third party. Each third party has its own `secondary_client_id`; for example, `ce5bd328dcd34123456`. You'll need to create a separate `relay_token` for each third party that needs access to the report on your behalf.
      externalDocs:
        url: /api/products/assets/#creditrelaycreate
      operationId: creditRelayCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditRelayCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    relay_token: credit-relay-production-3TAU2CWVYBDVRHUCAAAI27ULU4
                    request_id: Iam3b
              schema:
                $ref: "#/components/schemas/CreditRelayCreateResponse"
          description: OK
      summary: Create a relay token to share an Asset Report with a partner client (beta)
      tags:
        - plaid
  /credit/relay/get:
    post:
      description: "`/credit/relay/get` allows third parties to receive a report that was shared with them, using a `relay_token` that was created by the report owner."
      externalDocs:
        url: /api/products/assets/#creditrelayget
      operationId: creditRelayGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditRelayGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    report:
                      asset_report_id: bf3a0490-344c-4620-a219-2693162e4b1d
                      client_report_id: 123abc
                      date_generated: 2020-06-05T22:47:53Z
                      days_requested: 3
                      items:
                        - accounts:
                            - account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                              balances:
                                available: 200
                                current: 210
                                iso_currency_code: USD
                                limit: null
                                unofficial_currency_code: null
                              days_available: 3
                              historical_balances:
                                - current: 210
                                  date: 2020-06-04
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: 210
                                  date: 2020-06-03
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: 210
                                  date: 2020-06-02
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                              mask: "1111"
                              name: Plaid Saving
                              official_name: Plaid Silver Standard 0.1% Interest Saving
                              owners:
                                - addresses:
                                    - data:
                                        city: Malakoff
                                        country: US
                                        postal_code: "14236"
                                        region: NY
                                        street: 2992 Cameron Road
                                      primary: true
                                    - data:
                                        city: San Matias
                                        country: US
                                        postal_code: 93405-2255
                                        region: CA
                                        street: 2493 Leisure Lane
                                      primary: false
                                  emails:
                                    - data: accountholder0@example.com
                                      primary: true
                                      type: primary
                                    - data: accountholder1@example.com
                                      primary: false
                                      type: secondary
                                    - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                                      primary: false
                                      type: other
                                  names:
                                    - Alberta Bobbeth Charleson
                                  phone_numbers:
                                    - data: "1112223333"
                                      primary: false
                                      type: home
                                    - data: "1112224444"
                                      primary: false
                                      type: work
                                    - data: "1112225555"
                                      primary: false
                                      type: mobile
                              ownership_type: null
                              subtype: savings
                              transactions: []
                              type: depository
                            - account_id: BxBXxLj1m4HMXBm9WZJyUg9XLd4rKEhw8Pb1J
                              balances:
                                available: null
                                current: 56302.06
                                iso_currency_code: USD
                                limit: null
                                unofficial_currency_code: null
                              days_available: 3
                              historical_balances: []
                              mask: "8888"
                              name: Plaid Mortgage
                              official_name: null
                              owners:
                                - addresses:
                                    - data:
                                        city: Malakoff
                                        country: US
                                        postal_code: "14236"
                                        region: NY
                                        street: 2992 Cameron Road
                                      primary: true
                                    - data:
                                        city: San Matias
                                        country: US
                                        postal_code: 93405-2255
                                        region: CA
                                        street: 2493 Leisure Lane
                                      primary: false
                                  emails:
                                    - data: accountholder0@example.com
                                      primary: true
                                      type: primary
                                    - data: accountholder1@example.com
                                      primary: false
                                      type: secondary
                                    - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                                      primary: false
                                      type: other
                                  names:
                                    - Alberta Bobbeth Charleson
                                  phone_numbers:
                                    - data: "1112223333"
                                      primary: false
                                      type: home
                                    - data: "1112224444"
                                      primary: false
                                      type: work
                                    - data: "1112225555"
                                      primary: false
                                      type: mobile
                              ownership_type: null
                              subtype: mortgage
                              transactions: []
                              type: loan
                            - account_id: dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK
                              balances:
                                available: null
                                current: 410
                                iso_currency_code: USD
                                limit: null
                                unofficial_currency_code: null
                              days_available: 3
                              historical_balances:
                                - current: 410
                                  date: 2020-06-04
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: 410
                                  date: 2020-06-03
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                                - current: 410
                                  date: 2020-06-02
                                  iso_currency_code: USD
                                  unofficial_currency_code: null
                              mask: "3333"
                              name: Plaid Credit Card
                              official_name: Plaid Diamond 12.5% APR Interest Credit Card
                              owners:
                                - addresses:
                                    - data:
                                        city: Malakoff
                                        country: US
                                        postal_code: "14236"
                                        region: NY
                                        street: 2992 Cameron Road
                                      primary: true
                                    - data:
                                        city: San Matias
                                        country: US
                                        postal_code: 93405-2255
                                        region: CA
                                        street: 2493 Leisure Lane
                                      primary: false
                                  emails:
                                    - data: accountholder0@example.com
                                      primary: true
                                      type: primary
                                    - data: accountholder1@example.com
                                      primary: false
                                      type: secondary
                                    - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                                      primary: false
                                      type: other
                                  names:
                                    - Alberta Bobbeth Charleson
                                  phone_numbers:
                                    - data: "1112223333"
                                      primary: false
                                      type: home
                                    - data: "1112224444"
                                      primary: false
                                      type: work
                                    - data: "1112225555"
                                      primary: false
                                      type: mobile
                              ownership_type: null
                              subtype: credit card
                              transactions: []
                              type: credit
                          date_last_updated: 2020-06-05T22:47:52Z
                          institution_id: ins_3
                          institution_name: Chase
                          item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                      user:
                        client_user_id: "123456789"
                        email: accountholder0@example.com
                        first_name: Alberta
                        last_name: Charleson
                        middle_name: Bobbeth
                        phone_number: 111-222-3333
                        ssn: 123-45-6789
                    request_id: eYupqX1mZkEuQRx
                    warnings: []
              schema:
                $ref: "#/components/schemas/AssetReportGetResponse"
          description: OK
      summary: Retrieve the reports associated with a relay token that was shared with you (beta)
      tags:
        - plaid
  /credit/relay/refresh:
    post:
      description: The `/credit/relay/refresh` endpoint allows third parties to refresh a report that was relayed to them, using a `relay_token` that was created by the report owner. A new report will be created with the original report parameters, but with the most recent data available based on the `days_requested` value of the original report.
      externalDocs:
        url: /api/products/assets/#creditrelayrefresh
      operationId: creditRelayRefresh
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditRelayRefreshRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    asset_report_id: bf3a0490-344c-4620-a219-2693162e4b1d
                    relay_token: credit-relay-sandbox-8218d5f8-6d6d-403d-92f5-13a9afaa4398
                    request_id: NBZaq
              schema:
                $ref: "#/components/schemas/CreditRelayRefreshResponse"
          description: OK
      summary: Refresh a report of a relay token (beta)
      tags:
        - plaid
  /credit/relay/remove:
    post:
      description: The `/credit/relay/remove` endpoint allows you to invalidate a `relay_token`. The third party holding the token will no longer be able to access or refresh the reports which the `relay_token` gives access to. The original report, associated Items, and other relay tokens that provide access to the same report are not affected and will remain accessible after removing the given `relay_token`.
      externalDocs:
        url: /api/products/assets/#creditrelayremove
      operationId: creditRelayRemove
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditRelayRemoveRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    removed: true
                    request_id: m8MDnv9okwxFNBV
              schema:
                $ref: "#/components/schemas/CreditRelayRemoveResponse"
          description: OK
      summary: Remove relay token (beta)
      tags:
        - plaid
  /credit/sessions/get:
    post:
      description: |-
        This endpoint can be used for your end users after they complete the Link flow. This endpoint returns a list of Link sessions that your user completed, where each session includes the results from the Link flow.

        These results include details about the Item that was created and some product related metadata (showing, for example, whether the user finished the bank income verification step).
      externalDocs:
        url: /api/products/income/#creditsessionsget
      operationId: creditSessionsGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreditSessionsGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: Aim3b
                    sessions:
                      - link_session_id: 356dbb28-7f98-44d1-8e6d-0cec580f3171
                        results:
                          bank_income_results:
                            - institution_id: ins_56
                              item_id: M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op
                              status: APPROVED
                          item_add_results:
                            - institution_id: ins_56
                              item_id: M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op
                              public_token: public-sandbox-5c224a01-8314-4491-a06f-39e193d5cddc
                        session_start_time: 2022-09-30T23:40:30.946225Z
                      - link_session_id: f742cae8-31e4-49cc-a621-6cafbdb26fb9
                        results:
                          payroll_income_results:
                            - institution_id: ins_92
                              num_paystubs_retrieved: 2
                              num_w2s_retrieved: 1
                        session_start_time: 2022-09-26T23:40:30.946225Z
              schema:
                $ref: "#/components/schemas/CreditSessionsGetResponse"
          description: OK
      summary: Retrieve Link sessions for your user
      tags:
        - plaid
  /dashboard_user/get:
    post:
      description: Retrieve information about a dashboard user.
      externalDocs:
        url: /api/products/monitor/#dashboard_userget
      operationId: dashboardUserGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DashboardUserGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    created_at: 2020-07-24T03:26:02Z
                    email_address: user@example.com
                    id: 54350110fedcbaf01234ffee
                    request_id: saKrIBuEB9qJZng
                    status: active
              schema:
                $ref: "#/components/schemas/DashboardUserGetResponse"
          description: OK
      summary: Retrieve a dashboard user
      tags:
        - plaid
  /dashboard_user/list:
    post:
      description: List all dashboard users associated with your account.
      externalDocs:
        url: /api/products/monitor/#dashboard_userlist
      operationId: dashboardUserList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DashboardUserListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    dashboard_users:
                      - created_at: 2020-07-24T03:26:02Z
                        email_address: user@example.com
                        id: 54350110fedcbaf01234ffee
                        status: active
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/DashboardUserListResponse"
          description: OK
      summary: List dashboard users
      tags:
        - plaid
  /deposit_switch/alt/create:
    post:
      description: This endpoint provides an alternative to `/deposit_switch/create` for customers who have not yet fully integrated with Plaid Exchange. Like `/deposit_switch/create`, it creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
      externalDocs:
        url: /deposit-switch/reference#deposit_switchaltcreate
      operationId: depositSwitchAltCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DepositSwitchAltCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    deposit_switch_id: c7jMwPPManIwy9rwMewWP7lpb4pKRbtrbMomp
                    request_id: lMjeOeu9X1VUh1F
              schema:
                $ref: "#/components/schemas/DepositSwitchAltCreateResponse"
          description: OK
      summary: Create a deposit switch without using Plaid Exchange
      tags:
        - plaid
  /deposit_switch/create:
    post:
      description: This endpoint creates a deposit switch entity that will be persisted throughout the lifecycle of the switch.
      externalDocs:
        url: /deposit-switch/reference#deposit_switchcreate
      operationId: depositSwitchCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DepositSwitchCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    deposit_switch_id: c7jMwPPManIwy9rwMewWP7lpb4pKRbtrbMomp
                    request_id: lMjeOeu9X1VUh1F
              schema:
                $ref: "#/components/schemas/DepositSwitchCreateResponse"
          description: OK
      summary: Create a deposit switch
      tags:
        - plaid
  /deposit_switch/get:
    parameters: []
    post:
      description: This endpoint returns information related to how the user has configured their payroll allocation and the state of the switch. You can use this information to build logic related to the user's direct deposit allocation preferences.
      externalDocs:
        url: /deposit-switch/reference#deposit_switchget
      operationId: depositSwitchGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DepositSwitchGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    account_has_multiple_allocations: true
                    amount_allocated: null
                    date_completed: 2019-11-01
                    date_created: 2019-11-01
                    deposit_switch_id: LjDyMfMkVpqLmEm1VR7bQikR3BX5hEMdRAkq1
                    employer_id: pqLmEm1VR7bQi11231
                    employer_name: COMPANY INC
                    institution_id: ins_1
                    institution_name: Bank of America
                    is_allocated_remainder: false
                    percent_allocated: 50
                    request_id: lMjeOeu9X1VUh1F
                    state: completed
                    switch_method: instant
                    target_account_id: bX5hEMdRAkq1QikR3BLjDyMfMkVpqLmEm1VR7
                    target_item_id: MdRAkq1QikR3BLjDyMfMkVpqLmEm1VR7bX5hE
              schema:
                $ref: "#/components/schemas/DepositSwitchGetResponse"
          description: OK
      summary: Retrieve a deposit switch
      tags:
        - plaid
  /deposit_switch/token/create:
    post:
      description: |
        In order for the end user to take action, you will need to create a public token representing the deposit switch. This token is used to initialize Link. It can be used one time and expires after 30 minutes.
      externalDocs:
        url: /deposit-switch/reference#deposit_switchtokencreate
      operationId: depositSwitchTokenCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DepositSwitchTokenCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    deposit_switch_token: deposit-switch-sandbox-3e5cacca-10a6-11ea-bcdb-6003089acac0
                    deposit_switch_token_expiration_time: 2019-12-31T12:01:37Z
                    request_id: 68MvHx4Ub5NYoXt
              schema:
                $ref: "#/components/schemas/DepositSwitchTokenCreateResponse"
          description: OK
      summary: Create a deposit switch token
      tags:
        - plaid
  /employers/search:
    post:
      description: |-
        `/employers/search` allows you the ability to search Plaid’s database of known employers, for use with Deposit Switch. You can use this endpoint to look up a user's employer in order to confirm that they are supported. Users with non-supported employers can then be routed out of the Deposit Switch flow.

        The data in the employer database is currently limited. As the Deposit Switch and Income products progress through their respective beta periods, more employers are being regularly added. Because the employer database is frequently updated, we recommend that you do not cache or store data from this endpoint for more than a day.
      externalDocs:
        url: /api/employers/#employerssearch
      operationId: employersSearch
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EmployersSearchRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    employers:
                      - address:
                          city: San Francisco
                          country: US
                          postal_code: "94103"
                          region: CA
                          street: 1098 Harrison St
                        confidence_score: 1
                        employer_id: emp_1
                        name: Plaid Inc.
                    request_id: ixTBLZGvhD4NnmB
              schema:
                $ref: "#/components/schemas/EmployersSearchResponse"
          description: OK
      summary: Search employer database
      tags:
        - plaid
  /employment/verification/get:
    post:
      deprecated: true
      description: |-
        `/employment/verification/get` returns a list of employments through a user payroll that was verified by an end user.

        This endpoint has been deprecated; new integrations should use `/credit/employment/get` instead.
      externalDocs:
        url: /api/products/income/#employmentverificationget
      operationId: employmentVerificationGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EmploymentVerificationGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    employments:
                      - employer:
                          name: Plaid Inc
                        end_date: null
                        platform_ids:
                          employee_id: "1234567"
                          payroll_id: "1234567"
                          position_id: "8888"
                        start_date: 2020-01-01
                        status: EMPLOYMENT_STATUS_ACTIVE
                        title: Software Engineer
                    request_id: LhQf0THi8SH1yJm
              schema:
                $ref: "#/components/schemas/EmploymentVerificationGetResponse"
          description: OK
      summary: (Deprecated) Retrieve a summary of an individual's employment information
      tags:
        - plaid
  /fdx/notifications:
    post:
      description: A generic webhook receiver endpoint for FDX Event Notifications
      externalDocs:
        url: /api/fdx/notifications/#post
      operationId: fdxNotifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FDXNotification"
        required: true
      responses:
        "200":
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Webhook receiver for fdx notifications
      tags:
        - plaid
      x-hidden-from-docs: true
  /identity/get:
    post:
      description: |-
        The `/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses. Only name data is guaranteed to be returned; other fields will be empty arrays if not provided by the institution.

        This request may take some time to complete if identity was not specified as an initial product when creating the Item. This is because Plaid must communicate directly with the institution to retrieve the data.

        Note: 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).
      externalDocs:
        url: /api/products/identity/#identityget
      operationId: identityGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IdentityGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
                        balances:
                          available: 100
                          current: 110
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "0000"
                        name: Plaid Checking
                        official_name: Plaid Gold Standard 0% Interest Checking
                        owners:
                          - addresses:
                              - data:
                                  city: Malakoff
                                  country: US
                                  postal_code: "14236"
                                  region: NY
                                  street: 2992 Cameron Road
                                primary: true
                              - data:
                                  city: San Matias
                                  country: US
                                  postal_code: 93405-2255
                                  region: CA
                                  street: 2493 Leisure Lane
                                primary: false
                            emails:
                              - data: accountholder0@example.com
                                primary: true
                                type: primary
                              - data: accountholder1@example.com
                                primary: false
                                type: secondary
                              - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                                primary: false
                                type: other
                            names:
                              - Alberta Bobbeth Charleson
                            phone_numbers:
                              - data: "1112223333"
                                primary: false
                                type: home
                              - data: "1112224444"
                                primary: false
                                type: work
                              - data: "1112225555"
                                primary: false
                                type: mobile
                        subtype: checking
                        type: depository
                      - account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                        balances:
                          available: 200
                          current: 210
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "1111"
                        name: Plaid Saving
                        official_name: Plaid Silver Standard 0.1% Interest Saving
                        owners:
                          - addresses:
                              - data:
                                  city: Malakoff
                                  country: US
                                  postal_code: "14236"
                                  region: NY
                                  street: 2992 Cameron Road
                                primary: true
                              - data:
                                  city: San Matias
                                  country: US
                                  postal_code: 93405-2255
                                  region: CA
                                  street: 2493 Leisure Lane
                                primary: false
                            emails:
                              - data: accountholder0@example.com
                                primary: true
                                type: primary
                              - data: accountholder1@example.com
                                primary: false
                                type: secondary
                              - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                                primary: false
                                type: other
                            names:
                              - Alberta Bobbeth Charleson
                            phone_numbers:
                              - data: "1112223333"
                                primary: false
                                type: home
                              - data: "1112224444"
                                primary: false
                                type: work
                              - data: "1112225555"
                                primary: false
                                type: mobile
                        subtype: savings
                        type: depository
                    item:
                      available_products:
                        - balance
                        - investments
                      billed_products:
                        - assets
                        - auth
                        - identity
                        - liabilities
                        - transactions
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_3
                      item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: 3nARps6TOYtbACO
              schema:
                $ref: "#/components/schemas/IdentityGetResponse"
          description: OK
      summary: Retrieve identity data
      tags:
        - plaid
  /identity/match:
    post:
      description: |-
        The `/identity/match` endpoint generates a match score, which indicates how well the provided identity data matches the identity information on file with the account holder's financial institution.

        This request may take some time to complete if Identity was not specified as an initial product when creating the Item. This is because Plaid must communicate directly with the institution to retrieve the data.
      externalDocs:
        url: /api/products/identity/#identitymatch
      operationId: identityMatch
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IdentityMatchRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
                        address:
                          is_postal_code_match: true
                          score: 100
                        balances:
                          available: 100
                          current: 110
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        email_address:
                          score: 100
                        legal_name:
                          is_first_name_or_last_name_match: true
                          is_nickname_match: true
                          score: 90
                        mask: "0000"
                        name: Plaid Checking
                        official_name: Plaid Gold Standard 0% Interest Checking
                        phone_number:
                          score: 100
                        subtype: checking
                        type: depository
                      - account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                        address:
                          is_postal_code_match: true
                          score: 100
                        balances:
                          available: 200
                          current: 210
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        email_address: null
                        legal_name:
                          is_first_name_or_last_name_match: false
                          score: 30
                        mask: "1111"
                        name: Plaid Saving
                        official_name: Plaid Silver Standard 0.1% Interest Saving
                        phone_number:
                          score: 100
                        subtype: savings
                        type: depository
                    item:
                      available_products:
                        - balance
                        - investments
                      billed_products:
                        - assets
                        - auth
                        - identity
                        - liabilities
                        - transactions
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_3
                      item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: 3nARps6TOYtbACO
              schema:
                $ref: "#/components/schemas/IdentityMatchResponse"
          description: OK
      summary: Retrieve identity match score
      tags:
        - plaid
  /identity_verification/create:
    post:
      description: |
        Create a new Identity Verification for the user specified by the `client_user_id` field. The requirements and behavior of the verification are determined by the `template_id` provided.
        If you don't know whether the associated user already has an active Identity Verification, you can specify `"is_idempotent": true` in the request body. With idempotency enabled, a new Identity Verification will only be created if one does not already exist for the associated `client_user_id` and `template_id`. If an Identity Verification is found, it will be returned unmodified with an `200 OK` HTTP status code.
      externalDocs:
        url: /api/products/identity-verification/#identity_verificationcreate
      operationId: identityVerificationCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IdentityVerificationCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    client_user_id: your-db-id-3b24110
                    completed_at: 2020-07-24T03:26:02Z
                    created_at: 2020-07-24T03:26:02Z
                    documentary_verification:
                      documents:
                        - analysis:
                            authenticity: match
                            extracted_data:
                              date_of_birth: match
                              expiration_date: not_expired
                              issuing_country: match
                              name: match
                            image_quality: high
                          attempt: 1
                          extracted_data:
                            category: drivers_license
                            expiration_date: 1990-05-29
                            id_number: AB123456
                            issuing_country: US
                            issuing_region: IN
                          images:
                            cropped_back: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg
                            cropped_front: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg
                            face: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg
                            original_back: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg
                            original_front: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg
                          redacted_at: 2020-07-24T03:26:02Z
                          status: success
                      status: success
                    id: idv_52xR9LKo77r1Np
                    kyc_check:
                      address:
                        po_box: yes
                        summary: match
                        type: residential
                      date_of_birth:
                        summary: match
                      id_number:
                        summary: match
                      name:
                        summary: match
                      phone_number:
                        summary: match
                      status: success
                    previous_attempt_id: idv_42cF1MNo42r9Xj
                    redacted_at: 2020-07-24T03:26:02Z
                    request_id: saKrIBuEB9qJZng
                    risk_check:
                      behavior:
                        bot_detected: yes
                        fraud_ring_detected: yes
                        user_interactions: risky
                      devices:
                        - ip_proxy_type: none_detected
                          ip_spam_list_count: 1
                          ip_timezone_offset: +06:00:00
                      email:
                        breach_count: 1
                        domain_is_custom: yes
                        domain_is_disposable: yes
                        domain_is_free_provider: yes
                        domain_registered_at: 1990-05-29
                        first_breached_at: 1990-05-29
                        is_deliverable: yes
                        last_breached_at: 1990-05-29
                        linked_services:
                          - apple
                        top_level_domain_is_suspicious: yes
                      phone:
                        linked_services:
                          - apple
                      status: success
                    shareable_url: https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f
                    status: success
                    steps:
                      accept_tos: success
                      documentary_verification: success
                      kyc_check: success
                      risk_check: success
                      selfie_check: success
                      verify_sms: success
                      watchlist_screening: success
                    template:
                      id: idvtmp_4FrXJvfQU3zGUR
                      version: 2
                    user:
                      address:
                        city: Pawnee
                        country: US
                        postal_code: "46001"
                        region: IN
                        street: 123 Main St.
                        street2: Unit 42
                      date_of_birth: 1990-05-29
                      email_address: user@example.com
                      id_number:
                        type: us_ssn
                        value: "123456789"
                      ip_address: 192.0.2.42
                      name:
                        family_name: Knope
                        given_name: Leslie
                      phone_number: "+19876543212"
                    watchlist_screening_id: scr_52xR9LKo77r1Np
              schema:
                $ref: "#/components/schemas/IdentityVerificationCreateResponse"
          description: OK
      summary: Create a new identity verification
      tags:
        - plaid
  /identity_verification/get:
    post:
      description: Retrieve a previously created identity verification.
      externalDocs:
        url: /api/products/identity-verification/#identity_verificationget
      operationId: identityVerificationGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IdentityVerificationGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    client_user_id: your-db-id-3b24110
                    completed_at: 2020-07-24T03:26:02Z
                    created_at: 2020-07-24T03:26:02Z
                    documentary_verification:
                      documents:
                        - analysis:
                            authenticity: match
                            extracted_data:
                              date_of_birth: match
                              expiration_date: not_expired
                              issuing_country: match
                              name: match
                            image_quality: high
                          attempt: 1
                          extracted_data:
                            category: drivers_license
                            expiration_date: 1990-05-29
                            id_number: AB123456
                            issuing_country: US
                            issuing_region: IN
                          images:
                            cropped_back: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg
                            cropped_front: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg
                            face: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg
                            original_back: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg
                            original_front: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg
                          redacted_at: 2020-07-24T03:26:02Z
                          status: success
                      status: success
                    id: idv_52xR9LKo77r1Np
                    kyc_check:
                      address:
                        po_box: yes
                        summary: match
                        type: residential
                      date_of_birth:
                        summary: match
                      id_number:
                        summary: match
                      name:
                        summary: match
                      phone_number:
                        summary: match
                      status: success
                    previous_attempt_id: idv_42cF1MNo42r9Xj
                    redacted_at: 2020-07-24T03:26:02Z
                    request_id: saKrIBuEB9qJZng
                    risk_check:
                      behavior:
                        bot_detected: yes
                        fraud_ring_detected: yes
                        user_interactions: risky
                      devices:
                        - ip_proxy_type: none_detected
                          ip_spam_list_count: 1
                          ip_timezone_offset: +06:00:00
                      email:
                        breach_count: 1
                        domain_is_custom: yes
                        domain_is_disposable: yes
                        domain_is_free_provider: yes
                        domain_registered_at: 1990-05-29
                        first_breached_at: 1990-05-29
                        is_deliverable: yes
                        last_breached_at: 1990-05-29
                        linked_services:
                          - apple
                        top_level_domain_is_suspicious: yes
                      phone:
                        linked_services:
                          - apple
                      status: success
                    shareable_url: https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f
                    status: success
                    steps:
                      accept_tos: success
                      documentary_verification: success
                      kyc_check: success
                      risk_check: success
                      selfie_check: success
                      verify_sms: success
                      watchlist_screening: success
                    template:
                      id: idvtmp_4FrXJvfQU3zGUR
                      version: 2
                    user:
                      address:
                        city: Pawnee
                        country: US
                        postal_code: "46001"
                        region: IN
                        street: 123 Main St.
                        street2: Unit 42
                      date_of_birth: 1990-05-29
                      email_address: user@example.com
                      id_number:
                        type: us_ssn
                        value: "123456789"
                      ip_address: 192.0.2.42
                      name:
                        family_name: Knope
                        given_name: Leslie
                      phone_number: "+19876543212"
                    watchlist_screening_id: scr_52xR9LKo77r1Np
              schema:
                $ref: "#/components/schemas/IdentityVerificationGetResponse"
          description: OK
      summary: Retrieve Identity Verification
      tags:
        - plaid
  /identity_verification/list:
    post:
      description: Filter and list Identity Verifications created by your account
      externalDocs:
        url: /api/products/identity-verification/#identity_verificationlist
      operationId: identityVerificationList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IdentityVerificationListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    identity_verifications:
                      - client_user_id: your-db-id-3b24110
                        completed_at: 2020-07-24T03:26:02Z
                        created_at: 2020-07-24T03:26:02Z
                        documentary_verification:
                          documents:
                            - analysis:
                                authenticity: match
                                extracted_data:
                                  date_of_birth: match
                                  expiration_date: not_expired
                                  issuing_country: match
                                  name: match
                                image_quality: high
                              attempt: 1
                              extracted_data:
                                category: drivers_license
                                expiration_date: 1990-05-29
                                id_number: AB123456
                                issuing_country: US
                                issuing_region: IN
                              images:
                                cropped_back: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg
                                cropped_front: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg
                                face: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg
                                original_back: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg
                                original_front: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg
                              redacted_at: 2020-07-24T03:26:02Z
                              status: success
                          status: success
                        id: idv_52xR9LKo77r1Np
                        kyc_check:
                          address:
                            po_box: yes
                            summary: match
                            type: residential
                          date_of_birth:
                            summary: match
                          id_number:
                            summary: match
                          name:
                            summary: match
                          phone_number:
                            summary: match
                          status: success
                        previous_attempt_id: idv_42cF1MNo42r9Xj
                        redacted_at: 2020-07-24T03:26:02Z
                        risk_check:
                          behavior:
                            bot_detected: yes
                            fraud_ring_detected: yes
                            user_interactions: risky
                          devices:
                            - ip_proxy_type: none_detected
                              ip_spam_list_count: 1
                              ip_timezone_offset: +06:00:00
                          email:
                            breach_count: 1
                            domain_is_custom: yes
                            domain_is_disposable: yes
                            domain_is_free_provider: yes
                            domain_registered_at: 1990-05-29
                            first_breached_at: 1990-05-29
                            is_deliverable: yes
                            last_breached_at: 1990-05-29
                            linked_services:
                              - apple
                            top_level_domain_is_suspicious: yes
                          phone:
                            linked_services:
                              - apple
                          status: success
                        shareable_url: https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f
                        status: success
                        steps:
                          accept_tos: success
                          documentary_verification: success
                          kyc_check: success
                          risk_check: success
                          selfie_check: success
                          verify_sms: success
                          watchlist_screening: success
                        template:
                          id: idvtmp_4FrXJvfQU3zGUR
                          version: 2
                        user:
                          address:
                            city: Pawnee
                            country: US
                            postal_code: "46001"
                            region: IN
                            street: 123 Main St.
                            street2: Unit 42
                          date_of_birth: 1990-05-29
                          email_address: user@example.com
                          id_number:
                            type: us_ssn
                            value: "123456789"
                          ip_address: 192.0.2.42
                          name:
                            family_name: Knope
                            given_name: Leslie
                          phone_number: "+19876543212"
                        watchlist_screening_id: scr_52xR9LKo77r1Np
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/IdentityVerificationListResponse"
          description: OK
      summary: List Identity Verifications
      tags:
        - plaid
  /identity_verification/retry:
    post:
      description: Allow a customer to retry their identity verification
      externalDocs:
        url: /api/products/identity-verification/#identity_verificationretry
      operationId: identityVerificationRetry
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IdentityVerificationRetryRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    client_user_id: your-db-id-3b24110
                    completed_at: 2020-07-24T03:26:02Z
                    created_at: 2020-07-24T03:26:02Z
                    documentary_verification:
                      documents:
                        - analysis:
                            authenticity: match
                            extracted_data:
                              date_of_birth: match
                              expiration_date: not_expired
                              issuing_country: match
                              name: match
                            image_quality: high
                          attempt: 1
                          extracted_data:
                            category: drivers_license
                            expiration_date: 1990-05-29
                            id_number: AB123456
                            issuing_country: US
                            issuing_region: IN
                          images:
                            cropped_back: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg
                            cropped_front: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg
                            face: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg
                            original_back: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg
                            original_front: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg
                          redacted_at: 2020-07-24T03:26:02Z
                          status: success
                      status: success
                    id: idv_52xR9LKo77r1Np
                    kyc_check:
                      address:
                        po_box: yes
                        summary: match
                        type: residential
                      date_of_birth:
                        summary: match
                      id_number:
                        summary: match
                      name:
                        summary: match
                      phone_number:
                        summary: match
                      status: success
                    previous_attempt_id: idv_42cF1MNo42r9Xj
                    redacted_at: 2020-07-24T03:26:02Z
                    request_id: saKrIBuEB9qJZng
                    risk_check:
                      behavior:
                        bot_detected: yes
                        fraud_ring_detected: yes
                        user_interactions: risky
                      devices:
                        - ip_proxy_type: none_detected
                          ip_spam_list_count: 1
                          ip_timezone_offset: +06:00:00
                      email:
                        breach_count: 1
                        domain_is_custom: yes
                        domain_is_disposable: yes
                        domain_is_free_provider: yes
                        domain_registered_at: 1990-05-29
                        first_breached_at: 1990-05-29
                        is_deliverable: yes
                        last_breached_at: 1990-05-29
                        linked_services:
                          - apple
                        top_level_domain_is_suspicious: yes
                      phone:
                        linked_services:
                          - apple
                      status: success
                    shareable_url: https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f
                    status: success
                    steps:
                      accept_tos: success
                      documentary_verification: success
                      kyc_check: success
                      risk_check: success
                      selfie_check: success
                      verify_sms: success
                      watchlist_screening: success
                    template:
                      id: idvtmp_4FrXJvfQU3zGUR
                      version: 2
                    user:
                      address:
                        city: Pawnee
                        country: US
                        postal_code: "46001"
                        region: IN
                        street: 123 Main St.
                        street2: Unit 42
                      date_of_birth: 1990-05-29
                      email_address: user@example.com
                      id_number:
                        type: us_ssn
                        value: "123456789"
                      ip_address: 192.0.2.42
                      name:
                        family_name: Knope
                        given_name: Leslie
                      phone_number: "+19876543212"
                    watchlist_screening_id: scr_52xR9LKo77r1Np
              schema:
                $ref: "#/components/schemas/IdentityVerificationRetryResponse"
          description: OK
      summary: Retry an Identity Verification
      tags:
        - plaid
  /income/verification/create:
    post:
      deprecated: true
      description: "`/income/verification/create` begins the income verification process by returning an `income_verification_id`. You can then provide the `income_verification_id` to `/link/token/create` under the `income_verification` parameter in order to create a Link instance that will prompt the user to go through the income verification flow. Plaid will fire an `INCOME` webhook once the user completes the Payroll Income flow, or when the uploaded documents in the Document Income flow have finished processing. "
      externalDocs:
        url: /api/products/income/#incomeverificationcreate
      operationId: incomeVerificationCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IncomeVerificationCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    income_verification_id: f2a826d7-25cf-483b-a124-c40beb64b732
                    request_id: lMjeOeu9X1VUh1F
              schema:
                $ref: "#/components/schemas/IncomeVerificationCreateResponse"
          description: OK
      summary: (Deprecated) Create an income verification instance
      tags:
        - plaid
  /income/verification/documents/download:
    parameters: []
    post:
      deprecated: true
      description: |-
        `/income/verification/documents/download` provides the ability to download the source documents associated with the verification.

        If Document Income was used, the documents will be those the user provided in Link. For Payroll Income, the most recent files available
        for download from the payroll provider will be available from this endpoint.

        The response to `/income/verification/documents/download` is a ZIP file in binary data. If a `document_id` is passed, a single document will be contained in this file.
        If not, the response will contain all documents associated with the verification.

        The `request_id` is returned in the `Plaid-Request-ID` header.
      externalDocs:
        url: /api/products/income/#incomeverificationdocumentsdownload
      operationId: incomeVerificationDocumentsDownload
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IncomeVerificationDocumentsDownloadRequest"
        required: true
      responses:
        "200":
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: A ZIP file containing source documents(s) used as the basis for income verification.
      summary: (Deprecated) Download the original documents used for income verification
      tags:
        - plaid
  /income/verification/paystubs/get:
    post:
      deprecated: true
      description: |-
        `/income/verification/paystubs/get` returns the information collected from the paystubs that were used to verify an end user's income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.

        This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
      externalDocs:
        url: /api/products/income/#incomeverificationpaystubsget
      operationId: incomeVerificationPaystubsGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IncomeVerificationPaystubsGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    document_metadata:
                      - doc_id: 2jkflanbd
                        doc_type: DOCUMENT_TYPE_PAYSTUB
                        name: paystub.pdf
                        status: DOCUMENT_STATUS_PROCESSING_COMPLETE
                    paystubs:
                      - deductions:
                          breakdown:
                            - current_amount: 123.45
                              description: taxes
                              iso_currency_code: USD
                              unofficial_currency_code: null
                              ytd_amount: 246.9
                          total:
                            current_amount: 123.45
                            iso_currency_code: USD
                            unofficial_currency_code: null
                            ytd_amount: 246.9
                        doc_id: 2jkflanbd
                        earnings:
                          breakdown:
                            - canonical_description: REGULAR PAY
                              current_amount: 200.22
                              description: salary earned
                              hours: 80
                              iso_currency_code: USD
                              rate: null
                              unofficial_currency_code: null
                              ytd_amount: 400.44
                            - canonical_desription: BONUS
                              current_amount: 100
                              description: bonus earned
                              hours: null
                              iso_currency_code: USD
                              rate: null
                              unofficial_currency_code: null
                              ytd_amount: 100
                          total:
                            current_amount: 300.22
                            hours: 160
                            iso_currency_code: USD
                            unofficial_currency_code: null
                            ytd_amount: 500.44
                        employee:
                          address:
                            city: SAN FRANCISCO
                            country: US
                            postal_code: "94133"
                            region: CA
                            street: 2140 TAYLOR ST
                          marital_status: single
                          name: ANNA CHARLESTON
                          taxpayer_id:
                            id_mask: "3333"
                            id_type: SSN
                        employer:
                          address:
                            city: SAN FRANCISCO
                            country: US
                            postal_code: "94111"
                            region: CA
                            street: 1098 HARRISON ST
                          name: PLAID INC
                        net_pay:
                          current_amount: 123.34
                          description: TOTAL NET PAY
                          iso_currency_code: USD
                          unofficial_currency_code: null
                          ytd_amount: 253.54
                        pay_period_details:
                          check_amount: 1490.21
                          distribution_breakdown:
                            - account_name: Big time checking
                              bank_name: bank of plaid
                              current_amount: 176.77
                              iso_currency_code: USD
                              mask: "1223"
                              type: checking
                              unofficial_currency_code: null
                          end_date: 2020-12-15
                          gross_earnings: 4500
                          pay_date: 2020-12-15
                          pay_frequency: PAY_FREQUENCY_BIWEEKLY
                          start_date: 2020-12-01
                    request_id: 2pxQ59buGdsHRef
              schema:
                $ref: "#/components/schemas/IncomeVerificationPaystubsGetResponse"
          description: OK
      summary: (Deprecated) Retrieve information from the paystubs used for income verification
      tags:
        - plaid
  /income/verification/precheck:
    post:
      deprecated: true
      description: |-
        `/income/verification/precheck` is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification and returns a `precheck_id` that can be provided to `/link/token/create`. If the user is eligible for digital verification, providing the `precheck_id` in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the `precheck_id` can still be provided to `/link/token/create` and the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.

        While all request fields are optional, providing either `employer` or `transactions_access_tokens` data will increase the chance of receiving a useful result.

        This endpoint has been deprecated; new integrations should use `/credit/payroll_income/precheck` instead.
      externalDocs:
        url: /api/products/income/#incomeverificationprecheck
      operationId: incomeVerificationPrecheck
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IncomeVerificationPrecheckRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    confidence: HIGH
                    precheck_id: n9elqYlvYm
                    request_id: lMjeOeu9X1VUh1F
              schema:
                $ref: "#/components/schemas/IncomeVerificationPrecheckResponse"
          description: OK
      summary: (Deprecated) Check digital income verification eligibility and optimize conversion
      tags:
        - plaid
  /income/verification/taxforms/get:
    post:
      deprecated: true
      description: |-
        `/income/verification/taxforms/get` returns the information collected from forms that were used to verify an end user''s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.

        This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.
      externalDocs:
        url: /api/products/income/#incomeverificationtaxformsget
      operationId: incomeVerificationTaxformsGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IncomeVerificationTaxformsGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    document_metadata:
                      - doc_id: q5Ypbbr03p
                        doc_type: DOCUMENT_TYPE_US_TAX_W2
                        name: my_w2.pdf
                        status: DOCUMENT_STATUS_PROCESSING_COMPLETE
                    request_id: 73W7sz8nIP8Mgck
                    taxforms:
                      - document_type: W2
                        w2:
                          allocated_tips: "1000"
                          box_12:
                            - amount: "200"
                              code: AA
                          box_9: box9
                          dependent_care_benefits: "1000"
                          employee:
                            address:
                              city: San Francisco
                              country: US
                              postal_code: "94103"
                              region: CA
                              street: 1234 Grand St
                            marital_status: single
                            name: Josie Georgia Harrison
                            taxpayer_id:
                              id_mask: "1234"
                              id_type: SSN
                          employee_id_number: 12-1234567
                          employer:
                            address:
                              city: New York
                              country: US
                              postal_code: "10010"
                              region: NY
                              street: 456 Main St
                            name: Acme Inc
                          federal_income_tax_withheld: "1000"
                          medicare_tax_withheld: "1000"
                          medicare_wages_and_tips: "1000"
                          nonqualified_plans: "1000"
                          other: other
                          retirement_plan: CHECKED
                          social_security_tax_withheld: "1000"
                          social_security_tips: "1000"
                          social_security_wages: "1000"
                          state_and_local_wages:
                            - employer_state_id_number: 11111111111AAA
                              local_income_tax: "200"
                              local_wages_and_tips: "200"
                              locality_name: local
                              state: UT
                              state_income_tax: "200"
                              state_wages_tips: "200"
                          statutory_employee: CHECKED
                          tax_year: "2020"
                          third_party_sick_pay: CHECKED
                          wages_tips_other_comp: "1000"
              schema:
                $ref: "#/components/schemas/IncomeVerificationTaxformsGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: (Deprecated) Retrieve information from the tax documents used for income verification
      tags:
        - plaid
  /institutions/get:
    post:
      description: |-
        Returns a JSON response containing details on all financial institutions currently supported by Plaid. Because Plaid supports thousands of institutions, results are paginated.

        If there is no overlap between an institution’s enabled products and a client’s enabled products, then the institution will be filtered out from the response. As a result, the number of institutions returned may not match the count specified in the call.
      externalDocs:
        url: /api/institutions/#institutionsget
      operationId: institutionsGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InstitutionsGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    institutions:
                      - country_codes:
                          - US
                        dtc_numbers:
                          - "2236"
                          - "0955"
                          - "1367"
                        institution_id: ins_1
                        name: Bank of America
                        oauth: false
                        products:
                          - assets
                          - auth
                          - balance
                          - transactions
                          - identity
                          - liabilities
                        routing_numbers:
                          - "011000138"
                          - "011200365"
                          - "011400495"
                        status:
                          auth:
                            breakdown:
                              error_institution: 0.08
                              error_plaid: 0.01
                              success: 0.91
                            last_status_change: 2019-02-15T15:53:00Z
                            status: HEALTHY
                          identity:
                            breakdown:
                              error_institution: 0.5
                              error_plaid: 0.08
                              success: 0.42
                            last_status_change: 2019-02-15T15:50:00Z
                            status: DEGRADED
                          investments:
                            breakdown:
                              error_institution: 0.09
                              error_plaid: 0.02
                              success: 0.89
                            last_status_change: 2019-02-15T15:53:00Z
                            liabilities:
                              breakdown:
                                error_institution: 0.09
                                error_plaid: 0.02
                                success: 0.89
                              last_status_change: 2019-02-15T15:53:00Z
                              status: HEALTHY
                            status: HEALTHY
                          investments_updates:
                            breakdown:
                              error_institution: 0.03
                              error_plaid: 0.02
                              refresh_interval: NORMAL
                              success: 0.95
                            last_status_change: 2019-02-12T08:22:00Z
                            status: HEALTHY
                          item_logins:
                            breakdown:
                              error_institution: 0.09
                              error_plaid: 0.01
                              success: 0.9
                            last_status_change: 2019-02-15T15:53:00Z
                            status: HEALTHY
                          liabilities_updates:
                            breakdown:
                              error_institution: 0.03
                              error_plaid: 0.02
                              refresh_interval: NORMAL
                              success: 0.95
                            last_status_change: 2019-02-12T08:22:00Z
                            status: HEALTHY
                          transactions_updates:
                            breakdown:
                              error_institution: 0.03
                              error_plaid: 0.02
                              refresh_interval: NORMAL
                              success: 0.95
                            last_status_change: 2019-02-12T08:22:00Z
                            status: HEALTHY
                    request_id: tbFyCEqkU774ZGG
                    total: 11384
              schema:
                $ref: "#/components/schemas/InstitutionsGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get details of all supported institutions
      tags:
        - plaid
  /institutions/get_by_id:
    post:
      description: |
        Returns a JSON response containing details on a specified financial institution currently supported by Plaid.

        Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` to authenticate to this endpoint. The `public_key` has been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
      externalDocs:
        url: /api/institutions/#institutionsget_by_id
      operationId: institutionsGetById
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InstitutionsGetByIdRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    institution:
                      country_codes:
                        - US
                      dtc_numbers:
                        - "2236"
                        - "0955"
                        - "1367"
                      institution_id: ins_109512
                      logo: null
                      name: Houndstooth Bank
                      oauth: false
                      primary_color: "#004966"
                      products:
                        - auth
                        - balance
                        - identity
                        - transactions
                      routing_numbers:
                        - "011000138"
                        - "011200365"
                        - "011400495"
                      status:
                        auth:
                          breakdown:
                            error_institution: 0.08
                            error_plaid: 0.01
                            success: 0.91
                          last_status_change: 2019-02-15T15:53:00Z
                          status: HEALTHY
                        identity:
                          breakdown:
                            error_institution: 0.5
                            error_plaid: 0.08
                            success: 0.42
                          last_status_change: 2019-02-15T15:50:00Z
                          status: DEGRADED
                        investments:
                          breakdown:
                            error_institution: 0.09
                            error_plaid: 0.02
                            success: 0.89
                          last_status_change: 2019-02-15T15:53:00Z
                          liabilities:
                            breakdown:
                              error_institution: 0.09
                              error_plaid: 0.02
                              success: 0.89
                            last_status_change: 2019-02-15T15:53:00Z
                            status: HEALTHY
                          status: HEALTHY
                        investments_updates:
                          breakdown:
                            error_institution: 0.03
                            error_plaid: 0.02
                            refresh_interval: NORMAL
                            success: 0.95
                          last_status_change: 2019-02-12T08:22:00Z
                          status: HEALTHY
                        item_logins:
                          breakdown:
                            error_institution: 0.09
                            error_plaid: 0.01
                            success: 0.9
                          last_status_change: 2019-02-15T15:53:00Z
                          status: HEALTHY
                        liabilities_updates:
                          breakdown:
                            error_institution: 0.03
                            error_plaid: 0.02
                            refresh_interval: NORMAL
                            success: 0.95
                          last_status_change: 2019-02-12T08:22:00Z
                          status: HEALTHY
                        transactions_updates:
                          breakdown:
                            error_institution: 0.03
                            error_plaid: 0.02
                            refresh_interval: NORMAL
                            success: 0.95
                          last_status_change: 2019-02-12T08:22:00Z
                          status: HEALTHY
                      url: https://plaid.com
                    request_id: m8MDnv9okwxFNBV
              schema:
                $ref: "#/components/schemas/InstitutionsGetByIdResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get details of an institution
      tags:
        - plaid
  /institutions/search:
    post:
      description: |
        Returns a JSON response containing details for institutions that match the query parameters, up to a maximum of ten institutions per query.

        Versioning note: API versions 2019-05-29 and earlier allow use of the `public_key` parameter instead of the `client_id` and `secret` parameters to authenticate to this endpoint. The `public_key` parameter has since been deprecated; all customers are encouraged to use `client_id` and `secret` instead.
      externalDocs:
        url: /api/institutions/#institutionssearch
      operationId: institutionsSearch
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InstitutionsSearchRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    institutions:
                      - country_codes:
                          - US
                        dtc_numbers:
                          - "2236"
                          - "0955"
                          - "1367"
                        institution_id: ins_118923
                        name: Red Platypus Bank - Red Platypus Bank
                        oauth: false
                        products:
                          - assets
                          - auth
                          - balance
                          - transactions
                          - identity
                        routing_numbers:
                          - "011000138"
                          - "011200365"
                          - "011400495"
                        status:
                          auth:
                            breakdown:
                              error_institution: 0.08
                              error_plaid: 0.01
                              success: 0.91
                            last_status_change: 2019-02-15T15:53:00Z
                            status: HEALTHY
                          identity:
                            breakdown:
                              error_institution: 0.5
                              error_plaid: 0.08
                              success: 0.42
                            last_status_change: 2019-02-15T15:50:00Z
                            status: DEGRADED
                          investments:
                            breakdown:
                              error_institution: 0.09
                              error_plaid: 0.02
                              success: 0.89
                            last_status_change: 2019-02-15T15:53:00Z
                            liabilities:
                              breakdown:
                                error_institution: 0.09
                                error_plaid: 0.02
                                success: 0.89
                              last_status_change: 2019-02-15T15:53:00Z
                              status: HEALTHY
                            status: HEALTHY
                          investments_updates:
                            breakdown:
                              error_institution: 0.03
                              error_plaid: 0.02
                              refresh_interval: NORMAL
                              success: 0.95
                            last_status_change: 2019-02-12T08:22:00Z
                            status: HEALTHY
                          item_logins:
                            breakdown:
                              error_institution: 0.09
                              error_plaid: 0.01
                              success: 0.9
                            last_status_change: 2019-02-15T15:53:00Z
                            status: HEALTHY
                          liabilities_updates:
                            breakdown:
                              error_institution: 0.03
                              error_plaid: 0.02
                              refresh_interval: NORMAL
                              success: 0.95
                            last_status_change: 2019-02-12T08:22:00Z
                            status: HEALTHY
                          transactions_updates:
                            breakdown:
                              error_institution: 0.03
                              error_plaid: 0.02
                              refresh_interval: NORMAL
                              success: 0.95
                            last_status_change: 2019-02-12T08:22:00Z
                            status: HEALTHY
                    request_id: Ggmk0enW4smO2Tp
              schema:
                $ref: "#/components/schemas/InstitutionsSearchResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Search institutions
      tags:
        - plaid
  /investments/holdings/get:
    post:
      description: The `/investments/holdings/get` endpoint allows developers to receive user-authorized stock position data for `investment`-type accounts.
      externalDocs:
        url: /api/products/investments/#investmentsholdingsget
      operationId: investmentsHoldingsGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InvestmentsHoldingsGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: 5Bvpj4QknlhVWk7GygpwfVKdd133GoCxB814g
                        balances:
                          available: 43200
                          current: 43200
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "4444"
                        name: Plaid Money Market
                        official_name: Plaid Platinum Standard 1.85% Interest Money Market
                        subtype: money market
                        type: depository
                      - account_id: JqMLm4rJwpF6gMPJwBqdh9ZjjPvvpDcb7kDK1
                        balances:
                          available: null
                          current: 320.76
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "5555"
                        name: Plaid IRA
                        official_name: null
                        subtype: ira
                        type: investment
                      - account_id: k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm
                        balances:
                          available: null
                          current: 23631.9805
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "6666"
                        name: Plaid 401k
                        official_name: null
                        subtype: 401k
                        type: investment
                      - account_id: ax0xgOBYRAIqOOjeLZr0iZBb8r6K88HZXpvmq
                        balances:
                          available: 48200.03
                          current: 48200.03
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "4092"
                        name: Plaid Crypto Exchange Account
                        official_name: null
                        subtype: crypto exchange
                        type: investment
                    holdings:
                      - account_id: JqMLm4rJwpF6gMPJwBqdh9ZjjPvvpDcb7kDK1
                        cost_basis: 1
                        institution_price: 1
                        institution_price_as_of: 2021-04-13
                        institution_price_datetime: null
                        institution_value: 0.01
                        iso_currency_code: USD
                        quantity: 0.01
                        security_id: d6ePmbPxgWCWmMVv66q9iPV94n91vMtov5Are
                        unofficial_currency_code: null
                      - account_id: k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm
                        cost_basis: 1.5
                        institution_price: 2.11
                        institution_price_as_of: 2021-04-13
                        institution_price_datetime: null
                        institution_value: 2.11
                        iso_currency_code: USD
                        quantity: 1
                        security_id: KDwjlXj1Rqt58dVvmzRguxJybmyQL8FgeWWAy
                        unofficial_currency_code: null
                      - account_id: k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm
                        cost_basis: 10
                        institution_price: 10.42
                        institution_price_as_of: 2021-04-13
                        institution_price_datetime: null
                        institution_value: 20.84
                        iso_currency_code: USD
                        quantity: 2
                        security_id: NDVQrXQoqzt5v3bAe8qRt4A7mK7wvZCLEBBJk
                        unofficial_currency_code: null
                      - account_id: JqMLm4rJwpF6gMPJwBqdh9ZjjPvvpDcb7kDK1
                        cost_basis: 0.01
                        institution_price: 0.011
                        institution_price_as_of: 2021-04-13
                        institution_price_datetime: null
                        institution_value: 110
                        iso_currency_code: USD
                        quantity: 10000
                        security_id: 8E4L9XLl6MudjEpwPAAgivmdZRdBPJuvMPlPb
                        unofficial_currency_code: null
                      - account_id: k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm
                        cost_basis: 23
                        institution_price: 27
                        institution_price_as_of: 2021-04-13
                        institution_price_datetime: null
                        institution_value: 636.309
                        iso_currency_code: USD
                        quantity: 23.567
                        security_id: JDdP7XPMklt5vwPmDN45t3KAoWAPmjtpaW7DP
                        unofficial_currency_code: null
                      - account_id: k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm
                        cost_basis: 15
                        institution_price: 13.73
                        institution_price_as_of: 2021-04-13
                        institution_price_datetime: null
                        institution_value: 1373.6865
                        iso_currency_code: USD
                        quantity: 100.05
                        security_id: nnmo8doZ4lfKNEDe3mPJipLGkaGw3jfPrpxoN
                        unofficial_currency_code: null
                      - account_id: k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm
                        cost_basis: 1
                        institution_price: 1
                        institution_price_as_of: 2021-04-13
                        institution_price_datetime: null
                        institution_value: 12345.67
                        iso_currency_code: USD
                        quantity: 12345.67
                        security_id: d6ePmbPxgWCWmMVv66q9iPV94n91vMtov5Are
                        unofficial_currency_code: null
                      - account_id: ax0xgOBYRAIqOOjeLZr0iZBb8r6K88HZXpvmq
                        cost_basis: 92.47
                        institution_price: 0.177494362
                        institution_price_as_of: 2022-01-14
                        institution_price_datetime: 2022-06-07T23:01:00Z
                        institution_value: 4437.35905
                        iso_currency_code: USD
                        quantity: 25000
                        security_id: vLRMV3MvY1FYNP91on35CJD5QN5rw9Fpa9qOL
                        unofficial_currency_code: null
                    item:
                      available_products:
                        - balance
                        - identity
                        - liabilities
                        - transactions
                      billed_products:
                        - assets
                        - auth
                        - investments
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_3
                      item_id: 4z9LPae1nRHWy8pvg9jrsgbRP4ZNQvIdbLq7g
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: l68wb8zpS0hqmsJ
                    securities:
                      - close_price: 0.011
                        close_price_as_of: 2021-04-13
                        cusip: null
                        institution_id: null
                        institution_security_id: null
                        is_cash_equivalent: false
                        isin: null
                        iso_currency_code: USD
                        name: Nflx Feb 01'18 $355 Call
                        proxy_security_id: null
                        security_id: 8E4L9XLl6MudjEpwPAAgivmdZRdBPJuvMPlPb
                        sedol: null
                        ticker_symbol: NFLX180201C00355000
                        type: derivative
                        unofficial_currency_code: null
                        update_datetime: null
                      - close_price: 27
                        close_price_as_of: null
                        cusip: "577130834"
                        institution_id: null
                        institution_security_id: null
                        is_cash_equivalent: false
                        isin: US5771308344
                        iso_currency_code: USD
                        name: Matthews Pacific Tiger Fund Insti Class
                        proxy_security_id: null
                        security_id: JDdP7XPMklt5vwPmDN45t3KAoWAPmjtpaW7DP
                        sedol: null
                        ticker_symbol: MIPTX
                        type: mutual fund
                        unofficial_currency_code: null
                        update_datetime: null
                      - close_price: 2.11
                        close_price_as_of: null
                        cusip: 00448Q201
                        institution_id: null
                        institution_security_id: null
                        is_cash_equivalent: false
                        isin: US00448Q2012
                        iso_currency_code: USD
                        name: Achillion Pharmaceuticals Inc.
                        proxy_security_id: null
                        security_id: KDwjlXj1Rqt58dVvmzRguxJybmyQL8FgeWWAy
                        sedol: null
                        ticker_symbol: ACHN
                        type: equity
                        unofficial_currency_code: null
                        update_datetime: null
                      - close_price: 10.42
                        close_price_as_of: null
                        cusip: "258620103"
                        institution_id: null
                        institution_security_id: null
                        is_cash_equivalent: false
                        isin: US2586201038
                        iso_currency_code: USD
                        name: DoubleLine Total Return Bond Fund
                        proxy_security_id: null
                        security_id: NDVQrXQoqzt5v3bAe8qRt4A7mK7wvZCLEBBJk
                        sedol: null
                        ticker_symbol: DBLTX
                        type: mutual fund
                        unofficial_currency_code: null
                        update_datetime: null
                      - close_price: 1
                        close_price_as_of: null
                        cusip: null
                        institution_id: null
                        institution_security_id: null
                        is_cash_equivalent: true
                        isin: null
                        iso_currency_code: USD
                        name: U S Dollar
                        proxy_security_id: null
                        security_id: d6ePmbPxgWCWmMVv66q9iPV94n91vMtov5Are
                        sedol: null
                        ticker_symbol: USD
                        type: cash
                        unofficial_currency_code: null
                        update_datetime: null
                      - close_price: 13.73
                        close_price_as_of: null
                        cusip: null
                        institution_id: ins_3
                        institution_security_id: NHX105509
                        is_cash_equivalent: false
                        isin: null
                        iso_currency_code: USD
                        name: NH PORTFOLIO 1055 (FIDELITY INDEX)
                        proxy_security_id: null
                        security_id: nnmo8doZ4lfKNEDe3mPJipLGkaGw3jfPrpxoN
                        sedol: null
                        ticker_symbol: NHX105509
                        type: etf
                        unofficial_currency_code: null
                        update_datetime: null
                      - close_price: 0.140034616
                        close_price_as_of: 2022-01-24
                        cusip: null
                        institution_id: ins_3
                        institution_security_id: null
                        is_cash_equivalent: true
                        isin: null
                        iso_currency_code: USD
                        name: Dogecoin
                        proxy_security_id: null
                        security_id: vLRMV3MvY1FYNP91on35CJD5QN5rw9Fpa9qOL
                        sedol: null
                        ticker_symbol: DOGE
                        type: cryptocurrency
                        unofficial_currency_code: null
                        update_datetime: 2022-06-07T23:01:00Z
              schema:
                $ref: "#/components/schemas/InvestmentsHoldingsGetResponse"
          description: OK
      summary: Get Investment holdings
      tags:
        - plaid
  /investments/transactions/get:
    post:
      description: |-
        The `/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for investment accounts.

        Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.

        Due to the potentially large number of investment transactions associated with an Item, results are paginated. Manipulate the count and offset parameters in conjunction with the `total_investment_transactions` response body field to fetch all available investment transactions.

        Note that Investments does not have a webhook to indicate when initial transaction data has loaded. Instead, if transactions data is not ready when `/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/investments/transactions/get` immediately after Link may take up to one to two minutes to return.
      externalDocs:
        url: /api/products/investments/#investmentstransactionsget
      operationId: investmentsTransactionsGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InvestmentsTransactionsGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: 5e66Dl6jNatx3nXPGwZ7UkJed4z6KBcZA4Rbe
                        balances:
                          available: 100
                          current: 110
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "0000"
                        name: Plaid Checking
                        official_name: Plaid Gold Standard 0% Interest Checking
                        subtype: checking
                        type: depository
                      - account_id: KqZZMoZmBWHJlz7yKaZjHZb78VNpaxfVa7e5z
                        balances:
                          available: null
                          current: 320.76
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "5555"
                        name: Plaid IRA
                        official_name: null
                        subtype: ira
                        type: investment
                      - account_id: rz99ex9ZQotvnjXdgQLEsR81e3ArPgulVWjGj
                        balances:
                          available: null
                          current: 23631.9805
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "6666"
                        name: Plaid 401k
                        official_name: null
                        subtype: 401k
                        type: investment
                    investment_transactions:
                      - account_id: rz99ex9ZQotvnjXdgQLEsR81e3ArPgulVWjGj
                        amount: -8.72
                        cancel_transaction_id: null
                        date: 2020-05-29
                        fees: 0
                        investment_transaction_id: oq99Pz97joHQem4BNjXECev1E4B6L6sRzwANW
                        iso_currency_code: USD
                        name: INCOME DIV DIVIDEND RECEIVED
                        price: 0
                        quantity: 0
                        security_id: eW4jmnjd6AtjxXVrjmj6SX1dNEdZp3Cy8RnRQ
                        subtype: dividend
                        type: cash
                        unofficial_currency_code: null
                      - account_id: rz99ex9ZQotvnjXdgQLEsR81e3ArPgulVWjGj
                        amount: -1289.01
                        cancel_transaction_id: null
                        date: 2020-05-28
                        fees: 7.99
                        investment_transaction_id: pK99jB9e7mtwjA435GpVuMvmWQKVbVFLWme57
                        iso_currency_code: USD
                        name: SELL Matthews Pacific Tiger Fund Insti Class
                        price: 27.53
                        quantity: -47.74104242992852
                        security_id: JDdP7XPMklt5vwPmDN45t3KAoWAPmjtpaW7DP
                        subtype: sell
                        type: sell
                        unofficial_currency_code: null
                      - account_id: rz99ex9ZQotvnjXdgQLEsR81e3ArPgulVWjGj
                        amount: 7.7
                        cancel_transaction_id: null
                        date: 2020-05-27
                        fees: 7.99
                        investment_transaction_id: LKoo1ko93wtreBwM7yQnuQ3P5DNKbKSPRzBNv
                        iso_currency_code: USD
                        name: BUY DoubleLine Total Return Bond Fund
                        price: 10.42
                        quantity: 0.7388014749727547
                        security_id: NDVQrXQoqzt5v3bAe8qRt4A7mK7wvZCLEBBJk
                        subtype: buy
                        type: buy
                        unofficial_currency_code: null
                    item:
                      available_products:
                        - assets
                        - balance
                        - identity
                        - transactions
                      billed_products:
                        - auth
                        - investments
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_12
                      item_id: 8Mqq5rqQ7Pcxq9MGDv3JULZ6yzZDLMCwoxGDq
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: iv4q3ZlytOOthkv
                    securities:
                      - close_price: 27
                        close_price_as_of: null
                        cusip: "577130834"
                        institution_id: null
                        institution_security_id: null
                        is_cash_equivalent: false
                        isin: US5771308344
                        iso_currency_code: USD
                        name: Matthews Pacific Tiger Fund Insti Class
                        proxy_security_id: null
                        security_id: JDdP7XPMklt5vwPmDN45t3KAoWAPmjtpaW7DP
                        sedol: null
                        ticker_symbol: MIPTX
                        type: mutual fund
                        unofficial_currency_code: null
                        update_datetime: null
                      - close_price: 10.42
                        close_price_as_of: null
                        cusip: "258620103"
                        institution_id: null
                        institution_security_id: null
                        is_cash_equivalent: false
                        isin: US2586201038
                        iso_currency_code: USD
                        name: DoubleLine Total Return Bond Fund
                        proxy_security_id: null
                        security_id: NDVQrXQoqzt5v3bAe8qRt4A7mK7wvZCLEBBJk
                        sedol: null
                        ticker_symbol: DBLTX
                        type: mutual fund
                        unofficial_currency_code: null
                        update_datetime: null
                      - close_price: 34.73
                        close_price_as_of: null
                        cusip: 84470P109
                        institution_id: null
                        institution_security_id: null
                        is_cash_equivalent: false
                        isin: US84470P1093
                        iso_currency_code: USD
                        name: Southside Bancshares Inc.
                        proxy_security_id: null
                        security_id: eW4jmnjd6AtjxXVrjmj6SX1dNEdZp3Cy8RnRQ
                        sedol: null
                        ticker_symbol: SBSI
                        type: equity
                        unofficial_currency_code: null
                        update_datetime: null
                    total_investment_transactions: 3
              schema:
                $ref: "#/components/schemas/InvestmentsTransactionsGetResponse"
          description: OK
      summary: Get investment transactions
      tags:
        - plaid
  /item/access_token/invalidate:
    post:
      description: |
        By default, the `access_token` associated with an Item does not expire and should be stored in a persistent, secure manner.

        You can use the `/item/access_token/invalidate` endpoint to rotate the `access_token` associated with an Item. The endpoint returns a new `access_token` and immediately invalidates the previous `access_token`.
      externalDocs:
        url: /api/tokens/#itemaccess_tokeninvalidate
      operationId: itemAccessTokenInvalidate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemAccessTokenInvalidateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    new_access_token: access-sandbox-8ab976e6-64bc-4b38-98f7-731e7a349970
                    request_id: m8MDnv9okwxFNBV
              schema:
                $ref: "#/components/schemas/ItemAccessTokenInvalidateResponse"
          description: OK
      summary: Invalidate access_token
      tags:
        - plaid
  /item/activity/list:
    post:
      description: List a historical log of user consent events
      operationId: itemActivityList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemActivityListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    activities: []
                    request_id: m8MDnv9okwxFNBV
              schema:
                $ref: "#/components/schemas/ItemActivityListResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: List a historical log of user consent events
      tags:
        - plaid
  /item/application/list:
    post:
      description: List a user’s connected applications
      operationId: itemApplicationList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemApplicationListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ItemApplicationListResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: List a user’s connected applications
      tags:
        - plaid
  /item/application/scopes/update:
    post:
      description: Enable consumers to update product access on selected accounts for an application.
      operationId: itemApplicationScopesUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemApplicationScopesUpdateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ItemApplicationScopesUpdateResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Update the scopes of access for a particular application
      tags:
        - plaid
  /item/get:
    post:
      description: Returns information about the status of an Item.
      externalDocs:
        url: /api/items/#itemget
      operationId: itemGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    item:
                      available_products:
                        - balance
                        - auth
                      billed_products:
                        - identity
                        - transactions
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_109508
                      item_id: Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr
                      update_type: background
                      webhook: https://plaid.com/example/hook
                    request_id: m8MDnv9okwxFNBV
                    status:
                      last_webhook:
                        code_sent: DEFAULT_UPDATE
                        sent_at: 2019-02-15T15:53:00Z
                      transactions:
                        last_failed_update: 2019-01-22T04:32:00Z
                        last_successful_update: 2019-02-15T15:52:39Z
              schema:
                $ref: "#/components/schemas/ItemGetResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Retrieve an Item
      tags:
        - plaid
  /item/import:
    post:
      description: |-
        `/item/import` creates an Item via your Plaid Exchange Integration and returns an `access_token`. As part of an `/item/import` request, you will include a User ID (`user_auth.user_id`) and Authentication Token (`user_auth.auth_token`) that enable data aggregation through your Plaid Exchange API endpoints. These authentication principals are to be chosen by you.

        Upon creating an Item via `/item/import`, Plaid will automatically begin an extraction of that Item through the Plaid Exchange infrastructure you have already integrated. This will automatically generate the Plaid native account ID for the account the user will switch their direct deposit to (`target_account_id`).
      operationId: itemImport
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemImportRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    access_token: access-sandbox-99ace160-3cf7-4e51-a083-403633425815
                    request_id: ewIBAn6RZirsk4W
              schema:
                $ref: "#/components/schemas/ItemImportResponse"
          description: OK
      summary: Import Item
      tags:
        - plaid
  /item/public_token/create:
    post:
      description: |-
        Note: As of July 2020, the `/item/public_token/create` endpoint is deprecated. Instead, use `/link/token/create` with an `access_token` to create a Link token for use with [update mode](https://plaid.com/docs/link/update-mode).

        If you need your user to take action to restore or resolve an error associated with an Item, generate a public token with the `/item/public_token/create` endpoint and then initialize Link with that `public_token`.

        A `public_token` is one-time use and expires after 30 minutes. You use a `public_token` to initialize Link in [update mode](https://plaid.com/docs/link/update-mode) for a particular Item. You can generate a `public_token` for an Item even if you did not use Link to create the Item originally.

        The `/item/public_token/create` endpoint is **not** used to create your initial `public_token`. If you have not already received an `access_token` for a specific Item, use Link to obtain your `public_token` instead. See the [Quickstart](https://plaid.com/docs/quickstart) for more information.
      externalDocs:
        url: /api/tokens/#itempublic_tokencreate
      operationId: itemCreatePublicToken
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemPublicTokenCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    public_token: public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d
                    request_id: Aim3b
              schema:
                $ref: "#/components/schemas/ItemPublicTokenCreateResponse"
          description: OK
      summary: Create public token
      tags:
        - plaid
  /item/public_token/exchange:
    post:
      description: |-
        Exchange a Link `public_token` for an API `access_token`. Link hands off the `public_token` client-side via the `onSuccess` callback once a user has successfully created an Item. The `public_token` is ephemeral and expires after 30 minutes. An `access_token` does not expire, but can be revoked by calling `/item/remove`.

        The response also includes an `item_id` that should be stored with the `access_token`. The `item_id` is used to identify an Item in a webhook. The `item_id` can also be retrieved by making an `/item/get` request.
      externalDocs:
        url: /api/tokens/#itempublic_tokenexchange
      operationId: itemPublicTokenExchange
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemPublicTokenExchangeRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    access_token: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
                    item_id: M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op
                    request_id: Aim3b
              schema:
                $ref: "#/components/schemas/ItemPublicTokenExchangeResponse"
          description: OK
      summary: Exchange public token for an access token
      tags:
        - plaid
  /item/remove:
    post:
      description: |-
        The `/item/remove` endpoint allows you to remove an Item. Once removed, the `access_token`, as well as any processor tokens or bank account tokens associated with the Item, is no longer valid and cannot be used to access any data that was associated with the Item.

        Note that in the Development environment, issuing an `/item/remove`  request will not decrement your live credential count. To increase your credential account in Development, contact Support.

        Also note that for certain OAuth-based institutions, an Item removed via `/item/remove` may still show as an active connection in the institution's OAuth permission manager.

        API versions 2019-05-29 and earlier return a `removed` boolean as part of the response.
      externalDocs:
        url: /api/items/#itemremove
      operationId: itemRemove
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemRemoveRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: m8MDnv9okwxFNBV
              schema:
                $ref: "#/components/schemas/ItemRemoveResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Remove an Item
      tags:
        - plaid
  /item/webhook/update:
    post:
      description: The POST `/item/webhook/update` allows you to update the webhook URL associated with an Item. This request triggers a [`WEBHOOK_UPDATE_ACKNOWLEDGED`](https://plaid.com/docs/api/items/#webhook_update_acknowledged) webhook to the newly specified webhook URL.
      externalDocs:
        url: /api/items/#itemwebhookupdate
      operationId: itemWebhookUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ItemWebhookUpdateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    item:
                      available_products:
                        - balance
                        - identity
                        - payment_initiation
                        - transactions
                      billed_products:
                        - assets
                        - auth
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_117650
                      item_id: DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: vYK11LNTfRoAMbj
              schema:
                $ref: "#/components/schemas/ItemWebhookUpdateResponse"
          description: OK
      summary: Update Webhook URL
      tags:
        - plaid
  /liabilities/get:
    post:
      description: |-
        The `/liabilities/get` endpoint returns various details about an Item with loan or credit accounts. Liabilities data is available primarily for US financial institutions, with some limited coverage of Canadian institutions. Currently supported account types are account type `credit` with account subtype `credit card` or `paypal`, and account type `loan` with account subtype `student` or `mortgage`. To limit accounts listed in Link to types and subtypes supported by Liabilities, you can use the `account_filters` parameter when [creating a Link token](https://plaid.com/docs/api/tokens/#linktokencreate).

        The types of information returned by Liabilities can include balances and due dates, loan terms, and account details such as original loan amount and guarantor. Data is refreshed approximately once per day; the latest data can be retrieved by calling `/liabilities/get`.

        Note: This request may take some time to complete if `liabilities` was not specified as an initial product when creating the Item. This is because Plaid must communicate directly with the institution to retrieve the additional data.
      externalDocs:
        url: /api/products/liabilities/#liabilitiesget
      operationId: liabilitiesGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LiabilitiesGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
                        balances:
                          available: 100
                          current: 110
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "0000"
                        name: Plaid Checking
                        official_name: Plaid Gold Standard 0% Interest Checking
                        subtype: checking
                        type: depository
                      - account_id: dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK
                        balances:
                          available: null
                          current: 410
                          iso_currency_code: USD
                          limit: 2000
                          unofficial_currency_code: null
                        mask: "3333"
                        name: Plaid Credit Card
                        official_name: Plaid Diamond 12.5% APR Interest Credit Card
                        subtype: credit card
                        type: credit
                      - account_id: Pp1Vpkl9w8sajvK6oEEKtr7vZxBnGpf7LxxLE
                        balances:
                          available: null
                          current: 65262
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "7777"
                        name: Plaid Student Loan
                        official_name: null
                        subtype: student
                        type: loan
                      - account_id: BxBXxLj1m4HMXBm9WZJyUg9XLd4rKEhw8Pb1J
                        balances:
                          available: null
                          current: 56302.06
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "8888"
                        name: Plaid Mortgage
                        official_name: null
                        subtype: mortgage
                        type: loan
                    item:
                      available_products:
                        - balance
                        - investments
                      billed_products:
                        - assets
                        - auth
                        - identity
                        - liabilities
                        - transactions
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_3
                      item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    liabilities:
                      credit:
                        - account_id: dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK
                          aprs:
                            - apr_percentage: 15.24
                              apr_type: balance_transfer_apr
                              balance_subject_to_apr: 1562.32
                              interest_charge_amount: 130.22
                            - apr_percentage: 27.95
                              apr_type: cash_apr
                              balance_subject_to_apr: 56.22
                              interest_charge_amount: 14.81
                            - apr_percentage: 12.5
                              apr_type: purchase_apr
                              balance_subject_to_apr: 157.01
                              interest_charge_amount: 25.66
                            - apr_percentage: 0
                              apr_type: special
                              balance_subject_to_apr: 1000
                              interest_charge_amount: 0
                          is_overdue: false
                          last_payment_amount: 168.25
                          last_payment_date: 2019-05-22
                          last_statement_balance: 1708.77
                          last_statement_issue_date: 2019-05-28
                          minimum_payment_amount: 20
                          next_payment_due_date: 2020-05-28
                      mortgage:
                        - account_id: BxBXxLj1m4HMXBm9WZJyUg9XLd4rKEhw8Pb1J
                          account_number: "3120194154"
                          current_late_fee: 25
                          escrow_balance: 3141.54
                          has_pmi: true
                          has_prepayment_penalty: true
                          interest_rate:
                            percentage: 3.99
                            type: fixed
                          last_payment_amount: 3141.54
                          last_payment_date: 2019-08-01
                          loan_term: 30 year
                          loan_type_description: conventional
                          maturity_date: 2045-07-31
                          next_monthly_payment: 3141.54
                          next_payment_due_date: 2019-11-15
                          origination_date: 2015-08-01
                          origination_principal_amount: 425000
                          past_due_amount: 2304
                          property_address:
                            city: Malakoff
                            country: US
                            postal_code: "14236"
                            region: NY
                            street: 2992 Cameron Road
                          ytd_interest_paid: 12300.4
                          ytd_principal_paid: 12340.5
                      student:
                        - account_id: Pp1Vpkl9w8sajvK6oEEKtr7vZxBnGpf7LxxLE
                          account_number: "4277075694"
                          disbursement_dates:
                            - 2002-08-28
                          expected_payoff_date: 2032-07-28
                          guarantor: DEPT OF ED
                          interest_rate_percentage: 5.25
                          is_overdue: false
                          last_payment_amount: 138.05
                          last_payment_date: 2019-04-22
                          last_statement_issue_date: 2019-04-28
                          loan_name: Consolidation
                          loan_status:
                            end_date: 2032-07-28
                            type: repayment
                          minimum_payment_amount: 25
                          next_payment_due_date: 2019-05-28
                          origination_date: 2002-08-28
                          origination_principal_amount: 25000
                          outstanding_interest_amount: 6227.36
                          payment_reference_number: "4277075694"
                          pslf_status:
                            estimated_eligibility_date: 2021-01-01
                            payments_made: 200
                            payments_remaining: 160
                          repayment_plan:
                            description: Standard Repayment
                            type: standard
                          sequence_number: "1"
                          servicer_address:
                            city: San Matias
                            country: US
                            postal_code: "99415"
                            region: CA
                            street: 123 Relaxation Road
                          ytd_interest_paid: 280.55
                          ytd_principal_paid: 271.65
                    request_id: dTnnm60WgKGLnKL
              schema:
                $ref: "#/components/schemas/LiabilitiesGetResponse"
          description: OK
      summary: Retrieve Liabilities data
      tags:
        - plaid
  /link/oauth/correlation_id/exchange:
    post:
      description: |-
        Exchange an OAuth `link_correlation_id` for the corresponding `link_token`. The `link_correlation_id` is only available for 'payment_initiation' products and is provided to the client via the OAuth `redirect_uri` as a query parameter.
        The `link_correlation_id` is ephemeral and expires in a brief period, after which it can no longer be exchanged for the 'link_token'.
      externalDocs:
        url: /api/oauth/#linkcorrelationid
      operationId: linkOauthCorrelationIdExchange
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LinkOAuthCorrelationIdExchangeRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    link_token: link-sandbox-33792986-2b9c-4b80-b1f2-518caaac6183
                    request_id: u0ydFs493XjyTYn
              schema:
                $ref: "#/components/schemas/LinkOAuthCorrelationIdExchangeResponse"
          description: OK
      summary: Exchange the Link Correlation Id for a Link Token
      tags:
        - plaid
  /link/token/create:
    post:
      description: |-
        The `/link/token/create` endpoint creates a `link_token`, which is required as a parameter when initializing Link. Once Link has been initialized, it returns a `public_token`, which can then be exchanged for an `access_token` via `/item/public_token/exchange` as part of the main Link flow.

        A `link_token` generated by `/link/token/create` is also used to initialize other Link flows, such as the update mode flow for tokens with expired credentials, or the Payment Initiation (Europe) flow.
      externalDocs:
        url: /api/tokens/#linktokencreate
      operationId: linkTokenCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LinkTokenCreateRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    expiration: 2020-03-27T12:56:34Z
                    link_token: link-sandbox-af1a0311-da53-4636-b754-dd15cc058176
                    request_id: XQVgFigpGHXkb0b
              schema:
                $ref: "#/components/schemas/LinkTokenCreateResponse"
          description: OK
      summary: Create Link Token
      tags:
        - plaid
  /link/token/get:
    post:
      description: |-
        The `/link/token/get` endpoint gets information about a previously-created `link_token` using the
        `/link/token/create` endpoint. It can be useful for debugging purposes.
      externalDocs:
        url: /api/tokens/#linktokenget
      operationId: linkTokenGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LinkTokenGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    created_at: 2020-12-02T21:14:54Z
                    expiration: 2020-12-03T01:14:54Z
                    link_token: link-sandbox-33792986-2b9c-4b80-b1f2-518caaac6183
                    metadata:
                      account_filters:
                        depository:
                          account_subtypes:
                            - checking
                            - savings
                      client_name: Insert Client name here
                      country_codes:
                        - US
                      initial_products:
                        - auth
                      language: en
                      redirect_uri: null
                      webhook: https://www.example.com/webhook
                    request_id: u0ydFs493XjyTYn
              schema:
                $ref: "#/components/schemas/LinkTokenGetResponse"
          description: OK
      summary: Get Link Token
      tags:
        - plaid
  /link_delivery/create:
    post:
      description: Use the `/link_delivery/create` endpoint to create a Link Delivery session.
      externalDocs:
        url: /docs/assets/waitlist/link-delivery/
      operationId: linkDeliveryCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LinkDeliveryCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    link_delivery_session_id: 99ace160-3cf7-4e51-a083-403633425815
                    link_delivery_url: http://hosted.plaid.com/99ace160-3cf7-4e51-a083-403633425815
                    request_id: 4ciYmmesdqSiUAB
              schema:
                $ref: "#/components/schemas/LinkDeliveryCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create Link Delivery session
      tags:
        - plaid
  /link_delivery/get:
    post:
      description: Use the `/link_delivery/get` endpoint to get the status of a Link Delivery session.
      externalDocs:
        url: /docs/assets/waitlist/link-delivery/
      operationId: linkDeliveryGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LinkDeliveryGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    completed_at: 2019-10-12T07:21:50.52Z
                    created_at: 2019-10-12T07:20:50.52Z
                    public_tokens:
                      - public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d
                    request_id: 4ciYmmesdqSiUAB
                    status: COMPLETED
              schema:
                $ref: "#/components/schemas/LinkDeliveryGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get Link Delivery session
      tags:
        - plaid
  /partner/customer/create:
    post:
      description: The `/partner/customer/create` endpoint is used by reseller partners to create end customers.
      externalDocs:
        url: /api/partner/#partnercustomercreate
      operationId: partnerCustomerCreate
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  address:
                    city: New York
                    country_code: US
                    postal_code: "12345"
                    region: NY
                    street: 123 Main St
                  application_name: Plaid
                  billing_contact:
                    email: bob.jones@example.com
                    family_name: Jones
                    given_name: Bob
                  client_id: 7f57eb3d2a9j6480121fx361
                  company_name: Plaid
                  create_link_customization: true
                  customer_support_info:
                    contact_url: example.com/contact
                    email: support@example.com
                    link_update_url: example.com/update
                    phone_number: "1234567890"
                  is_bank_addendum_completed: true
                  is_diligence_attested: true
                  legal_entity_name: Plaid
                  products:
                    - auth
                    - identity
                  redirect_uris:
                    - http://localhost/oauth.html
                    - https://www.example.com/oauth.html
                    - https://*.example.com/oauth.html
                  secret: 79g03eoofwl8240v776r2h667442119
                  technical_contact:
                    email: alice.smith@example.com
                    family_name: Smith
                    given_name: Alice
                  website: plaid.com
            schema:
              $ref: "#/components/schemas/PartnerCustomerCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end_customer:
                      client_id: 7f57eb3d2a9j6480121fx361
                      company_name: Plaid
                      secrets:
                        development: 95e56a510204f293d3bebd4b9cf5c7
                        sandbox: b60b5201d006ca5a7081d27c824d77
                      status: ACTIVE
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/PartnerCustomerCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Creates a new end customer for a Plaid reseller.
      tags:
        - plaid
  /partner/customer/enable:
    post:
      description: The `/partner/customer/enable` endpoint is used by reseller partners to enable an end customer in the Production environment.
      externalDocs:
        url: /api/partner/#partnercustomerenable
      operationId: partnerCustomerEnable
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  client_id: 7f57eb3d2a9j6480121fx361
                  end_customer_client_id: 7f57eb3d2a9j6480121fx361
                  secret: 79g03eoofwl8240v776r2h667442119
            schema:
              $ref: "#/components/schemas/PartnerCustomerEnableRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    production_secret: 79g03eoofwl8240v776r2h667442119
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/PartnerCustomerEnableResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Enables a Plaid reseller's end customer in the Production environment.
      tags:
        - plaid
  /partner/customer/get:
    post:
      description: The `/partner/customer/get` endpoint is used by reseller partners to retrieve data about a single end customer.
      externalDocs:
        url: /api/partner/#partnercustomerget
      operationId: partnerCustomerGet
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  client_id: 7f57eb3d2a9j6480121fx361
                  end_customer_client_id: 7f57eb3d2a9j6480121fx361
                  secret: 79g03eoofwl8240v776r2h667442119
            schema:
              $ref: "#/components/schemas/PartnerCustomerGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    end_customer:
                      client_id: 7f57eb3d2a9j6480121fx361
                      company_name: Plaid
                      status: ACTIVE
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/PartnerCustomerGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Returns a Plaid reseller's end customer.
      tags:
        - plaid
  /partner/customer/oauth_institutions/get:
    post:
      description: The `/partner/customer/oauth_institutions/get` endpoint is used by reseller partners to retrieve OAuth-institution registration information about a single end customer. To learn how to set up a webhook to listen to status update events, visit the [reseller documentation](https://plaid.com/docs/account/resellers/#enabling-end-customers).
      externalDocs:
        url: /api/partner/#partnercustomeroauth_institutionsget
      operationId: partnerCustomerOauthInstitutionsGet
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  client_id: 7f57eb3d2a9j6480121fx361
                  end_customer_client_id: 7f57eb3d2a9j6480121fx361
                  secret: 79g03eoofwl8240v776r2h667442119
            schema:
              $ref: "#/components/schemas/PartnerCustomerOAuthInstitutionsGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    flowdown_status: COMPLETE
                    institutions:
                      - classic_disablement_date: 2022-06-30
                        environments:
                          development: PROCESSING
                          production: PROCESSING
                        institution_id: ins_56
                        name: Chase
                        production_enablement_date: null
                      - classic_disablement_date: null
                        environments:
                          development: ENABLED
                          production: ENABLED
                        institution_id: ins_128026
                        name: Capital One
                        production_enablement_date: 2022-12-19
                    questionnaire_status: COMPLETE
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/PartnerCustomerOAuthInstitutionsGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Returns OAuth-institution registration information for a given end customer.
      tags:
        - plaid
  /partner/customer/remove:
    post:
      description: The `/partner/customer/remove` endpoint is used by reseller partners to remove an end customer. Removing an end customer will remove it from view in the Plaid Dashboard and deactivate its API keys. This endpoint can only be used to remove an end customer that has not yet been enabled in Production.
      externalDocs:
        url: /api/partner/#partnercustomerremove
      operationId: partnerCustomerRemove
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  client_id: 7f57eb3d2a9j6480121fx361
                  end_customer_client_id: 7f57eb3d2a9j6480121fx361
                  secret: 79g03eoofwl8240v776r2h667442119
            schema:
              $ref: "#/components/schemas/PartnerCustomerRemoveRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/PartnerCustomerRemoveResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Removes a Plaid reseller's end customer.
      tags:
        - plaid
  /payment_initiation/consent/create:
    post:
      description: |-
        The `/payment_initiation/consent/create` endpoint is used to create a payment consent, which can be used to initiate payments on behalf of the user. Payment consents are created with `UNAUTHORISED` status by default and must be authorised by the user before payments can be initiated.

        Consents can be limited in time and scope, and have constraints that describe limitations for payments.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationconsentcreate
      operationId: paymentInitiationConsentCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationConsentCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    consent_id: consent-id-production-feca8a7a-5491-4444-9999-f3062bb735d3
                    request_id: 4ciYmmesdqSiUAB
                    status: UNAUTHORISED
              schema:
                $ref: "#/components/schemas/PaymentInitiationConsentCreateResponse"
          description: OK
      summary: Create payment consent
      tags:
        - plaid
  /payment_initiation/consent/get:
    post:
      description: The `/payment_initiation/consent/get` endpoint can be used to check the status of a payment consent, as well as to receive basic information such as recipient and constraints.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationconsentget
      operationId: paymentInitiationConsentGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationConsentGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    consent_id: consent-id-production-feca8a7a-5491-4aef-9298-f3062bb735d3
                    constraints:
                      max_payment_amount:
                        currency: GBP
                        value: 100
                      periodic_amounts:
                        - alignment: CALENDAR
                          amount:
                            currency: GBP
                            value: 300
                          interval: WEEK
                      valid_date_time:
                        from: 2021-12-25T11:12:13Z
                        to: 2022-12-31T15:26:48Z
                    created_at: 2021-10-30T15:26:48Z
                    recipient_id: recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6
                    reference: ref-00001
                    request_id: 4ciYuuesdqSiUAB
                    scopes:
                      - ME_TO_ME
                    status: AUTHORISED
              schema:
                $ref: "#/components/schemas/PaymentInitiationConsentGetResponse"
          description: OK
      summary: Get payment consent
      tags:
        - plaid
  /payment_initiation/consent/payment/execute:
    post:
      description: The `/payment_initiation/consent/payment/execute` endpoint can be used to execute payments using payment consent.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationconsentpaymentexecute
      operationId: paymentInitiationConsentPaymentExecute
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationConsentPaymentExecuteRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    payment_id: payment-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3
                    request_id: 4ciYccesdqSiUAB
                    status: PAYMENT_STATUS_INITIATED
              schema:
                $ref: "#/components/schemas/PaymentInitiationConsentPaymentExecuteResponse"
          description: OK
      summary: Execute a single payment using consent
      tags:
        - plaid
  /payment_initiation/consent/revoke:
    post:
      description: The `/payment_initiation/consent/revoke` endpoint can be used to revoke the payment consent. Once the consent is revoked, it is not possible to initiate payments using it.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationconsentrevoke
      operationId: paymentInitiationConsentRevoke
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationConsentRevokeRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 4ciYaaesdqSiUAB
              schema:
                $ref: "#/components/schemas/PaymentInitiationConsentRevokeResponse"
          description: OK
      summary: Revoke payment consent
      tags:
        - plaid
  /payment_initiation/payment/create:
    post:
      description: |-
        After creating a payment recipient, you can use the `/payment_initiation/payment/create` endpoint to create a payment to that recipient.  Payments can be one-time or standing order (recurring) and can be denominated in either EUR, GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency).  If making domestic GBP-denominated payments, your recipient must have been created with BACS numbers. In general, EUR-denominated payments will be sent via SEPA Credit Transfer, GBP-denominated payments will be sent via the Faster Payments network and for non-Eurozone markets typically via the local payment scheme, but the payment network used will be determined by the institution. Payments sent via Faster Payments will typically arrive immediately, while payments sent via SEPA Credit Transfer or other local payment schemes will typically arrive in one business day.

        Standing orders (recurring payments) must be denominated in GBP and can only be sent to recipients in the UK. Once created, standing order payments cannot be modified or canceled via the API. An end user can cancel or modify a standing order directly on their banking application or website, or by contacting the bank. Standing orders will follow the payment rules of the underlying rails (Faster Payments in UK). Payments can be sent Monday to Friday, excluding bank holidays. If the pre-arranged date falls on a weekend or bank holiday, the payment is made on the next working day. It is not possible to guarantee the exact time the payment will reach the recipient’s account, although at least 90% of standing order payments are sent by 6am.

        In the Development environment, payments must be below 5 GBP or other chosen [currency](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-create-request-amount-currency). For details on any payment limits in Production, contact your Plaid Account Manager.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationpaymentcreate
      operationId: paymentInitiationPaymentCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationPaymentCreateRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    payment_id: payment-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3
                    request_id: 4ciYVmesrySiUAB
                    status: PAYMENT_STATUS_INPUT_NEEDED
              schema:
                $ref: "#/components/schemas/PaymentInitiationPaymentCreateResponse"
          description: OK
      summary: Create a payment
      tags:
        - plaid
  /payment_initiation/payment/get:
    post:
      description: The `/payment_initiation/payment/get` endpoint can be used to check the status of a payment, as well as to receive basic information such as recipient and payment amount. In the case of standing orders, the `/payment_initiation/payment/get` endpoint will provide information about the status of the overall standing order itself; the API cannot be used to retrieve payment status for individual payments within a standing order.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationpaymentget
      operationId: paymentInitiationPaymentGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationPaymentGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    amount:
                      currency: GBP
                      value: 100
                    bacs:
                      account: "31926819"
                      account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                      sort_code: "601613"
                    iban: null
                    last_status_update: 2019-11-06T21:10:52Z
                    payment_expiration_time: 2019-11-06T21:25:52Z
                    payment_id: payment-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3
                    payment_token: payment-token-sandbox-c6a26505-42b4-46fe-8ecf-bf9edcafbebb
                    recipient_id: recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6
                    reference: Account Funding 99744
                    request_id: aEAQmewMzlVa1k6
                    status: PAYMENT_STATUS_INPUT_NEEDED
              schema:
                $ref: "#/components/schemas/PaymentInitiationPaymentGetResponse"
          description: OK
      summary: Get payment details
      tags:
        - plaid
  /payment_initiation/payment/list:
    post:
      description: The `/payment_initiation/payment/list` endpoint can be used to retrieve all created payments. By default, the 10 most recent payments are returned. You can request more payments and paginate through the results using the optional `count` and `cursor` parameters.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationpaymentlist
      operationId: paymentInitiationPaymentList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationPaymentListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    next_cursor: 2020-01-01T00:00:00Z
                    payments:
                      - amount:
                          currency: GBP
                          value: 100
                        bacs:
                          account: "31926819"
                          account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                          sort_code: "601613"
                        iban: null
                        last_status_update: 2019-11-06T21:10:52Z
                        payment_id: payment-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3
                        recipient_id: recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6
                        reference: Account Funding 99744
                        status: PAYMENT_STATUS_INPUT_NEEDED
                    request_id: aEAQmewMzlVa1k6
              schema:
                $ref: "#/components/schemas/PaymentInitiationPaymentListResponse"
          description: OK
      summary: List payments
      tags:
        - plaid
  /payment_initiation/payment/reverse:
    post:
      description: |
        Reverse a settled payment from a Plaid virtual account.

        The original payment must be in a settled state to be refunded.
        To refund partially, specify the amount as part of the request.
        If the amount is not specified, the refund amount will be equal to all
        of the remaining payment amount that has not been refunded yet.

        The refund will go back to the source account that initiated the payment.
        The original payment must have been initiated to a Plaid virtual account
        so that this account can be used to initiate the refund.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationpaymentreverse
      operationId: paymentInitiationPaymentReverse
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationPaymentReverseRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    refund_id: wallet-transaction-id-production-c5f8cd31-6cae-4cad-9b0d-f7c10be9cc4b
                    request_id: HtlKzBX0fMeF7mU
                    status: INITIATED
              schema:
                $ref: "#/components/schemas/PaymentInitiationPaymentReverseResponse"
          description: OK
      summary: Reverse an existing payment
      tags:
        - plaid
  /payment_initiation/payment/token/create:
    post:
      deprecated: true
      description: |-
        The `/payment_initiation/payment/token/create` endpoint has been deprecated. New Plaid customers will be unable to use this endpoint, and existing customers are encouraged to migrate to the newer, `link_token`-based flow. The recommended flow is to provide the `payment_id` to `/link/token/create`, which returns a `link_token` used to initialize Link.

        The `/payment_initiation/payment/token/create` is used to create a `payment_token`, which can then be used in Link initialization to enter a payment initiation flow. You can only use a `payment_token` once. If this attempt fails, the end user aborts the flow, or the token expires, you will need to create a new payment token. Creating a new payment token does not require end user input.
      externalDocs:
        url: /link/maintain-legacy-integration/#creating-a-payment-token
      operationId: createPaymentToken
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationPaymentTokenCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    payment_token: payment-token-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3
                    payment_token_expiration_time: 2020-01-01T00:00:00Z
                    request_id: 4ciYVmesrySiUAB
              schema:
                $ref: "#/components/schemas/PaymentInitiationPaymentTokenCreateResponse"
          description: OK
      summary: Create payment token
      tags:
        - plaid
  /payment_initiation/recipient/create:
    post:
      description: |
        Create a payment recipient for payment initiation.  The recipient must be in Europe, within a country that is a member of the Single Euro Payment Area (SEPA) or a non-Eurozone country [supported](https://plaid.com/global) by Plaid. For a standing order (recurring) payment, the recipient must be in the UK.

        It is recommended to use `bacs` in the UK and `iban` in EU.

        The endpoint is idempotent: if a developer has already made a request with the same payment details, Plaid will return the same `recipient_id`.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationrecipientcreate
      operationId: paymentInitiationRecipientCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationRecipientCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    recipient_id: recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/PaymentInitiationRecipientCreateResponse"
          description: OK
      summary: Create payment recipient
      tags:
        - plaid
  /payment_initiation/recipient/get:
    post:
      description: Get details about a payment recipient you have previously created.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationrecipientget
      operationId: paymentInitiationRecipientGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationRecipientGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    address:
                      city: London
                      country: GB
                      postal_code: SE14 8JW
                      street:
                        - 96 Guild Street
                        - 9th Floor
                    iban: GB29NWBK60161331926819
                    name: Wonder Wallet
                    recipient_id: recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/PaymentInitiationRecipientGetResponse"
          description: OK
      summary: Get payment recipient
      tags:
        - plaid
  /payment_initiation/recipient/list:
    post:
      description: The `/payment_initiation/recipient/list` endpoint list the payment recipients that you have previously created.
      externalDocs:
        url: /api/products/payment-initiation/#payment_initiationrecipientlist
      operationId: paymentInitiationRecipientList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentInitiationRecipientListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    recipients:
                      - address:
                          city: London
                          country: GB
                          postal_code: SE14 8JW
                          street:
                            - 96 Guild Street
                            - 9th Floor
                        iban: GB29NWBK60161331926819
                        name: Wonder Wallet
                        recipient_id: recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/PaymentInitiationRecipientListResponse"
          description: OK
      summary: List payment recipients
      tags:
        - plaid
  /payment_profile/create:
    post:
      description: |-
        Use `/payment_profile/create` endpoint to create a new payment profile.
        To initiate the account linking experience, call `/link/token/create` and provide the `payment_profile_token` in the `transfer.payment_profile_token` field.
        You can then use the `payment_profile_token` when creating transfers using `/transfer/authorization/create` and `/transfer/create`.
      externalDocs:
        url: /api/products/transfer/#payment_profilecreate
      operationId: paymentProfileCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentProfileCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    payment_profile_token: payment-profile-sandbox-eda0b25e-8ef3-4ebb-9ef7-1ef3db3c5ee8
                    request_id: 4ciYmmesdqSiUAB
              schema:
                $ref: "#/components/schemas/PaymentProfileCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create payment profile
      tags:
        - plaid
  /payment_profile/get:
    post:
      description: Use `/payment_profile/get` endpoint to get the status of a given Payment Profile.
      externalDocs:
        url: /api/products/transfer/#payment_profileget
      operationId: paymentProfileGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentProfileGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    created_at: 2022-07-05T12:48:37Z
                    deleted_at: null
                    request_id: 4ciYmmesdqSiUAB
                    status: READY
                    updated_at: 2022-07-07T12:48:37Z
              schema:
                $ref: "#/components/schemas/PaymentProfileGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get payment profile
      tags:
        - plaid
  /payment_profile/remove:
    post:
      description: Use the `/payment_profile/remove` endpoint to remove a given Payment Profile. Once it’s removed, it can no longer be used to create transfers.
      externalDocs:
        url: /api/products/transfer/#payment_profileremove
      operationId: paymentProfileRemove
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentProfileRemoveRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 4ciYmmesdqSiUAB
              schema:
                $ref: "#/components/schemas/PaymentProfileRemoveResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Remove payment profile
      tags:
        - plaid
  /processor/apex/processor_token/create:
    post:
      description: Used to create a token suitable for sending to Apex to enable Plaid-Apex integrations.
      externalDocs:
        url: /none/
      operationId: processorApexProcessorTokenCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorApexProcessorTokenCreateRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProcessorTokenCreateResponse"
          description: OK
      summary: Create Apex bank account token
      tags:
        - plaid
  /processor/auth/get:
    post:
      description: |
        The `/processor/auth/get` endpoint returns the bank account and bank identification number (such as the routing number, for US accounts), for a checking or savings account that''s associated with a given `processor_token`. The endpoint also returns high-level account data and balances when available.

        Versioning note: API versions 2019-05-29 and earlier use a different schema for the `numbers` object returned by this endpoint. For details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2020-09-14).
      externalDocs:
        url: /api/processors/#processorauthget
      operationId: processorAuthGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorAuthGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    account:
                      account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                      balances:
                        available: 100
                        current: 110
                        iso_currency_code: USD
                        limit: null
                        unofficial_currency_code: null
                      mask: "0000"
                      name: Plaid Checking
                      official_name: Plaid Gold Checking
                      subtype: checking
                      type: depository
                    numbers:
                      ach:
                        account: "9900009606"
                        account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                        routing: "011401533"
                        wire_routing: "021000021"
                      bacs:
                        account: "31926819"
                        account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                        sort_code: "601613"
                      eft:
                        account: "111122223333"
                        account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                        branch: "01140"
                        institution: "021"
                      international:
                        account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
                        bic: NWBKGB21
                        iban: GB29NWBK60161331926819
                    request_id: 1zlMf
              schema:
                $ref: "#/components/schemas/ProcessorAuthGetResponse"
          description: success
      summary: Retrieve Auth data
      tags:
        - plaid
  /processor/balance/get:
    post:
      description: "The `/processor/balance/get` endpoint returns the real-time balance for each of an Item's accounts. While other endpoints may return a balance object, only `/processor/balance/get` forces the available and current balance fields to be refreshed rather than cached. "
      externalDocs:
        url: /api/processors/#processorbalanceget
      operationId: processorBalanceGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorBalanceGetRequest"
        description: |-
          The `/processor/balance/get` endpoint returns the real-time balance for the account associated with a given `processor_token`.

          The current balance is the total amount of funds in the account. The available balance is the current balance less any outstanding holds or debits that have not yet posted to the account.

          Note that not all institutions calculate the available balance. In the event that available balance is unavailable from the institution, Plaid will return an available balance value of `null`.
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    account:
                      account_id: QKKzevvp33HxPWpoqn6rI13BxW4awNSjnw4xv
                      balances:
                        available: 100
                        current: 110
                        iso_currency_code: USD
                        limit: null
                        unofficial_currency_code: null
                      mask: "0000"
                      name: Plaid Checking
                      official_name: Plaid Gold Checking
                      subtype: checking
                      type: depository
                    request_id: 1zlMf
              schema:
                $ref: "#/components/schemas/ProcessorBalanceGetResponse"
          description: OK
      summary: Retrieve Balance data
      tags:
        - plaid
  /processor/bank_transfer/create:
    post:
      description: Use the `/processor/bank_transfer/create` endpoint to initiate a new bank transfer as a processor
      externalDocs:
        url: /api/processors/#bank_transfercreate
      operationId: processorBankTransferCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorBankTransferCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    bank_transfer:
                      account_id: 6qL6lWoQkAfNE3mB8Kk5tAnvpX81qefrvvl7B
                      ach_class: ppd
                      amount: "12.34"
                      cancellable: true
                      created: 2020-08-06T17:27:15Z
                      custom_tag: my tag
                      description: Testing2
                      direction: outbound
                      failure_reason: null
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      iso_currency_code: USD
                      metadata:
                        key1: value1
                        key2: value2
                      network: ach
                      origination_account_id: 11111111-1111-1111-1111-111111111111
                      status: pending
                      type: credit
                      user:
                        email_address: plaid@plaid.com
                        legal_name: John Smith
                        routing_number: "111111111"
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/ProcessorBankTransferCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create a bank transfer as a processor
      tags:
        - plaid
  /processor/identity/get:
    post:
      description: The `/processor/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses.
      externalDocs:
        url: /api/processors/#processoridentityget
      operationId: processorIdentityGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorIdentityGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    account:
                      account_id: XMGPJy4q1gsQoKd5z9R3tK8kJ9EWL8SdkgKMq
                      balances:
                        available: 100
                        current: 110
                        iso_currency_code: USD
                        limit: null
                        unofficial_currency_code: null
                      mask: "0000"
                      name: Plaid Checking
                      official_name: Plaid Gold Standard 0% Interest Checking
                      owners:
                        - addresses:
                            - data:
                                city: Malakoff
                                country: US
                                postal_code: "14236"
                                region: NY
                                street: 2992 Cameron Road
                              primary: true
                            - data:
                                city: San Matias
                                country: US
                                postal_code: 93405-2255
                                region: CA
                                street: 2493 Leisure Lane
                              primary: false
                          emails:
                            - data: accountholder0@example.com
                              primary: true
                              type: primary
                            - data: accountholder1@example.com
                              primary: false
                              type: secondary
                            - data: extraordinarily.long.email.username.123456@reallylonghostname.com
                              primary: false
                              type: other
                          names:
                            - Alberta Bobbeth Charleson
                          phone_numbers:
                            - data: "1112223333"
                              primary: false
                              type: home
                            - data: "1112224444"
                              primary: false
                              type: work
                            - data: "1112225555"
                              primary: false
                              type: mobile1
                      subtype: checking
                      type: depository
                    request_id: eOPkBl6t33veI2J
              schema:
                $ref: "#/components/schemas/ProcessorIdentityGetResponse"
          description: OK
      summary: Retrieve Identity data
      tags:
        - plaid
  /processor/signal/decision/report:
    post:
      description: After calling `/processor/signal/evaluate`, call `/processor/signal/decision/report` to report whether the transaction was initiated. This endpoint will return an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error if called a second time with a different value for `initiated`.
      externalDocs:
        url: /api/processors/#processorsignaldecisionreport
      operationId: processorSignalDecisionReport
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorSignalDecisionReportRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/ProcessorSignalDecisionReportResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Report whether you initiated an ACH transaction
      tags:
        - plaid
  /processor/signal/evaluate:
    post:
      description: |-
        Use `/processor/signal/evaluate` to evaluate a planned ACH transaction as a processor to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.

        In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/processor/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to our error documentation on [item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).

        Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time.
      externalDocs:
        url: /api/processors/#processorsignalevaluate
      operationId: processorSignalEvaluate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorSignalEvaluateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    core_attributes:
                      days_since_first_plaid_connection: 510
                      is_savings_or_money_market_account: false
                      plaid_connections_count_30d: 7
                      plaid_connections_count_7d: 6
                      total_plaid_connections_count: 15
                    request_id: mdqfuVxeoza6mhu
                    scores:
                      bank_initiated_return_risk:
                        risk_tier: 7
                        score: 72
                      customer_initiated_return_risk:
                        risk_tier: 1
                        score: 9
              schema:
                $ref: "#/components/schemas/ProcessorSignalEvaluateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Evaluate a planned ACH transaction
      tags:
        - plaid
  /processor/signal/return/report:
    post:
      description: Call the `/processor/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/processor/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.
      externalDocs:
        url: /api/processors/#processorsignalreturnreport
      operationId: processorSignalReturnReport
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorSignalReturnReportRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/ProcessorSignalReturnReportResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Report a return for an ACH transaction
      tags:
        - plaid
  /processor/stripe/bank_account_token/create:
    post:
      description: |-
        
        Used to create a token suitable for sending to Stripe to enable Plaid-Stripe integrations. For a detailed guide on integrating Stripe, see [Add Stripe to your app](https://plaid.com/docs/auth/partnerships/stripe/).

        Note that the Stripe bank account token is a one-time use token. To store bank account information for later use, you can use a Stripe customer object and create an associated bank account from the token, or you can use a Stripe Custom account and create an associated external bank account from the token. This bank account information should work indefinitely, unless the user's bank account information changes or they revoke Plaid's permissions to access their account. Stripe bank account information cannot be modified once the bank account token has been created. If you ever need to change the bank account details used by Stripe for a specific customer, have the user go through Link again and create a new bank account token from the new `access_token`.

        Bank account tokens can also be revoked, using `/item/remove`.'
      externalDocs:
        url: /api/processors/#processorstripebank_account_tokencreate
      operationId: processorStripeBankAccountTokenCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorStripeBankAccountTokenCreateRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: xrQNYZ7Zoh6R7gV
                    stripe_bank_account_token: btok_5oEetfLzPklE1fwJZ7SG
              schema:
                $ref: "#/components/schemas/ProcessorStripeBankAccountTokenCreateResponse"
          description: OK
      summary: Create Stripe bank account token
      tags:
        - plaid
  /processor/token/create:
    post:
      description: Used to create a token suitable for sending to one of Plaid's partners to enable integrations. Note that Stripe partnerships use bank account tokens instead; see `/processor/stripe/bank_account_token/create` for creating tokens for use with Stripe integrations. Once created, a processor token for a given Item cannot be modified or updated. If the account must be linked to a new or different partner resource, create a new Item by having the user go through the Link flow again; a new processor token can then be created from the new `access_token`. Processor tokens can also be revoked, using `/item/remove`.
      externalDocs:
        url: /api/processors/#processortokencreate
      operationId: processorTokenCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessorTokenCreateRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    processor_token: processor-sandbox-0asd1-a92nc
                    request_id: xrQNYZ7Zoh6R7gV
              schema:
                $ref: "#/components/schemas/ProcessorTokenCreateResponse"
          description: OK
      summary: Create processor token
      tags:
        - plaid
  /sandbox/bank_transfer/fire_webhook:
    post:
      description: Use the `/sandbox/bank_transfer/fire_webhook` endpoint to manually trigger a Bank Transfers webhook in the Sandbox environment.
      externalDocs:
        url: /bank-transfers/reference/#sandboxbank_transferfire_webhook
      operationId: sandboxBankTransferFireWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxBankTransferFireWebhookRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/SandboxBankTransferFireWebhookResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Manually fire a Bank Transfer webhook
      tags:
        - plaid
  /sandbox/bank_transfer/simulate:
    post:
      description: Use the `/sandbox/bank_transfer/simulate` endpoint to simulate a bank transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/bank_transfer/event/sync` or `/bank_transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
      externalDocs:
        url: /bank-transfers/reference/#sandboxbank_transfersimulate
      operationId: sandboxBankTransferSimulate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxBankTransferSimulateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: LmHYMwBhZUvsM03
              schema:
                $ref: "#/components/schemas/SandboxBankTransferSimulateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Simulate a bank transfer event in Sandbox
      tags:
        - plaid
  /sandbox/income/fire_webhook:
    post:
      description: Use the `/sandbox/income/fire_webhook` endpoint to manually trigger an Income webhook in the Sandbox environment.
      externalDocs:
        url: /api/sandbox/#sandboxincomefire_webhook
      operationId: sandboxIncomeFireWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxIncomeFireWebhookRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/SandboxIncomeFireWebhookResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Manually fire an Income webhook
      tags:
        - plaid
  /sandbox/item/fire_webhook:
    post:
      description: |-
        The `/sandbox/item/fire_webhook` endpoint is used to test that code correctly handles webhooks. This endpoint can trigger the following webhooks:

        `DEFAULT_UPDATE`: Transactions update webhook to be fired for a given Sandbox Item. If the Item does not support Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.

        `NEW_ACCOUNTS_AVAILABLE`: Webhook to be fired for a given Sandbox Item created with Account Select v2.

        `AUTH_DATA_UPDATE`: Webhook to be fired for a given Sandbox Item created with Auth as an enabled product.

        `RECURRING_TRANSACTIONS_UPDATE`: Recurring Transactions webhook to be fired for a given Sandbox Item. If the Item does not support Recurring Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.

        `SYNC_UPDATES_AVAILABLE`: Transactions webhook to be fired for a given Sandbox Item.  If the Item does not support Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.

        Note that this endpoint is provided for developer ease-of-use and is not required for testing webhooks; webhooks will also fire in Sandbox under the same conditions that they would in Production or Development.
      externalDocs:
        url: /api/sandbox/#sandboxitemfire_webhook
      operationId: sandboxItemFireWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxItemFireWebhookRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 1vwmF5TBQwiqfwP
                    webhook_fired: true
              schema:
                $ref: "#/components/schemas/SandboxItemFireWebhookResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Fire a test webhook
      tags:
        - plaid
  /sandbox/item/reset_login:
    post:
      description: |-
        `/sandbox/item/reset_login/` forces an Item into an `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link's [update mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox environment.  After calling `/sandbox/item/reset_login`, You can then use Plaid Link update mode to restore the Item to a good state. An `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this endpoint, if one is associated with the Item.


        In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.
      externalDocs:
        url: /api/sandbox/#sandboxitemreset_login
      operationId: sandboxItemResetLogin
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxItemResetLoginRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: m8MDnv9okwxFNBV
                    reset_login: true
              schema:
                $ref: "#/components/schemas/SandboxItemResetLoginResponse"
          description: OK
      summary: Force a Sandbox Item into an error state
      tags:
        - plaid
  /sandbox/item/set_verification_status:
    post:
      description: |-
        The `/sandbox/item/set_verification_status` endpoint can be used to change the verification status of an Item in in the Sandbox in order to simulate the Automated Micro-deposit flow.

        Note that not all Plaid developer accounts are enabled for micro-deposit based verification by default. Your account must be enabled for this feature in order to test it in Sandbox. To enable this features or check your status, contact your account manager or [submit a product access Support ticket](https://dashboard.plaid.com/support/new/product-and-development/product-troubleshooting/request-product-access).

        For more information on testing Automated Micro-deposits in Sandbox, see [Auth full coverage testing](https://plaid.com/docs/auth/coverage/testing#).
      externalDocs:
        url: /api/sandbox/#sandboxitemset_verification_status
      operationId: sandboxItemSetVerificationStatus
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxItemSetVerificationStatusRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 1vwmF5TBQwiqfwP
              schema:
                $ref: "#/components/schemas/SandboxItemSetVerificationStatusResponse"
          description: OK
      summary: Set verification status for Sandbox account
      tags:
        - plaid
  /sandbox/oauth/select_accounts:
    post:
      description: Save the selected accounts when connecting to the Platypus Oauth institution
      operationId: sandboxOauthSelectAccounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxOauthSelectAccountsRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SandboxOauthSelectAccountsResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Save the selected accounts when connecting to the Platypus Oauth institution
      tags:
        - plaid
  /sandbox/payment_profile/reset_login:
    post:
      description: |-
        `/sandbox/payment_profile/reset_login/` forces a Payment Profile into a state where the login is no longer valid. This makes it easy to test update mode for Payment Profile in the Sandbox environment.

         After calling `/sandbox/payment_profile/reset_login`, calls to the `/transfer/authorization/create` with the Payment Profile will result in a `decision_rationale` `PAYMENT_PROFILE_LOGIN_REQUIRED`. You can then use update mode for Payment Profile to restore it into a good state.

         In order to invoke this endpoint, you must first [create a Payment Profile](https://plaid.com/docs/transfer/add-to-app/#create-a-payment-profile-optional) and [go through the Link flow](https://plaid.com/docs/transfer/add-to-app/#create-a-link-token).
      externalDocs:
        url: /api/sandbox/#sandboxpayment_profilereset_login
      operationId: sandboxPaymentProfileResetLogin
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxPaymentProfileResetLoginRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: m8MDnv9okwxFNBV
                    reset_login: true
              schema:
                $ref: "#/components/schemas/SandboxPaymentProfileResetLoginResponse"
          description: OK
      summary: Reset the login of a Payment Profile
      tags:
        - plaid
  /sandbox/processor_token/create:
    post:
      description: Use the `/sandbox/processor_token/create` endpoint to create a valid `processor_token` for an arbitrary institution ID and test credentials. The created `processor_token` corresponds to a new Sandbox Item. You can then use this `processor_token` with the `/processor/` API endpoints in Sandbox. You can also use `/sandbox/processor_token/create` with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data.
      externalDocs:
        url: /api/sandbox/#sandboxprocessor_tokencreate
      operationId: sandboxProcessorTokenCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxProcessorTokenCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    processor_token: processor-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d
                    request_id: Aim3b
              schema:
                $ref: "#/components/schemas/SandboxProcessorTokenCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Create a test Item and processor token
      tags:
        - plaid
  /sandbox/public_token/create:
    post:
      description: Use the `/sandbox/public_token/create` endpoint to create a valid `public_token`  for an arbitrary institution ID, initial products, and test credentials. The created `public_token` maps to a new Sandbox Item. You can then call `/item/public_token/exchange` to exchange the `public_token` for an `access_token` and perform all API actions. `/sandbox/public_token/create` can also be used with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data. `/sandbox/public_token/create` cannot be used with OAuth institutions.
      externalDocs:
        url: /api/sandbox/#sandboxpublic_tokencreate
      operationId: sandboxPublicTokenCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxPublicTokenCreateRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    public_token: public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d
                    request_id: Aim3b
              schema:
                $ref: "#/components/schemas/SandboxPublicTokenCreateResponse"
          description: success
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Create a test Item
      tags:
        - plaid
  /sandbox/transfer/fire_webhook:
    post:
      description: Use the `/sandbox/transfer/fire_webhook` endpoint to manually trigger a Transfer webhook in the Sandbox environment.
      externalDocs:
        url: /api/sandbox/#sandboxtransferfire_webhook
      operationId: sandboxTransferFireWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxTransferFireWebhookRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/SandboxTransferFireWebhookResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Manually fire a Transfer webhook
      tags:
        - plaid
  /sandbox/transfer/repayment/simulate:
    post:
      description: Use the `/sandbox/transfer/repayment/simulate` endpoint to trigger the creation of a repayment. As a side effect of calling this route, a repayment is created that includes all unreimbursed returns of guaranteed transfers. If there are no such returns, an 400 error is returned.
      externalDocs:
        url: /api/sandbox/#sandboxtransferrepaymentsimulate
      operationId: sandboxTransferRepaymentSimulate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxTransferRepaymentSimulateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 4vAbY6XyqqoPQLB
              schema:
                $ref: "#/components/schemas/SandboxTransferRepaymentSimulateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Trigger the creation of a repayment
      tags:
        - plaid
  /sandbox/transfer/simulate:
    post:
      description: Use the `/sandbox/transfer/simulate` endpoint to simulate a transfer event in the Sandbox environment.  Note that while an event will be simulated and will appear when using endpoints such as `/transfer/event/sync` or `/transfer/event/list`, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.
      externalDocs:
        url: /api/sandbox/#sandboxtransfersimulate
      operationId: sandboxTransferSimulate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxTransferSimulateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/SandboxTransferSimulateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Simulate a transfer event in Sandbox
      tags:
        - plaid
  /sandbox/transfer/sweep/simulate:
    post:
      description: Use the `/sandbox/transfer/sweep/simulate` endpoint to create a sweep and associated events in the Sandbox environment. Upon calling this endpoint, all `posted` or `pending` transfers with a sweep status of `unswept` will become `swept`, and all `returned` transfers with a sweep status of `swept` will become `return_swept`.
      externalDocs:
        url: /api/sandbox/#sandboxtransfersweepsimulate
      operationId: sandboxTransferSweepSimulate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxTransferSweepSimulateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
                    sweep:
                      amount: "12.34"
                      created: 2020-08-06T17:27:15Z
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      id: d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d
                      iso_currency_code: USD
                      settled: 2020-08-07
              schema:
                $ref: "#/components/schemas/SandboxTransferSweepSimulateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Simulate creating a sweep
      tags:
        - plaid
  /sandbox/transfer/test_clock/advance:
    post:
      description: |-
        Use the `/sandbox/transfer/test_clock/advance` endpoint to advance a `test_clock` in the Sandbox environment.

        A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. A test clock can be advanced by incrementing `virtual_time`, but may never go back to a lower `virtual_time`.

        If a test clock is advanced, we will simulate the changes that ought to occur during the time that elapsed.
        For instance, a client creates a weekly recurring transfer with a test clock set at t. When the client advances the test clock by setting `virtual_time` = t + 15 days, 2 new originations should be created, along with the webhook events.

        The advancement of the test clock from its current `virtual_time` should be limited such that there are no more than 20 originations resulting from the advance operation on each `recurring_transfer` associated with the `test_clock`.
        For instance, if the recurring transfer associated with this test clock originates once every 4 weeks, you can advance the `virtual_time` up to 80 weeks on each API call.
      externalDocs:
        url: /api/sandbox/#sandboxtransfertest_clockadvance
      operationId: sandboxTransferTestClockAdvance
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxTransferTestClockAdvanceRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/SandboxTransferTestClockAdvanceResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Advance a test clock
      tags:
        - plaid
  /sandbox/transfer/test_clock/create:
    post:
      description: |-
        Use the `/sandbox/transfer/test_clock/create` endpoint to create a `test_clock` in the Sandbox environment.

        A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. Test clocks are used for testing recurring transfers in Sandbox.

        A test clock can be associated with up to 5 recurring transfers.
      externalDocs:
        url: /api/sandbox/#sandboxtransfertest_clockcreate
      operationId: sandboxTransferTestClockCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxTransferTestClockCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
                    test_clock:
                      test_clock_id: b33a6eda-5e97-5d64-244a-a9274110151c
                      virtual_time: 2006-01-02T15:04:05Z
              schema:
                $ref: "#/components/schemas/SandboxTransferTestClockCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create a test clock
      tags:
        - plaid
  /sandbox/transfer/test_clock/get:
    post:
      description: Use the `/sandbox/transfer/test_clock/get` endpoint to get a `test_clock` in the Sandbox environment.
      externalDocs:
        url: /api/sandbox/#sandboxtransfertest_clockget
      operationId: sandboxTransferTestClockGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxTransferTestClockGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
                    test_clock:
                      test_clock_id: b33a6eda-5e97-5d64-244a-a9274110151c
                      virtual_time: 2006-01-02T15:04:05Z
              schema:
                $ref: "#/components/schemas/SandboxTransferTestClockGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get a test clock
      tags:
        - plaid
  /sandbox/transfer/test_clock/list:
    post:
      description: Use the `/sandbox/transfer/test_clock/list` endpoint to see a list of all your test clocks in the Sandbox environment, by ascending `virtual_time`. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired test clocks.
      externalDocs:
        url: /api/sandbox/#sandboxtransfertest_clocklist
      operationId: sandboxTransferTestClockList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxTransferTestClockListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
                    test_clocks:
                      - test_clock_id: b33a6eda-5e97-5d64-244a-a9274110151c
                        virtual_time: 2006-01-02T15:04:05Z
                      - test_clock_id: a33a6eda-5e97-5d64-244a-a9274110152d
                        virtual_time: 2006-02-02T15:04:05Z
              schema:
                $ref: "#/components/schemas/SandboxTransferTestClockListResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: List test clocks
      tags:
        - plaid
  /signal/decision/report:
    post:
      description: After calling `/signal/evaluate`, call `/signal/decision/report` to report whether the transaction was initiated. This endpoint will return an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error if called a second time with a different value for `initiated`.
      externalDocs:
        url: /api/products/signal#signaldecisionreport
      operationId: signalDecisionReport
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SignalDecisionReportRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/SignalDecisionReportResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Report whether you initiated an ACH transaction
      tags:
        - plaid
  /signal/evaluate:
    post:
      description: |-
        Use `/signal/evaluate` to evaluate a planned ACH transaction to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.

        In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned. For more information please refer to the error documentation on [Item errors](/docs/errors/item/) and [Link in Update Mode](/docs/link/update-mode/).

        Note: This request may take some time to complete if Signal is being added to an existing Item. This is because Plaid must communicate directly with the institution when retrieving the data for the first time.
      externalDocs:
        url: /api/products/signal#signalevaluate
      operationId: signalEvaluate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SignalEvaluateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    core_attributes:
                      days_since_first_plaid_connection: 510
                      is_savings_or_money_market_account: false
                      plaid_connections_count_30d: 7
                      plaid_connections_count_7d: 6
                      total_plaid_connections_count: 15
                    request_id: mdqfuVxeoza6mhu
                    scores:
                      bank_initiated_return_risk:
                        risk_tier: 7
                        score: 72
                      customer_initiated_return_risk:
                        risk_tier: 1
                        score: 9
              schema:
                $ref: "#/components/schemas/SignalEvaluateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Evaluate a planned ACH transaction
      tags:
        - plaid
  /signal/prepare:
    post:
      description: |-
        When Link is not initialized with Signal, call `/signal/prepare` to opt-in that Item to the Signal data collection process, developing a Signal score.

        If you are using other Plaid products after Link, e.g. Identity or Assets, call `/signal/prepare` after those product calls are complete.

        Example flow: Link is initialized with Auth, call `/auth/get` for the account and routing number, call `/identity/get` to retrieve bank ownership details, then call `/signal/prepare` to begin Signal data collection. Later, once you have obtained details about the proposed transaction from the user, call `/signal/evaluate` for a Signal score. For more information please see [Recommendations for initializing Link with specific product combinations](https://www.plaid.com/docs/link/initializing-products/#recommendations-for-initializing-link-with-specific-product-combinations).
      externalDocs:
        url: /api/products/signal#signalprepare
      operationId: signalPrepare
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SignalPrepareRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/SignalPrepareResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Opt-in an Item to Signal
      tags:
        - plaid
  /signal/return/report:
    post:
      description: Call the `/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.
      externalDocs:
        url: /api/products/signal#signalreturnreport
      operationId: signalReturnReport
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SignalReturnReportRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/SignalReturnReportResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response.
      summary: Report a return for an ACH transaction
      tags:
        - plaid
  /transactions/enrich:
    post:
      description: |-
        The `/transactions/enrich` endpoint enriches raw transaction data generated by your own banking products or retrieved from other non-Plaid sources.

        To request access to Enrich, reach out to your Plaid point of contact or send a note to enrich-feedback@plaid.com
      externalDocs:
        url: /api/products/enrich/#transactionsenrich
      operationId: transactionsEnrich
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransactionsEnrichGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    enriched_transactions:
                      - amount: 72.1
                        description: "PURCHASE WM SUPERCENTER #1700"
                        direction: OUTFLOW
                        enrichments:
                          counterparties:
                            - entity_id: O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM
                              logo_url: https://plaid-merchant-logos.plaid.com/walmart_1100.png
                              name: Walmart
                              type: merchant
                              website: walmart.com
                          entity_id: O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM
                          location:
                            address: 13425 Community Rd
                            city: Poway
                            country: US
                            lat: null
                            lon: null
                            postal_code: "92064"
                            region: CA
                            store_number: "1700"
                          logo_url: https://plaid-merchant-logos.plaid.com/walmart_1100.png
                          merchant_name: Walmart
                          payment_channel: in store
                          personal_finance_category:
                            detailed: GENERAL_MERCHANDISE_SUPERSTORES
                            primary: GENERAL_MERCHANDISE
                          personal_finance_category_icon_url: https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png
                          recurrence:
                            is_recurring: false
                          website: walmart.com
                        id: 6135818adda16500147e7c1d
                        iso_currency_code: USD
                      - amount: 28.34
                        description: DD DOORDASH BURGERKIN 855-123-4567 CA
                        direction: OUTFLOW
                        enrichments:
                          counterparties:
                            - entity_id: YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm
                              logo_url: https://plaid-counterparty-logos.plaid.com/doordash_1.png
                              name: DoorDash
                              type: marketplace
                              website: doordash.com
                            - entity_id: mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1
                              logo_url: https://plaid-merchant-logos.plaid.com/burger_king_155.png
                              name: Burger King
                              type: merchant
                              website: burgerking.com
                          entity_id: mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1
                          location:
                            address: null
                            city: null
                            country: null
                            lat: null
                            lon: null
                            postal_code: null
                            region: null
                            store_number: null
                          logo_url: https://plaid-merchant-logos.plaid.com/burger_king_155.png
                          merchant_name: Burger King
                          payment_channel: online
                          personal_finance_category:
                            detailed: FOOD_AND_DRINK_FAST_FOOD
                            primary: FOOD_AND_DRINK
                          personal_finance_category_icon_url: https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png
                          recurrence:
                            is_recurring: false
                          website: burgerking.com
                        id: 3958434bhde9384bcmeo3401
                        iso_currency_code: USD
                    request_id: Wvhy9PZHQLV8njG
              schema:
                $ref: "#/components/schemas/TransactionsEnrichGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Enrich locally-held transaction data
      tags:
        - plaid
  /transactions/get:
    post:
      description: |-
        The `/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). For transaction history from investments accounts, use the [Investments endpoint](https://plaid.com/docs/api/products/investments/) instead. Transaction data is standardized across financial institutions, and in many cases transactions are linked to a clean name, entity type, location, and category. Similarly, account data is standardized and returned with a clean name, number, balance, and other meta information where available.

        Transactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.  Transactions are not immutable and can also be removed altogether by the institution; a removed transaction will no longer appear in `/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).

        Due to the potentially large number of transactions associated with an Item, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.

        Data returned by `/transactions/get` will be the data available for the Item as of the most recent successful check for new transactions. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. An Item's `status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, you can use the `/transactions/refresh` endpoint.

        Note that data may not be immediately available to `/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/transactions/get`, if it wasn't. To be alerted when transaction data is ready to be fetched, listen for the [`INITIAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#initial_update) and [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhooks. If no transaction history is ready when `/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
      externalDocs:
        url: /api/products/transactions/#transactionsget
      operationId: transactionsGet
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransactionsGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
                        balances:
                          available: 110
                          current: 110
                          iso_currency_code: USD
                          limit: null
                          unofficial_currency_code: null
                        mask: "0000"
                        name: Plaid Checking
                        official_name: Plaid Gold Standard 0% Interest Checking
                        subtype: checking
                        type: depository
                    item:
                      available_products:
                        - balance
                        - identity
                        - investments
                      billed_products:
                        - assets
                        - auth
                        - liabilities
                        - transactions
                      consent_expiration_time: null
                      error: null
                      institution_id: ins_3
                      item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: 45QSn
                    total_transactions: 1
                    transactions:
                      - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
                        account_owner: null
                        amount: 2307.21
                        authorized_date: 2017-01-27
                        authorized_datetime: 2017-01-27T10:34:50Z
                        category:
                          - Shops
                          - Computers and Electronics
                        category_id: "19013000"
                        check_number: null
                        date: 2017-01-29
                        datetime: 2017-01-27T11:00:00Z
                        iso_currency_code: USD
                        location:
                          address: 300 Post St
                          city: San Francisco
                          country: US
                          lat: 40.740352
                          lon: -74.001761
                          postal_code: "94108"
                          region: CA
                          store_number: "1235"
                        merchant_name: Apple
                        name: Apple Store
                        payment_channel: in store
                        payment_meta:
                          by_order_of: null
                          payee: null
                          payer: null
                          payment_method: null
                          payment_processor: null
                          ppd_id: null
                          reason: null
                          reference_number: null
                        pending: false
                        pending_transaction_id: null
                        transaction_code: null
                        transaction_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje
                        transaction_type: place
                        unofficial_currency_code: null
              schema:
                $ref: "#/components/schemas/TransactionsGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get transaction data
      tags:
        - plaid
  /transactions/recurring/deactivate: {}
  /transactions/recurring/get:
    post:
      description: |-
        The `/transactions/recurring/get` endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user’s checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.

        This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.

        This endpoint can only be called on an Item that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/transactions/get` or `/transactions/sync`). Once all historical transactions have been fetched, call `/transactions/recurring/get` to receive the Recurring Transactions streams and subscribe to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook. To know when historical transactions have been fetched, if you are using `/transactions/sync` listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete) webhook and check that the `historical_update_complete` field in the payload is `true`. If using `/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.

        After the initial call, you can call `/transactions/recurring/get` endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the [`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update) webhook to be notified when new updates are available.
      externalDocs:
        url: /api/products/transactions/#transactionsrecurringget
      operationId: transactionsRecurringGet
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransactionsRecurringGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    inflow_streams:
                      - account_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje
                        average_amount:
                          amount: -800
                          iso_currency_code: USD
                          unofficial_currency_code: null
                        category:
                          - Transfer
                          - Payroll
                        category_id: "21009000"
                        description: Platypus Payroll
                        first_date: 2022-02-28
                        frequency: SEMI_MONTHLY
                        is_active: true
                        last_amount:
                          amount: -1000
                          iso_currency_code: USD
                          unofficial_currency_code: null
                        last_date: 2022-04-30
                        merchant_name: null
                        personal_finance_category:
                          detailed: INCOME_WAGES
                          primary: INCOME
                        status: MATURE
                        stream_id: no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc
                        transaction_ids:
                          - nkeaNrDGrhdo6c4qZWDA8ekuIPuJ4Avg5nKfw
                          - EfC5ekksdy30KuNzad2tQupW8WIPwvjXGbGHL
                          - ozfvj3FFgp6frbXKJGitsDzck5eWQH7zOJBYd
                          - QvdDE8AqVWo3bkBZ7WvCd7LskxVix8Q74iMoK
                          - uQozFPfMzibBouS9h9tz4CsyvFll17jKLdPAF
                    outflow_streams:
                      - account_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff
                        average_amount:
                          amount: 85
                          iso_currency_code: USD
                          unofficial_currency_code: null
                        category:
                          - Service
                          - Utilities
                          - Electric
                        category_id: "18068005"
                        description: ConEd Bill Payment
                        first_date: 2022-02-04
                        frequency: MONTHLY
                        is_active: true
                        last_amount:
                          amount: 100
                          iso_currency_code: USD
                          unofficial_currency_code: null
                        last_date: 2022-05-02
                        merchant_name: ConEd
                        personal_finance_category:
                          detailed: RENT_AND_UTILITIES_GAS_AND_ELECTRICITY
                          primary: RENT_AND_UTILITIES
                        status: MATURE
                        stream_id: no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nd
                        transaction_ids:
                          - yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0
                          - HPDnUVgI5Pa0YQSl0rxwYRwVXeLyJXTWDAvpR
                          - jEPoSfF8xzMClE9Ohj1he91QnvYoSdwg7IT8L
                          - CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l
                      - account_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff
                        average_amount:
                          amount: 120
                          iso_currency_code: USD
                          unofficial_currency_code: null
                        category:
                          - Shops
                          - Warehouses and Wholesale Stores
                        category_id: "19051000"
                        description: Costco Annual Membership
                        first_date: 2022-01-23
                        frequency: ANNUALLY
                        is_active: true
                        last_amount:
                          amount: 120
                          iso_currency_code: USD
                          unofficial_currency_code: null
                        last_date: 2023-01-22
                        merchant_name: Costco
                        personal_finance_category:
                          detailed: GENERAL_MERCHANDISE_SUPERSTORES
                          primary: GENERAL_MERCHANDISE
                        status: MATURE
                        stream_id: SrBNJZDuUMweodmPmSOeOImwsWt53ZXfJQAfC
                        transaction_ids:
                          - yqEBJ72cS4jFwcpxJcDuQr94oAQ1R1lMC33D4
                          - Kz5Hm3cZCgpn4tMEKUGAGD6kAcxMBsEZDSwJJ
                    request_id: tbFyCEqkU775ZGG
                    updated_datetime: 2022-05-01T00:00:00Z
              schema:
                $ref: "#/components/schemas/TransactionsRecurringGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Fetch recurring transaction streams
      tags:
        - plaid
  /transactions/refresh:
    post:
      description: |-
        `/transactions/refresh` is an optional endpoint for users of the Transactions product. It initiates an on-demand extraction to fetch the newest transactions for an Item. This on-demand extraction takes place in addition to the periodic extractions that automatically occur multiple times a day for any Transactions-enabled Item. If changes to transactions are discovered after calling `/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/transactions/sync` and `/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/transactions/get` or `/transactions/sync`. Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) and will result in a `PRODUCT_NOT_SUPPORTED` error if called on an Item from that institution.

        `/transactions/refresh` is offered as an add-on to Transactions and has a separate [fee model](/docs/account/billing/#per-request-flat-fee). To request access to this endpoint, submit a [product access request](https://dashboard.plaid.com/team/products) or contact your Plaid account manager.
      externalDocs:
        url: /api/products/transactions/#transactionsrefresh
      operationId: transactionsRefresh
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransactionsRefreshRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 1vwmF5TBQwiqfwP
              schema:
                $ref: "#/components/schemas/TransactionsRefreshResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Refresh transaction data
      tags:
        - plaid
  /transactions/sync:
    post:
      description: |-
        This endpoint replaces `/transactions/get` and its associated webhooks for most common use-cases.

        The `/transactions/sync` endpoint allows developers to subscribe to all transactions associated with an Item and get updates synchronously in a stream-like manner, using a cursor to track which updates have already been seen. `/transactions/sync` provides the same functionality as `/transactions/get` and can be used instead of `/transactions/get` to simplify the process of tracking transactions updates.

        This endpoint provides user-authorized transaction data for `credit`, `depository`, and some loan-type accounts (only those with account subtype `student`; coverage may be limited). For transaction history from `investments` accounts, use `/investments/transactions/get` instead.

        Returned transactions data is grouped into three types of update, indicating whether the transaction was added, removed, or modified since the last call to the API.

        In the first call to `/transactions/sync` for an Item, the endpoint will return all historical transactions data associated with that Item up until the time of the API call (as "adds"), which then generates a `next_cursor` for that Item. In subsequent calls, send the `next_cursor` to receive only the changes that have occurred since the previous call.

        Due to the potentially large number of transactions associated with an Item, results are paginated. The `has_more` field specifies if additional calls are necessary to fetch all available transaction updates. Call `/transactions/sync` with the new cursor, pulling all updates, until `has_more` is `false`.

        When retrieving paginated updates, track both the `next_cursor` from the latest response and the original cursor from the first call in which `has_more` was `true`; if a call to `/transactions/sync` fails when retrieving a paginated update, which can occur as a result of the [`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination) error, the entire pagination request loop must be restarted beginning with the cursor for the first page of the update, rather than retrying only the single request that failed.

        Whenever new or updated transaction data becomes available, `/transactions/sync` will provide these updates. Plaid typically checks for new data multiple times a day, but these checks may occur less frequently, such as once a day, depending on the institution. An Item's `status.transactions.last_successful_update` field will show the timestamp of the most recent successful update. To force Plaid to check for new transactions, use the `/transactions/refresh` endpoint.

        Note that for newly created Items, data may not be immediately available to `/transactions/sync`. Plaid begins preparing transactions data when the Item is created, but the process can take anywhere from a few seconds to several minutes to complete, depending on the number of transactions available.

        To be alerted when new data is available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.
      externalDocs:
        url: /api/products/transactions/#transactionssync
      operationId: transactionsSync
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransactionsSyncRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    added:
                      - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
                        account_owner: null
                        amount: 2307.21
                        authorized_date: 2022-02-03
                        authorized_datetime: 2022-02-03T10:34:50Z
                        category:
                          - Shops
                          - Computers and Electronics
                        category_id: "19013000"
                        check_number: null
                        date: 2022-02-03
                        datetime: 2022-02-03T11:00:00Z
                        iso_currency_code: USD
                        location:
                          address: 300 Post St
                          city: San Francisco
                          country: US
                          lat: 40.740352
                          lon: -74.001761
                          postal_code: "94108"
                          region: CA
                          store_number: "1235"
                        merchant_name: Apple
                        name: Apple Store
                        payment_channel: in store
                        payment_meta:
                          by_order_of: null
                          payee: null
                          payer: null
                          payment_method: null
                          payment_processor: null
                          ppd_id: null
                          reason: null
                          reference_number: null
                        pending: false
                        pending_transaction_id: null
                        transaction_code: null
                        transaction_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje
                        unofficial_currency_code: null
                    has_more: false
                    modified:
                      - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
                        account_owner: null
                        amount: 98.05
                        authorized_date: 2022-02-28
                        authorized_datetime: 2022-02-28T10:34:50Z
                        category:
                          - Service
                          - Utilities
                          - Electric
                        category_id: "18068005"
                        check_number: null
                        date: 2022-02-28
                        datetime: 2022-02-28T11:00:00Z
                        iso_currency_code: USD
                        location:
                          address: null
                          city: null
                          country: null
                          lat: null
                          lon: null
                          postal_code: null
                          region: null
                          store_number: null
                        merchant_name: ConEd
                        name: ConEd Bill Payment
                        payment_channel: online
                        payment_meta:
                          by_order_of: null
                          payee: null
                          payer: null
                          payment_method: null
                          payment_processor: null
                          ppd_id: null
                          reason: null
                          reference_number: null
                        pending: false
                        pending_transaction_id: null
                        transaction_code: null
                        transaction_id: yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0
                        unofficial_currency_code: null
                    next_cursor: tVUUL15lYQN5rBnfDIc1I8xudpGdIlw9nsgeXWvhOfkECvUeR663i3Dt1uf/94S8ASkitgLcIiOSqNwzzp+bh89kirazha5vuZHBb2ZA5NtCDkkV
                    removed:
                      - transaction_id: CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l
                    request_id: 45QSn
              schema:
                $ref: "#/components/schemas/TransactionsSyncResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get incremental transaction updates on an Item
      tags:
        - plaid
  /transfer/authorization/create:
    post:
      description: |-
        Use the `/transfer/authorization/create` endpoint to determine transfer failure risk.

        In Plaid's Sandbox environment the decisions will be returned as follows:

          - To approve a transfer with null rationale code, make an authorization request with an `amount` less than the available balance in the account.

          - To approve a transfer with the rationale code `MANUALLY_VERIFIED_ITEM`, create an Item in Link through the [Same Day Micro-deposits flow](https://plaid.com/docs/auth/coverage/testing/#testing-same-day-micro-deposits).

          - To approve a transfer with the rationale code `ITEM_LOGIN_REQUIRED`, [reset the login for an Item](https://plaid.com/docs/sandbox/#item_login_required).

          - To decline a transfer with the rationale code `NSF`, the available balance on the account must be less than the authorization `amount`. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.

          - To decline a transfer with the rationale code `RISK`, the available balance on the account must be exactly $0. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.

        `device.ip_address`, `device.user_agent` are required fields.

        For [Guarantee](https://www.plaid.com/docs//transfer/guarantee/), the following fields are required : `idempotency_key`, `user.phone_number` (optional if `email_address` provided), `user.email_address` (optional if `phone_number` provided), `device.ip_address`, `device.user_agent`, and `user_present`.
      externalDocs:
        url: /api/products/transfer/#transferauthorizationcreate
      operationId: transferAuthorizationCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferAuthorizationCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    authorization:
                      created: 2020-08-06T17:27:15Z
                      decision: approved
                      decision_rationale: null
                      guarantee_decision: GUARANTEED
                      guarantee_decision_rationale: null
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      proposed_transfer:
                        account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                        ach_class: ppd
                        amount: "12.34"
                        funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                        iso_currency_code: USD
                        network: ach
                        origination_account_id: ""
                        originator_client_id: null
                        type: credit
                        user:
                          address:
                            city: San Francisco
                            country: US
                            postal_code: "94053"
                            region: CA
                            street: 123 Main St.
                          email_address: acharleston@email.com
                          legal_name: Anne Charleston
                          phone_number: 510-555-0128
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferAuthorizationCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create a transfer authorization
      tags:
        - plaid
  /transfer/cancel:
    post:
      description: Use the `/transfer/cancel` endpoint to cancel a transfer.  A transfer is eligible for cancellation if the `cancellable` property returned by `/transfer/get` is `true`.
      externalDocs:
        url: /api/products/transfer/#transfercancel
      operationId: transferCancel
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferCancelRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferCancelResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Cancel a transfer
      tags:
        - plaid
  /transfer/capabilities/get:
    post:
      description: Use the `/transfer/capabilities/get` endpoint to determine the RTP eligibility information of a transfer.
      externalDocs:
        url: /api/products/transfer/#transfercapabilitiesget
      operationId: transferCapabilitiesGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferCapabilitiesGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    institution_supported_networks:
                      rtp:
                        credit: true
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferCapabilitiesGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get RTP eligibility information of a transfer
      tags:
        - plaid
  /transfer/configuration/get:
    post:
      description: Use the `/transfer/configuration/get` endpoint to view your transfer product configurations.
      externalDocs:
        url: /api/products/transfer/#transferconfigurationget
      operationId: transferConfigurationGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferConfigurationGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    iso_currency_code: USD
                    max_daily_credit_amount: "50000.00"
                    max_daily_debit_amount: "50000.00"
                    max_monthly_amount: "500000.00"
                    max_single_transfer_amount: "1000.00"
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferConfigurationGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get transfer product configuration
      tags:
        - plaid
  /transfer/create:
    post:
      description: Use the `/transfer/create` endpoint to initiate a new transfer.
      externalDocs:
        url: /api/products/transfer/#transfercreate
      operationId: transferCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
                    transfer:
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      ach_class: ppd
                      amount: "12.34"
                      cancellable: true
                      created: 2020-08-06T17:27:15Z
                      description: payment
                      expected_settlement_date: 2020-08-04
                      failure_reason: null
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      guarantee_decision: GUARANTEED
                      guarantee_decision_rationale: null
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      iso_currency_code: USD
                      metadata:
                        key1: value1
                        key2: value2
                      network: ach
                      origination_account_id: ""
                      originator_client_id: 569ed2f36b3a3a021713abc1
                      recurring_transfer_id: null
                      refunds: []
                      standard_return_window: 2020-08-07
                      status: pending
                      type: credit
                      unauthorized_return_window: 2020-10-07
                      user:
                        address:
                          city: San Francisco
                          country: US
                          postal_code: "94053"
                          region: CA
                          street: 123 Main St.
                        email_address: acharleston@email.com
                        legal_name: Anne Charleston
                        phone_number: 510-555-0128
              schema:
                $ref: "#/components/schemas/TransferCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create a transfer
      tags:
        - plaid
  /transfer/event/list:
    post:
      description: Use the `/transfer/event/list` endpoint to get a list of transfer events based on specified filter criteria.
      externalDocs:
        url: /api/products/transfer/#transfereventlist
      operationId: transferEventList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferEventListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
                    transfer_events:
                      - account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                        event_id: 1
                        event_type: posted
                        failure_reason: null
                        funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                        origination_account_id: ""
                        originator_client_id: 569ed2f36b3a3a021713abc1
                        refund_id: null
                        sweep_amount: null
                        sweep_id: null
                        timestamp: 2019-12-09T17:27:15Z
                        transfer_amount: "12.34"
                        transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                        transfer_type: credit
              schema:
                $ref: "#/components/schemas/TransferEventListResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: List transfer events
      tags:
        - plaid
  /transfer/event/sync:
    post:
      description: "`/transfer/event/sync` allows you to request up to the next 25 transfer events that happened after a specific `event_id`. Use the `/transfer/event/sync` endpoint to guarantee you have seen all transfer events. When using Auth with micro-deposit verification enabled, this endpoint can be used to fetch status updates on ACH micro-deposits. For more details, see [micro-deposit events](https://www.plaid.com/docs/auth/coverage/microdeposit-events/)."
      externalDocs:
        url: /api/products/transfer/#transfereventsync
      operationId: transferEventSync
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferEventSyncRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
                    transfer_events:
                      - account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                        event_id: 1
                        event_type: pending
                        failure_reason: null
                        funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                        origination_account_id: ""
                        originator_client_id: null
                        refund_id: null
                        sweep_amount: null
                        sweep_id: null
                        timestamp: 2019-12-09T17:27:15Z
                        transfer_amount: "12.34"
                        transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                        transfer_type: credit
              schema:
                $ref: "#/components/schemas/TransferEventSyncResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Sync transfer events
      tags:
        - plaid
  /transfer/get:
    post:
      description: The `/transfer/get` endpoint fetches information about the transfer corresponding to the given `transfer_id`.
      externalDocs:
        url: /api/products/transfer/#transferget
      operationId: transferGet
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransferGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
                    transfer:
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      ach_class: ppd
                      amount: "12.34"
                      cancellable: true
                      created: 2020-08-06T17:27:15Z
                      description: Desc
                      expected_settlement_date: 2020-08-04
                      failure_reason:
                        ach_return_code: R13
                        description: Invalid ACH routing number
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      guarantee_decision: null
                      guarantee_decision_rationale: null
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      iso_currency_code: USD
                      metadata:
                        key1: value1
                        key2: value2
                      network: ach
                      origination_account_id: ""
                      originator_client_id: null
                      recurring_transfer_id: null
                      refunds: []
                      standard_return_window: 2020-08-07
                      status: pending
                      type: credit
                      unauthorized_return_window: 2020-10-07
                      user:
                        address:
                          city: San Francisco
                          country: US
                          postal_code: "94053"
                          region: CA
                          street: 123 Main St.
                        email_address: acharleston@email.com
                        legal_name: Anne Charleston
                        phone_number: 510-555-0128
              schema:
                $ref: "#/components/schemas/TransferGetResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Retrieve a transfer
      tags:
        - plaid
  /transfer/intent/create:
    post:
      description: Use the `/transfer/intent/create` endpoint to generate a transfer intent object and invoke the Transfer UI.
      externalDocs:
        url: /api/products/transfer/#transferintentcreate
      operationId: transferIntentCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferIntentCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
                    transfer_intent:
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      ach_class: ppd
                      amount: "12.34"
                      created: 2020-08-06T17:27:15Z
                      description: Desc
                      funding_account_id: 9853defc-e703-463d-86b1-dc0607a45359
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      iso_currency_code: USD
                      metadata:
                        key1: value1
                        key2: value2
                      mode: PAYMENT
                      origination_account_id: 9853defc-e703-463d-86b1-dc0607a45359
                      status: PENDING
                      user:
                        address:
                          city: San Francisco
                          country: US
                          postal_code: "94103"
                          region: CA
                          street: 100 Market Street
                        email_address: acharleston@email.com
                        legal_name: Anne Charleston
                        phone_number: 123-456-7890
              schema:
                $ref: "#/components/schemas/TransferIntentCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create a transfer intent object to invoke the Transfer UI
      tags:
        - plaid
  /transfer/intent/get:
    post:
      description: Use the `/transfer/intent/get` endpoint to retrieve more information about a transfer intent.
      externalDocs:
        url: /api/products/transfer/#transferintentget
      operationId: transferIntentGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferIntentGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
                    transfer_intent:
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      ach_class: ppd
                      amount: "12.34"
                      authorization_decision: APPROVED
                      authorization_decision_rationale: null
                      created: 2019-12-09T17:27:15Z
                      description: Desc
                      failure_reason: null
                      funding_account_id: 9853defc-e703-463d-86b1-dc0607a45359
                      guarantee_decision: null
                      guarantee_decision_rationale: null
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      iso_currency_code: USD
                      metadata:
                        key1: value1
                        key2: value2
                      mode: DISBURSEMENT
                      origination_account_id: 9853defc-e703-463d-86b1-dc0607a45359
                      status: SUCCEEDED
                      transfer_id: 590ecd12-1dcc-7eae-4ad6-c28d1ec90df2
                      user:
                        address:
                          city: San Francisco
                          country: US
                          postal_code: "94053"
                          region: California
                          street: 123 Main St.
                        email_address: acharleston@email.com
                        legal_name: Anne Charleston
                        phone_number: 510-555-0128
              schema:
                $ref: "#/components/schemas/TransferIntentGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Retrieve more information about a transfer intent
      tags:
        - plaid
  /transfer/list:
    post:
      description: |
        Use the `/transfer/list` endpoint to see a list of all your transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired transfers.
      externalDocs:
        url: /api/products/transfer/#transferlist
      operationId: transferList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
                    transfers:
                      - account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                        ach_class: ppd
                        amount: "12.34"
                        cancellable: true
                        created: 2019-12-09T17:27:15Z
                        description: Desc
                        expected_settlement_date: 2020-08-04
                        failure_reason:
                          ach_return_code: R13
                          description: Invalid ACH routing number
                        funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                        guarantee_decision: null
                        guarantee_decision_rationale: null
                        id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                        iso_currency_code: USD
                        metadata:
                          key1: value1
                          key2: value2
                        network: ach
                        origination_account_id: ""
                        originator_client_id: null
                        recurring_transfer_id: null
                        refunds: []
                        standard_return_window: 2020-08-07
                        status: pending
                        type: credit
                        unauthorized_return_window: 2020-10-07
                        user:
                          address:
                            city: San Francisco
                            country: US
                            postal_code: "94053"
                            region: CA
                            street: 123 Main St.
                          email_address: acharleston@email.com
                          legal_name: Anne Charleston
                          phone_number: 510-555-0128
              schema:
                $ref: "#/components/schemas/TransferListResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: List transfers
      tags:
        - plaid
  /transfer/metrics/get:
    post:
      description: Use the `/transfer/metrics/get` endpoint to view your transfer product usage metrics.
      externalDocs:
        url: /api/products/transfer/#transfermetricsget
      operationId: transferMetricsGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferMetricsGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    daily_credit_transfer_volume: "567.89"
                    daily_debit_transfer_volume: "1234.56"
                    iso_currency_code: USD
                    monthly_transfer_volume: "12345.67"
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferMetricsGetResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get transfer product usage metrics
      tags:
        - plaid
  /transfer/migrate_account:
    post:
      description: As an alternative to adding Items via Link, you can also use the `/transfer/migrate_account` endpoint to migrate known account and routing numbers to Plaid Items.  Note that Items created in this way are not compatible with endpoints for other products, such as `/accounts/balance/get`, and can only be used with Transfer endpoints.  If you require access to other endpoints, create the Item through Link instead.  Access to `/transfer/migrate_account` is not enabled by default; to obtain access, contact your Plaid Account Manager.
      externalDocs:
        url: /api/products/transfer/#transfermigrate_account
      operationId: transferMigrateAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferMigrateAccountRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    access_token: access-sandbox-435beced-94e8-4df3-a181-1dde1cfa19f0
                    account_id: zvyDgbeeDluZ43AJP6m5fAxDlgoZXDuoy5gjN
                    request_id: mdqfuVxeoza6mhu
              schema:
                $ref: "#/components/schemas/TransferMigrateAccountResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Migrate account into Transfers
      tags:
        - plaid
  /transfer/originator/create:
    post:
      description: Use the `/transfer/originator/create` endpoint to create a new originator and return an `originator_client_id`.
      externalDocs:
        url: /api/products/transfer/#transferoriginatorcreate
      operationId: transferOriginatorCreate
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransferOriginatorCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    company_name: Marketplace of Shannon
                    originator_client_id: 6a65dh3d1h0d1027121ak184
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/TransferOriginatorCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create a new originator
      tags:
        - plaid
  /transfer/originator/get:
    post:
      description: The `/transfer/originator/get` endpoint gets status updates for an originator's onboarding process. This information is also available via the Transfer page on the Plaid dashboard.
      externalDocs:
        url: /api/products/transfer/#transferoriginatorget
      operationId: transferOriginatorGet
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferOriginatorGetRequest"
          examples: {}
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    originator:
                      client_id: 6a65dh3d1h0d1027121ak184
                      company_name: Plaid
                      transfer_diligence_status: approved
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferOriginatorGetResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get status of an originator's onboarding
      tags:
        - plaid
  /transfer/originator/list:
    post:
      description: The `/transfer/originator/list` endpoint gets status updates for all of your originators' onboarding. This information is also available via the Plaid dashboard.
      externalDocs:
        url: /api/products/transfer/#transferoriginatorlist
      operationId: transferOriginatorList
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransferOriginatorListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    originators:
                      - client_id: 6a65dh3d1h0d1027121ak184
                        transfer_diligence_status: approved
                      - client_id: 8g89as4d2k1d9852938ba019
                        transfer_diligence_status: denied
                    request_id: 4zlKapIkTm8p5KM
              schema:
                $ref: "#/components/schemas/TransferOriginatorListResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Get status of all originators' onboarding
      tags:
        - plaid
  /transfer/questionnaire/create:
    post:
      description: The `/transfer/questionnaire/create` endpoint generates a Plaid-hosted onboarding UI URL. Redirect the originator to this URL to provide their due diligence information and agree to Plaid’s terms for ACH money movement.
      externalDocs:
        url: /api/products/transfer/#transferquestionnairecreate
      operationId: transferQuestionnaireCreate
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransferQuestionnaireCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    onboarding_url: https://plaid.com/originator/hIFGXx1zM5pFerygu7lw
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferQuestionnaireCreateResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Generate a Plaid-hosted onboarding UI URL.
      tags:
        - plaid
  /transfer/recurring/cancel:
    post:
      description: Use the `/transfer/recurring/cancel` endpoint to cancel a recurring transfer.  Scheduled transfer that hasn't been submitted to bank will be cancelled.
      externalDocs:
        url: /api/products/transfer/#transferrecurringcancel
      operationId: transferRecurringCancel
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferRecurringCancelRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferRecurringCancelResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Cancel a recurring transfer.
      tags:
        - plaid
  /transfer/recurring/create:
    post:
      description: Use the `/transfer/recurring/create` endpoint to initiate a new recurring transfer.
      externalDocs:
        url: /api/products/transfer/#transferrecurringcreate
      operationId: transferRecurringCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferRecurringCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    decision: approved
                    decision_rationale: null
                    recurring_transfer:
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      ach_class: ppd
                      amount: "12.34"
                      created: 2022-07-05T12:48:37Z
                      description: payment
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      iso_currency_code: USD
                      network: ach
                      next_origination_date: 2022-10-28
                      origination_account_id: ""
                      recurring_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      schedule:
                        end_date: 2023-10-01
                        interval_count: 1
                        interval_execution_day: 5
                        interval_unit: week
                        start_date: 2022-10-01
                      status: active
                      test_clock_id: b33a6eda-5e97-5d64-244a-a9274110151c
                      transfer_ids: []
                      type: debit
                      user:
                        address:
                          city: San Francisco
                          country: US
                          postal_code: "94053"
                          region: CA
                          street: 123 Main St.
                        email_address: acharleston@email.com
                        legal_name: Anne Charleston
                        phone_number: 510-555-0128
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferRecurringCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create a recurring transfer
      tags:
        - plaid
  /transfer/recurring/get:
    post:
      description: The `/transfer/recurring/get` fetches information about the recurring transfer corresponding to the given `recurring_transfer_id`.
      externalDocs:
        url: /api/products/transfer/#transferrecurringget
      operationId: transferRecurringGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferRecurringGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    recurring_transfer:
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      ach_class: ppd
                      amount: "12.34"
                      created: 2022-07-05T12:48:37Z
                      description: payment
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      iso_currency_code: USD
                      network: ach
                      next_origination_date: 2022-10-28
                      origination_account_id: ""
                      recurring_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      schedule:
                        end_date: 2023-10-01
                        interval_count: 1
                        interval_execution_day: 5
                        interval_unit: week
                        start_date: 2022-10-01
                      status: active
                      test_clock_id: null
                      transfer_ids:
                        - 271ef220-dbf8-caeb-a7dc-a2b3e8a80963
                        - c8dbaf75-2abb-e2dc-4171-12448e13b848
                      type: debit
                      user:
                        address:
                          city: San Francisco
                          country: US
                          postal_code: "94053"
                          region: CA
                          street: 123 Main St.
                        email_address: acharleston@email.com
                        legal_name: Anne Charleston
                        phone_number: 510-555-0128
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferRecurringGetResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Retrieve a recurring transfer
      tags:
        - plaid
  /transfer/recurring/list:
    post:
      description: |
        Use the `/transfer/recurring/list` endpoint to see a list of all your recurring transfers and their statuses. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired recurring transfers.
      externalDocs:
        url: /api/products/transfer/#transferrecurringlist
      operationId: transferRecurringList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferRecurringListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    recurring_transfers:
                      - account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                        ach_class: ppd
                        amount: "12.34"
                        created: 2022-07-05T12:48:37Z
                        description: payment
                        funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                        iso_currency_code: USD
                        network: ach
                        next_origination_date: 2022-10-28
                        origination_account_id: ""
                        recurring_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                        schedule:
                          end_date: 2023-10-01
                          interval_count: 1
                          interval_execution_day: 5
                          interval_unit: week
                          start_date: 2022-10-01
                        status: active
                        test_clock_id: null
                        transfer_ids:
                          - 4242fc8d-3ec6-fb38-fa0c-a8e37d03cd57
                        type: debit
                        user:
                          address:
                            city: San Francisco
                            country: US
                            postal_code: "94053"
                            region: CA
                            street: 123 Main St.
                          email_address: acharleston@email.com
                          legal_name: Anne Charleston
                          phone_number: 510-555-0128
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferRecurringListResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: List recurring transfers
      tags:
        - plaid
  /transfer/refund/cancel:
    post:
      description: Use the `/transfer/refund/cancel` endpoint to cancel a refund.  A refund is eligible for cancellation if it has not yet been submitted to the payment network.
      externalDocs:
        url: /api/products/transfer/#transferrefundcancel
      operationId: transferRefundCancel
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferRefundCancelRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferRefundCancelResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Cancel a refund
      tags:
        - plaid
  /transfer/refund/create:
    post:
      description: |-
        Use the `/transfer/refund/create` endpoint to create a refund for a transfer. A transfer can be refunded if the transfer was initiated in the past 180 days.

        Processing of the refund will not occur until at least 3 business days following the transfer's settlement date, plus any hold/settlement delays. This 3-day window helps better protect your business from regular ACH returns. Consumer initiated returns (unauthorized returns) could still happen for about 60 days from the settlement date. If the original transfer is canceled, returned or failed, all pending refunds will automatically be canceled. Processed refunds cannot be revoked.
      externalDocs:
        url: /api/products/transfer/#transferrefundcreate
      operationId: transferRefundCreate
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransferRefundCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    refund:
                      amount: "12.34"
                      created: 2020-08-06T17:27:15Z
                      id: 667af684-9ee1-4f5f-862a-633ec4c545cc
                      status: pending
                      transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferRefundCreateResponse"
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Create a refund
      tags:
        - plaid
  /transfer/refund/get:
    post:
      description: The `/transfer/refund/get` endpoint fetches information about the refund corresponding to the given `refund_id`.
      externalDocs:
        url: /api/products/transfer/#transferrefundget
      operationId: transferRefundGet
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransferRefundGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    refund:
                      amount: "12.34"
                      created: 2020-08-06T17:27:15Z
                      id: 667af684-9ee1-4f5f-862a-633ec4c545cc
                      status: pending
                      transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                    request_id: saKrIBuEB9qJZno
              schema:
                $ref: "#/components/schemas/TransferRefundGetResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Retrieve a refund
      tags:
        - plaid
  /transfer/repayment/list:
    post:
      description: The `/transfer/repayment/list` endpoint fetches repayments matching the given filters. Repayments are returned in reverse-chronological order (most recent first) starting at the given `start_time`.
      externalDocs:
        url: /api/products/transfer/#transferrepaymentlist
      operationId: transferRepaymentList
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  count: 1
                  start_time: 2022-01-10T12:34:56Z
            schema:
              $ref: "#/components/schemas/TransferRepaymentListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    repayments:
                      - amount: "12.34"
                        created: 2019-12-09T12:34:56Z
                        iso_currency_code: USD
                        repayment_id: d4bfce70-2470-4298-ae87-5e9b3e18bfaf
                    request_id: h0dvmW8g4r2Z0KX
              schema:
                $ref: "#/components/schemas/TransferRepaymentListResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Lists historical repayments
      tags:
        - plaid
  /transfer/repayment/return/list:
    post:
      description: The `/transfer/repayment/return/list` endpoint retrieves the set of returns that were batched together into the specified repayment. The sum of amounts of returns retrieved by this request equals the amount of the repayment.
      externalDocs:
        url: /api/products/transfer/#transferrepaymentreturnlist
      operationId: transferRepaymentReturnList
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                value:
                  count: 1
                  repayment_id: d4bfce70-2470-4298-ae87-5e9b3e18bfaf
                  start_time: 2022-01-10T12:34:56Z
            schema:
              $ref: "#/components/schemas/TransferRepaymentReturnListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    repayment_returns:
                      - amount: "12.34"
                        event_id: 5
                        iso_currency_code: USD
                        transfer_id: d4bfce70-2470-4298-ae87-5e9b3e18bfaf
                    request_id: Ay70UHyBmbY0wUf
              schema:
                $ref: "#/components/schemas/TransferRepaymentReturnListResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: List the returns included in a repayment
      tags:
        - plaid
  /transfer/sweep/get:
    post:
      description: The `/transfer/sweep/get` endpoint fetches a sweep corresponding to the given `sweep_id`.
      externalDocs:
        url: /api/products/transfer/#transfersweepget
      operationId: transferSweepGet
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransferSweepGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
                    sweep:
                      amount: "12.34"
                      created: 2020-08-06T17:27:15Z
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      id: 8c2fda9a-aa2f-4735-a00f-f4e0d2d2faee
                      iso_currency_code: USD
                      settled: 2020-08-07
              schema:
                $ref: "#/components/schemas/TransferSweepGetResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: Retrieve a sweep
      tags:
        - plaid
  /transfer/sweep/list:
    post:
      description: The `/transfer/sweep/list` endpoint fetches sweeps matching the given filters.
      externalDocs:
        url: /api/products/transfer/#transfersweeplist
      operationId: transferSweepList
      parameters: []
      requestBody:
        content:
          application/json:
            examples: {}
            schema:
              $ref: "#/components/schemas/TransferSweepListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
                    sweeps:
                      - amount: "-12.34"
                        created: 2019-12-09T17:27:15Z
                        funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                        id: d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d
                        iso_currency_code: USD
                        originator_client_id: null
                        settled: 2019-12-10
              schema:
                $ref: "#/components/schemas/TransferSweepListResponse"
          description: OK
          headers: {}
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PlaidError"
          description: Error response
      summary: List sweeps
      tags:
        - plaid
  /user/create:
    post:
      description: |-
        This endpoint should be called for each of your end users before they begin a Plaid income flow. This provides you a single token to access all income data associated with the user. You should only create one per end user.

        If you call the endpoint multiple times with the same `client_user_id`, the first creation call will succeed and the rest will fail with an error message indicating that the user has been created for the given `client_user_id`.

        Ensure that you store the `user_token` along with your user's identifier in your database, as it is not possible to retrieve a previously created `user_token`.
      externalDocs:
        url: /api/products/income/#usercreate
      operationId: userCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: Aim3b
                    user_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
                    user_token: user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d
              schema:
                $ref: "#/components/schemas/UserCreateResponse"
          description: OK
      summary: Create user
      tags:
        - plaid
  /wallet/create:
    post:
      description: Create an e-wallet. The response is the newly created e-wallet object.
      externalDocs:
        url: /api/products/virtual-accounts/#walletcreate
      operationId: walletCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WalletCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    balance:
                      current: 123.12
                      iso_currency_code: GBP
                    numbers:
                      bacs:
                        account: "12345678"
                        sort_code: "123456"
                    recipient_id: recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6
                    request_id: 4zlKapIkTm8p5KM
                    status: ACTIVE
                    wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
              schema:
                $ref: "#/components/schemas/WalletCreateResponse"
          description: OK
      summary: Create an e-wallet
      tags:
        - plaid
  /wallet/get:
    post:
      description: Fetch an e-wallet. The response includes the current balance.
      externalDocs:
        url: /api/products/virtual-accounts/#walletget
      operationId: walletGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WalletGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    balance:
                      current: 123.12
                      iso_currency_code: GBP
                    numbers:
                      bacs:
                        account: "12345678"
                        sort_code: "123456"
                      international:
                        bic: BUKBGB22
                        iban: GB33BUKB20201555555555
                    recipient_id: recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6
                    request_id: 4zlKapIkTm8p5KM
                    status: ACTIVE
                    wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
                example-2:
                  value:
                    balance:
                      current: 123.12
                      iso_currency_code: EUR
                    numbers:
                      international:
                        bic: ABNANL2A
                        iban: NL91ABNA0417164300
                    recipient_id: recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6
                    request_id: 4zlKapIkTm8p5KM
                    status: ACTIVE
                    wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
              schema:
                $ref: "#/components/schemas/WalletGetResponse"
          description: OK
      summary: Fetch an e-wallet
      tags:
        - plaid
  /wallet/list:
    post:
      description: This endpoint lists all e-wallets in descending order of creation.
      externalDocs:
        url: /api/products/virtual-accounts/#walletlist
      operationId: walletList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WalletListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 4zlKapIkTm8p5KM
                    wallets:
                      - balance:
                          current: 123.12
                          iso_currency_code: GBP
                        numbers:
                          bacs:
                            account: "12345678"
                            sort_code: "123456"
                        recipient_id: recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6
                        status: ACTIVE
                        wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
                      - balance:
                          current: 456.78
                          iso_currency_code: EUR
                        numbers:
                          international:
                            bic: HBUKGB4B
                            iban: GB22HBUK40221241555626
                        recipient_id: recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f7
                        status: ACTIVE
                        wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a999
              schema:
                $ref: "#/components/schemas/WalletListResponse"
          description: OK
      summary: Fetch a list of e-wallets
      tags:
        - plaid
  /wallet/transaction/execute:
    post:
      description: |-
        Execute a transaction using the specified e-wallet.
        Specify the e-wallet to debit from, the counterparty to credit to, the idempotency key to prevent duplicate transactions, the amount and reference for the transaction.
        Transactions will settle in seconds to several days, depending on the underlying payment rail.
      externalDocs:
        url: /api/products/virtual-accounts/#wallettransactionexecute
      operationId: walletTransactionExecute
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WalletTransactionExecuteRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    request_id: 4zlKapIkTm8p5KM
                    status: EXECUTED
                    transaction_id: wallet-transaction-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
              schema:
                $ref: "#/components/schemas/WalletTransactionExecuteResponse"
          description: OK
      summary: Execute a transaction using an e-wallet
      tags:
        - plaid
  /wallet/transaction/get:
    post:
      description: Fetch a specific e-wallet transaction
      externalDocs:
        url: /api/products/virtual-accounts/#wallettransactionget
      operationId: walletTransactionGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WalletTransactionGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    amount:
                      iso_currency_code: GBP
                      value: 123.12
                    counterparty:
                      name: John Smith
                      numbers:
                        bacs:
                          account: "31926819"
                          sort_code: "601613"
                    created_at: 2020-12-02T21:14:54Z
                    last_status_update: 2020-12-02T21:15:01Z
                    reference: Payout 99744
                    request_id: 4zlKapIkTm8p5KM
                    status: EXECUTED
                    transaction_id: wallet-transaction-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3
                    type: PAYOUT
                    wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
                example-2:
                  value:
                    amount:
                      iso_currency_code: EUR
                      value: 456.78
                    counterparty:
                      name: John Smith
                      numbers:
                        international:
                          iban: GB33BUKB20201555555555
                    created_at: 2020-12-02T21:14:54Z
                    last_status_update: 2020-12-02T21:15:01Z
                    reference: Payout 99744
                    request_id: 4zlKapIkTm8p5KM
                    status: EXECUTED
                    transaction_id: wallet-transaction-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3
                    type: PAYOUT
                    wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
              schema:
                $ref: "#/components/schemas/WalletTransactionGetResponse"
          description: OK
      summary: Fetch an e-wallet transaction
      tags:
        - plaid
  /wallet/transaction/list:
    post:
      description: This endpoint lists the latest transactions of the specified e-wallet. Transactions are returned in descending order by the `created_at` time.
      externalDocs:
        url: /api/products/virtual-accounts/#wallettransactionlist
      operationId: walletTransactionList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WalletTransactionListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    next_cursor: YWJjMTIzIT8kKiYoKSctPUB
                    request_id: 4zlKapIkTm8p5KM
                    transactions:
                      - amount:
                          iso_currency_code: GBP
                          value: 123.12
                        counterparty:
                          name: John Smith
                          numbers:
                            bacs:
                              account: "31926819"
                              sort_code: "601613"
                        created_at: 2020-12-02T21:14:54Z
                        last_status_update: 2020-12-02T21:15:01Z
                        reference: Payout 99744
                        status: EXECUTED
                        transaction_id: wallet-transaction-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3
                        type: PAYOUT
                        wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
                      - amount:
                          iso_currency_code: EUR
                          value: 456.78
                        counterparty:
                          name: John Smith
                          numbers:
                            international:
                              iban: GB33BUKB20201555555555
                        created_at: 2020-12-02T21:14:54Z
                        last_status_update: 2020-12-02T21:15:01Z
                        reference: Payout 99744
                        status: EXECUTED
                        transaction_id: wallet-transaction-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3
                        type: PAYOUT
                        wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
              schema:
                $ref: "#/components/schemas/WalletTransactionListResponse"
          description: OK
      summary: List e-wallet transactions
      tags:
        - plaid
  /watchlist_screening/entity/create:
    post:
      description: Create a new entity watchlist screening to check your customer against watchlists defined in the associated entity watchlist program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentitycreate
      operationId: watchlistScreeningEntityCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    assignee: 54350110fedcbaf01234ffee
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    client_user_id: your-db-id-3b24110
                    id: entscr_52xR9LKo77r1Np
                    request_id: saKrIBuEB9qJZng
                    search_terms:
                      country: US
                      document_number: C31195855
                      email_address: user@example.com
                      entity_watchlist_program_id: entprg_2eRPsDnL66rZ7H
                      legal_name: Al-Qaida
                      phone_number: "+14025671234"
                      url: https://example.com
                      version: 1
                    status: cleared
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityCreateResponse"
          description: OK
      summary: Create a watchlist screening for an entity
      tags:
        - plaid
  /watchlist_screening/entity/get:
    post:
      description: Retrieve an entity watchlist screening.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentityget
      operationId: watchlistScreeningEntityGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    assignee: 54350110fedcbaf01234ffee
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    client_user_id: your-db-id-3b24110
                    id: entscr_52xR9LKo77r1Np
                    request_id: saKrIBuEB9qJZng
                    search_terms:
                      country: US
                      document_number: C31195855
                      email_address: user@example.com
                      entity_watchlist_program_id: entprg_2eRPsDnL66rZ7H
                      legal_name: Al-Qaida
                      phone_number: "+14025671234"
                      url: https://example.com
                      version: 1
                    status: cleared
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityGetResponse"
          description: OK
      summary: Get an entity screening
      tags:
        - plaid
  /watchlist_screening/entity/history/list:
    post:
      description: List all changes to the entity watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentityhistorylist
      operationId: watchlistScreeningEntityHistoryList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityHistoryListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    entity_watchlist_screenings:
                      - assignee: 54350110fedcbaf01234ffee
                        audit_trail:
                          dashboard_user_id: 54350110fedcbaf01234ffee
                          source: dashboard
                          timestamp: 2020-07-24T03:26:02Z
                        client_user_id: your-db-id-3b24110
                        id: entscr_52xR9LKo77r1Np
                        search_terms:
                          country: US
                          document_number: C31195855
                          email_address: user@example.com
                          entity_watchlist_program_id: entprg_2eRPsDnL66rZ7H
                          legal_name: Al-Qaida
                          phone_number: "+14025671234"
                          url: https://example.com
                          version: 1
                        status: cleared
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityHistoryListResponse"
          description: OK
      summary: List history for entity watchlist screenings
      tags:
        - plaid
  /watchlist_screening/entity/hit/list:
    post:
      description: List all hits for the entity watchlist screening.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentityhitlist
      operationId: watchlistScreeningEntityHitList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityHitListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    entity_watchlist_screening_hits:
                      - analysis:
                          documents: match
                          email_addresses: match
                          locations: match
                          names: match
                          phone_numbers: match
                          search_terms_version: 1
                          urls: match
                        data:
                          documents:
                            - analysis:
                                summary: match
                              data:
                                number: C31195855
                                type: swift
                          email_addresses:
                            - analysis:
                                summary: match
                              data:
                                email_address: user@example.com
                          locations:
                            - analysis:
                                summary: match
                              data:
                                country: US
                                full: Florida, US
                          names:
                            - analysis:
                                summary: match
                              data:
                                full: Al Qaida
                                is_primary: false
                                weak_alias_determination: none
                          phone_numbers:
                            - analysis:
                                summary: match
                              data:
                                phone_number: "+14025671234"
                                type: phone
                          urls:
                            - analysis:
                                summary: match
                              data:
                                url: https://example.com
                        first_active: 2020-07-24T03:26:02Z
                        historical_since: 2020-07-24T03:26:02Z
                        id: enthit_52xR9LKo77r1Np
                        inactive_since: 2020-07-24T03:26:02Z
                        list_code: EU_CON
                        plaid_uid: uid_3NggckTimGSJHS
                        review_status: pending_review
                        source_uid: 26192ABC
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityHitListResponse"
          description: OK
      summary: List hits for entity watchlist screenings
      tags:
        - plaid
  /watchlist_screening/entity/list:
    post:
      description: List all entity screenings.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentitylist
      operationId: watchlistScreeningEntityList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    entity_watchlist_screenings:
                      - assignee: 54350110fedcbaf01234ffee
                        audit_trail:
                          dashboard_user_id: 54350110fedcbaf01234ffee
                          source: dashboard
                          timestamp: 2020-07-24T03:26:02Z
                        client_user_id: your-db-id-3b24110
                        id: entscr_52xR9LKo77r1Np
                        search_terms:
                          country: US
                          document_number: C31195855
                          email_address: user@example.com
                          entity_watchlist_program_id: entprg_2eRPsDnL66rZ7H
                          legal_name: Al-Qaida
                          phone_number: "+14025671234"
                          url: https://example.com
                          version: 1
                        status: cleared
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityListResponse"
          description: OK
      summary: List entity watchlist screenings
      tags:
        - plaid
  /watchlist_screening/entity/program/get:
    post:
      description: Get an entity watchlist screening program
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentityprogramget
      operationId: watchlistScreeningEntityProgramGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityProgramGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    created_at: 2020-07-24T03:26:02Z
                    id: entprg_2eRPsDnL66rZ7H
                    is_archived: false
                    is_rescanning_enabled: true
                    lists_enabled:
                      - EU_CON
                    name: Sample Program
                    name_sensitivity: balanced
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityProgramGetResponse"
          description: OK
      summary: Get entity watchlist screening program
      tags:
        - plaid
  /watchlist_screening/entity/program/list:
    post:
      description: List all entity watchlist screening programs
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentityprogramlist
      operationId: watchlistScreeningEntityProgramList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityProgramListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    entity_watchlist_programs:
                      - audit_trail:
                          dashboard_user_id: 54350110fedcbaf01234ffee
                          source: dashboard
                          timestamp: 2020-07-24T03:26:02Z
                        created_at: 2020-07-24T03:26:02Z
                        id: entprg_2eRPsDnL66rZ7H
                        is_archived: false
                        is_rescanning_enabled: true
                        lists_enabled:
                          - EU_CON
                        name: Sample Program
                        name_sensitivity: balanced
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityProgramListResponse"
          description: OK
      summary: List entity watchlist screening programs
      tags:
        - plaid
  /watchlist_screening/entity/review/create:
    post:
      description: Create a review for an entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentityreviewcreate
      operationId: watchlistScreeningEntityReviewCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityReviewCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    comment: These look like legitimate matches, rejecting the customer.
                    confirmed_hits:
                      - enthit_52xR9LKo77r1Np
                    dismissed_hits:
                      - enthit_52xR9LKo77r1Np
                    id: entrev_aCLNRxK3UVzn2r
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityReviewCreateResponse"
          description: OK
      summary: Create a review for an entity watchlist screening
      tags:
        - plaid
  /watchlist_screening/entity/review/list:
    post:
      description: List all reviews for a particular entity watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentityreviewlist
      operationId: watchlistScreeningEntityReviewList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityReviewListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    entity_watchlist_screening_reviews:
                      - audit_trail:
                          dashboard_user_id: 54350110fedcbaf01234ffee
                          source: dashboard
                          timestamp: 2020-07-24T03:26:02Z
                        comment: These look like legitimate matches, rejecting the customer.
                        confirmed_hits:
                          - enthit_52xR9LKo77r1Np
                        dismissed_hits:
                          - enthit_52xR9LKo77r1Np
                        id: entrev_aCLNRxK3UVzn2r
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityReviewListResponse"
          description: OK
      summary: List reviews for entity watchlist screenings
      tags:
        - plaid
  /watchlist_screening/entity/update:
    post:
      description: Update an entity watchlist screening.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningentityupdate
      operationId: watchlistScreeningEntityUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningEntityUpdateRequest"
        description: The entity screening was successfully updated.
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    assignee: 54350110fedcbaf01234ffee
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    client_user_id: your-db-id-3b24110
                    id: entscr_52xR9LKo77r1Np
                    request_id: saKrIBuEB9qJZng
                    search_terms:
                      country: US
                      document_number: C31195855
                      email_address: user@example.com
                      entity_watchlist_program_id: entprg_2eRPsDnL66rZ7H
                      legal_name: Al-Qaida
                      phone_number: "+14025671234"
                      url: https://example.com
                      version: 1
                    status: cleared
              schema:
                $ref: "#/components/schemas/WatchlistScreeningEntityUpdateResponse"
          description: OK
      summary: Update an entity screening
      tags:
        - plaid
  /watchlist_screening/individual/create:
    post:
      description: Create a new Watchlist Screening to check your customer against watchlists defined in the associated Watchlist Program. If your associated program has ongoing screening enabled, this is the profile information that will be used to monitor your customer over time.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividualcreate
      operationId: watchlistScreeningIndividualCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    assignee: 54350110fedcbaf01234ffee
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    client_user_id: your-db-id-3b24110
                    id: scr_52xR9LKo77r1Np
                    request_id: saKrIBuEB9qJZng
                    search_terms:
                      country: US
                      date_of_birth: 1990-05-29
                      document_number: C31195855
                      legal_name: Aleksey Potemkin
                      version: 1
                      watchlist_program_id: prg_2eRPsDnL66rZ7H
                    status: cleared
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualCreateResponse"
          description: OK
      summary: Create a watchlist screening for a person
      tags:
        - plaid
  /watchlist_screening/individual/get:
    post:
      description: Retrieve a previously created individual watchlist screening
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividualget
      operationId: watchlistScreeningIndividualGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    assignee: 54350110fedcbaf01234ffee
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    client_user_id: your-db-id-3b24110
                    id: scr_52xR9LKo77r1Np
                    request_id: saKrIBuEB9qJZng
                    search_terms:
                      country: US
                      date_of_birth: 1990-05-29
                      document_number: C31195855
                      legal_name: Aleksey Potemkin
                      version: 1
                      watchlist_program_id: prg_2eRPsDnL66rZ7H
                    status: cleared
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualGetResponse"
          description: OK
      summary: Retrieve an individual watchlist screening
      tags:
        - plaid
  /watchlist_screening/individual/history/list:
    post:
      description: List all changes to the individual watchlist screening in reverse-chronological order. If the watchlist screening has not been edited, no history will be returned.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividualhistorylist
      operationId: watchlistScreeningIndividualHistoryList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualHistoryListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
                    watchlist_screenings:
                      - assignee: 54350110fedcbaf01234ffee
                        audit_trail:
                          dashboard_user_id: 54350110fedcbaf01234ffee
                          source: dashboard
                          timestamp: 2020-07-24T03:26:02Z
                        client_user_id: your-db-id-3b24110
                        id: scr_52xR9LKo77r1Np
                        search_terms:
                          country: US
                          date_of_birth: 1990-05-29
                          document_number: C31195855
                          legal_name: Aleksey Potemkin
                          version: 1
                          watchlist_program_id: prg_2eRPsDnL66rZ7H
                        status: cleared
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualHistoryListResponse"
          description: OK
      summary: List history for individual watchlist screenings
      tags:
        - plaid
  /watchlist_screening/individual/hit/list:
    post:
      description: List all hits found by Plaid for a particular individual watchlist screening.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividualhitlist
      operationId: watchlistScreeningIndividualHitList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualHitListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
                    watchlist_screening_hits:
                      - analysis:
                          dates_of_birth: match
                          documents: match
                          locations: match
                          names: match
                          search_terms_version: 1
                        data:
                          dates_of_birth:
                            - analysis:
                                summary: match
                              data:
                                beginning: 1990-05-29
                                ending: 1990-05-29
                          documents:
                            - analysis:
                                summary: match
                              data:
                                number: C31195855
                                type: passport
                          locations:
                            - analysis:
                                summary: match
                              data:
                                country: US
                                full: Florida, US
                          names:
                            - analysis:
                                summary: match
                              data:
                                full: Aleksey Potemkin
                                is_primary: false
                                weak_alias_determination: none
                        first_active: 2020-07-24T03:26:02Z
                        historical_since: 2020-07-24T03:26:02Z
                        id: scrhit_52xR9LKo77r1Np
                        inactive_since: 2020-07-24T03:26:02Z
                        list_code: US_SDN
                        plaid_uid: uid_3NggckTimGSJHS
                        review_status: pending_review
                        source_uid: 26192ABC
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualHitListResponse"
          description: OK
      summary: List hits for individual watchlist screening
      tags:
        - plaid
  /watchlist_screening/individual/list:
    post:
      description: List previously created watchlist screenings for individuals
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividuallist
      operationId: watchlistScreeningIndividualList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
                    watchlist_screenings:
                      - assignee: 54350110fedcbaf01234ffee
                        audit_trail:
                          dashboard_user_id: 54350110fedcbaf01234ffee
                          source: dashboard
                          timestamp: 2020-07-24T03:26:02Z
                        client_user_id: your-db-id-3b24110
                        id: scr_52xR9LKo77r1Np
                        search_terms:
                          country: US
                          date_of_birth: 1990-05-29
                          document_number: C31195855
                          legal_name: Aleksey Potemkin
                          version: 1
                          watchlist_program_id: prg_2eRPsDnL66rZ7H
                        status: cleared
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualListResponse"
          description: OK
      summary: List Individual Watchlist Screenings
      tags:
        - plaid
  /watchlist_screening/individual/program/get:
    post:
      description: Get an individual watchlist screening program
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividualprogramget
      operationId: watchlistScreeningIndividualProgramGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualProgramGetRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    created_at: 2020-07-24T03:26:02Z
                    id: prg_2eRPsDnL66rZ7H
                    is_archived: false
                    is_rescanning_enabled: true
                    lists_enabled:
                      - US_SDN
                    name: Sample Program
                    name_sensitivity: balanced
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualProgramGetResponse"
          description: OK
      summary: Get individual watchlist screening program
      tags:
        - plaid
  /watchlist_screening/individual/program/list:
    post:
      description: List all individual watchlist screening programs
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividualprogramlist
      operationId: watchlistScreeningIndividualProgramList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualProgramListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
                    watchlist_programs:
                      - audit_trail:
                          dashboard_user_id: 54350110fedcbaf01234ffee
                          source: dashboard
                          timestamp: 2020-07-24T03:26:02Z
                        created_at: 2020-07-24T03:26:02Z
                        id: prg_2eRPsDnL66rZ7H
                        is_archived: false
                        is_rescanning_enabled: true
                        lists_enabled:
                          - US_SDN
                        name: Sample Program
                        name_sensitivity: balanced
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualProgramListResponse"
          description: OK
      summary: List individual watchlist screening programs
      tags:
        - plaid
  /watchlist_screening/individual/review/create:
    post:
      description: Create a review for the individual watchlist screening. Reviews are compliance reports created by users in your organization regarding the relevance of potential hits found by Plaid.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividualreviewcreate
      operationId: watchlistScreeningIndividualReviewCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualReviewCreateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    comment: These look like legitimate matches, rejecting the customer.
                    confirmed_hits:
                      - scrhit_52xR9LKo77r1Np
                    dismissed_hits:
                      - scrhit_52xR9LKo77r1Np
                    id: rev_aCLNRxK3UVzn2r
                    request_id: saKrIBuEB9qJZng
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualReviewCreateResponse"
          description: OK
      summary: Create a review for an individual watchlist screening
      tags:
        - plaid
  /watchlist_screening/individual/review/list:
    post:
      description: List all reviews for the individual watchlist screening.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividualreviewlist
      operationId: watchlistScreeningIndividualReviewList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualReviewListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    next_cursor: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
                    request_id: saKrIBuEB9qJZng
                    watchlist_screening_reviews:
                      - audit_trail:
                          dashboard_user_id: 54350110fedcbaf01234ffee
                          source: dashboard
                          timestamp: 2020-07-24T03:26:02Z
                        comment: These look like legitimate matches, rejecting the customer.
                        confirmed_hits:
                          - scrhit_52xR9LKo77r1Np
                        dismissed_hits:
                          - scrhit_52xR9LKo77r1Np
                        id: rev_aCLNRxK3UVzn2r
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualReviewListResponse"
          description: OK
      summary: List reviews for individual watchlist screenings
      tags:
        - plaid
  /watchlist_screening/individual/update:
    post:
      description: Update a specific individual watchlist screening. This endpoint can be used to add additional customer information, correct outdated information, add a reference id, assign the individual to a reviewer, and update which program it is associated with. Please note that you may not update `search_terms` and `status` at the same time since editing `search_terms` may trigger an automatic `status` change.
      externalDocs:
        url: /api/products/monitor/#watchlist_screeningindividualupdate
      operationId: watchlistScreeningIndividualUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchlistScreeningIndividualUpdateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    assignee: 54350110fedcbaf01234ffee
                    audit_trail:
                      dashboard_user_id: 54350110fedcbaf01234ffee
                      source: dashboard
                      timestamp: 2020-07-24T03:26:02Z
                    client_user_id: your-db-id-3b24110
                    id: scr_52xR9LKo77r1Np
                    request_id: saKrIBuEB9qJZng
                    search_terms:
                      country: US
                      date_of_birth: 1990-05-29
                      document_number: C31195855
                      legal_name: Aleksey Potemkin
                      version: 1
                      watchlist_program_id: prg_2eRPsDnL66rZ7H
                    status: cleared
              schema:
                $ref: "#/components/schemas/WatchlistScreeningIndividualUpdateResponse"
          description: OK
      summary: Update individual watchlist screening
      tags:
        - plaid
  /webhook_verification_key/get:
    post:
      description: |-
        Plaid signs all outgoing webhooks and provides JSON Web Tokens (JWTs) so that you can verify the authenticity of any incoming webhooks to your application. A message signature is included in the `Plaid-Verification` header.

        The `/webhook_verification_key/get` endpoint provides a JSON Web Key (JWK) that can be used to verify a JWT.
      externalDocs:
        url: /api/webhooks/webhook-verification/#get-webhook-verification-key
      operationId: webhookVerificationKeyGet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebhookVerificationKeyGetRequest"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  value:
                    key:
                      alg: ES256
                      created_at: 1560466150
                      crv: P-256
                      expired_at: null
                      kid: bfbd5111-8e33-4643-8ced-b2e642a72f3c
                      kty: EC
                      use: sig
                      x: hKXLGIjWvCBv-cP5euCTxl8g9GLG9zHo_3pO5NN1DwQ
                      y: shhexqPB7YffGn6fR6h2UhTSuCtPmfzQJ6ENVIoO4Ys
                    request_id: RZ6Omi1bzzwDaLo
              schema:
                $ref: "#/components/schemas/WebhookVerificationKeyGetResponse"
          description: OK
      summary: Get webhook verification key
      tags:
        - plaid
components:
  schemas:
    ACHClass:
      description: |-
        Specifies the use case of the transfer. Required for transfers on an ACH network.

        `"ccd"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts

        `"ppd"` - Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, eg. bill payment

        `"tel"` - Telephone-Initiated Entry

        `"web"` - Internet-Initiated Entry - debits from a consumer’s account where their authorization is obtained over the Internet
      enum:
        - ccd
        - ppd
        - tel
        - web
      title: ACHClass
      type: string
    APIClientID:
      description: 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.
      title: ClientID
      type: string
    APISecret:
      description: 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.
      title: APISecret
      type: string
    APR:
      additionalProperties: true
      description: Information about the APR on the account.
      properties:
        apr_percentage:
          description: |
            Annual Percentage Rate applied.
          format: double
          type: number
        apr_type:
          description: The type of balance to which the APR applies.
          enum:
            - balance_transfer_apr
            - cash_apr
            - purchase_apr
            - special
          type: string
        balance_subject_to_apr:
          description: Amount of money that is subjected to the APR if a balance was carried beyond payment due date. How it is calculated can vary by card issuer. It is often calculated as an average daily balance.
          format: double
          nullable: true
          type: number
        interest_charge_amount:
          description: Amount of money charged due to interest from last statement.
          format: double
          nullable: true
          type: number
      required:
        - apr_percentage
        - apr_type
        - balance_subject_to_apr
        - interest_charge_amount
      title: APR
      type: object
    AccessToken:
      description: The access token associated with the Item data is being requested for.
      title: AccessToken
      type: string
    AccessTokenNullable:
      description: The access token associated with the Item data is being requested for.
      nullable: true
      type: string
    AccountAccess:
      description: Allow or disallow product access by account. Unlisted (e.g. missing) accounts will be considered `new_accounts`.
      properties:
        account_product_access:
          $ref: "#/components/schemas/AccountProductAccessNullable"
        authorized:
          default: true
          description: Allow the application to see this account (and associated details, including balance) in the list of accounts  If unset, defaults to `true`.
          nullable: true
          type: boolean
        unique_id:
          description: The unique account identifier for this account. This value must match that returned by the data access API for this account.
          type: string
      required:
        - unique_id
      type: object
    AccountAssets:
      allOf:
        - $ref: "#/components/schemas/AccountBase"
        - additionalProperties: true
          properties:
            days_available:
              description: The duration of transaction history available for this Item, typically defined as the time since the date of the earliest transaction in that account. Only returned by Assets endpoints.
              type: number
            historical_balances:
              description: Calculated data about the historical balances on the account. Only returned by Assets endpoints and currently not supported by `brokerage` or `investment` accounts.
              items:
                $ref: "#/components/schemas/HistoricalBalance"
              type: array
            owners:
              description: Data returned by the financial institution about the account owner or owners. Only returned by Identity or Assets endpoints. 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)
              items:
                $ref: "#/components/schemas/Owner"
              type: array
            ownership_type:
              $ref: "#/components/schemas/OwnershipType"
            transactions:
              description: Transaction history associated with the account. Only returned by Assets endpoints. Transaction history returned by endpoints such as `/transactions/get` or `/investments/transactions/get` will be returned in the top-level `transactions` field instead.
              items:
                $ref: "#/components/schemas/AssetReportTransaction"
              type: array
          type: object
      description: Asset information about an account
      required:
        - days_available
        - transactions
        - owners
        - historical_balances
      title: AccountAssets
    AccountBalance:
      additionalProperties: true
      description: 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`.
      properties:
        available:
          description: |-
            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 realtime unless the value was returned by `/accounts/balance/get`.

            If `current` is `null` this field is guaranteed not to be `null`.
          format: double
          nullable: true
          type: number
        current:
          description: |-
            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 realtime 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`.
          format: double
          nullable: true
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        last_updated_datetime:
          description: |-
            Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the last time that the balance for the given account has been updated

            This is currently only provided when the `min_last_updated_datetime` is passed when calling `/accounts/balance/get` for `ins_128026` (Capital One).
          format: date-time
          nullable: true
          type: string
        limit:
          description: |-
            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.
          format: double
          nullable: true
          type: number
        unofficial_currency_code:
          description: |-
            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.
          nullable: true
          type: string
      required:
        - available
        - current
        - limit
        - iso_currency_code
        - unofficial_currency_code
      title: AccountBalance
      type: object
    AccountBase:
      additionalProperties: true
      description: A single account at a financial institution.
      properties:
        account_id:
          description: |-
            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.
          type: string
        balances:
          $ref: "#/components/schemas/AccountBalance"
        mask:
          description: 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.
          nullable: true
          type: string
        name:
          description: The name of the account, either assigned by the user or by the financial institution itself
          type: string
        official_name:
          description: The official name of the account as given by the financial institution
          nullable: true
          type: string
        persistent_account_id:
          description: 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.
          type: string
        subtype:
          $ref: "#/components/schemas/AccountSubtype"
        type:
          $ref: "#/components/schemas/AccountType"
        verification_status:
          description: "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 two amounts.


            `automatically_verified`: The Item has successfully been automatically verified\t


            `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.\t

            \t"
          enum:
            - automatically_verified
            - pending_automatic_verification
            - pending_manual_verification
            - manually_verified
            - verification_expired
            - verification_failed
          type: string
      required:
        - account_id
        - balances
        - mask
        - name
        - official_name
        - type
        - subtype
      title: Account
      type: object
      x-examples:
        example-1: {}
    AccountFilter:
      description: Enumerates the account subtypes that the application wishes for the user to be able to select from. For more details refer to Plaid documentation on account filters.
      properties:
        credit:
          $ref: "#/components/schemas/AccountFilterSubtypes"
        depository:
          $ref: "#/components/schemas/AccountFilterSubtypes"
        investment:
          $ref: "#/components/schemas/AccountFilterSubtypes"
        loan:
          $ref: "#/components/schemas/AccountFilterSubtypes"
      type: object
    AccountFilterSubtypes:
      description: A list of account subtypes to be filtered.
      items:
        description: List of account subtypes.
        type: string
      type: array
    AccountFiltersResponse:
      additionalProperties: true
      description: |
        The `account_filters` specified in the original call to `/link/token/create`.
      properties:
        credit:
          $ref: "#/components/schemas/CreditFilter"
        depository:
          $ref: "#/components/schemas/DepositoryFilter"
        investment:
          $ref: "#/components/schemas/InvestmentFilter"
        loan:
          $ref: "#/components/schemas/LoanFilter"
      title: AccountFiltersResponse
      type: object
    AccountIdentity:
      allOf:
        - $ref: "#/components/schemas/AccountBase"
        - additionalProperties: true
          properties:
            owners:
              description: Data returned by the financial institution about the account owner or owners. Only returned by Identity or Assets endpoints. 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)
              items:
                $ref: "#/components/schemas/Owner"
              type: array
          required:
            - owners
          type: object
      description: Identity information about an account
      title: AccountIdentity
    AccountIdentityMatchScore:
      allOf:
        - $ref: "#/components/schemas/AccountBase"
        - additionalProperties: true
          properties:
            address:
              $ref: "#/components/schemas/AddressMatchScore"
            email_address:
              $ref: "#/components/schemas/EmailAddressMatchScore"
            legal_name:
              $ref: "#/components/schemas/NameMatchScore"
            phone_number:
              $ref: "#/components/schemas/PhoneNumberMatchScore"
          type: object
      description: Identity match scores for an account
      title: AccountIdentityMatchScore
    AccountIdsWithUpdatedIdentity:
      additionalProperties:
        items:
          $ref: "#/components/schemas/IdentityUpdateTypes"
        type: array
      description: |
        An object with keys of `account_id`'s that are mapped to their respective identity attributes that changed.

        Example: `{ "XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58": ["PHONES"] }`
      title: AccountIdsWithUpdatedIdentity
      type: object
    AccountProductAccess:
      description: Allow the application to access specific products on this account
      properties:
        account_data:
          default: true
          description: Allow the application to access account data. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        statements:
          default: true
          description: Allow the application to access bank statements. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        tax_documents:
          default: true
          description: Allow the application to access tax documents. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
      type: object
    AccountProductAccessNullable:
      allOf:
        - $ref: "#/components/schemas/AccountProductAccess"
        - additionalProperties: true
          type: object
      description: Allow the application to access specific products on this account
      nullable: true
    AccountSelectionCardinality:
      description: |-
        The application requires that accounts be limited to a specific cardinality.
        `MULTI_SELECT`: indicates that the user should be allowed to pick multiple accounts.
        `SINGLE_SELECT`: indicates that the user should be allowed to pick only a single account.
        `ALL`: indicates that the user must share all of their accounts and should not be given the opportunity to de-select
      enum:
        - SINGLE_SELECT
        - MULTI_SELECT
        - ALL
      type: string
    AccountSubtype:
      description: See the [Account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full listing of account types and corresponding subtypes.
      enum:
        - 401a
        - 401k
        - 403B
        - 457b
        - "529"
        - brokerage
        - cash isa
        - crypto exchange
        - education savings account
        - ebt
        - fixed annuity
        - gic
        - health reimbursement arrangement
        - hsa
        - isa
        - ira
        - lif
        - life insurance
        - lira
        - lrif
        - lrsp
        - non-custodial wallet
        - non-taxable brokerage account
        - other
        - other insurance
        - other annuity
        - prif
        - rdsp
        - resp
        - rlif
        - rrif
        - pension
        - profit sharing plan
        - retirement
        - roth
        - roth 401k
        - rrsp
        - sep ira
        - simple ira
        - sipp
        - stock plan
        - thrift savings plan
        - tfsa
        - trust
        - ugma
        - utma
        - variable annuity
        - credit card
        - paypal
        - cd
        - checking
        - savings
        - money market
        - prepaid
        - auto
        - business
        - commercial
        - construction
        - consumer
        - home equity
        - loan
        - mortgage
        - overdraft
        - line of credit
        - student
        - cash management
        - keogh
        - mutual fund
        - recurring
        - rewards
        - safe deposit
        - sarsep
        - payroll
        - null
      nullable: true
      title: AccountSubtype
      type: string
    AccountSubtypes:
      description: "An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema). "
      items:
        $ref: "#/components/schemas/AccountSubtype"
      title: AccountSubtypes
      type: array
    AccountType:
      description: |-
        `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.
      enum:
        - investment
        - credit
        - depository
        - loan
        - brokerage
        - other
      title: AccountType
      type: string
    AccountsBalanceGetRequest:
      description: AccountsBalanceGetRequest defines the request schema for `/accounts/balance/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/AccountsBalanceGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    AccountsBalanceGetRequestOptions:
      description: An optional object to filter `/accounts/balance/get` results.
      properties:
        account_ids:
          description: |-
            A list of `account_ids` to retrieve for the Item. The default value is `null`.

            Note: An error will be returned if a provided `account_id` is not associated with the Item.
          items:
            type: string
          type: array
        min_last_updated_datetime:
          $ref: "#/components/schemas/MinLastUpdatedDatetime"
      type: object
    AccountsGetRequest:
      description: AccountsGetRequest defines the request schema for `/accounts/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/AccountsGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
      x-examples:
        example-1: {}
    AccountsGetRequestOptions:
      description: An optional object to filter `/accounts/get` results.
      properties:
        account_ids:
          description: An array of `account_ids` to retrieve for the Account.
          items:
            type: string
          type: array
      type: object
    AccountsGetResponse:
      additionalProperties: true
      description: AccountsGetResponse defines the response schema for `/accounts/get` and `/accounts/balance/get`.
      properties:
        accounts:
          description: |-
            An array of financial institution accounts associated with the Item.
            If `/accounts/balance/get` was called, each account will include real-time balance information.
          items:
            $ref: "#/components/schemas/AccountBase"
          type: array
        item:
          $ref: "#/components/schemas/Item"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - accounts
        - item
        - request_id
      type: object
    ActionState:
      description: Enum representing the state of the action/activity.
      enum:
        - UNKNOWN
        - ATTEMPT
        - SUCCESS
        - FAILURE
        - SKIPPED
      type: string
    Activity:
      description: Describes a consent activity.
      properties:
        activity:
          $ref: "#/components/schemas/ActivityType"
        id:
          description: A unique identifier for the activity
          type: string
        initiated_date:
          description: The date and time this activity was initiated [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format in UTC.
          example: 2020-01-01
          format: datetime
          type: string
        initiator:
          description: Application ID of the client who initiated the activity.
          type: string
        scopes:
          $ref: "#/components/schemas/ScopesNullable"
        state:
          $ref: "#/components/schemas/ActionState"
        target_application_id:
          $ref: "#/components/schemas/ApplicationID"
      required:
        - activity
        - initiated_date
        - id
        - initiator
        - state
      type: object
    ActivityType:
      description: Types of consent activities
      enum:
        - UNKNOWN
        - ITEM_CREATE
        - ITEM_IMPORT
        - ITEM_UPDATE
        - ITEM_UNLINK
        - PORTAL_UNLINK
        - PORTAL_ITEMS_DELETE
        - ITEM_REMOVE
        - INVARIANT_CHECKER_DELETION
        - SCOPES_UPDATE
      type: string
    Address:
      additionalProperties: true
      description: A physical mailing address.
      properties:
        data:
          $ref: "#/components/schemas/AddressData"
        primary:
          description: When `true`, identifies the address as the primary address on an account.
          type: boolean
      required:
        - data
      title: Address
      type: object
    AddressData:
      additionalProperties: true
      description: Data about the components comprising an address.
      properties:
        city:
          description: The full city name
          nullable: true
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code
          nullable: true
          type: string
        postal_code:
          description: The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
          nullable: true
          type: string
        region:
          description: |-
            The region or state. In API versions 2018-05-22 and earlier, this field is called `state`.
            Example: `"NC"`
          nullable: true
          type: string
        street:
          description: |-
            The full street address
            Example: `"564 Main Street, APT 15"`
          type: string
      required:
        - city
        - region
        - street
        - postal_code
        - country
      title: AddressData
      type: object
    AddressDataNullable:
      allOf:
        - $ref: "#/components/schemas/AddressData"
        - additionalProperties: true
          type: object
      description: Data about the components comprising an address.
      nullable: true
    AddressMatchScore:
      additionalProperties: true
      description: Score found by matching address provided by the API with the address on the account at the financial institution. The score can range from 0 to 100 where 100 is a perfect match and 0 is a no match. If the account contains multiple owners, the maximum match score is filled.
      nullable: true
      properties:
        is_postal_code_match:
          description: postal code was provided for both and was a match
          nullable: true
          type: boolean
        score:
          description: Match score for address. The score can range from 0 to 100 where 100 is a perfect match and 0 is a no match. If the address is missing from either the API or financial institution, this is empty.
          nullable: true
          type: integer
      title: AddressMatchScore
      type: object
    AddressNullable:
      allOf:
        - $ref: "#/components/schemas/Address"
        - additionalProperties: true
          type: object
      description: A physical mailing address.
      nullable: true
    AddressPurposeLabel:
      description: |-
        Field describing whether the associated address is being used for commercial or residential purposes.

        Note: This value will be `no_data` when Plaid does not have sufficient data to determine the address's use.
      enum:
        - residential
        - commercial
        - no_data
      example: residential
      type: string
    Application:
      description: Metadata about the application
      properties:
        application_id:
          $ref: "#/components/schemas/ApplicationID"
        application_url:
          description: The URL for the application's website
          nullable: true
          type: string
        city:
          description: A string representing the city of the client’s headquarters.
          nullable: true
          type: string
        company_legal_name:
          description: A string representing the name of client’s legal entity.
          nullable: true
          type: string
        country_code:
          description: A string representing the country code of the client’s headquarters.
          nullable: true
          type: string
        display_name:
          description: A human-readable name of the application for display purposes
          nullable: true
          type: string
        join_date:
          description: The date this application was granted production access at Plaid in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format in UTC.
          format: date
          type: string
        logo_url:
          description: A URL that links to the application logo image.
          nullable: true
          type: string
        name:
          description: The name of the application
          type: string
        postal_code:
          description: A string representing the postal code of the client’s headquarters.
          nullable: true
          type: string
        reason_for_access:
          description: A string provided by the connected app stating why they use their respective enabled products.
          nullable: true
          type: string
        region:
          description: A string representing the region of the client’s headquarters.
          nullable: true
          type: string
        use_case:
          description: A string representing client’s broad use case as assessed by Plaid.
          nullable: true
          type: string
      required:
        - application_id
        - join_date
        - name
        - display_name
        - logo_url
        - application_url
        - reason_for_access
        - use_case
        - company_legal_name
        - city
        - region
        - postal_code
        - country_code
      type: object
    ApplicationGetRequest:
      description: ApplicationGetRequest defines the schema for `/application/get`
      properties:
        application_id:
          $ref: "#/components/schemas/ApplicationID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - client_id
        - secret
        - application_id
      type: object
    ApplicationGetResponse:
      additionalProperties: true
      description: ApplicationGetResponse defines the response schema for `/application/get`
      properties:
        application:
          $ref: "#/components/schemas/Application"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
        - application
      type: object
    ApplicationID:
      description: This field will map to the application ID that is returned from /item/applications/list, or provided to the institution in an oauth redirect.
      title: ApplicationID
      type: string
    Asset:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET_DETAIL:
          $ref: "#/components/schemas/AssetDetail"
        ASSET_HOLDER:
          $ref: "#/components/schemas/AssetHolder"
        ASSET_OWNERS:
          $ref: "#/components/schemas/AssetOwners"
        ASSET_TRANSACTIONS:
          $ref: "#/components/schemas/AssetTransactions"
        VALIDATION_SOURCES:
          $ref: "#/components/schemas/ValidationSources"
      required:
        - ASSET_DETAIL
        - ASSET_OWNERS
        - ASSET_HOLDER
        - ASSET_TRANSACTIONS
        - VALIDATION_SOURCES
      title: Asset
      type: object
    AssetDetail:
      additionalProperties: true
      description: Details about an asset.
      properties:
        AssetAccountIdentifier:
          description: A unique alphanumeric string identifying an asset.
          type: string
        AssetAsOfDate:
          description: Account Report As of Date / Create Date. Format YYYY-MM-DD
          type: string
        AssetAvailableBalanceAmount:
          description: Asset Account Available Balance.
          format: double
          type: number
        AssetCurrentBalanceAmount:
          description: A vendor created unique Identifier
          format: double
          type: number
        AssetDaysRequestedCount:
          description: The Number of days requested made to the Financial Institution. Example When looking for 3 months of data from the FI, pass in 90 days.
          type: integer
        AssetDescription:
          description: A text description that further defines the Asset. This could be used to describe the shares associated with the stocks, bonds or mutual funds, retirement funds or business owned that the borrower has disclosed (named) as an asset.
          nullable: true
          type: string
        AssetOwnershipType:
          description: Ownership type of the asset account.
          nullable: true
          type: string
        AssetType:
          $ref: "#/components/schemas/AssetType"
        AssetTypeAdditionalDescription:
          description: Additional Asset Decription some examples are Investment Tax-Deferred , Loan, 401K, 403B, Checking, Money Market, Credit Card,ROTH,529,Biller,ROLLOVER,CD,Savings,Investment Taxable, IRA, Mortgage, Line Of Credit.
          nullable: true
          type: string
        AssetUniqueIdentifier:
          description: A vendor created unique Identifier.
          type: string
      required:
        - AssetUniqueIdentifier
        - AssetAccountIdentifier
        - AssetAsOfDate
        - AssetDescription
        - AssetAvailableBalanceAmount
        - AssetCurrentBalanceAmount
        - AssetType
        - AssetTypeAdditionalDescription
        - AssetDaysRequestedCount
        - AssetOwnershipType
      title: AssetDetail
      type: object
    AssetHolder:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        NAME:
          $ref: "#/components/schemas/AssetHolderName"
      required:
        - NAME
      title: AssetHolder
      type: object
    AssetHolderName:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        FullName:
          description: The unparsed name of either an individual or a legal entity.
          type: string
      required:
        - FullName
      title: NAME
      type: object
    AssetOwner:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        AssetOwnerText:
          description: Account Owner Full Name.
          nullable: true
          type: string
      required:
        - AssetOwnerText
      title: AssetOwner
      type: object
    AssetOwners:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET_OWNER:
          description: Multiple Occurances of Account Owners Full Name up to 4.
          items:
            $ref: "#/components/schemas/AssetOwner"
          type: array
      required:
        - ASSET_OWNER
      title: AssetOwners
      type: object
    AssetReport:
      additionalProperties: true
      description: An object representing an Asset Report
      properties:
        asset_report_id:
          $ref: "#/components/schemas/AssetReportId"
        client_report_id:
          description: An identifier you determine and submit for the Asset Report.
          nullable: true
          type: string
        date_generated:
          description: 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").
          format: date-time
          type: string
        days_requested:
          description: The duration of transaction history you requested
          type: number
        items:
          description: Data returned by Plaid about each of the Items included in the Asset Report.
          items:
            $ref: "#/components/schemas/AssetReportItem"
          type: array
        user:
          $ref: "#/components/schemas/AssetReportUser"
      required:
        - asset_report_id
        - client_report_id
        - date_generated
        - days_requested
        - user
        - items
      title: AssetReport
      type: object
    AssetReportAddOns:
      description: |-
        A list of add-ons that should be included in the Asset Report. 

        `fast_assets`: When Fast Assets is requested, Plaid will create two versions of the Asset Report: the Fast Asset Report, which will contain only Identity and Balance information, and the Full Asset Report, which will also contain Transactions information. A `PRODUCT_READY` webhook will be fired for each Asset Report when it is ready, and the `report_type` field will indicate whether the webhook is firing for the `full` or `fast` Asset Report. To retrieve the Fast Asset Report, call `/asset_report/get` with `fast_report` set to `true`. There is no additional charge for using Fast Assets.

        `investments`: Request an Asset Report with Investments. This add-on is in closed beta and not generally available.
      enum:
        - investments
        - fast_assets
      title: AssetReportAddOns
      type: string
    AssetReportAuditCopyCreateRequest:
      description: AssetReportAuditCopyCreateRequest defines the request schema for `/asset_report/audit_copy/get`
      properties:
        asset_report_token:
          $ref: "#/components/schemas/AssetReportToken"
        auditor_id:
          description: The `auditor_id` of the third party with whom you would like to share the Asset Report.
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - asset_report_token
      type: object
    AssetReportAuditCopyCreateResponse:
      additionalProperties: true
      description: AssetReportAuditCopyCreateResponse defines the response schema for `/asset_report/audit_copy/get`
      properties:
        audit_copy_token:
          description: A token that can be shared with a third party auditor to allow them to obtain access to the Asset Report. This token should be stored securely.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - audit_copy_token
        - request_id
      type: object
    AssetReportAuditCopyGetRequest:
      description: AssetReportAuditCopyGetRequest defines the request schema for `/asset_report/audit_copy/get`
      properties:
        audit_copy_token:
          description: The `audit_copy_token` granting access to the Audit Copy you would like to get.
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - audit_copy_token
      title: AssetReportAuditCopyGetRequest
      type: object
    AssetReportAuditCopyRemoveRequest:
      description: AssetReportAuditCopyRemoveRequest defines the request schema for `/asset_report/audit_copy/remove`
      properties:
        audit_copy_token:
          description: The `audit_copy_token` granting access to the Audit Copy you would like to revoke.
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - audit_copy_token
      type: object
    AssetReportAuditCopyRemoveResponse:
      additionalProperties: true
      description: AssetReportAuditCopyRemoveResponse defines the response schema for `/asset_report/audit_copy/remove`
      properties:
        removed:
          description: "`true` if the Audit Copy was successfully removed."
          type: boolean
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - removed
        - request_id
      type: object
    AssetReportCreateRequest:
      description: AssetReportCreateRequest defines the request schema for `/asset_report/create`
      properties:
        access_tokens:
          description: An array of access tokens corresponding to the Items that will be included in the report. The `assets` product must have been initialized for the Items during link; the Assets product cannot be added after initialization.
          items:
            $ref: "#/components/schemas/AccessToken"
          maxItems: 99
          minItems: 1
          type: array
        client_id:
          $ref: "#/components/schemas/APIClientID"
        days_requested:
          description: |-
            The maximum integer number of days of history to include in the Asset Report. If using Fannie Mae Day 1 Certainty, `days_requested` must be at least 61 for new originations or at least 31 for refinancings.

            An Asset Report requested with "Additional History" (that is, with more than 61 days of transaction history) will incur an Additional History fee.
          maximum: 731
          minimum: 0
          type: integer
        options:
          $ref: "#/components/schemas/AssetReportCreateRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          description: The user token associated with the User for which to create an asset report for. All items associated with the User will be included in the report.
          type: string
          x-hidden-from-docs: true
      required:
        - days_requested
      type: object
    AssetReportCreateRequestOptions:
      description: An optional object to filter `/asset_report/create` results. If provided, must be non-`null`. The optional `user` object is required for the report to be eligible for Fannie Mae's Day 1 Certainty program.
      properties:
        add_ons:
          description: "Use this field to request a `fast_asset` report. When Fast Assets is requested, Plaid will create two versions of the Asset Report: first, the Fast Asset Report, which will contain only current identity and balance information, and later, the Full Asset Report, which will also contain historical balance information and transaction data. A `PRODUCT_READY` webhook will be fired for each Asset Report when it is ready, and the `report_type` field will indicate whether the webhook is firing for the `full` or `fast` Asset Report. To retrieve the Fast Asset Report, call `/asset_report/get` with `fast_report` set to `true`. There is no additional charge for using Fast Assets."
          items:
            $ref: "#/components/schemas/AssetReportAddOns"
          type: array
        client_report_id:
          description: Client-generated identifier, which can be used by lenders to track loan applications.
          nullable: true
          type: string
        include_fast_report:
          deprecated: true
          description: true to return balance and identity earlier as a fast report. Defaults to false if omitted.
          nullable: true
          type: boolean
          x-hidden-from-docs: true
        products:
          deprecated: true
          description: 'Additional information that can be included in the asset report. Possible values: `"investments"`'
          items:
            type: string
          type: array
          x-hidden-from-docs: true
        user:
          $ref: "#/components/schemas/AssetReportUser"
        webhook:
          description: URL to which Plaid will send Assets webhooks, for example when the requested Asset Report is ready.
          nullable: true
          type: string
      type: object
    AssetReportCreateResponse:
      additionalProperties: true
      description: AssetReportCreateResponse defines the response schema for `/asset_report/create`
      properties:
        asset_report_id:
          $ref: "#/components/schemas/AssetReportId"
        asset_report_token:
          $ref: "#/components/schemas/AssetReportToken"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - asset_report_token
        - asset_report_id
        - request_id
      type: object
    AssetReportFilterRequest:
      description: AssetReportFilterRequest defines the request schema for `/asset_report/filter`
      properties:
        account_ids_to_exclude:
          description: The accounts to exclude from the Asset Report, identified by `account_id`.
          items:
            type: string
          type: array
        asset_report_token:
          $ref: "#/components/schemas/AssetReportToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - asset_report_token
        - account_ids_to_exclude
      type: object
    AssetReportFilterResponse:
      additionalProperties: true
      description: AssetReportFilterResponse defines the response schema for `/asset_report/filter`
      properties:
        asset_report_id:
          $ref: "#/components/schemas/AssetReportId"
        asset_report_token:
          $ref: "#/components/schemas/AssetReportToken"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - asset_report_token
        - asset_report_id
        - request_id
      type: object
    AssetReportFreddie:
      additionalProperties: true
      description: An object representing an Asset Report with Freddie Mac schema.
      properties:
        LOANS:
          $ref: "#/components/schemas/Loans"
        PARTIES:
          $ref: "#/components/schemas/Parties"
        SERVICES:
          $ref: "#/components/schemas/Services"
      required:
        - LOANS
        - PARTIES
        - SERVICES
      title: AssetReportFreddie
      type: object
    AssetReportFreddieGetRequest:
      additionalProperties: true
      description: AssetReportFreddieGetRequest defines the request schema for `credit/asset_report/freddie_mac/get`
      properties:
        audit_copy_token:
          description: A token that can be shared with a third party auditor to allow them to obtain access to the Asset Report. This token should be stored securely.
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - audit_copy_token
      title: AssetReportFreddieGetRequest
      type: object
    AssetReportFreddieGetResponse:
      additionalProperties: true
      description: AssetReportFreddieGetResponse defines the response schema for `/asset_report/get`
      properties:
        DEAL:
          $ref: "#/components/schemas/AssetReportFreddie"
        SchemaVersion:
          description: The Verification Of Assets (aka VOA or Freddie Mac Schema) schema version.
          type: number
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - DEAL
        - request_id
        - SchemaVersion
      title: AssetReportFreddieGetResponse
      type: object
    AssetReportGetRequest:
      description: AssetReportGetRequest defines the request schema for `/asset_report/get`
      properties:
        asset_report_token:
          $ref: "#/components/schemas/AssetReportToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        fast_report:
          default: false
          description: '`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"]`.'
          type: boolean
        include_insights:
          default: false
          description: "`true` if you would like to retrieve the Asset Report with Insights, `false` otherwise. This field defaults to `false` if omitted."
          type: boolean
        options:
          $ref: "#/components/schemas/AssetReportGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - asset_report_token
      type: object
    AssetReportGetRequestOptions:
      description: An optional object to filter or add data to `/asset_report/get` results. If provided, must be non-`null`.
      properties:
        days_to_include:
          description: The maximum number of days of history to include in the Asset Report.
          maximum: 731
          minimum: 0
          nullable: true
          type: integer
      type: object
    AssetReportGetResponse:
      additionalProperties: true
      description: AssetReportGetResponse defines the response schema for `/asset_report/get`
      properties:
        report:
          $ref: "#/components/schemas/AssetReport"
        request_id:
          $ref: "#/components/schemas/RequestID"
        warnings:
          description: 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
          items:
            $ref: "#/components/schemas/Warning"
          type: array
      required:
        - report
        - warnings
        - request_id
      type: object
    AssetReportId:
      description: A unique ID identifying an Asset Report. Like all Plaid identifiers, this ID is case sensitive.
      title: AssetReportId
      type: string
    AssetReportItem:
      additionalProperties: true
      description: A representation of an Item within an Asset Report.
      properties:
        accounts:
          description: Data about each of the accounts open on the Item.
          items:
            $ref: "#/components/schemas/AccountAssets"
          type: array
        date_last_updated:
          description: 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.
          format: date-time
          type: string
        institution_id:
          description: The id of the financial institution associated with the Item.
          type: string
        institution_name:
          description: The full financial institution name associated with the Item.
          type: string
        item_id:
          $ref: "#/components/schemas/ItemId"
      required:
        - item_id
        - institution_name
        - institution_id
        - date_last_updated
        - accounts
      title: AssetReportItem
      type: object
    AssetReportPDFGetRequest:
      description: AssetReportPDFGetRequest defines the request schema for `/asset_report/pdf/get`
      properties:
        asset_report_token:
          $ref: "#/components/schemas/AssetReportToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/AssetReportPDFGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - asset_report_token
      type: object
    AssetReportPDFGetRequestOptions:
      description: An optional object to filter or add data to `/asset_report/get` results. If provided, must be non-`null`.
      properties:
        days_to_include:
          description: The maximum integer number of days of history to include in the Asset Report.
          maximum: 731
          minimum: 0
          nullable: true
          type: integer
      type: object
    AssetReportPDFGetResponse:
      description: AssetReportPDFGetResponse defines the response schema for `/asset_report/pdf/get`
      format: binary
      type: string
    AssetReportRefreshAssetReportToken:
      description: The `asset_report_token` returned by the original call to `/asset_report/create`
      title: AssetReportRefreshAssetReportToken
      type: string
    AssetReportRefreshRequest:
      description: AssetReportRefreshRequest defines the request schema for `/asset_report/refresh`
      properties:
        asset_report_token:
          $ref: "#/components/schemas/AssetReportRefreshAssetReportToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        days_requested:
          description: The maximum number of days of history to include in the Asset Report. Must be an integer. If not specified, the value from the original call to `/asset_report/create` will be used.
          maximum: 731
          minimum: 0
          nullable: true
          type: integer
        options:
          $ref: "#/components/schemas/AssetReportRefreshRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - asset_report_token
      type: object
    AssetReportRefreshRequestOptions:
      description: An optional object to filter `/asset_report/refresh` results. If provided, cannot be `null`. If not specified, the `options` from the original call to `/asset_report/create` will be used.
      properties:
        client_report_id:
          description: Client-generated identifier, which can be used by lenders to track loan applications.
          nullable: true
          type: string
        user:
          $ref: "#/components/schemas/AssetReportUser"
        webhook:
          description: URL to which Plaid will send Assets webhooks, for example when the requested Asset Report is ready.
          nullable: true
          type: string
      type: object
    AssetReportRefreshResponse:
      additionalProperties: true
      description: AssetReportRefreshResponse defines the response schema for `/asset_report/refresh`
      properties:
        asset_report_id:
          $ref: "#/components/schemas/AssetReportId"
        asset_report_token:
          $ref: "#/components/schemas/AssetReportToken"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - asset_report_id
        - asset_report_token
        - request_id
      type: object
    AssetReportRemoveRequest:
      description: AssetReportRemoveRequest defines the request schema for `/asset_report/remove`
      properties:
        asset_report_token:
          $ref: "#/components/schemas/AssetReportToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - asset_report_token
      type: object
    AssetReportRemoveResponse:
      additionalProperties: true
      description: AssetReportRemoveResponse defines the response schema for `/asset_report/remove`
      properties:
        removed:
          description: "`true` if the Asset Report was successfully removed."
          type: boolean
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - removed
        - request_id
      type: object
    AssetReportToken:
      description: 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.
      title: AssetReportToken
      type: string
    AssetReportTransaction:
      allOf:
        - $ref: "#/components/schemas/TransactionBase"
        - additionalProperties: true
          properties:
            credit_category:
              $ref: "#/components/schemas/CreditCategory"
            date_transacted:
              description: The date on which the transaction took place, in IS0 8601 format.
              nullable: true
              type: string
          type: object
      description: A transaction on the asset report
      required:
        - original_description
      title: AssetReportTransaction
    AssetReportUser:
      additionalProperties: true
      description: 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.
      properties:
        client_user_id:
          description: An identifier you determine and submit for the user.
          nullable: true
          type: string
        email:
          description: The user's email address.
          nullable: true
          type: string
        first_name:
          description: The user's first name. Required for the Fannie Mae Day 1 Certainty™ program.
          nullable: true
          type: string
        last_name:
          description: The user's last name.  Required for the Fannie Mae Day 1 Certainty™ program.
          nullable: true
          type: string
        middle_name:
          description: The user's middle name
          nullable: true
          type: string
        phone_number:
          description: "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."
          nullable: true
          type: string
        ssn:
          description: |-
            The user's Social Security Number. Required for the Fannie Mae Day 1 Certainty™ program.

            Format: "ddd-dd-dddd"
          nullable: true
          type: string
      title: AssetReportUser
      type: object
    AssetTransaction:
      additionalProperties: true
      description: An object representing...
      properties:
        ASSET_TRANSACTION_DESCRIPTON:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          items:
            $ref: "#/components/schemas/AssetTransactionDescription"
          type: array
        ASSET_TRANSACTION_DETAIL:
          $ref: "#/components/schemas/AssetTransactionDetail"
      required:
        - ASSET_TRANSACTION_DETAIL
        - ASSET_TRANSACTION_DESCRIPTON
      title: AssetTransaction
      type: object
    AssetTransactionCategoryType:
      description: Asset Transaction Category Type Enumerated derived by Vendor.
      enum:
        - ATMFee
        - Advertising
        - AirTravel
        - AlcoholBars
        - Allowance
        - Amusement
        - Arts
        - AutoTransport
        - AutoInsurance
        - AutoPayment
        - BabySupplies
        - BabysitterDaycare
        - BankFee
        - BillsUtilities
        - Bonus
        - BooksSupplies
        - Business Services
        - Buy
        - CashATM
        - Charity
        - Check
        - ChildSupport
        - Clothing
        - CoffeeShops
        - CreditCardPayment
        - Dentist
        - Doctor
        - Education
        - ElectronicsSoftware
        - Entertainment
        - Eyecare
        - FastFood
        - FederalTax
        - FeesCharges
        - FinanceCharge
        - Financial
        - FinancialAdvisor
        - FoodDining
        - Furnishings
        - GasFuel
        - GiftsDonations
        - Groceries
        - Gym
        - Hair
        - HealthFitness
        - HealthInsurance
        - Hobbies
        - Home
        - HomeImprovement
        - HomeInsurance
        - HomePhone
        - HomeServices
        - HomeSupplies
        - Hotel
        - Income
        - InterestIncome
        - Internet
        - Investments
        - Kids
        - KidsActivities
        - LateFee
        - Laundry
        - LawnGarden
        - Legal
        - LifeInsurance
        - LoanInsurance
        - LoanPayment
        - Loans
        - MobilePhone
        - MortgageRent
        - MoviesDVDs
        - Music
        - NewspapersMagazines
        - OfficeSupplies
        - Parking
        - Paycheck
        - PersonalCare
        - PetFoodSupplies
        - PetGrooming
        - Pets
        - Pharmacy
        - Printing
        - Property Tax
        - Public Transportation
        - Reimbursement
        - RentalCarTaxi
        - Restaurants
        - SalesTax
        - ServiceParts
        - ServiceFee
        - Shipping
        - Shopping
        - SpaMassage
        - SportingGoods
        - Sports
        - StateTax
        - Student Loan
        - Taxes
        - Television
        - Toys
        - Transfer
        - Travel
        - Tuition
        - Uncategorized
        - Utilities
        - Vacation
        - Veterinary
      nullable: true
      title: AssetTransactionCategoryType
      type: string
    AssetTransactionDescription:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        AssetTransactionDescription:
          description: Asset Transaction Description String up to 3 occurances 1 required.
          type: string
      required:
        - AssetTransactionDescription
      title: AssetTransactionDescription
      type: object
    AssetTransactionDetail:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        AssetTransactionAmount:
          description: Asset Transaction Amount.
          type: number
        AssetTransactionCategoryType:
          $ref: "#/components/schemas/AssetTransactionCategoryType"
        AssetTransactionDate:
          description: Asset Transaction Date.
          format: date
          type: string
        AssetTransactionPaidByName:
          description: Populate with who did the transaction.
          nullable: true
          type: string
        AssetTransactionPostDate:
          description: Asset Transaction Post Date.
          format: date
          type: string
        AssetTransactionType:
          $ref: "#/components/schemas/AssetTransactionType"
        AssetTransactionTypeAdditionalDescription:
          description: FI Provided - examples are atm, cash, check, credit, debit, deposit, directDebit, directDeposit, dividend, fee, interest, other, payment, pointOfSale, repeatPayment, serviceCharge, transfer.
          nullable: true
          type: string
        AssetTransactionUniqueIdentifier:
          description: A vendor created unique Identifier.
          type: string
        FinancialInstitutionTransactionIdentifier:
          description: FI provided Transaction Identifier.
          nullable: true
          type: string
      required:
        - AssetTransactionUniqueIdentifier
        - AssetTransactionAmount
        - AssetTransactionDate
        - AssetTransactionPostDate
        - AssetTransactionType
        - AssetTransactionPaidByName
        - AssetTransactionTypeAdditionalDescription
        - AssetTransactionCategoryType
        - FinancialInstitutionTransactionIdentifier
      title: AssetTransactionDetail
      type: object
    AssetTransactionType:
      description: Asset Transaction Type.
      enum:
        - Credit
        - Debit
      title: AssetTransactionType
      type: string
    AssetTransactions:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET_TRANSACTION:
          items:
            $ref: "#/components/schemas/AssetTransaction"
          type: array
      required:
        - ASSET_TRANSACTION
      title: AssetTransactions
      type: object
    AssetType:
      description: A value from a MISMO prescribed list that specifies financial assets in a mortgage loan transaction. Assets may be either liquid or fixed and are associated with a corresponding asset amount.
      enum:
        - CheckingAccount
        - SavingsAccount
        - Investment
        - MoneyMarketFund
        - Other
      title: AssetType
      type: string
    Assets:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          items:
            $ref: "#/components/schemas/Asset"
          type: array
      required:
        - ASSET
      title: Assets
      type: object
    AssetsErrorWebhook:
      additionalProperties: true
      description: Fired when Asset Report generation has failed. The resulting `error` will have an `error_type` of `ASSET_REPORT_ERROR`.
      properties:
        asset_report_id:
          description: The ID associated with the Asset Report.
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        webhook_code:
          description: "`ERROR`"
          type: string
        webhook_type:
          description: "`ASSETS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - error
        - asset_report_id
        - environment
      title: AssetsErrorWebhook
      type: object
      x-examples:
        example-1:
          asset_report_id: 47dfc92b-bba3-4583-809e-ce871b321f05
          error:
            display_message: null
            error_code: PRODUCT_NOT_ENABLED
            error_message: "the 'assets' product is not enabled for the following access tokens: access-sandbox-fb88b20c-7b74-4197-8d01-0ab122dad0bc. please ensure that 'assets' is included in the 'product' array when initializing Link and create the Item(s) again."
            error_type: ASSET_REPORT_ERROR
            request_id: m8MDnv9okwxFNBV
          webhook_code: ERROR
          webhook_type: ASSETS
    AssetsProductReadyWebhook:
      additionalProperties: true
      description: Fired when the Asset Report has been generated and `/asset_report/get` is ready to be called.  If you attempt to retrieve an Asset Report before this webhook has fired, you’ll receive a response with the HTTP status code 400 and a Plaid error code of `PRODUCT_NOT_READY`.
      properties:
        asset_report_id:
          description: The `asset_report_id` corresponding to the Asset Report the webhook has fired for.
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        report_type:
          description: The report type, indicating whether the Asset Report is a `full` or `fast` report.
          type: string
        webhook_code:
          description: "`PRODUCT_READY`"
          type: string
        webhook_type:
          description: "`ASSETS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - asset_report_id
        - environment
      title: AssetsProductReadyWebhook
      type: object
      x-examples:
        example-1:
          asset_report_id: 47dfc92b-bba3-4583-809e-ce871b321f05
          report_type: full
          webhook_code: PRODUCT_READY
          webhook_type: ASSETS
    AuthGetNumbers:
      additionalProperties: true
      description: An object containing identifying numbers used for making electronic transfers to and from the `accounts`. The identifying number type (ACH, EFT, IBAN, or BACS) used will depend on the country of the account. An account may have more than one number type. If a particular identifying number type is not used by any `accounts` for which data has been requested, the array for that type will be empty.
      properties:
        ach:
          description: An array of ACH numbers identifying accounts.
          items:
            $ref: "#/components/schemas/NumbersACH"
          type: array
        bacs:
          description: An array of BACS numbers identifying accounts.
          items:
            $ref: "#/components/schemas/NumbersBACS"
          type: array
        eft:
          description: An array of EFT numbers identifying accounts.
          items:
            $ref: "#/components/schemas/NumbersEFT"
          type: array
        international:
          description: An array of IBAN numbers identifying accounts.
          items:
            $ref: "#/components/schemas/NumbersInternational"
          type: array
      required:
        - ach
        - eft
        - international
        - bacs
      type: object
    AuthGetRequest:
      description: AuthGetRequest defines the request schema for `/auth/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/AuthGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    AuthGetRequestOptions:
      description: An optional object to filter `/auth/get` results.
      properties:
        account_ids:
          description: |-
            A list of `account_ids` to retrieve for the Item.
            Note: An error will be returned if a provided `account_id` is not associated with the Item.
          items:
            type: string
          type: array
      type: object
    AuthGetResponse:
      additionalProperties: true
      description: AuthGetResponse defines the response schema for `/auth/get`
      properties:
        accounts:
          description: The `accounts` for which numbers are being retrieved.
          items:
            $ref: "#/components/schemas/AccountBase"
          type: array
        item:
          $ref: "#/components/schemas/Item"
        numbers:
          $ref: "#/components/schemas/AuthGetNumbers"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - accounts
        - numbers
        - item
        - request_id
      type: object
    AuthMetadata:
      additionalProperties: true
      description: Metadata that captures information about the Auth features of an institution.
      nullable: true
      properties:
        supported_methods:
          $ref: "#/components/schemas/AuthSupportedMethods"
      required:
        - supported_methods
      title: AuthMetadata
      type: object
    AuthSupportedMethods:
      additionalProperties: true
      description: Metadata specifically related to which auth methods an institution supports.
      nullable: true
      properties:
        automated_micro_deposits:
          description: Indicates if automated microdeposits are supported.
          type: boolean
        instant_auth:
          description: Indicates if instant auth is supported.
          type: boolean
        instant_match:
          description: Indicates if instant match is supported.
          type: boolean
      required:
        - instant_auth
        - instant_match
        - automated_micro_deposits
      title: AuthSupportedMethods
      type: object
    AutomaticallyVerifiedWebhook:
      additionalProperties: true
      description: Fired when an Item is verified via automated micro-deposits. We recommend communicating to your users when this event is received to notify them that their account is verified and ready for use.
      properties:
        account_id:
          description: The `account_id` of the account associated with the webhook
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`AUTOMATICALLY_VERIFIED`"
          type: string
        webhook_type:
          description: "`AUTH`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - account_id
        - item_id
        - environment
      title: AutomaticallyVerifiedWebhook
      type: object
      x-examples:
        example-1:
          account_id: dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK
          environment: production
          item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
          webhook_code: AUTOMATICALLY_VERIFIED
          webhook_type: AUTH
    BankInitiatedReturnRisk:
      description: 'The object contains a risk score and a risk tier that evaluate the transaction return risk because an account is overdrawn or because an ineligible account is used. Common return codes in this category include: "R01", "R02", "R03", "R04", "R06", "R08",  "R09", "R13", "R16", "R17", "R20", "R23". These returns have a turnaround time of 2 banking days.'
      properties:
        risk_tier:
          $ref: "#/components/schemas/BankInitiatedRiskTier"
        score:
          $ref: "#/components/schemas/SignalScore"
      required:
        - risk_tier
        - score
      title: BankInitiatedReturnRisk
      type: object
    BankInitiatedRiskTier:
      description: |
        In the `bank_initiated_return_risk` object, there are eight risk tiers corresponding to the scores:
          1: Predicted bank-initiated return incidence rate between 0.0% - 0.5%
          2: Predicted bank-initiated return incidence rate between 0.5% - 1.5%
          3: Predicted bank-initiated return incidence rate between 1.5% - 3%
          4: Predicted bank-initiated return incidence rate between 3% - 5%
          5: Predicted bank-initiated return incidence rate between 5% - 10%
          6: Predicted bank-initiated return incidence rate between 10% - 15%
          7: Predicted bank-initiated return incidence rate between 15% and 50%
          8: Predicted bank-initiated return incidence rate greater than 50%
      maximum: 8
      minimum: 1
      type: integer
    BankTransfer:
      additionalProperties: true
      description: Represents a bank transfer within the Bank Transfers API.
      properties:
        account_id:
          description: The account ID that should be credited/debited for this bank transfer.
          type: string
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/BankTransferAmount"
        cancellable:
          description: When `true`, you can still cancel this bank transfer.
          type: boolean
        created:
          description: The datetime when this bank transfer was created. This will be of the form `2006-01-02T15:04:05Z`
          format: date-time
          type: string
        custom_tag:
          description: A string containing the custom tag provided by the client in the create request. Will be null if not provided.
          nullable: true
          type: string
        description:
          description: The description of the transfer.
          type: string
        direction:
          $ref: "#/components/schemas/BankTransferDirection"
        failure_reason:
          $ref: "#/components/schemas/BankTransferFailure"
        id:
          $ref: "#/components/schemas/BankTransferID"
        iso_currency_code:
          description: The currency of the transfer amount, e.g. "USD"
          type: string
        metadata:
          $ref: "#/components/schemas/BankTransferMetadata"
        network:
          $ref: "#/components/schemas/BankTransferNetwork"
        origination_account_id:
          description: Plaid’s unique identifier for the origination account that was used for this transfer.
          type: string
        status:
          $ref: "#/components/schemas/BankTransferStatus"
        type:
          $ref: "#/components/schemas/BankTransferType"
        user:
          $ref: "#/components/schemas/BankTransferUser"
      required:
        - id
        - ach_class
        - account_id
        - type
        - user
        - amount
        - iso_currency_code
        - description
        - created
        - status
        - network
        - cancellable
        - failure_reason
        - custom_tag
        - metadata
        - origination_account_id
        - direction
      title: BankTransfer
      type: object
    BankTransferAccessToken:
      description: The Plaid `access_token` for the account that will be debited or credited.
      type: string
    BankTransferAmount:
      description: The amount of the bank transfer (decimal string with two digits of precision e.g. "10.00").
      title: BankTransferAmount
      type: string
    BankTransferBalance:
      additionalProperties: true
      description: Information about the balance of a bank transfer
      properties:
        available:
          description: The total available balance - the sum of all successful debit transfer amounts minus all credit transfer amounts.
          type: string
        transactable:
          description: The transactable balance shows the amount in your account that you are able to use for transfers, and is essentially your available balance minus your minimum balance.
          type: string
      required:
        - available
        - transactable
      title: BankTransferBalance
      type: object
    BankTransferBalanceGetRequest:
      description: Defines the request schema for `/bank_transfer/balance/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        origination_account_id:
          description: If multiple origination accounts are available, `origination_account_id` must be used to specify the account for which balance will be returned.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      title: BankTransferBalanceGetRequest
      type: object
    BankTransferBalanceGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/bank_transfer/balance/get`
      properties:
        balance:
          $ref: "#/components/schemas/BankTransferBalance"
        origination_account_id:
          description: The ID of the origination account that this balance belongs to.
          nullable: true
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - balance
        - origination_account_id
        - request_id
      title: BankTransferBalanceGetResponse
      type: object
    BankTransferCancelRequest:
      description: Defines the request schema for `/bank_transfer/cancel`
      properties:
        bank_transfer_id:
          $ref: "#/components/schemas/BankTransferID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - bank_transfer_id
      title: BankTransferCancelRequest
      type: object
    BankTransferCancelResponse:
      additionalProperties: true
      description: Defines the response schema for `/bank_transfer/cancel`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: BankTransferCancelResponse
      type: object
    BankTransferCreateRequest:
      description: Defines the request schema for `/bank_transfer/create`
      properties:
        access_token:
          $ref: "#/components/schemas/BankTransferAccessToken"
        account_id:
          description: The Plaid `account_id` for the account that will be debited or credited.
          type: string
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/BankTransferAmount"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        custom_tag:
          description: An arbitrary string provided by the client for storage with the bank transfer. May be up to 100 characters.
          maxLength: 100
          nullable: true
          type: string
        description:
          description: The transfer description. Maximum of 10 characters.
          maxLength: 10
          type: string
        idempotency_key:
          $ref: "#/components/schemas/BankTransferIdempotencyKey"
        iso_currency_code:
          description: The currency of the transfer amount – should be set to "USD".
          type: string
        metadata:
          $ref: "#/components/schemas/BankTransferMetadata"
        network:
          $ref: "#/components/schemas/BankTransferNetwork"
        origination_account_id:
          description: Plaid’s unique identifier for the origination account for this transfer. If you have more than one origination account, this value must be specified. Otherwise, this field should be left blank.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        type:
          $ref: "#/components/schemas/BankTransferType"
        user:
          $ref: "#/components/schemas/BankTransferUser"
      required:
        - idempotency_key
        - access_token
        - account_id
        - type
        - network
        - amount
        - iso_currency_code
        - description
        - user
      title: BankTransferCreateRequest
      type: object
    BankTransferCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/bank_transfer/create`
      properties:
        bank_transfer:
          $ref: "#/components/schemas/BankTransfer"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - bank_transfer
        - request_id
      title: BankTransferCreateResponse
      type: object
    BankTransferDirection:
      description: "Indicates the direction of the transfer: `outbound` for API-initiated transfers, or `inbound` for payments received by the FBO account."
      enum:
        - outbound
        - inbound
        - null
      nullable: true
      title: BankTransferDirection
      type: string
    BankTransferEvent:
      additionalProperties: true
      description: Represents an event in the Bank Transfers API.
      properties:
        account_id:
          description: The account ID associated with the bank transfer.
          type: string
        bank_transfer_amount:
          description: The bank transfer amount.
          type: string
        bank_transfer_id:
          $ref: "#/components/schemas/BankTransferID"
        bank_transfer_iso_currency_code:
          description: The currency of the bank transfer amount.
          type: string
        bank_transfer_type:
          $ref: "#/components/schemas/BankTransferType"
        direction:
          $ref: "#/components/schemas/BankTransferDirection"
        event_id:
          description: Plaid’s unique identifier for this event. IDs are sequential unsigned 64-bit integers.
          minimum: 0
          type: integer
        event_type:
          $ref: "#/components/schemas/BankTransferEventType"
        failure_reason:
          $ref: "#/components/schemas/BankTransferFailure"
        origination_account_id:
          description: The ID of the origination account that this balance belongs to.
          nullable: true
          type: string
        timestamp:
          description: The datetime when this event occurred. This will be of the form `2006-01-02T15:04:05Z`.
          format: date-time
          type: string
      required:
        - event_id
        - timestamp
        - event_type
        - account_id
        - bank_transfer_id
        - origination_account_id
        - bank_transfer_type
        - bank_transfer_amount
        - bank_transfer_iso_currency_code
        - failure_reason
        - direction
      title: BankTransferEvent
      type: object
    BankTransferEventListBankTransferType:
      description: The type of bank transfer. This will be either `debit` or `credit`.  A `debit` indicates a transfer of money into your origination account; a `credit` indicates a transfer of money out of your origination account.
      enum:
        - debit
        - credit
        - null
      nullable: true
      title: BankTransferType
      type: string
    BankTransferEventListDirection:
      description: |-
        Indicates the direction of the transfer: `outbound`: for API-initiated transfers
        `inbound`: for payments received by the FBO account.
      enum:
        - inbound
        - outbound
        - null
      nullable: true
      title: BankTransferDirection
      type: string
    BankTransferEventListRequest:
      description: Defines the request schema for `/bank_transfer/event/list`
      properties:
        account_id:
          description: The account ID to get events for all transactions to/from an account.
          nullable: true
          type: string
        bank_transfer_id:
          description: Plaid’s unique identifier for a bank transfer.
          nullable: true
          title: BankTransferID
          type: string
        bank_transfer_type:
          $ref: "#/components/schemas/BankTransferEventListBankTransferType"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of bank transfer events to return. If the number of events matching the above parameters is greater than `count`, the most recent events will be returned.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        direction:
          $ref: "#/components/schemas/BankTransferEventListDirection"
        end_date:
          description: The end datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
        event_types:
          description: Filter events by event type.
          items:
            $ref: "#/components/schemas/BankTransferEventType"
          type: array
        offset:
          default: 0
          description: The offset into the list of bank transfer events. When `count`=25 and `offset`=0, the first 25 events will be returned. When `count`=25 and `offset`=25, the next 25 bank transfer events will be returned.
          minimum: 0
          nullable: true
          type: integer
        origination_account_id:
          description: The origination account ID to get events for transfers from a specific origination account.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        start_date:
          description: The start datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
      title: BankTransferEventListRequest
      type: object
    BankTransferEventListResponse:
      additionalProperties: true
      description: Defines the response schema for `/bank_transfer/event/list`
      properties:
        bank_transfer_events:
          items:
            $ref: "#/components/schemas/BankTransferEvent"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - bank_transfer_events
        - request_id
      title: BankTransferEventListResponse
      type: object
    BankTransferEventSyncRequest:
      description: Defines the request schema for `/bank_transfer/event/sync`
      properties:
        after_id:
          description: The latest (largest) `event_id` fetched via the sync endpoint, or 0 initially.
          minimum: 0
          type: integer
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of bank transfer events to return.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - after_id
      title: BankTransferEventSyncRequest
      type: object
    BankTransferEventSyncResponse:
      additionalProperties: true
      description: Defines the response schema for `/bank_transfer/event/sync`
      properties:
        bank_transfer_events:
          items:
            $ref: "#/components/schemas/BankTransferEvent"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - bank_transfer_events
        - request_id
      title: BankTransferEventSyncResponse
      type: object
    BankTransferEventType:
      description: |-
        The type of event that this bank transfer represents.

        `pending`: A new transfer was created; it is in the pending state.

        `cancelled`: The transfer was cancelled by the client.

        `failed`: The transfer failed, no funds were moved.

        `posted`: The transfer has been successfully submitted to the payment network.

        `reversed`: A posted transfer was reversed.
      enum:
        - pending
        - cancelled
        - failed
        - posted
        - reversed
      title: BankTransferEventType
      type: string
    BankTransferFailure:
      additionalProperties: true
      description: The failure reason if the type of this transfer is `"failed"` or `"reversed"`. Null value otherwise.
      nullable: true
      properties:
        ach_return_code:
          description: The ACH return code, e.g. `R01`.  A return code will be provided if and only if the transfer status is `reversed`. For a full listing of ACH return codes, see [Bank Transfers errors](https://plaid.com/docs/errors/bank-transfers/#ach-return-codes).
          nullable: true
          type: string
        description:
          description: A human-readable description of the reason for the failure or reversal.
          type: string
      title: BankTransferFailure
      type: object
    BankTransferGetRequest:
      description: Defines the request schema for `/bank_transfer/get`
      properties:
        bank_transfer_id:
          $ref: "#/components/schemas/BankTransferID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - bank_transfer_id
      title: BankTransferGetRequest
      type: object
    BankTransferGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/bank_transfer/get`
      properties:
        bank_transfer:
          $ref: "#/components/schemas/BankTransfer"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - bank_transfer
        - request_id
      title: BankTransferGetResponse
      type: object
    BankTransferID:
      description: Plaid’s unique identifier for a bank transfer.
      title: BankTransferID
      type: string
    BankTransferIdempotencyKey:
      description: |-
        A random key provided by the client, per unique bank transfer. Maximum of 50 characters.

        The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a bank transfer fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single bank transfer is created.
      maxLength: 50
      title: BankTransferIdempotencyKey
      type: string
    BankTransferListRequest:
      description: Defines the request schema for `/bank_transfer/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of bank transfers to return.
          maximum: 25
          minimum: 1
          type: integer
        direction:
          $ref: "#/components/schemas/BankTransferDirection"
        end_date:
          description: The end datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
        offset:
          default: 0
          description: The number of bank transfers to skip before returning results.
          minimum: 0
          type: integer
        origination_account_id:
          description: Filter bank transfers to only those originated through the specified origination account.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        start_date:
          description: The start datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
      title: BankTransferListRequest
      type: object
    BankTransferListResponse:
      additionalProperties: true
      description: Defines the response schema for `/bank_transfer/list`
      properties:
        bank_transfers:
          items:
            $ref: "#/components/schemas/BankTransfer"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - bank_transfers
        - request_id
      title: BankTransferListResponse
      type: object
    BankTransferMetadata:
      additionalProperties:
        type: string
      description: |
        The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply:
        The JSON values must be Strings (no nested JSON objects allowed)
        Only ASCII characters may be used
        Maximum of 50 key/value pairs
        Maximum key length of 40 characters
        Maximum value length of 500 characters
      maxProperties: 50
      nullable: true
      title: BankTransferMetadata
      type: object
    BankTransferMigrateAccountRequest:
      description: Defines the request schema for `/bank_transfer/migrate_account`
      properties:
        account_number:
          description: The user's account number.
          type: string
        account_type:
          description: The type of the bank account (`checking` or `savings`).
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        routing_number:
          description: The user's routing number.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        wire_routing_number:
          description: The user's wire transfer routing number. This is the ABA number; for some institutions, this may differ from the ACH number used in `routing_number`.
          type: string
      required:
        - account_number
        - routing_number
        - account_type
      title: BankTransferMigrateAccountRequest
      type: object
    BankTransferMigrateAccountResponse:
      additionalProperties: true
      description: Defines the response schema for `/bank_transfer/migrate_account`
      properties:
        access_token:
          description: The Plaid `access_token` for the newly created Item.
          type: string
        account_id:
          description: The Plaid `account_id` for the newly created Item.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - access_token
        - account_id
        - request_id
      title: BankTransferMigrateAccountResponse
      type: object
    BankTransferNetwork:
      description: The network or rails used for the transfer. Valid options are `ach`, `same-day-ach`, or `wire`.
      enum:
        - ach
        - same-day-ach
        - wire
      title: BankTransferNetwork
      type: string
    BankTransferStatus:
      description: The status of the transfer.
      enum:
        - pending
        - posted
        - cancelled
        - failed
        - reversed
      title: BankTransferStatus
      type: string
    BankTransferSweep:
      additionalProperties: true
      description: BankTransferSweep describes a sweep transfer.
      properties:
        amount:
          description: The amount of the sweep.
          type: string
        created_at:
          description: The datetime when the sweep occurred, in RFC 3339 format.
          format: date-time
          type: string
        id:
          description: Identifier of the sweep.
          type: string
        iso_currency_code:
          description: The currency of the sweep, e.g. "USD".
          type: string
      required:
        - id
        - created_at
        - amount
        - iso_currency_code
      title: BankTransferSweep
      type: object
    BankTransferSweepGetRequest:
      description: Defines the request schema for `/bank_transfer/sweep/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        sweep_id:
          description: Identifier of the sweep.
          type: string
      required:
        - sweep_id
      title: BankTransferSweepGetRequest
      type: object
    BankTransferSweepGetResponse:
      additionalProperties: true
      description: BankTransferSweepGetResponse defines the response schema for `/bank_transfer/sweep/get`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        sweep:
          $ref: "#/components/schemas/BankTransferSweep"
      required:
        - sweep
        - request_id
      title: BankTransferSweepGetResponse
      type: object
    BankTransferSweepListRequest:
      description: BankTransferSweepListRequest defines the request schema for `/bank_transfer/sweep/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of sweeps to return.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        end_time:
          description: The end datetime of sweeps to return (RFC 3339 format).
          format: date-time
          nullable: true
          type: string
        origination_account_id:
          description: If multiple origination accounts are available, `origination_account_id` must be used to specify the account that the sweeps belong to.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        start_time:
          description: The start datetime of sweeps to return (RFC 3339 format).
          format: date-time
          nullable: true
          type: string
      title: BankTransferSweepListRequest
      type: object
    BankTransferSweepListResponse:
      additionalProperties: true
      description: BankTransferSweepListResponse defines the response schema for `/bank_transfer/sweep/list`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        sweeps:
          items:
            $ref: "#/components/schemas/BankTransferSweep"
          type: array
      required:
        - sweeps
        - request_id
      title: BankTransferSweepListResponse
      type: object
    BankTransferType:
      description: The type of bank transfer. This will be either `debit` or `credit`.  A `debit` indicates a transfer of money into the origination account; a `credit` indicates a transfer of money out of the origination account.
      enum:
        - debit
        - credit
      title: BankTransferType
      type: string
    BankTransferUser:
      additionalProperties: true
      description: The legal name and other information for the account holder.
      properties:
        email_address:
          description: The account holder’s email.
          nullable: true
          type: string
        legal_name:
          description: The account holder’s full legal name. If the transfer `ach_class` is `ccd`, this should be the business name of the account holder.
          type: string
        routing_number:
          description: The account holder's routing number. This field is only used in response data. Do not provide this field when making requests.
          readOnly: true
          type: string
      required:
        - legal_name
      title: BankTransferUser
      type: object
    BankTransfersEventsUpdateWebhook:
      additionalProperties: true
      description: Fired when new bank transfer events are available. Receiving this webhook indicates you should fetch the new events from `/bank_transfer/event/sync`.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        webhook_code:
          description: "`BANK_TRANSFERS_EVENTS_UPDATE`"
          type: string
        webhook_type:
          description: "`BANK_TRANSFERS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - environment
      title: BankTransfersEventsUpdateWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          webhook_code: BANK_TRANSFERS_EVENTS_UPDATE
          webhook_type: BANK_TRANSFERS
    BankTransfersEventsUpdateWebhookForAuth:
      additionalProperties: true
      description: Fired when new ACH events are available. To begin receiving this webhook, you must first register your webhook listener endpoint via the [webhooks page in the Dashboard](https://dashboard.plaid.com/team/webhooks). The `BANK_TRANSFERS_EVENTS_UPDATE` webhook can be used to track the progress of ACH transfers used in [micro-deposit verification](/docs/auth/coverage/microdeposit-events/). Receiving this webhook indicates you should fetch the new events from `/bank_transfer/event/sync`. Note that [Transfer](https://plaid.com/docs/transfer) customers should use Transfer webhooks instead of using `BANK_TRANSFERS_EVENTS_UPDATE`; see [micro-deposit events documentation](https://plaid.com/docs/auth/coverage/microdeposit-events/) for more details.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        webhook_code:
          description: "`BANK_TRANSFERS_EVENTS_UPDATE`"
          type: string
        webhook_type:
          description: "`BANK_TRANSFERS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - environment
      title: BankTransfersEventsUpdateWebhookForAuth
      type: object
      x-examples:
        example-1:
          environment: production
          webhook_code: BANK_TRANSFERS_EVENTS_UPDATE
          webhook_type: BANK_TRANSFERS
    CategoriesGetRequest:
      description: CategoriesGetRequest defines the request schema for `/categories/get`
      type: object
    CategoriesGetResponse:
      additionalProperties: true
      description: CategoriesGetResponse defines the response schema for `/categories/get`
      properties:
        categories:
          description: An array of all of the transaction categories used by Plaid.
          items:
            $ref: "#/components/schemas/Category"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - categories
        - request_id
      type: object
    Category:
      additionalProperties: true
      description: Information describing a transaction category
      properties:
        category_id:
          description: An identifying number for the category. `category_id` is a Plaid-specific identifier and does not necessarily correspond to merchant category codes.
          type: string
        group:
          description: "`place` for physical transactions or `special` for other transactions such as bank charges."
          type: string
        hierarchy:
          description: A hierarchical array of the categories to which this `category_id` belongs.
          items:
            type: string
          type: array
      required:
        - category_id
        - group
        - hierarchy
      title: Category
      type: object
    Cause:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/PlaidError"
        - properties:
            item_id:
              $ref: "#/components/schemas/ItemId"
          type: object
      description: 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.
      required:
        - item_id
        - error_type
        - error_code
        - error_message
        - display_message
      title: Cause
      type: object
    City:
      description: City from the end user's address
      example: Pawnee
      title: CityName
      type: string
    CityNullable:
      description: City from the end user's address
      example: Pawnee
      nullable: true
      title: CityName
      type: string
    ClientProvidedEnhancedTransaction:
      additionalProperties: true
      description: A client-provided transaction that Plaid has enhanced.
      properties:
        amount:
          description: The value of the transaction, denominated in the account's currency, as stated in `iso_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.
          format: double
          type: number
        description:
          description: The raw description of the transaction.
          type: string
        enhancements:
          $ref: "#/components/schemas/Enhancements"
        id:
          description: Unique transaction identifier to tie transactions back to clients' systems.
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the transaction.
          type: string
      required:
        - id
        - description
        - amount
        - iso_currency_code
        - enhancements
      title: ClientProvidedEnhancedTransaction
      type: object
      x-examples: {}
    ClientProvidedEnrichedTransaction:
      additionalProperties: true
      description: A client-provided transaction that Plaid has enriched.
      properties:
        amount:
          description: The absolute value of the transaction (>= 0)
          format: double
          type: number
        description:
          description: The raw description of the transaction.
          type: string
        direction:
          $ref: "#/components/schemas/EnrichTransactionDirection"
        enrichments:
          $ref: "#/components/schemas/Enrichments"
        id:
          description: The unique ID for the transaction as provided by you in the request.
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the transaction e.g. USD.
          type: string
      required:
        - id
        - description
        - amount
        - iso_currency_code
        - enrichments
      title: ClientProvidedEnrichedTransaction
      type: object
      x-examples: {}
    ClientProvidedRawTransaction:
      additionalProperties: true
      description: A client-provided transaction for Plaid to enhance.
      properties:
        amount:
          description: |-
            The value of the transaction with direction. (NOTE: this will affect enrichment results, so directions are important):.
              Negative (-) for credits (e.g., incoming transfers, refunds)
              Positive (+) for debits (e.g., purchases, fees, outgoing transfers)
          format: double
          type: number
        description:
          description: The raw description of the transaction.
          type: string
        id:
          description: A unique ID for the transaction used to help you tie data back to your systems.
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the transaction e.g. USD.
          type: string
      required:
        - id
        - description
        - amount
        - iso_currency_code
      title: ClientProvidedRawTransaction
      type: object
    ClientProvidedTransaction:
      additionalProperties: true
      description: A client-provided transaction for Plaid to enrich.
      properties:
        amount:
          description: The absolute value of the transaction (>= 0). When testing Enrich, note that `amount` data should be realistic. Unrealistic or inaccurate `amount` data may result in reduced quality output.
          format: double
          type: number
        date_posted:
          description: The date the transaction posted, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format.
          format: date
          type: string
        description:
          description: The raw description of the transaction. If you have location data in available an unstructured format, it may be appended to the `description` field.
          type: string
        direction:
          $ref: "#/components/schemas/EnrichTransactionDirection"
        id:
          description: A unique ID for the transaction used to help you tie data back to your systems.
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the transaction e.g. USD.
          type: string
        location:
          $ref: "#/components/schemas/ClientProvidedTransactionLocation"
        mcc:
          description: Merchant category codes (MCCs) are four-digit numbers that describe a merchant's primary business activities.
          type: string
      required:
        - id
        - description
        - amount
        - direction
        - iso_currency_code
      title: ClientProvidedTransaction
      type: object
    ClientProvidedTransactionLocation:
      additionalProperties: true
      description: |-
        A representation of where a transaction took place.

        Use this field to pass in structured location information you may have about your transactions. Providing location data is optional but can increase result quality. If you have unstructured location information, it may be appended to the `description` field.
      properties:
        address:
          description: The street address where the transaction occurred.
          type: string
        city:
          description: The city where the transaction occurred.
          type: string
        country:
          description: The country where the transaction occurred.
          type: string
        postal_code:
          description: The postal code where the transaction occurred.
          type: string
        region:
          description: The region or state where the transaction occurred.
          type: string
      title: ClientProvidedTransactionLocation
      type: object
    ClientUserID:
      description: An identifier to help you connect this object to your internal systems. For example, your database ID corresponding to this object.
      example: your-db-id-3b24110
      minLength: 1
      title: ClientUserID
      type: string
    ClientUserIDNullable:
      description: An identifier to help you connect this object to your internal systems. For example, your database ID corresponding to this object.
      example: your-db-id-3b24110
      minLength: 1
      nullable: true
      title: ClientUserID
      type: string
    ConnectedApplication:
      description: Describes the connected application for a particular end user.
      properties:
        application_id:
          $ref: "#/components/schemas/ApplicationID"
        application_url:
          description: The URL for the application's website
          nullable: true
          type: string
        created_at:
          description: The date this application was linked in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format in UTC.
          example: 2020-01-01
          format: date
          type: string
        display_name:
          description: A human-readable name of the application for display purposes
          nullable: true
          type: string
        logo_url:
          description: A URL that links to the application logo image.
          nullable: true
          type: string
        name:
          description: The name of the application
          type: string
        reason_for_access:
          description: A string provided by the connected app stating why they use their respective enabled products.
          nullable: true
          type: string
        scopes:
          $ref: "#/components/schemas/ScopesNullable"
      required:
        - application_id
        - name
        - created_at
      type: object
    ConsentPaymentIdempotencyKey:
      description: |-
        A random key provided by the client, per unique consent payment. Maximum of 128 characters.

        The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. If a request to execute a consent payment fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single payment is created. If the request was successfully processed, it will prevent any payment that uses the same idempotency key, and was received within 24 hours of the first request, from being processed.
      maxLength: 128
      minLength: 1
      title: ConsentPaymentIdempotencyKey
      type: string
    Counterparty:
      additionalProperties: true
      description: The counterparty, such as the merchant or financial institution, is extracted by Plaid from the raw description.
      properties:
        entity_id:
          description: A unique, stable, Plaid-generated id that maps to the counterparty.
          nullable: true
          type: string
        logo_url:
          description: The URL of a logo associated with the counterparty, if available. The logo is formatted as a 100x100 pixel PNG file.
          nullable: true
          type: string
        name:
          description: The name of the counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description.
          type: string
        type:
          $ref: "#/components/schemas/CounterpartyType"
        website:
          description: The website associated with the counterparty.
          nullable: true
          type: string
      required:
        - name
        - type
        - logo_url
        - website
      title: Counterparty
      type: object
    CounterpartyType:
      description: |-
        The counterparty type.

        `merchant`: a provider of goods or services for purchase
        `financial_institution`: a financial entity (bank, credit union, BNPL, fintech)
        `payment_app`: a transfer or P2P app (e.g. Zelle)
        `marketplace`: a marketplace (e.g DoorDash, Google Play Store)
        `payment_terminal`: a point-of-sale payment terminal (e.g Square, Toast)
      enum:
        - merchant
        - financial_institution
        - payment_app
        - marketplace
        - payment_terminal
      title: CounterpartyType
      type: string
    CountryCode:
      description: ISO-3166-1 alpha-2 country code standard.
      enum:
        - US
        - GB
        - ES
        - NL
        - FR
        - IE
        - CA
        - DE
        - IT
        - PL
        - DK
        - NO
        - SE
        - EE
        - LT
        - LV
        - PT
      title: CountryCode
      type: string
    Credit1099:
      additionalProperties: true
      description: An object representing an end user's 1099 tax form
      properties:
        april_amount:
          description: Amount reported for April.
          format: double
          nullable: true
          type: number
        august_amount:
          description: Amount reported for August.
          format: double
          nullable: true
          type: number
        card_not_present_transaction:
          description: Amount in card not present transactions.
          format: double
          nullable: true
          type: number
        crop_insurance_proceeds:
          description: Amount of crop insurance proceeds.
          format: double
          nullable: true
          type: number
        december_amount:
          description: Amount reported for December.
          format: double
          nullable: true
          type: number
        document_id:
          description: An identifier of the document referenced by the document metadata.
          nullable: true
          type: string
        document_metadata:
          $ref: "#/components/schemas/CreditDocumentMetadata"
        excess_golden_parachute_payments:
          description: Amount of golden parachute payments made by payer.
          format: double
          nullable: true
          type: number
        february_amount:
          description: Amount reported for February.
          format: double
          nullable: true
          type: number
        federal_income_tax_withheld:
          description: Amount of federal income tax withheld from payer.
          format: double
          nullable: true
          type: number
        filer:
          $ref: "#/components/schemas/Credit1099Filer"
        fishing_boat_proceeds:
          description: Amount of fishing boat proceeds from payer.
          format: double
          nullable: true
          type: number
        form_1099_type:
          $ref: "#/components/schemas/Form1099Type"
        gross_amount:
          description: Gross amount reported.
          format: double
          nullable: true
          type: number
        gross_proceeds_paid_to_an_attorney:
          description: Amount of gross proceeds paid to an attorney by payer.
          format: double
          nullable: true
          type: number
        january_amount:
          description: Amount reported for January.
          format: double
          nullable: true
          type: number
        july_amount:
          description: Amount reported for July.
          format: double
          nullable: true
          type: number
        june_amount:
          description: Amount reported for June.
          format: double
          nullable: true
          type: number
        march_amount:
          description: Amount reported for March.
          format: double
          nullable: true
          type: number
        may_amount:
          description: Amount reported for May.
          format: double
          nullable: true
          type: number
        medical_and_healthcare_payments:
          description: Amount of medical and healthcare payments from payer.
          format: double
          nullable: true
          type: number
        merchant_category_code:
          description: Merchant category of filer.
          nullable: true
          type: string
        nonemployee_compensation:
          description: Amount of nonemployee compensation from payer.
          format: double
          nullable: true
          type: number
        november_amount:
          description: Amount reported for November.
          format: double
          nullable: true
          type: number
        number_of_payment_transactions:
          description: Number of payment transactions made.
          nullable: true
          type: string
        october_amount:
          description: Amount reported for October.
          format: double
          nullable: true
          type: number
        other_income:
          description: Amount in other income by payer.
          format: double
          nullable: true
          type: number
        payer:
          $ref: "#/components/schemas/Credit1099Payer"
        payer_made_direct_sales_of_5000_or_more_of_consumer_products_to_buyer:
          description: Whether or not payer made direct sales over $5000 of consumer products.
          nullable: true
          type: string
        payer_state_number:
          description: Primary state ID.
          nullable: true
          type: string
        payer_state_number_lower:
          description: Secondary state ID.
          nullable: true
          type: string
        primary_state:
          description: Primary state of business.
          nullable: true
          type: string
        primary_state_id:
          description: Primary state ID.
          nullable: true
          type: string
        primary_state_income_tax:
          description: State income tax reported for primary state.
          format: double
          nullable: true
          type: number
        pse_name:
          description: Name of the PSE (Payment Settlement Entity).
          nullable: true
          type: string
        pse_telephone_number:
          description: Formatted (XXX) XXX-XXXX. Phone number of the PSE (Payment Settlement Entity).
          nullable: true
          type: string
        recipient:
          $ref: "#/components/schemas/Credit1099Recipient"
        rents:
          description: Amount in rent by payer.
          format: double
          nullable: true
          type: number
        royalties:
          description: Amount in royalties by payer.
          format: double
          nullable: true
          type: number
        secondary_state:
          description: Secondary state of business.
          nullable: true
          type: string
        secondary_state_id:
          description: Secondary state ID.
          nullable: true
          type: string
        secondary_state_income_tax:
          description: State income tax reported for secondary state.
          format: double
          nullable: true
          type: number
        section_409a_deferrals:
          description: Amount of 409A deferrals earned by payer.
          format: double
          nullable: true
          type: number
        section_409a_income:
          description: Amount of 409A income earned by payer.
          format: double
          nullable: true
          type: number
        september_amount:
          description: Amount reported for September.
          format: double
          nullable: true
          type: number
        state_income:
          description: State income reported for primary state.
          format: double
          nullable: true
          type: number
        state_income_lower:
          description: State income reported for secondary state.
          format: double
          nullable: true
          type: number
        state_tax_withheld:
          description: Amount of state tax withheld of payer for primary state.
          format: double
          nullable: true
          type: number
        state_tax_withheld_lower:
          description: Amount of state tax withheld of payer for secondary state.
          format: double
          nullable: true
          type: number
        substitute_payments_in_lieu_of_dividends_or_interest:
          description: Amount of substitute payments made by payer.
          format: double
          nullable: true
          type: number
        tax_year:
          description: Tax year of the tax form.
          nullable: true
          type: string
        transactions_reported:
          description: One of the values will be provided Payment card Third party network
          nullable: true
          type: string
          x-override-enum-values-shown:
            - Payment card
            - Third party network
      required:
        - document_id
      title: Credit1099
      type: object
    Credit1099Filer:
      additionalProperties: true
      description: An object representing a filer used by 1099-K tax documents.
      properties:
        address:
          $ref: "#/components/schemas/CreditPayStubAddress"
        name:
          description: Name of filer.
          nullable: true
          type: string
        tin:
          description: Tax identification number of filer.
          nullable: true
          type: string
        type:
          description: "One of the following values will be provided: Payment Settlement Entity (PSE), Electronic Payment Facilitator (EPF), Other Third Party"
          nullable: true
          type: string
          x-override-enum-values-shown:
            - Payment Settlement Entity (PSE)
            - Electronic Payment Facilitator (EPF)
            - Other Third Party
      title: Credit1099Filer
      type: object
    Credit1099Payer:
      additionalProperties: true
      description: An object representing a payer used by 1099-MISC tax documents.
      properties:
        address:
          $ref: "#/components/schemas/CreditPayStubAddress"
        name:
          description: Name of payer.
          nullable: true
          type: string
        telephone_number:
          description: Telephone number of payer.
          nullable: true
          type: string
        tin:
          description: Tax identification number of payer.
          nullable: true
          type: string
      title: Credit1099Payer
      type: object
    Credit1099Recipient:
      additionalProperties: true
      description: An object representing a recipient used in both 1099-K and 1099-MISC tax documents.
      properties:
        account_number:
          description: Account number number of recipient.
          nullable: true
          type: string
        address:
          $ref: "#/components/schemas/CreditPayStubAddress"
        facta_filing_requirement:
          description: Checked if FACTA is a filing requirement.
          nullable: true
          type: string
          x-override-enum-values-shown:
            - CHECKED
            - NOT CHECKED
        name:
          description: Name of recipient.
          nullable: true
          type: string
        second_tin_exists:
          description: Checked if 2nd TIN exists.
          nullable: true
          type: string
          x-override-enum-values-shown:
            - CHECKED
            - NOT CHECKED
        tin:
          description: Tax identification number of recipient.
          nullable: true
          type: string
      title: Credit1099Recipient
      type: object
    CreditAccount:
      description: "A credit card type account. Supported products for `credit` accounts are: Balance, Transactions, Identity, and Liabilities."
      properties:
        credit card:
          description: Bank-issued credit card
          type: string
        paypal:
          description: PayPal-issued credit card
          type: string
      required:
        - credit card
        - paypal
      title: CreditAccount
      type: string
    CreditAccountSubtype:
      description: Valid account subtypes for credit accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-credit).
      enum:
        - credit card
        - paypal
        - all
      type: string
    CreditAccountSubtypes:
      description: "An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema). "
      items:
        $ref: "#/components/schemas/CreditAccountSubtype"
      title: CreditAccountSubtypes
      type: array
    CreditAmountWithCurrency:
      additionalProperties: true
      description: This contains an amount, denominated in the currency specified by either `iso_currency_code` or `unofficial_currency_code`
      properties:
        amount:
          description: Value of amount with up to 2 decimal places.
          type: number
        iso_currency_code:
          $ref: "#/components/schemas/CreditIsoCurrencyCode"
        unofficial_currency_code:
          $ref: "#/components/schemas/CreditUnofficialCurrencyCode"
      type: object
    CreditAuditCopyTokenCreateRequest:
      description: CreditAuditCopyTokenCreateRequest defines the request schema for `/credit/audit_copy_token/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        report_tokens:
          description: List of report tokens; can include at most one VOA/standard Asset Report tokens and one VOE Asset Report Token.
          items:
            description: The report token. It can be an VOA Asset Report token or a VOE Asset Report token.
            nullable: false
            type: string
          type: array
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - report_tokens
      type: object
    CreditAuditCopyTokenCreateResponse:
      additionalProperties: true
      description: CreditAuditCopyTokenCreateResponse defines the response schema for `/credit/audit_copy_token/get`
      properties:
        audit_copy_token:
          description: A token that can be shared with a third party auditor, which allows them to fetch the Asset Reports attached to the token. This token should be stored securely.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - audit_copy_token
        - request_id
      type: object
    CreditAuditCopyTokenRemoveRequest:
      description: CreditAuditCopyTokenRemoveRequest defines the request schema for `/credit/audit_copy_token/remove`
      properties:
        audit_copy_token:
          description: The `audit_copy_token` granting access to the Audit Copy you would like to revoke.
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - audit_copy_token
      type: object
    CreditAuditCopyTokenRemoveResponse:
      additionalProperties: true
      description: CreditAuditCopyTokenRemoveResponse defines the response schema for `/credit/audit_copy_token/remove`
      properties:
        removed:
          description: "`true` if the Audit Copy was successfully removed."
          type: boolean
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - removed
        - request_id
      type: object
    CreditAuditCopyTokenUpdateRequest:
      description: CreditAuditCopyTokenUpdateRequest defines the request schema for `/credit/audit_copy_token/update`
      properties:
        audit_copy_token:
          description: The `audit_copy_token` you would like to update.
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        report_tokens:
          description: Array of tokens which the specified Audit Copy Token will be updated with. The types of token supported are asset report token and employment report token. There can be at most 1 of each token type in the array.
          items:
            $ref: "#/components/schemas/AssetReportToken"
          type: array
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - audit_copy_token
        - report_tokens
      type: object
    CreditAuditCopyTokenUpdateResponse:
      additionalProperties: true
      description: CreditAuditCopyTokenUpdateResponse defines the response schema for `/credit/audit_copy_token/update`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        updated:
          description: "`true` if the Audit Copy Token was successfully updated."
          type: boolean
      required:
        - request_id
        - updated
      type: object
    CreditBankEmployer:
      description: Object containing employer data.
      properties:
        name:
          description: Name of the employer.
          type: string
      required:
        - name
      type: object
    CreditBankEmployment:
      description: Detailed information for the bank employment.
      properties:
        account_id:
          description: Plaid's unique identifier for the account.
          type: string
        bank_employment_id:
          description: A unique identifier for the bank employment.
          type: string
        earliest_deposit_date:
          description: The date of the earliest deposit from this employer from within the period of the days requested.
          format: date
          type: string
        employer:
          $ref: "#/components/schemas/CreditBankEmployer"
        latest_deposit_date:
          description: The date of the most recent deposit from this employer.
          format: date
          type: string
      required:
        - bank_employment_id
        - account_id
        - employer
        - latest_deposit_date
        - earliest_deposit_date
      type: object
    CreditBankEmploymentGetRequest:
      description: CreditBankEmploymentGetRequest defines the request schema for `/beta/credit/v1/bank_employment/get`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      required:
        - user_token
      title: CreditBankEmploymentGetRequest
      type: object
    CreditBankEmploymentGetResponse:
      additionalProperties: true
      description: CreditBankEmploymentGetResponse defines the response schema for `/beta/credit/v1/bank_employment/get`.
      properties:
        bank_employment_reports:
          description: Bank Employment data. Each entry in the array will be a distinct bank employment report.
          items:
            $ref: "#/components/schemas/CreditBankEmploymentReport"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
        - bank_employment_reports
      title: CreditBankEmploymentGetResponse
      type: object
    CreditBankEmploymentItem:
      description: The details and metadata for an end user's Item.
      properties:
        bank_employment_accounts:
          description: The Item's accounts that have Bank Employment data.
          items:
            $ref: "#/components/schemas/CreditBankIncomeAccount"
          type: array
        bank_employments:
          description: The bank employment information for this Item. Each entry in the array is a different employer found.
          items:
            $ref: "#/components/schemas/CreditBankEmployment"
          type: array
        institution_id:
          description: The unique identifier of the institution associated with the Item.
          type: string
        institution_name:
          description: The name of the institution associated with the Item.
          type: string
        item_id:
          description: The unique identifier for the Item.
          type: string
        last_updated_time:
          description: The time when this Item's data was last retrieved from the financial institution, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. "2018-04-12T03:32:11Z").
          format: date-time
          type: string
      required:
        - item_id
        - last_updated_time
        - institution_id
        - institution_name
        - bank_employments
        - bank_employment_accounts
      type: object
    CreditBankEmploymentReport:
      description: The report of the Bank Employment data for an end user.
      properties:
        bank_employment_report_id:
          description: The unique identifier associated with the Bank Employment Report.
          type: string
        days_requested:
          description: The number of days requested by the customer for the Bank Employment Report.
          type: integer
        generated_time:
          description: The time when the Bank Employment Report was generated, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. "2018-04-12T03:32:11Z").
          format: date-time
          type: string
        items:
          description: The list of Items in the report along with the associated metadata about the Item.
          items:
            $ref: "#/components/schemas/CreditBankEmploymentItem"
          type: array
        warnings:
          description: If data from the Bank Employment report was unable to be retrieved, the warnings will contain information about the error that caused the data to be incomplete.
          items:
            $ref: "#/components/schemas/CreditBankEmploymentWarning"
          type: array
      required:
        - bank_employment_report_id
        - generated_time
        - days_requested
        - items
        - warnings
      type: object
    CreditBankEmploymentWarning:
      description: The warning associated with the data that was unavailable for the Bank Employment Report.
      properties:
        cause:
          $ref: "#/components/schemas/CreditBankIncomeCause"
        warning_code:
          $ref: "#/components/schemas/CreditBankIncomeWarningCode"
        warning_type:
          $ref: "#/components/schemas/CreditBankEmploymentWarningType"
      required:
        - warning_type
        - warning_code
        - cause
      type: object
    CreditBankEmploymentWarningType:
      description: The warning type which will always be `BANK_EMPLOYMENT_WARNING`.
      enum:
        - BANK_EMPLOYMENT_WARNING
      type: string
    CreditBankIncome:
      description: The report of the Bank Income data for an end user.
      properties:
        bank_income_id:
          description: The unique identifier associated with the Bank Income Report.
          type: string
        bank_income_summary:
          $ref: "#/components/schemas/CreditBankIncomeSummary"
        days_requested:
          description: The number of days requested by the customer for the Bank Income Report.
          type: integer
        generated_time:
          description: The time when the Bank Income Report was generated.
          format: date-time
          type: string
        items:
          description: The list of Items in the report along with the associated metadata about the Item.
          items:
            $ref: "#/components/schemas/CreditBankIncomeItem"
          type: array
        warnings:
          description: If data from the Bank Income report was unable to be retrieved, the warnings will contain information about the error that caused the data to be incomplete.
          items:
            $ref: "#/components/schemas/CreditBankIncomeWarning"
          type: array
      type: object
    CreditBankIncomeAccount:
      description: The Item's bank accounts that have the selected data.
      properties:
        account_id:
          description: Plaid's unique identifier for the account.
          type: string
        mask:
          description: |-
            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.
          nullable: true
          type: string
        name:
          description: The name of the bank account.
          type: string
        official_name:
          description: The official name of the bank account.
          nullable: true
          type: string
        owners:
          description: Data returned by the financial institution about the account owner or owners. Identity information is optional, so field may return an empty array.
          items:
            $ref: "#/components/schemas/Owner"
          type: array
        subtype:
          $ref: "#/components/schemas/DepositoryAccountSubtype"
        type:
          $ref: "#/components/schemas/CreditBankIncomeAccountType"
      required:
        - account_id
        - mask
        - name
        - official_name
        - subtype
        - type
        - owners
      type: object
    CreditBankIncomeAccountType:
      description: The account type. This will always be `depository`.
      enum:
        - depository
      type: string
    CreditBankIncomeCategory:
      description: The income category.
      enum:
        - SALARY
        - UNEMPLOYMENT
        - CASH
        - GIG_ECONOMY
        - RENTAL
        - CHILD_SUPPORT
        - MILITARY
        - RETIREMENT
        - LONG_TERM_DISABILITY
        - BANK_INTEREST
        - CASH_DEPOSIT
        - TRANSFER_FROM_APPLICATION
        - TAX_REFUND
        - OTHER
      type: string
    CreditBankIncomeCause:
      description: 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.
      properties:
        display_message:
          description: |-
            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.
          type: string
        error_code:
          description: 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.
          type: string
        error_message:
          description: A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
          type: string
        error_type:
          $ref: "#/components/schemas/CreditBankIncomeErrorType"
        item_id:
          description: The `item_id` of the Item associated with this warning.
          type: string
      required:
        - error_type
        - error_code
        - error_message
        - display_message
        - item_id
      type: object
    CreditBankIncomeErrorType:
      description: A broad categorization of the error. Safe for programmatic use.
      enum:
        - 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
      type: string
    CreditBankIncomeGetRequest:
      description: CreditBankIncomeGetRequest defines the request schema for `/credit/bank_income/get`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/CreditBankIncomeGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      title: CreditBankIncomeGetRequest
      type: object
    CreditBankIncomeGetRequestOptions:
      description: An optional object for `/credit/bank_income/get` request options.
      properties:
        count:
          default: 1
          description: 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.
          type: integer
      type: object
    CreditBankIncomeGetResponse:
      additionalProperties: true
      description: CreditBankIncomeGetResponse defines the response schema for `/credit/bank_income/get`
      properties:
        bank_income:
          items:
            $ref: "#/components/schemas/CreditBankIncome"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: CreditBankIncomeGetResponse
      type: object
    CreditBankIncomeHistoricalSummary:
      additionalProperties: true
      description: The end user's monthly summary for the income source(s).
      properties:
        end_date:
          description: |-
            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).
          format: date
          type: string
        iso_currency_code:
          deprecated: true
          description: |-
            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.
          nullable: true
          type: string
        start_date:
          description: |-
            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).
          format: date
          type: string
        total_amount:
          deprecated: true
          description: |-
            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.
          type: number
        total_amounts:
          description: |-
            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.
          items:
            $ref: "#/components/schemas/CreditAmountWithCurrency"
          type: array
        transactions:
          items:
            $ref: "#/components/schemas/CreditBankIncomeTransaction"
          type: array
        unofficial_currency_code:
          deprecated: true
          description: |-
            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.
          nullable: true
          type: string
      type: object
    CreditBankIncomeItem:
      description: The details and metadata for an end user's Item.
      properties:
        bank_income_accounts:
          description: The Item's accounts that have Bank Income data.
          items:
            $ref: "#/components/schemas/CreditBankIncomeAccount"
          type: array
        bank_income_sources:
          description: The income sources for this Item. Each entry in the array is a single income source.
          items:
            $ref: "#/components/schemas/CreditBankIncomeSource"
          type: array
        institution_id:
          description: The unique identifier of the institution associated with the Item.
          type: string
        institution_name:
          description: The name of the institution associated with the Item.
          type: string
        item_id:
          description: The unique identifier for the Item.
          type: string
        last_updated_time:
          description: The time when this Item's data was last retrieved from the financial institution.
          format: date-time
          type: string
      type: object
    CreditBankIncomePDFGetRequest:
      description: CreditBankIncomePDFGetRequest defines the request schema for `/credit/bank_income/pdf/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      required:
        - user_token
      title: CreditBankIncomePDFGetRequest
      type: object
    CreditBankIncomePDFGetResponse:
      description: CreditBankIncomePDFGetResponse defines the response schema for `/credit/bank_income/pdf/get`
      format: binary
      title: CreditBankIncomePDFGetResponse
      type: string
    CreditBankIncomePayFrequency:
      description: The income pay frequency.
      enum:
        - WEEKLY
        - BIWEEKLY
        - SEMI_MONTHLY
        - MONTHLY
        - DAILY
        - UNKNOWN
      type: string
    CreditBankIncomeRefreshRequest:
      additionalProperties: true
      description: CreditBankIncomeRefreshRequest defines the request schema for `/credit/bank_income/refresh`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/CreditBankIncomeRefreshRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      required:
        - user_token
      title: CreditBankIncomeRefreshRequest
      type: object
    CreditBankIncomeRefreshRequestOptions:
      additionalProperties: true
      description: An optional object for `/credit/bank_income/refresh` request options.
      properties:
        days_requested:
          description: How many days of data to include in the refresh. If not specified, this will default to the days requested in the most recently generated bank income report for the user.
          type: integer
        webhook:
          description: The URL where Plaid will send the bank income webhook.
          type: string
      type: object
    CreditBankIncomeRefreshResponse:
      additionalProperties: true
      description: CreditBankIncomeRefreshResponse defines the response schema for `/credit/bank_income/refresh`.
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: CreditBankIncomeRefreshResponse
      type: object
    CreditBankIncomeSource:
      description: Detailed information for the income source.
      properties:
        account_id:
          description: Plaid's unique identifier for the account.
          type: string
        end_date:
          description: |-
            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).
          format: date
          type: string
        historical_summary:
          items:
            $ref: "#/components/schemas/CreditBankIncomeHistoricalSummary"
          type: array
        income_category:
          $ref: "#/components/schemas/CreditBankIncomeCategory"
        income_description:
          description: The most common name or original description for the underlying income transactions.
          type: string
        income_source_id:
          description: A unique identifier for an income source.
          type: string
        pay_frequency:
          $ref: "#/components/schemas/CreditBankIncomePayFrequency"
        start_date:
          description: |-
            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).
          format: date
          type: string
        total_amount:
          description: Total amount of earnings in the user’s bank account for the specific income source for days requested by the client.
          type: number
        transaction_count:
          description: Number of transactions for the income source within the start and end date.
          type: integer
      type: object
    CreditBankIncomeSummary:
      additionalProperties: true
      description: Summary for bank income across all income sources and items (max history of 730 days).
      properties:
        end_date:
          description: |-
            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).
          format: date
          type: string
        historical_summary:
          items:
            $ref: "#/components/schemas/CreditBankIncomeHistoricalSummary"
          type: array
        income_categories_count:
          description: Number of income categories per end user.
          type: integer
        income_sources_count:
          description: Number of income sources per end user.
          type: integer
        income_transactions_count:
          description: Number of income transactions per end user.
          type: integer
        iso_currency_code:
          deprecated: true
          description: |-
            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.
          nullable: true
          type: string
        start_date:
          description: |-
            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).
          format: date
          type: string
        total_amount:
          deprecated: true
          description: |-
            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.
          type: number
        total_amounts:
          description: |-
            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.
          items:
            $ref: "#/components/schemas/CreditAmountWithCurrency"
          type: array
        unofficial_currency_code:
          deprecated: true
          description: |-
            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.
          nullable: true
          type: string
      type: object
    CreditBankIncomeTransaction:
      additionalProperties: true
      description: The transactions data for the end user's income source(s).
      properties:
        amount:
          description: |-
            The settled value of the transaction, denominated in the transactions'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.
          type: number
        check_number:
          description: The check number of the transaction. This field is only populated for check transactions.
          nullable: true
          type: string
        date:
          description: |-
            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).
          format: date
          type: string
        iso_currency_code:
          $ref: "#/components/schemas/CreditIsoCurrencyCode"
        name:
          description: The merchant name or transaction description.
          type: string
        original_description:
          description: The string returned by the financial institution to describe the transaction.
          nullable: true
          type: string
        pending:
          description: |-
            When true, identifies the transaction as pending or unsettled.
            Pending transaction details (name, type, amount, category ID) may change before they are settled.
          type: boolean
        transaction_id:
          description: The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
          type: string
        unofficial_currency_code:
          $ref: "#/components/schemas/CreditUnofficialCurrencyCode"
      type: object
    CreditBankIncomeWarning:
      description: The warning associated with the data that was unavailable for the Bank Income Report.
      properties:
        cause:
          $ref: "#/components/schemas/CreditBankIncomeCause"
        warning_code:
          $ref: "#/components/schemas/CreditBankIncomeWarningCode"
        warning_type:
          $ref: "#/components/schemas/CreditBankIncomeWarningType"
      type: object
    CreditBankIncomeWarningCode:
      description: |-
        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
      enum:
        - IDENTITY_UNAVAILABLE
        - TRANSACTIONS_UNAVAILABLE
        - ITEM_UNAPPROVED
        - REPORT_DELETED
        - DATA_UNAVAILABLE
      type: string
    CreditBankIncomeWarningType:
      description: The warning type which will always be `BANK_INCOME_WARNING`.
      enum:
        - BANK_INCOME_WARNING
      type: string
    CreditCardLiability:
      additionalProperties: true
      description: An object representing a credit card account.
      properties:
        account_id:
          description: The ID of the account that this liability belongs to.
          nullable: true
          type: string
        aprs:
          description: The various interest rates that apply to the account. APR information is not provided by all card issuers; if APR data is not available, this array will be empty.
          items:
            $ref: "#/components/schemas/APR"
          type: array
        is_overdue:
          description: true if a payment is currently overdue. Availability for this field is limited.
          nullable: true
          type: boolean
        last_payment_amount:
          description: The amount of the last payment.
          format: double
          nullable: true
          type: number
        last_payment_date:
          description: The date of the last payment. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Availability for this field is limited.
          format: date
          nullable: true
          type: string
        last_statement_balance:
          description: The total amount owed as of the last statement issued
          format: double
          nullable: true
          type: number
        last_statement_issue_date:
          description: The date of the last statement. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        minimum_payment_amount:
          description: The minimum payment due for the next billing cycle.
          format: double
          nullable: true
          type: number
        next_payment_due_date:
          description: The due date for the next payment. The due date is `null` if a payment is not expected. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
      required:
        - account_id
        - aprs
        - is_overdue
        - last_payment_amount
        - last_payment_date
        - last_statement_issue_date
        - last_statement_balance
        - minimum_payment_amount
        - next_payment_due_date
      title: CreditCardLiability
      type: object
    CreditCategory:
      additionalProperties: true
      description: |-
        Information describing the intent of the transaction. Most relevant for credit use cases, but not limited to such use cases. Please reach out to your account manager or sales representative if you would like to receive this field.

        See the [`taxonomy csv file`](https://plaid.com/documents/credit-category-taxonomy.csv) for a full list of credit categories.
      nullable: true
      properties:
        detailed:
          description: A granular category conveying the transaction's intent. This field can also be used as a unique identifier for the category.
          type: string
        primary:
          description: A high level category that communicates the broad category of the transaction.
          type: string
      required:
        - primary
        - detailed
      title: CreditCategory
      type: object
    CreditDocumentMetadata:
      additionalProperties: true
      description: Object representing metadata pertaining to the document.
      properties:
        document_type:
          $ref: "#/components/schemas/CreditDocumentType"
        download_url:
          description: Signed URL to retrieve the underlying file.
          nullable: true
          type: string
        name:
          description: The name of the document.
          type: string
        status:
          description: The processing status of the document.
          nullable: true
          type: string
      required:
        - name
        - document_type
        - download_url
        - status
      title: CreditDocumentMetadata
      type: object
    CreditDocumentType:
      description: |-
        The type of document.

        `PAYSTUB`: A paystub.

        `BANK_STATEMENT`: A bank statement.

        `US_TAX_W2`: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.

        `US_MILITARY_ERAS`: An electronic Retirement Account Statement (eRAS) issued by the US military.

        `US_MILITARY_LES`: A Leave and Earnings Statement (LES) issued by the US military.

        `US_MILITARY_CLES`: A Civilian Leave and Earnings Statment (CLES) issued by the US military.

        `GIG`: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.

        `PLAID_GENERATED_PAYSTUB_PDF`: Used to indicate that the PDF for the paystub was generated by Plaid.

        `NONE`: Used to indicate that there is no underlying document for the data.

        `UNKNOWN`: Document type could not be determined.
      nullable: true
      title: CreditDocumentType
      type: string
      x-override-enum-values-shown:
        - UNKNOWN
        - PAYSTUB
        - BANK_STATEMENT
        - US_TAX_W2
        - US_MILITARY_ERAS
        - US_MILITARY_LES
        - US_MILITARY_CLES
        - GIG
        - PLAID_GENERATED_PAYSTUB_PDF
        - NONE
    CreditEmployerVerification:
      additionalProperties: true
      description: An object containing employer data.
      properties:
        name:
          description: Name of employer.
          nullable: true
          type: string
      required:
        - name
      title: CreditEmployerVerification
      type: object
    CreditEmploymentEmployeeType:
      description: |-
        The type of employment for the individual.
        `"FULL_TIME"`: A full-time employee.
        `"PART_TIME"`: A part-time employee.
        `"CONTRACTOR"`: An employee typically hired externally through a contracting group.
        `"TEMPORARY"`: A temporary employee.
        `"OTHER"`: The employee type is not one of the above defined types.
      nullable: true
      title: CreditEmploymentEmployeeType
      type: string
      x-override-enum-values-shown:
        - FULL_TIME
        - PART_TIME
        - CONTRACTOR
        - TEMPORARY
        - OTHER
        - null
    CreditEmploymentGetRequest:
      description: CreditEmploymentGetRequest defines the request schema for `/credit/employment/get`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      required:
        - user_token
      title: CreditEmploymentGetRequest
      type: object
    CreditEmploymentGetResponse:
      additionalProperties: true
      description: CreditEmploymentGetResponse defines the response schema for `/credit/employment/get`.
      properties:
        items:
          description: Array of employment items.
          items:
            $ref: "#/components/schemas/CreditEmploymentItem"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - items
        - request_id
      title: CreditEmploymentGetResponse
      type: object
    CreditEmploymentItem:
      additionalProperties: true
      description: The object containing employment items.
      properties:
        employment_report_token:
          description: Token to represent the underlying Employment data
          title: EmploymentReportToken
          type: string
          x-hidden-from-docs: true
        employments:
          items:
            $ref: "#/components/schemas/CreditEmploymentVerification"
          type: array
        item_id:
          $ref: "#/components/schemas/ItemId"
      required:
        - item_id
        - employments
      title: CreditEmploymentItem
      type: object
    CreditEmploymentVerification:
      additionalProperties: true
      description: The object containing proof of employment data for an individual.
      properties:
        account_id:
          description: ID of the payroll provider account.
          nullable: true
          type: string
        employee_type:
          $ref: "#/components/schemas/CreditEmploymentEmployeeType"
        employer:
          $ref: "#/components/schemas/CreditEmployerVerification"
        end_date:
          description: End of employment, if applicable. Provided in ISO 8601 format (YYY-MM-DD).
          format: date
          nullable: true
          type: string
        last_paystub_date:
          description: The date of the employee's most recent paystub in ISO 8601 format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        platform_ids:
          $ref: "#/components/schemas/CreditPlatformIds"
        start_date:
          description: Start of employment in ISO 8601 format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/CreditEmploymentVerificationStatus"
        title:
          description: Current title of employee.
          nullable: true
          type: string
      required:
        - account_id
        - status
        - start_date
        - end_date
        - employer
        - title
        - platform_ids
        - employee_type
        - last_paystub_date
      title: CreditEmploymentVerification
      type: object
    CreditEmploymentVerificationStatus:
      description: Current employment status.
      nullable: true
      title: CreditEmploymentVerificationStatus
      type: string
      x-override-enum-values-shown:
        - ACTIVE
        - INACTIVE
        - null
    CreditFilter:
      additionalProperties: true
      description: A filter to apply to `credit`-type accounts
      properties:
        account_subtypes:
          $ref: "#/components/schemas/CreditAccountSubtypes"
      required:
        - account_subtypes
      title: CreditFilter
      type: object
    CreditFreddieMacAssetDetail_VOE_2_5:
      additionalProperties: true
      description: Details about an asset.
      properties:
        AssetAccountIdentifier:
          description: A unique alphanumeric string identifying an asset.
          type: string
        AssetAsOfDate:
          description: Account Report As of Date / Create Date. Format YYYY-MM-DD
          type: string
        AssetDaysRequestedCount:
          description: The Number of days requested made to the Financial Institution. Example When looking for 3 months of data from the FI, pass in 90 days.
          type: integer
        AssetDescription:
          description: A text description that further defines the Asset. This could be used to describe the shares associated with the stocks, bonds or mutual funds, retirement funds or business owned that the borrower has disclosed (named) as an asset.
          nullable: true
          type: string
        AssetOwnershipType:
          description: Ownership type of the asset account.
          nullable: true
          type: string
        AssetType:
          $ref: "#/components/schemas/AssetType"
        AssetTypeAdditionalDescription:
          description: Additional Asset Decription some examples are Investment Tax-Deferred , Loan, 401K, 403B, Checking, Money Market, Credit Card,ROTH,529,Biller,ROLLOVER,CD,Savings,Investment Taxable, IRA, Mortgage, Line Of Credit.
          nullable: true
          type: string
        AssetUniqueIdentifier:
          description: A vendor created unique Identifier.
          type: string
      required:
        - AssetUniqueIdentifier
        - AssetAccountIdentifier
        - AssetAsOfDate
        - AssetDescription
        - AssetType
        - AssetTypeAdditionalDescription
        - AssetDaysRequestedCount
        - AssetOwnershipType
      title: CreditFreddieMacAssetDetail_VOE_2_5
      type: object
    CreditFreddieMacAssetTransactionDetail_VOE_2_5:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        AssetTransactionCategoryType:
          $ref: "#/components/schemas/AssetTransactionCategoryType"
        AssetTransactionDate:
          description: Asset Transaction Date.
          format: date
          type: string
        AssetTransactionPaidByName:
          description: Populate with who did the transaction.
          nullable: true
          type: string
        AssetTransactionPaidToName:
          description: Populate with for whom the transaction is done.
          nullable: true
          type: string
        AssetTransactionPostDate:
          description: Asset Transaction Post Date.
          format: date
          type: string
        AssetTransactionType:
          $ref: "#/components/schemas/AssetTransactionType"
        AssetTransactionTypeAdditionalDescription:
          description: FI Provided - examples are atm, cash, check, credit, debit, deposit, directDebit, directDeposit, dividend, fee, interest, other, payment, pointOfSale, repeatPayment, serviceCharge, transfer.
          nullable: true
          type: string
        AssetTransactionUniqueIdentifier:
          description: A vendor created unique Identifier.
          type: string
        FinancialInstitutionTransactionIdentifier:
          description: FI provided Transaction Identifier.
          nullable: true
          type: string
      required:
        - AssetTransactionUniqueIdentifier
        - AssetTransactionDate
        - AssetTransactionPostDate
        - AssetTransactionType
        - AssetTransactionPaidByName
        - AssetTransactionPaidToName
        - AssetTransactionTypeAdditionalDescription
        - AssetTransactionCategoryType
        - FinancialInstitutionTransactionIdentifier
      title: CreditFreddieMacAssetTransactionDetail_VOE_2_5
      type: object
    CreditFreddieMacAssetTransaction_VOA_2_4:
      additionalProperties: true
      description: An object representing...
      properties:
        ASSET_TRANSACTION_DESCRIPTION:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          items:
            $ref: "#/components/schemas/AssetTransactionDescription"
          type: array
        ASSET_TRANSACTION_DETAIL:
          $ref: "#/components/schemas/AssetTransactionDetail"
      required:
        - ASSET_TRANSACTION_DETAIL
        - ASSET_TRANSACTION_DESCRIPTION
      title: CreditFreddieMacAssetTransaction_VOA_2_4
      type: object
    CreditFreddieMacAssetTransaction_VOE_2_5:
      additionalProperties: true
      description: An object representing...
      properties:
        ASSET_TRANSACTION_DESCRIPTION:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          items:
            $ref: "#/components/schemas/AssetTransactionDescription"
          type: array
        ASSET_TRANSACTION_DETAIL:
          $ref: "#/components/schemas/CreditFreddieMacAssetTransactionDetail_VOE_2_5"
      required:
        - ASSET_TRANSACTION_DETAIL
        - ASSET_TRANSACTION_DESCRIPTION
      title: CreditFreddieMacAssetTransaction_VOE_2_5
      type: object
    CreditFreddieMacAssetTransactions_VOA_2_4:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET_TRANSACTION:
          items:
            $ref: "#/components/schemas/CreditFreddieMacAssetTransaction_VOA_2_4"
          type: array
      required:
        - ASSET_TRANSACTION
      title: CreditFreddieMacAssetTransactions_VOA_2_4
      type: object
    CreditFreddieMacAssetTransactions_VOE_2_5:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET_TRANSACTION:
          items:
            $ref: "#/components/schemas/CreditFreddieMacAssetTransaction_VOE_2_5"
          type: array
      required:
        - ASSET_TRANSACTION
      title: CreditFreddieMacAssetTransactions_VOE_2_5
      type: object
    CreditFreddieMacAsset_VOA_2_4:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET_DETAIL:
          $ref: "#/components/schemas/AssetDetail"
        ASSET_HOLDER:
          $ref: "#/components/schemas/AssetHolder"
        ASSET_OWNERS:
          $ref: "#/components/schemas/AssetOwners"
        ASSET_TRANSACTIONS:
          $ref: "#/components/schemas/CreditFreddieMacAssetTransactions_VOA_2_4"
        VALIDATION_SOURCES:
          $ref: "#/components/schemas/ValidationSources"
      required:
        - ASSET_DETAIL
        - ASSET_OWNERS
        - ASSET_HOLDER
        - ASSET_TRANSACTIONS
        - VALIDATION_SOURCES
      title: CreditFreddieMacAsset_VOA_2_4
      type: object
    CreditFreddieMacAsset_VOE_2_5:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET_DETAIL:
          $ref: "#/components/schemas/CreditFreddieMacAssetDetail_VOE_2_5"
        ASSET_HOLDER:
          $ref: "#/components/schemas/AssetHolder"
        ASSET_OWNERS:
          $ref: "#/components/schemas/AssetOwners"
        ASSET_TRANSACTIONS:
          $ref: "#/components/schemas/CreditFreddieMacAssetTransactions_VOE_2_5"
      required:
        - ASSET_DETAIL
        - ASSET_OWNERS
        - ASSET_HOLDER
        - ASSET_TRANSACTIONS
      title: CreditFreddieMacAsset_VOE_2_5
      type: object
    CreditFreddieMacAssets_VOA_2_4:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          items:
            $ref: "#/components/schemas/CreditFreddieMacAsset_VOA_2_4"
          type: array
      required:
        - ASSET
      title: CreditFreddieMacAssets_VOA_2_4
      type: object
    CreditFreddieMacAssets_VOE_2_5:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSET:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          items:
            $ref: "#/components/schemas/CreditFreddieMacAsset_VOE_2_5"
          type: array
      required:
        - ASSET
      title: CreditFreddieMacAssets_VOE_2_5
      type: object
    CreditFreddieMacIndividualName_VOA_2_4:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        FirstName:
          description: The first name of the individual represented by the parent object.
          type: string
        LastName:
          description: The last name of the individual represented by the parent object.
          type: string
        MiddleName:
          description: The middle name of the individual represented by the parent object.
          type: string
      required:
        - FirstName
        - LastName
        - MiddleName
      title: CreditFreddieMacIndividualName_VOA_2_4
      type: object
    CreditFreddieMacLoanIdentifiers_VOA_2_4:
      additionalProperties: true
      description: Collection of current and previous identifiers for this loan.
      properties:
        LOAN_IDENTIFIER:
          items:
            $ref: "#/components/schemas/LoanIdentifier"
          type: array
      required:
        - LOAN_IDENTIFIER
      title: CreditFreddieMacLoanIdentifiers_VOA_2_4
      type: object
    CreditFreddieMacLoan_VOA_2_4:
      additionalProperties: true
      description: Information specific to a mortgage loan agreement between one or more borrowers and a mortgage lender.
      properties:
        LOAN_IDENTIFIERS:
          $ref: "#/components/schemas/CreditFreddieMacLoanIdentifiers_VOA_2_4"
        LoanRoleType:
          description: Type of loan. The value can only be "SubjectLoan"
          type: string
      required:
        - LOAN_IDENTIFIERS
        - LoanRoleType
      title: CreditFreddieMacLoan_VOA_2_4
      type: object
    CreditFreddieMacLoans_VOA_2_4:
      additionalProperties: true
      description: A collection of loans that are part of a single deal.
      properties:
        LOAN:
          $ref: "#/components/schemas/CreditFreddieMacLoan_VOA_2_4"
      required:
        - LOAN
      title: CreditFreddieMacLoans_VOA_2_4
      type: object
    CreditFreddieMacParties_VOA_2_4:
      additionalProperties: true
      description: A collection of objects that define specific parties to a deal. This includes the direct participating parties, such as borrower and seller and the indirect parties such as the credit report provider.
      properties:
        PARTY:
          items:
            $ref: "#/components/schemas/CreditFreddieMacParty_VOA_2_4"
          type: array
      required:
        - PARTY
      title: CreditFreddieMacParties_VOA_2_4
      type: object
    CreditFreddieMacPartyIndividual_VOA_2_4:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        NAME:
          $ref: "#/components/schemas/CreditFreddieMacIndividualName_VOA_2_4"
      required:
        - NAME
      title: CreditFreddieMacPartyIndividual_VOA_2_4
      type: object
    CreditFreddieMacParty_VOA_2_4:
      additionalProperties: true
      description: A collection of information about a single party to a transaction. Included direct participants like the borrower and seller as well as indirect participants such as the flood certificate provider.
      properties:
        INDIVIDUAL:
          $ref: "#/components/schemas/CreditFreddieMacPartyIndividual_VOA_2_4"
        ROLES:
          $ref: "#/components/schemas/Roles"
        TAXPAYER_IDENTIFIERS:
          $ref: "#/components/schemas/TaxpayerIdentifiers"
      required:
        - INDIVIDUAL
        - ROLES
        - TAXPAYER_IDENTIFIERS
      title: CreditFreddieMacParty_VOA_2_4
      type: object
    CreditFreddieMacReportingInformation_VOA_2_4:
      additionalProperties: true
      description: Information about an report identifier and a report name.
      properties:
        ReportDateTime:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          type: string
        ReportIdentifierType:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac. The value can only be "ReportID"
          type: string
        ReportingInformationIdentifier:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          type: string
      required:
        - ReportingInformationIdentifier
      title: CreditFreddieMacReportingInformation_VOA_2_4
      type: object
    CreditFreddieMacReportsGetRequest:
      additionalProperties: true
      description: CreditFreddieMacReportsGetRequest defines the request schema for `credit/asset_report/freddie_mac/get`
      properties:
        audit_copy_token:
          description: A token that can be shared with a third party auditor to allow them to obtain access to the Asset Report. This token should be stored securely.
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - audit_copy_token
      title: CreditFreddieMacReportsGetRequest
      type: object
    CreditFreddieMacReportsGetResponse:
      additionalProperties: true
      description: CreditFreddieMacReportsGetResponse defines the response schema for `/credit/freddie_mac/reports/get`
      properties:
        VOA:
          $ref: "#/components/schemas/CreditFreddieMacVerificationOfAssets_VOA_2_4"
        VOE:
          $ref: "#/components/schemas/CreditFreddieVerificationOfEmployment_VOE_2_5"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: CreditFreddieMacReportsGetResponse
      type: object
    CreditFreddieMacService_VOA_2_4:
      additionalProperties: true
      description: A collection of details related to a fulfillment service or product in terms of request, process and result.
      properties:
        STATUSES:
          $ref: "#/components/schemas/Statuses"
        VERIFICATION_OF_ASSET:
          items:
            $ref: "#/components/schemas/CreditFreddieMacVerificationOfAsset_VOA_2_4"
          type: array
      required:
        - VERIFICATION_OF_ASSET
        - STATUSES
      title: CreditFreddieMacService_VOA_2_4
      type: object
    CreditFreddieMacService_VOE_2_5:
      additionalProperties: true
      description: A collection of details related to a fulfillment service or product in terms of request, process and result.
      properties:
        STATUSES:
          $ref: "#/components/schemas/Statuses"
        VERIFICATION_OF_ASSET:
          items:
            $ref: "#/components/schemas/CreditFreddieMacVerificationOfAsset_VOE_2_5"
          type: array
      required:
        - VERIFICATION_OF_ASSET
        - STATUSES
      title: CreditFreddieMacService_VOE_2_5
      type: object
    CreditFreddieMacServices_VOA_2_4:
      additionalProperties: true
      description: A collection of objects that describe requests and responses for services.
      properties:
        SERVICE:
          $ref: "#/components/schemas/CreditFreddieMacService_VOA_2_4"
      required:
        - SERVICE
      title: CreditFreddieMacServices_VOA_2_4
      type: object
    CreditFreddieMacServices_VOE_2_5:
      additionalProperties: true
      description: A collection of objects that describe requests and responses for services.
      properties:
        SERVICE:
          $ref: "#/components/schemas/CreditFreddieMacService_VOE_2_5"
      required:
        - SERVICE
      title: CreditFreddieMacServices_VOE_2_5
      type: object
    CreditFreddieMacVerificationOfAssetResponse_VOA_2_4:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSETS:
          $ref: "#/components/schemas/CreditFreddieMacAssets_VOA_2_4"
      required:
        - ASSETS
      title: VerificationOfAssetResponse
      type: object
    CreditFreddieMacVerificationOfAssetResponse_VOE_2_5:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSETS:
          $ref: "#/components/schemas/CreditFreddieMacAssets_VOE_2_5"
      required:
        - ASSETS
      title: CreditFreddieMacVerificationOfAssetResponse_VOE_2_5
      type: object
    CreditFreddieMacVerificationOfAsset_VOA_2_4:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        REPORTING_INFORMATION:
          $ref: "#/components/schemas/CreditFreddieMacReportingInformation_VOA_2_4"
        SERVICE_PRODUCT_FULFILLMENT:
          $ref: "#/components/schemas/ServiceProductFulfillment"
        VERIFICATION_OF_ASSET_RESPONSE:
          $ref: "#/components/schemas/CreditFreddieMacVerificationOfAssetResponse_VOA_2_4"
      required:
        - REPORTING_INFORMATION
        - SERVICE_PRODUCT_FULFILLMENT
        - VERIFICATION_OF_ASSET_RESPONSE
      title: CreditFreddieMacVerificationOfAsset_VOA_2_4
      type: object
    CreditFreddieMacVerificationOfAsset_VOE_2_5:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        REPORTING_INFORMATION:
          $ref: "#/components/schemas/CreditFreddieMacReportingInformation_VOA_2_4"
        SERVICE_PRODUCT_FULFILLMENT:
          $ref: "#/components/schemas/ServiceProductFulfillment"
        VERIFICATION_OF_ASSET_RESPONSE:
          $ref: "#/components/schemas/CreditFreddieMacVerificationOfAssetResponse_VOE_2_5"
      required:
        - REPORTING_INFORMATION
        - SERVICE_PRODUCT_FULFILLMENT
        - VERIFICATION_OF_ASSET_RESPONSE
      title: CreditFreddieMacVerificationOfAsset_VOE_2_5
      type: object
    CreditFreddieMacVerificationOfAssetsDeal_VOA_2_4:
      additionalProperties: true
      description: An object representing an Asset Report with Freddie Mac schema.
      properties:
        LOANS:
          $ref: "#/components/schemas/CreditFreddieMacLoans_VOA_2_4"
        PARTIES:
          $ref: "#/components/schemas/CreditFreddieMacParties_VOA_2_4"
        SERVICES:
          $ref: "#/components/schemas/CreditFreddieMacServices_VOA_2_4"
      required:
        - LOANS
        - PARTIES
        - SERVICES
      title: CreditFreddieMacVerificationOfAssetsDeal_VOA_2_4
      type: object
    CreditFreddieMacVerificationOfAssets_VOA_2_4:
      additionalProperties: true
      description: Verification of Assets Report
      nullable: true
      properties:
        DEAL:
          $ref: "#/components/schemas/CreditFreddieMacVerificationOfAssetsDeal_VOA_2_4"
        SchemaVersion:
          description: The Verification Of Assets (VOA) schema version.
          type: number
      required:
        - DEAL
        - SchemaVersion
      title: CreditFreddieMacVerificationOfAssets_VOA_2_4
      type: object
    CreditFreddieVerificationOfEmploymentDeal_VOE_2_5:
      additionalProperties: true
      description: An object representing a Verification of Employment report.
      properties:
        LOANS:
          $ref: "#/components/schemas/CreditFreddieMacLoans_VOA_2_4"
        PARTIES:
          $ref: "#/components/schemas/CreditFreddieMacParties_VOA_2_4"
        SERVICES:
          $ref: "#/components/schemas/CreditFreddieMacServices_VOE_2_5"
      required:
        - LOANS
        - PARTIES
        - SERVICES
      title: CreditFreddieVerificationOfEmploymentDeal_VOE_2_5
      type: object
    CreditFreddieVerificationOfEmployment_VOE_2_5:
      additionalProperties: true
      description: Verification of Employment Report
      nullable: true
      properties:
        DEAL:
          $ref: "#/components/schemas/CreditFreddieVerificationOfEmploymentDeal_VOE_2_5"
        SchemaVersion:
          description: The Verification Of Employment (VOE) schema version.
          type: number
      required:
        - DEAL
        - SchemaVersion
      title: CreditFreddieVerificationOfEmployment_VOE_2_5
      type: object
    CreditIsoCurrencyCode:
      description: The ISO 4217 currency code of the amount or balance.
      nullable: true
      type: string
    CreditPayStub:
      additionalProperties: true
      description: An object representing an end user's pay stub.
      properties:
        deductions:
          $ref: "#/components/schemas/CreditPayStubDeductions"
        document_id:
          description: An identifier of the document referenced by the document metadata.
          nullable: true
          type: string
        document_metadata:
          $ref: "#/components/schemas/CreditDocumentMetadata"
        earnings:
          $ref: "#/components/schemas/CreditPayStubEarnings"
        employee:
          $ref: "#/components/schemas/CreditPayStubEmployee"
        employer:
          $ref: "#/components/schemas/CreditPayStubEmployer"
        net_pay:
          $ref: "#/components/schemas/CreditPayStubNetPay"
        pay_period_details:
          $ref: "#/components/schemas/PayStubPayPeriodDetails"
      required:
        - deductions
        - document_id
        - document_metadata
        - earnings
        - employee
        - employer
        - net_pay
        - pay_period_details
      title: CreditPayStub
      type: object
    CreditPayStubAddress:
      additionalProperties: true
      description: Address on the pay stub.
      properties:
        city:
          description: The full city name.
          nullable: true
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code.
          nullable: true
          type: string
        postal_code:
          description: The postal code of the address.
          nullable: true
          type: string
        region:
          description: |-
            The region or state.
            Example: `"NC"`
          nullable: true
          type: string
        street:
          description: The full street address.
          nullable: true
          type: string
      required:
        - city
        - country
        - postal_code
        - region
        - street
      title: CreditPayStubAddress
      type: object
    CreditPayStubDeductions:
      additionalProperties: true
      description: An object with the deduction information found on a pay stub.
      properties:
        breakdown:
          items:
            $ref: "#/components/schemas/PayStubDeductionsBreakdown"
          type: array
        total:
          $ref: "#/components/schemas/PayStubDeductionsTotal"
      required:
        - breakdown
        - total
      title: CreditPayStubDeductions
      type: object
    CreditPayStubEarnings:
      additionalProperties: true
      description: An object representing both a breakdown of earnings on a pay stub and the total earnings.
      properties:
        breakdown:
          items:
            $ref: "#/components/schemas/PayStubEarningsBreakdown"
          type: array
        total:
          $ref: "#/components/schemas/PayStubEarningsTotal"
      required:
        - breakdown
        - total
      title: CreditPayStubEarnings
      type: object
    CreditPayStubEmployee:
      additionalProperties: true
      description: Data about the employee.
      properties:
        address:
          $ref: "#/components/schemas/CreditPayStubAddress"
        marital_status:
          description: Marital status of the employee - either `SINGLE` or `MARRIED`.
          nullable: true
          type: string
          x-override-enum-values-shown:
            - SINGLE
            - MARRIED
            - null
        name:
          description: The name of the employee.
          nullable: true
          type: string
        taxpayer_id:
          $ref: "#/components/schemas/PayStubTaxpayerID"
      required:
        - name
        - address
        - marital_status
        - taxpayer_id
      title: CreditPayStubEmployee
      type: object
    CreditPayStubEmployer:
      additionalProperties: true
      description: Information about the employer on the pay stub.
      properties:
        address:
          $ref: "#/components/schemas/CreditPayStubAddress"
        name:
          description: The name of the employer on the pay stub.
          nullable: true
          type: string
      required:
        - address
        - name
      title: CreditPayStubEmployer
      type: object
    CreditPayStubNetPay:
      additionalProperties: true
      description: An object representing information about the net pay amount on the pay stub.
      properties:
        current_amount:
          description: Raw amount of the net pay for the pay period.
          format: double
          nullable: true
          type: number
        description:
          description: Description of the net pay.
          nullable: true
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the net pay. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The year-to-date amount of the net pay.
          format: double
          nullable: true
          type: number
      required:
        - current_amount
        - description
        - iso_currency_code
        - unofficial_currency_code
        - ytd_amount
      title: CreditPayStubNetPay
      type: object
    CreditPayStubPayBasisType:
      description: The explicit pay basis on the paystub (if present).
      enum:
        - SALARY
        - HOURLY
        - COMMISSION
      type: string
    CreditPayrollIncomeGetRequest:
      description: CreditPayrollIncomeGetRequest defines the request schema for `/credit/payroll_income/get`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      title: CreditPayrollIncomeGetRequest
      type: object
    CreditPayrollIncomeGetResponse:
      additionalProperties: true
      description: Defines the response body for `/credit/payroll_income/get`.
      properties:
        error:
          $ref: "#/components/schemas/PlaidError"
        items:
          description: Array of payroll items.
          items:
            $ref: "#/components/schemas/PayrollItem"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - items
        - request_id
      title: CreditPayrollIncomeGetResponse
      type: object
    CreditPayrollIncomePrecheckRequest:
      description: Defines the request schema for `/credit/payroll_income/precheck`.
      properties:
        access_tokens:
          description: An array of access tokens corresponding to Items belonging to the user whose eligibility is being checked. Note that if the Items specified here are not already initialized with `transactions`, providing them in this field will cause these Items to be initialized with (and billed for) the Transactions product.
          items:
            $ref: "#/components/schemas/AccessToken"
          type: array
        client_id:
          $ref: "#/components/schemas/APIClientID"
        employer:
          $ref: "#/components/schemas/IncomeVerificationPrecheckEmployer"
        payroll_institution:
          $ref: "#/components/schemas/IncomeVerificationPrecheckPayrollInstitution"
        secret:
          $ref: "#/components/schemas/APISecret"
        us_military_info:
          $ref: "#/components/schemas/IncomeVerificationPrecheckMilitaryInfo"
        user_token:
          $ref: "#/components/schemas/UserToken"
      title: CreditPayrollIncomePrecheckRequest
      type: object
    CreditPayrollIncomePrecheckResponse:
      additionalProperties: true
      description: Defines the response schema for `/credit/payroll_income/precheck`.
      properties:
        confidence:
          $ref: "#/components/schemas/IncomeVerificationPrecheckConfidence"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - confidence
        - request_id
      title: CreditPayrollIncomePrecheckResponse
      type: object
    CreditPayrollIncomeRefreshRequest:
      description: CreditPayrollIncomeRefreshRequest defines the request schema for `/credit/payroll_income/refresh`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/CreditPayrollIncomeRefreshRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      required:
        - user_token
      title: CreditPayrollIncomeRefreshRequest
      type: object
    CreditPayrollIncomeRefreshRequestOptions:
      additionalProperties: true
      description: An optional object for `/credit/payroll_income/refresh` request options.
      properties:
        item_ids:
          description: An array of `item_id`s to be refreshed. Each `item_id` should uniquely identify a payroll income item.
          items:
            type: string
          type: array
        webhook:
          description: The URL where Plaid will send the payroll income refresh webhook.
          type: string
      type: object
    CreditPayrollIncomeRefreshResponse:
      additionalProperties: true
      description: CreditPayrollIncomeRefreshResponse defines the response schema for `/credit/payroll_income/refresh`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        verification_refresh_status:
          $ref: "#/components/schemas/CreditPayrollIncomeRefreshStatus"
      required:
        - request_id
        - verification_refresh_status
      title: CreditPayrollIncomeRefreshResponse
      type: object
    CreditPayrollIncomeRefreshStatus:
      description: |-
        The verification refresh status. One of the following:

        `"USER_PRESENCE_REQUIRED"` User presence is required to refresh an income verification.
        `"SUCCESSFUL"` The income verification refresh was successful.
        `"NOT_FOUND"` No new data was found after the income verification refresh.
      title: CreditPayrollIncomeRefreshStatus
      type: string
      x-override-enum-values-shown:
        - USER_PRESENCE_REQUIRED
        - SUCCESSFUL
        - NOT_FOUND
    CreditPayrollIncomeRiskSignalsGetRequest:
      additionalProperties: true
      description: CreditPayrollIncomeRiskSignalsGetRequest defines the request schema for `/beta/credit/payroll_income/risk_signals/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      title: CreditPayrollIncomeRiskSignalsGetRequest
      type: object
    CreditPayrollIncomeRiskSignalsGetResponse:
      additionalProperties: true
      description: CreditPayrollIncomeRiskSignalsGetRequest defines the response schema for `/beta/credit/payroll_income/risk_signals/get`
      properties:
        error:
          $ref: "#/components/schemas/PlaidError"
        items:
          description: Array of payroll items.
          items:
            $ref: "#/components/schemas/PayrollRiskSignalsItem"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - items
        - request_id
      title: CreditPayrollIncomeRiskSignalsGetReponse
      type: object
    CreditPlatformIds:
      additionalProperties: true
      description: The object containing a set of ids related to an employee.
      properties:
        employee_id:
          description: The ID of an employee as given by their employer.
          nullable: true
          type: string
        payroll_id:
          description: The ID of an employee as given by their payroll.
          nullable: true
          type: string
        position_id:
          description: The ID of the position of the employee.
          nullable: true
          type: string
      required:
        - employee_id
        - payroll_id
        - position_id
      title: CreditPlatformIds
      type: object
    CreditRelayCreateRequest:
      description: CreditRelayCreateRequest defines the request schema for `/credit/relay/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        report_tokens:
          description: List of report token strings, with at most one token of each report type. Currently only Asset Report token is supported.
          items:
            description: The report token. It can only be an asset report token token.
            nullable: false
            type: string
          type: array
        secondary_client_id:
          description: The `secondary_client_id` is the client id of the third party with whom you would like to share the relay token.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        webhook:
          description: URL to which Plaid will send webhooks when the Secondary Client successfully retrieves an Asset Report by calling `/credit/relay/get`.
          nullable: true
          type: string
      required:
        - report_tokens
        - secondary_client_id
      type: object
    CreditRelayCreateResponse:
      additionalProperties: true
      description: CreditRelayCreateResponse defines the response schema for `/credit/relay/create`
      properties:
        relay_token:
          description: A token that can be shared with a third party to allow them to access the Asset Report. This token should be stored securely.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - relay_token
        - request_id
      type: object
    CreditRelayGetRequest:
      description: CreditRelayGetRequest defines the request schema for `/credit/relay/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        relay_token:
          description: The `relay_token` granting access to the report you would like to get.
          type: string
        report_type:
          $ref: "#/components/schemas/ReportType"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - relay_token
        - report_type
      title: CreditRelayGetRequest
      type: object
    CreditRelayRefreshRequest:
      description: CreditRelayRefreshRequest defines the request schema for `/credit/relay/refresh`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        relay_token:
          description: The `relay_token` granting access to the report you would like to refresh.
          type: string
        report_type:
          $ref: "#/components/schemas/ReportType"
        secret:
          $ref: "#/components/schemas/APISecret"
        webhook:
          description: The URL registered to receive webhooks when the report of a relay token has been refreshed.
          nullable: true
          type: string
      required:
        - relay_token
        - report_type
      type: object
    CreditRelayRefreshResponse:
      additionalProperties: true
      description: CreditRelayRefreshResponse defines the response schema for `/credit/relay/refresh`
      properties:
        asset_report_id:
          $ref: "#/components/schemas/AssetReportId"
        relay_token:
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - relay_token
        - request_id
      type: object
    CreditRelayRemoveRequest:
      description: CreditRelayRemoveRequest defines the request schema for `/credit/relay/remove`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        relay_token:
          description: The `relay_token` you would like to revoke.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - relay_token
      type: object
    CreditRelayRemoveResponse:
      additionalProperties: true
      description: CreditRelayRemoveResponse defines the response schema for `/credit/relay/remove`
      properties:
        removed:
          description: "`true` if the relay token was successfully removed."
          type: boolean
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - removed
        - request_id
      type: object
    CreditSession:
      description: Metadata and results for a Link session
      properties:
        errors:
          description: The set of errors that occurred during the Link session.
          items:
            $ref: "#/components/schemas/CreditSessionError"
          type: array
        link_session_id:
          description: The unique identifier associated with the Link session. This identifier matches the `link_session_id` returned in the onSuccess/onExit callbacks.
          type: string
        results:
          $ref: "#/components/schemas/CreditSessionResults"
        session_start_time:
          description: The time when the Link session started
          format: date-time
          type: string
      type: object
    CreditSessionBankEmploymentResult:
      description: The details of a bank employment verification in Link.
      properties:
        institution_id:
          description: The Plaid Institution ID associated with the Item.
          type: string
        item_id:
          description: The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
          type: string
        status:
          $ref: "#/components/schemas/CreditSessionBankEmploymentStatus"
      type: object
    CreditSessionBankEmploymentStatus:
      description: |-
        The terminal status of the bank employment verification.

        `APPROVED`: User has approved and verified their employment.

        `NO_EMPLOYMENTS_FOUND`: We attempted, but were unable to find any employment in the connected account.

        `EMPLOYER_NOT_LISTED`: The user explicitly indicated that they did not see their current or previous employer in the list of employer names found.
      enum:
        - APPROVED
        - NO_EMPLOYERS_FOUND
        - EMPLOYER_NOT_LISTED
      type: string
    CreditSessionBankIncomeResult:
      description: The details of a bank income verification in Link
      properties:
        institution_id:
          description: The Plaid Institution ID associated with the Item.
          type: string
        item_id:
          description: The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
          type: string
        status:
          $ref: "#/components/schemas/CreditSessionBankIncomeStatus"
      type: object
    CreditSessionBankIncomeStatus:
      description: |-
        The terminal status of the bank income verification.

        `APPROVED`: User has approved and verified their income

        `NO_DEPOSITS_FOUND`: We attempted, but were unable to find any income in the connected account.

        `USER_REPORTED_NO_INCOME`: The user explicitly indicated that they don't receive income in the connected account.
      enum:
        - APPROVED
        - NO_DEPOSITS_FOUND
        - USER_REPORTED_NO_INCOME
      type: string
    CreditSessionDocumentIncomeResult:
      description: The details of a document income verification in Link
      nullable: true
      properties:
        num_paystubs_uploaded:
          description: The number of paystubs uploaded by the user.
          type: integer
        num_w2s_uploaded:
          description: The number of w2s uploaded by the user.
          type: integer
      required:
        - num_paystubs_uploaded
        - num_w2s_uploaded
      type: object
    CreditSessionError:
      description: The details of a Link error.
      properties:
        display_message:
          description: A user-friendly representation of the error code. `null` if the error is not related to user action.
          nullable: true
          type: string
        error_code:
          description: The particular error code.
          type: string
        error_message:
          description: A developer-friendly representation of the error code.
          type: string
        error_type:
          description: A broad categorization of the error.
          type: string
      type: object
    CreditSessionItemAddResult:
      description: The details of an Item add in Link.
      properties:
        institution_id:
          description: The Plaid Institution ID associated with the Item.
          type: string
        item_id:
          description: The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
          type: string
        public_token:
          description: Returned once a user has successfully linked their Item.
          type: string
      type: object
    CreditSessionPayrollIncomeResult:
      description: The details of a digital payroll income verification in Link
      properties:
        institution_id:
          description: The Plaid Institution ID associated with the Item.
          type: string
        institution_name:
          description: The Institution Name associated with the Item.
          type: string
        num_paystubs_retrieved:
          description: The number of paystubs retrieved from a payroll provider.
          type: integer
        num_w2s_retrieved:
          description: The number of w2s retrieved from a payroll provider.
          type: integer
      type: object
    CreditSessionResults:
      description: The set of results for a Link session.
      properties:
        bank_employment_results:
          description: The set of bank employment verifications for the Link session.
          items:
            $ref: "#/components/schemas/CreditSessionBankEmploymentResult"
          type: array
        bank_income_results:
          description: The set of bank income verifications for the Link session.
          items:
            $ref: "#/components/schemas/CreditSessionBankIncomeResult"
          type: array
        document_income_results:
          $ref: "#/components/schemas/CreditSessionDocumentIncomeResult"
        item_add_results:
          description: The set of Item adds for the Link session.
          items:
            $ref: "#/components/schemas/CreditSessionItemAddResult"
          type: array
        payroll_income_results:
          description: The set of payroll income verifications for the Link session.
          items:
            $ref: "#/components/schemas/CreditSessionPayrollIncomeResult"
          type: array
      type: object
    CreditSessionsGetRequest:
      description: CreditSessionsGetRequest defines the request schema for `/credit/sessions/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      required:
        - user_token
      type: object
    CreditSessionsGetResponse:
      additionalProperties: true
      description: CreditSessionsGetResponse defines the response schema for `/credit/sessions/get`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        sessions:
          description: A list of Link sessions for the user. Sessions will be sorted in reverse chronological order.
          items:
            $ref: "#/components/schemas/CreditSession"
          type: array
      required:
        - request_id
      type: object
    CreditUnofficialCurrencyCode:
      description: |-
        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.
      nullable: true
      type: string
    CreditW2:
      additionalProperties: true
      description: W2 is an object that represents income data taken from a W2 tax document.
      properties:
        allocated_tips:
          description: Allocated tips.
          nullable: true
          type: string
        box_12:
          items:
            $ref: "#/components/schemas/W2Box12"
          type: array
        box_9:
          description: Contents from box 9 on the W2.
          nullable: true
          type: string
        dependent_care_benefits:
          description: Dependent care benefits.
          nullable: true
          type: string
        document_id:
          description: An identifier of the document referenced by the document metadata.
          type: string
        document_metadata:
          $ref: "#/components/schemas/CreditDocumentMetadata"
        employee:
          $ref: "#/components/schemas/CreditPayStubEmployee"
        employer:
          $ref: "#/components/schemas/CreditPayStubEmployer"
        employer_id_number:
          description: An employee identification number or EIN.
          nullable: true
          type: string
        federal_income_tax_withheld:
          description: Federal income tax withheld for the tax year.
          nullable: true
          type: string
        medicare_tax_withheld:
          description: Medicare tax withheld for the tax year.
          nullable: true
          type: string
        medicare_wages_and_tips:
          description: Wages and tips from medicare.
          nullable: true
          type: string
        nonqualified_plans:
          description: Nonqualified plans.
          nullable: true
          type: string
        other:
          description: Other.
          nullable: true
          type: string
        retirement_plan:
          description: Retirement plan.
          nullable: true
          type: string
        social_security_tax_withheld:
          description: Social security tax withheld for the tax year.
          nullable: true
          type: string
        social_security_tips:
          description: Tips from social security.
          nullable: true
          type: string
        social_security_wages:
          description: Wages from social security.
          nullable: true
          type: string
        state_and_local_wages:
          items:
            $ref: "#/components/schemas/W2StateAndLocalWages"
          type: array
        statutory_employee:
          description: Statutory employee.
          nullable: true
          type: string
        tax_year:
          description: The tax year of the W2 document.
          nullable: true
          type: string
        third_party_sick_pay:
          description: Third party sick pay.
          nullable: true
          type: string
        wages_tips_other_comp:
          description: Wages from tips and other compensation.
          nullable: true
          type: string
      required:
        - document_metadata
        - document_id
        - employer
        - employee
        - tax_year
        - employer_id_number
        - wages_tips_other_comp
        - federal_income_tax_withheld
        - social_security_wages
        - social_security_tax_withheld
        - medicare_wages_and_tips
        - medicare_tax_withheld
        - social_security_tips
        - allocated_tips
        - box_9
        - dependent_care_benefits
        - nonqualified_plans
        - box_12
        - statutory_employee
        - retirement_plan
        - third_party_sick_pay
        - other
        - state_and_local_wages
      title: CreditW2
      type: object
    Cursor:
      description: An identifier that determines which page of results you receive.
      example: eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM
      nullable: true
      type: string
    CustomerInitiatedReturnRisk:
      description: 'The object contains a risk score and a risk tier that evaluate the transaction return risk of an unauthorized debit. Common return codes in this category include: "R05", "R07", "R10", "R11", "R29". These returns typically have a return time frame of up to 60 calendar days. During this period, the customer of financial institutions can dispute a transaction as unauthorized.'
      properties:
        risk_tier:
          $ref: "#/components/schemas/CustomerInitiatedRiskTier"
        score:
          $ref: "#/components/schemas/SignalScore"
      required:
        - risk_tier
        - score
      title: CustomerInitiatedReturnRisk
      type: object
    CustomerInitiatedRiskTier:
      description: |
        A tier corresponding to the projected likelihood that the transaction, if initiated, will be subject to a return.

        In the `customer_initiated_return_risk` object, there are five risk tiers corresponding to the scores:
          1: Predicted customer-initiated return incidence rate between 0.00% - 0.02%
          2: Predicted customer-initiated return incidence rate between 0.02% - 0.05%
          3: Predicted customer-initiated return incidence rate between 0.05% - 0.1%
          4: Predicted customer-initiated return incidence rate between 0.1% - 0.5%
          5: Predicted customer-initiated return incidence rate greater than 0.5%
      maximum: 5
      minimum: 1
      type: integer
    DashboardUser:
      additionalProperties: true
      description: Account information associated with a team member with access to the Plaid dashboard.
      properties:
        created_at:
          $ref: "#/components/schemas/Timestamp"
        email_address:
          $ref: "#/components/schemas/EmailAddress"
        id:
          $ref: "#/components/schemas/DashboardUserID"
        status:
          $ref: "#/components/schemas/DashboardUserStatus"
      required:
        - id
        - created_at
        - email_address
        - status
      title: DashboardUser
      type: object
    DashboardUserGetRequest:
      description: Request input for fetching a dashboard user
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        dashboard_user_id:
          $ref: "#/components/schemas/DashboardUserID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - dashboard_user_id
      type: object
    DashboardUserGetResponse:
      additionalProperties: true
      description: Account information associated with a team member with access to the Plaid dashboard.
      properties:
        created_at:
          $ref: "#/components/schemas/Timestamp"
        email_address:
          $ref: "#/components/schemas/EmailAddress"
        id:
          $ref: "#/components/schemas/DashboardUserID"
        request_id:
          $ref: "#/components/schemas/RequestID"
        status:
          $ref: "#/components/schemas/DashboardUserStatus"
      required:
        - id
        - created_at
        - email_address
        - status
        - request_id
      type: object
    DashboardUserID:
      description: ID of the associated user.
      example: 54350110fedcbaf01234ffee
      title: DashboardUserID
      type: string
    DashboardUserIDNullable:
      description: ID of the associated user.
      example: 54350110fedcbaf01234ffee
      nullable: true
      title: DashboardUserID
      type: string
    DashboardUserListRequest:
      description: Request input for listing dashboard users
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        secret:
          $ref: "#/components/schemas/APISecret"
      type: object
    DashboardUserListResponse:
      additionalProperties: true
      description: Paginated list of dashboard users
      properties:
        dashboard_users:
          description: List of dashboard users
          items:
            $ref: "#/components/schemas/DashboardUser"
          type: array
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - dashboard_users
        - next_cursor
        - request_id
      type: object
    DashboardUserStatus:
      description: The current status of the user.
      enum:
        - invited
        - active
        - deactivated
      example: active
      type: string
    DateRange:
      additionalProperties: true
      description: A date range with a start and end date
      example:
        beginning: 1966-06-01
        ending: 1966-06-30
      properties:
        beginning:
          $ref: "#/components/schemas/ISO8601Date"
        ending:
          $ref: "#/components/schemas/ISO8601Date"
      required:
        - beginning
        - ending
      title: DateRange
      type: object
    Deductions:
      additionalProperties: true
      description: An object with the deduction information found on a paystub.
      properties:
        breakdown:
          items:
            $ref: "#/components/schemas/DeductionsBreakdown"
          type: array
        subtotals:
          deprecated: true
          items:
            $ref: "#/components/schemas/Total"
          type: array
        total:
          $ref: "#/components/schemas/DeductionsTotal"
        totals:
          deprecated: true
          items:
            $ref: "#/components/schemas/Total"
          type: array
      required:
        - breakdown
        - total
      title: Deductions
      type: object
    DeductionsBreakdown:
      additionalProperties: true
      description: An object representing the deduction line items for the pay period
      properties:
        current_amount:
          description: Raw amount of the deduction
          format: double
          nullable: true
          type: number
        description:
          description: Description of the deduction line item
          nullable: true
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the line item. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The year-to-date amount of the deduction
          format: double
          nullable: true
          type: number
      title: DeductionsBreakdown
      type: object
    DeductionsTotal:
      additionalProperties: true
      description: An object representing the total deductions for the pay period
      properties:
        current_amount:
          description: Raw amount of the deduction
          format: double
          nullable: true
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the line item. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The year-to-date total amount of the deductions
          format: double
          nullable: true
          type: number
      title: DeductionsTotal
      type: object
    DefaultUpdateWebhook:
      additionalProperties: true
      description: |
        Fired when new transaction data is available for an Item. Plaid will typically check for new transaction data several times a day.

        This webhook is intended for use with `/transactions/get`; if you are using the newer `/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          description: The `item_id` of the Item the webhook relates to.
          type: string
        new_transactions:
          description: The number of new transactions detected since the last time this webhook was fired.
          title: DefaultUpdateWebhook
          type: number
        webhook_code:
          description: "`DEFAULT_UPDATE`"
          type: string
        webhook_type:
          description: "`TRANSACTIONS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - new_transactions
        - item_id
        - environment
      title: DefaultUpdateWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          new_transactions: 3
          webhook_code: DEFAULT_UPDATE
          webhook_type: TRANSACTIONS
    DepositSwitchAddressData:
      additionalProperties: true
      description: The user's address.
      properties:
        city:
          description: The full city name
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code
          type: string
        postal_code:
          description: The postal code
          type: string
        region:
          description: |-
            The region or state
            Example: `"NC"`
          type: string
        street:
          description: |-
            The full street address
            Example: `"564 Main Street, APT 15"`
          type: string
      required:
        - street
        - city
        - region
        - postal_code
        - country
      title: DepositSwitchAddressData
      type: object
    DepositSwitchAltCreateRequest:
      description: DepositSwitchAltCreateRequest defines the request schema for `/deposit_switch/alt/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        country_code:
          description: ISO-3166-1 alpha-2 country code standard.
          enum:
            - US
            - CA
          nullable: true
          title: CountryCode
          type: string
        options:
          $ref: "#/components/schemas/DepositSwitchCreateRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        target_account:
          $ref: "#/components/schemas/DepositSwitchTargetAccount"
        target_user:
          $ref: "#/components/schemas/DepositSwitchTargetUser"
      required:
        - target_account
        - target_user
      title: DepositSwitchAltCreateRequest
      type: object
    DepositSwitchAltCreateResponse:
      additionalProperties: true
      description: DepositSwitchAltCreateResponse defines the response schema for `/deposit_switch/alt/create`
      properties:
        deposit_switch_id:
          description: ID of the deposit switch. This ID is persisted throughout the lifetime of the deposit switch.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - deposit_switch_id
        - request_id
      title: DepositSwitchAltCreateResponse
      type: object
    DepositSwitchCreateRequest:
      description: DepositSwitchCreateRequest defines the request schema for `/deposit_switch/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        country_code:
          description: ISO-3166-1 alpha-2 country code standard.
          enum:
            - US
            - CA
          nullable: true
          title: CountryCode
          type: string
        options:
          $ref: "#/components/schemas/DepositSwitchCreateRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        target_access_token:
          description: "Access token for the target Item, typically provided in the Import Item response. "
          type: string
        target_account_id:
          description: Plaid Account ID that specifies the target bank account. This account will become the recipient for a user's direct deposit.
          type: string
      required:
        - target_access_token
        - target_account_id
      type: object
    DepositSwitchCreateRequestOptions:
      description: Options to configure the `/deposit_switch/create` request. If provided, cannot be `null`.
      properties:
        transaction_item_access_tokens:
          description: An array of access tokens corresponding to transaction items to use when attempting to match the user to their Payroll Provider. These tokens must be created by the same client id as the one creating the switch, and have access to the transactions product.
          items:
            $ref: "#/components/schemas/AccessToken"
          maxItems: 99
          minItems: 1
          type: array
        webhook:
          description: |
            The URL registered to receive webhooks when the status of a deposit switch request has changed.
          nullable: true
          type: string
      title: DepositSwitchCreateRequestOptions
      type: object
      x-private-visibility: false
    DepositSwitchCreateResponse:
      additionalProperties: true
      description: DepositSwitchCreateResponse defines the response schema for `/deposit_switch/create`
      properties:
        deposit_switch_id:
          description: ID of the deposit switch. This ID is persisted throughout the lifetime of the deposit switch.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - deposit_switch_id
        - request_id
      type: object
    DepositSwitchGetRequest:
      description: DepositSwitchGetRequest defines the request schema for `/deposit_switch/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        deposit_switch_id:
          description: The ID of the deposit switch
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - deposit_switch_id
      title: DepositSwitchGetRequest
      type: object
      x-examples: {}
    DepositSwitchGetResponse:
      additionalProperties: true
      description: DepositSwitchGetResponse defines the response schema for `/deposit_switch/get`
      properties:
        account_has_multiple_allocations:
          description: When `true`, user’s direct deposit goes to multiple banks. When false, user’s direct deposit only goes to the target account. Always `null` if the deposit switch has not been completed.
          nullable: true
          type: boolean
        amount_allocated:
          description: The dollar amount of direct deposit allocated to the target account. Always `null` if the target account is not allocated an amount or if the deposit switch has not been completed.
          format: double
          nullable: true
          type: number
        date_completed:
          description: |
            [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date the deposit switch was completed. Always `null` if the deposit switch has not been completed.
          format: date
          nullable: true
          type: string
        date_created:
          description: |
            [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date the deposit switch was created.
          format: date
          type: string
        deposit_switch_id:
          description: The ID of the deposit switch.
          type: string
        employer_id:
          description: The ID of the employer selected by the user. If the user did not select an employer, the value returned is `null`.
          nullable: true
          type: string
        employer_name:
          description: The name of the employer selected by the user. If the user did not select an employer, the value returned is `null`.
          nullable: true
          type: string
        institution_id:
          description: The ID of the institution selected by the user. If the user did not select an institution, the value returned is `null`.
          nullable: true
          type: string
        institution_name:
          description: The name of the institution selected by the user. If the user did not select an institution, the value returned is `null`.
          nullable: true
          type: string
        is_allocated_remainder:
          description: When `true`, the target account is allocated the remainder of direct deposit after all other allocations have been deducted. When `false`, user’s direct deposit is allocated as a percent or amount. Always `null` if the deposit switch has not been completed.
          nullable: true
          type: boolean
        percent_allocated:
          description: The percentage of direct deposit allocated to the target account. Always `null` if the target account is not allocated a percentage or if the deposit switch has not been completed or if `is_allocated_remainder` is true.
          format: double
          nullable: true
          type: number
        request_id:
          $ref: "#/components/schemas/RequestID"
        state:
          description: |-
            
            The state, or status, of the deposit switch.

            - `initialized` – The deposit switch has been initialized with the user entering the information required to submit the deposit switch request.

            - `processing` – The deposit switch request has been submitted and is being processed.

            - `completed` – The user's employer has fulfilled the deposit switch request.

            - `error` – There was an error processing the deposit switch request.
          enum:
            - initialized
            - processing
            - completed
            - error
          type: string
        switch_method:
          description: |-
            The method used to make the deposit switch.

            - `instant` – User instantly switched their direct deposit to a new or existing bank account by connecting their payroll or employer account.

            - `mail` – User requested that Plaid contact their employer by mail to make the direct deposit switch.

            - `pdf` – User generated a PDF or email to be sent to their employer with the information necessary to make the deposit switch.'
          enum:
            - instant
            - mail
            - pdf
            - null
          nullable: true
          type: string
        target_account_id:
          description: The ID of the bank account the direct deposit was switched to.
          nullable: true
          type: string
        target_item_id:
          description: The ID of the Item the direct deposit was switched to.
          nullable: true
          type: string
      required:
        - deposit_switch_id
        - target_account_id
        - target_item_id
        - state
        - account_has_multiple_allocations
        - is_allocated_remainder
        - percent_allocated
        - amount_allocated
        - date_created
        - date_completed
        - request_id
      title: DepositSwitchGetResponse
      type: object
    DepositSwitchStateUpdateWebhook:
      description: Fired when the status of a deposit switch request has changed.
      properties:
        deposit_switch_id:
          description: The ID of the deposit switch.
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        state:
          description: |-
            
            The state, or status, of the deposit switch.

            `initialized`: The deposit switch has been initialized with the user entering the information required to submit the deposit switch request.

            `processing`: The deposit switch request has been submitted and is being processed.

            `completed`: The user's employer has fulfilled and completed the deposit switch request.

            `error`: There was an error processing the deposit switch request.

            For more information, see the [Deposit Switch API reference](/docs/deposit-switch/reference#deposit_switchget).
          type: string
        webhook_code:
          description: '`"SWITCH_STATE_UPDATE"`'
          type: string
        webhook_type:
          description: '`"DEPOSIT_SWITCH"`'
          type: string
      title: DepositSwitchStateUpdateWebhook
      type: object
      x-examples:
        example-1:
          deposit_switch_id: f6f5132f-853b-421c-8c41-d24f93ebc39f
          environment: production
          state: completed
          webhook_code: SWITCH_STATE_UPDATE
          webhook_type: DEPOSIT_SWITCH
    DepositSwitchTargetAccount:
      additionalProperties: true
      description: The deposit switch destination account
      properties:
        account_name:
          description: The name of the deposit switch destination account, as it will be displayed to the end user in the Deposit Switch interface. It is not required to match the name used in online banking.
          type: string
        account_number:
          description: Account number for deposit switch destination
          type: string
        account_subtype:
          description: The account subtype of the account, either `checking` or `savings`.
          enum:
            - checking
            - savings
          type: string
        routing_number:
          description: Routing number for deposit switch destination
          type: string
      required:
        - account_number
        - routing_number
        - account_name
        - account_subtype
      title: DepositSwitchTargetAccount
      type: object
    DepositSwitchTargetUser:
      additionalProperties: true
      description: The deposit switch target user
      properties:
        address:
          $ref: "#/components/schemas/DepositSwitchAddressData"
        email:
          description: The email address of the user.
          type: string
        family_name:
          description: The family name (last name) of the user.
          type: string
        given_name:
          description: The given name (first name) of the user.
          type: string
        phone:
          description: The phone number of the user. The endpoint can accept a variety of phone number formats, including E.164.
          type: string
        tax_payer_id:
          description: The taxpayer ID of the user, generally their SSN, EIN, or TIN.
          type: string
      required:
        - given_name
        - family_name
        - phone
        - email
      title: DepositSwitchTargetUser
      type: object
    DepositSwitchTokenCreateRequest:
      description: DepositSwitchTokenCreateRequest defines the request schema for `/deposit_switch/token/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        deposit_switch_id:
          description: The ID of the deposit switch
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - deposit_switch_id
      type: object
    DepositSwitchTokenCreateResponse:
      additionalProperties: true
      description: DepositSwitchTokenCreateResponse defines the response schema for `/deposit_switch/token/create`
      properties:
        deposit_switch_token:
          description: Deposit switch token, used to initialize Link for the Deposit Switch product
          type: string
        deposit_switch_token_expiration_time:
          description: Expiration time of the token, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - deposit_switch_token
        - deposit_switch_token_expiration_time
        - request_id
      type: object
    DepositoryAccount:
      description: "An account type holding cash, in which funds are deposited. Supported products for `depository` accounts are: Auth (`checking` and `savings` types only), Balance, Transactions, Identity, Payment Initiation, and Assets."
      properties:
        cash management:
          description: A cash management account, typically a cash account at a brokerage
          type: string
        cd:
          description: Certificate of deposit account
          type: string
        checking:
          description: Checking account
          type: string
        ebt:
          description: An Electronic Benefit Transfer (EBT) account, used by certain public assistance programs to distribute funds (US only)
          type: string
        hsa:
          description: Health Savings Account (US only) that can only hold cash
          type: string
        money market:
          description: Money market account
          type: string
        paypal:
          description: PayPal depository account
          type: string
        prepaid:
          description: Prepaid debit card
          type: string
        savings:
          description: Savings account
          type: string
      required:
        - checking
        - savings
        - hsa
        - cd
        - money market
        - paypal
        - prepaid
        - cash management
        - ebt
      title: DepositoryAccount
      type: string
    DepositoryAccountSubtype:
      description: 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).
      enum:
        - checking
        - savings
        - hsa
        - cd
        - money market
        - paypal
        - prepaid
        - cash management
        - ebt
        - all
      type: string
    DepositoryAccountSubtypes:
      description: "An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema). "
      items:
        $ref: "#/components/schemas/DepositoryAccountSubtype"
      title: DepositoryAccountSubtypes
      type: array
    DepositoryFilter:
      additionalProperties: true
      description: A filter to apply to `depository`-type accounts
      properties:
        account_subtypes:
          $ref: "#/components/schemas/DepositoryAccountSubtypes"
      required:
        - account_subtypes
      title: DepositoryFilter
      type: object
    DetailedOriginator:
      additionalProperties: true
      description: Originator and their status.
      properties:
        client_id:
          description: Originator’s client ID.
          type: string
        company_name:
          type: string
        transfer_diligence_status:
          $ref: "#/components/schemas/TransferDiligenceStatus"
      required:
        - client_id
        - transfer_diligence_status
        - company_name
      title: Originator
      type: object
    DistributionBreakdown:
      additionalProperties: true
      description: Information about the accounts that the payment was distributed to.
      properties:
        account_name:
          description: Name of the account for the given distribution.
          nullable: true
          type: string
        bank_name:
          description: The name of the bank that the payment is being deposited to.
          nullable: true
          type: string
        current_amount:
          description: The amount distributed to this account.
          format: double
          nullable: true
          type: number
        current_pay:
          $ref: "#/components/schemas/Pay"
        iso_currency_code:
          description: The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        mask:
          description: The last 2-4 alphanumeric characters of an account's official account number.
          nullable: true
          type: string
        type:
          description: Type of the account that the paystub was sent to (e.g. 'checking').
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the net pay. 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 `iso_currency_code`s.
          nullable: true
          type: string
      title: DistributionBreakdown
      type: object
    DocType:
      description: |-
        The type of document.

        `DOCUMENT_TYPE_PAYSTUB`: A paystub.

        `DOCUMENT_TYPE_BANK_STATEMENT`: A bank statement.

        `DOCUMENT_TYPE_US_TAX_W2`: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.

        `DOCUMENT_TYPE_US_MILITARY_ERAS`: An electronic Retirement Account Statement (eRAS) issued by the US military.

        `DOCUMENT_TYPE_US_MILITARY_LES`: A Leave and Earnings Statement (LES) issued by the US military.

        `DOCUMENT_TYPE_US_MILITARY_CLES`: A Civilian Leave and Earnings Statement (CLES) issued by the US military.

        `DOCUMENT_TYPE_GIG`: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.

        `DOCUMENT_TYPE_NONE`: Used to indicate that there is no underlying document for the data.

        `DOCUMENT_TYPE_PLAID_GENERATED_PAYSTUB_PDF`: Used to indicate that the PDF for the paystub was generated by Plaid.

        `UNKNOWN`: Document type could not be determined.
      enum:
        - UNKNOWN
        - DOCUMENT_TYPE_PAYSTUB
        - DOCUMENT_TYPE_BANK_STATEMENT
        - DOCUMENT_TYPE_US_TAX_W2
        - DOCUMENT_TYPE_US_MILITARY_ERAS
        - DOCUMENT_TYPE_US_MILITARY_LES
        - DOCUMENT_TYPE_US_MILITARY_CLES
        - DOCUMENT_TYPE_GIG
        - DOCUMENT_TYPE_NONE
        - DOCUMENT_TYPE_US_TAX_1099_MISC
        - DOCUMENT_TYPE_US_TAX_1099_K
        - DOCUMENT_TYPE_PLAID_GENERATED_PAYSTUB_PDF
      title: DocType
      type: string
    DocumentAnalysis:
      additionalProperties: true
      description: High level descriptions of how the associated document was processed. If a document fails verification, the details in the `analysis` object should help clarify why the document was rejected.
      properties:
        authenticity:
          $ref: "#/components/schemas/DocumentAuthenticityMatchCode"
        extracted_data:
          $ref: "#/components/schemas/PhysicalDocumentExtractedDataAnalysis"
        image_quality:
          $ref: "#/components/schemas/ImageQuality"
      required:
        - authenticity
        - image_quality
        - extracted_data
      type: object
    DocumentAuthenticityMatchCode:
      description: |-
        High level summary of whether the document in the provided image matches the formatting rules and security checks for the associated jurisdiction.

        For example, most identity documents have formatting rules like the following:


        The image of the person's face must have a certain contrast in order to highlight skin tone


        The subject in the document's image must remove eye glasses and pose in a certain way


        The informational fields (name, date of birth, ID number, etc.) must be colored and aligned according to specific rules


        Security features like watermarks and background patterns must be present

        So a `match` status for this field indicates that the document in the provided image seems to conform to the various formatting and security rules associated with the detected document.
      enum:
        - match
        - partial_match
        - no_match
        - no_data
      example: match
      type: string
    DocumentDateOfBirthMatchCode:
      description: A match summary describing the cross comparison between the subject's date of birth, extracted from the document image, and the date of birth they separately provided to the identity verification attempt.
      enum:
        - match
        - partial_match
        - no_match
      example: match
      type: string
    DocumentImage__Back:
      description: Temporary URL that expires after 60 seconds for downloading the original image of the back of the document. Might be null if the back of the document was not collected.
      example: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg
      nullable: true
      type: string
    DocumentImage__CroppedBack:
      description: Temporary URL that expires after 60 seconds for downloading a cropped image containing just the back of the document. Might be null if the back of the document was not collected.
      example: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg
      nullable: true
      type: string
    DocumentImage__CroppedFront:
      description: Temporary URL that expires after 60 seconds for downloading a cropped image containing just the front of the document.
      example: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg
      nullable: true
      type: string
    DocumentImage__Face:
      description: Temporary URL that expires after 60 seconds for downloading a crop of just the user's face from the document image. Might be null if the document does not contain a face photo.
      example: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg
      nullable: true
      type: string
    DocumentImage__Front:
      description: Temporary URL that expires after 60 seconds for downloading the uncropped original image of the front of the document.
      example: https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg
      nullable: true
      type: string
    DocumentMetadata:
      additionalProperties: true
      description: An object representing metadata from the end user's uploaded document.
      properties:
        doc_id:
          description: An identifier of the document that is also present in the paystub response.
          type: string
        doc_type:
          $ref: "#/components/schemas/DocType"
        name:
          description: The name of the document.
          type: string
        status:
          description: |-
            The processing status of the document.

            `PROCESSING_COMPLETE`: The document was successfully processed.

            `DOCUMENT_ERROR`: The document could not be processed. Possible causes include: The document was an unacceptable document type such as an offer letter or bank statement, the document image was cropped or blurry, or the document was corrupted.

            `UNKNOWN` or `null`: An internal error occured. If this happens repeatedly, contact support or your Plaid account manager.
          nullable: true
          type: string
          x-override-enum-values-shown:
            - UNKNOWN
            - PROCESSING_COMPLETE
            - DOCUMENT_ERROR
            - null
      title: DocumentMetadata
      type: object
    DocumentNameMatchCode:
      description: A match summary describing the cross comparison between the subject's name, extracted from the document image, and the name they separately provided to identity verification attempt.
      enum:
        - match
        - partial_match
        - no_match
      example: match
      type: string
    DocumentRiskSignal:
      additionalProperties: true
      description: Details about a certain reason as to why a document could potentially be fraudulent.
      nullable: true
      properties:
        actual_value:
          description: The derived value obtained in the risk signal calculation process for this field
          nullable: true
          title: DocumentRiskSignalActualValue
          type: string
        expected_value:
          description: The expected value of the field, as seen on the document
          nullable: true
          title: DocumentRiskSignalExpectedValue
          type: string
        field:
          description: The field which the risk signal was computed for
          nullable: true
          title: DocumentRiskSignalField
          type: string
        has_fraud_risk:
          description: A flag used to quickly identify if the signal indicates that this field is authentic or fraudulent
          nullable: true
          title: DocumentRiskSignalHasFraudRisk
          type: boolean
        institution_metadata:
          $ref: "#/components/schemas/DocumentRiskSignalInstitutionMetadata"
        page_number:
          description: The relevant page associated with the risk signal
          nullable: true
          title: DocumentRiskPageNumber
          type: integer
        signal_description:
          description: A human-readable explanation providing more detail into the particular risk signal
          nullable: true
          title: DocumentRiskSignalDescription
          type: string
        type:
          description: The result from the risk signal check.
          nullable: true
          title: DocumentRiskSignalResultType
          type: string
          x-override-enum-values-shown:
            - DATA_MATCH
            - DATA_MISMATCH
            - FILE_TAMPERING
      required:
        - type
        - field
        - has_fraud_risk
        - institution_metadata
        - expected_value
        - actual_value
        - signal_description
        - page_number
      title: DocumentRiskSignal
      type: object
    DocumentRiskSignalInstitutionMetadata:
      additionalProperties: true
      description: An object which contains additional metadata about the institution used to compute the verification attribute
      nullable: true
      properties:
        item_id:
          $ref: "#/components/schemas/ItemId"
      required:
        - item_id
      title: DocumentRiskSignalInstitutionMetadata
      type: object
    DocumentRiskSignalsObject:
      additionalProperties: true
      description: Object containing fraud risk data for a set of income documents.
      properties:
        account_id:
          description: ID of the payroll provider account.
          nullable: true
          type: string
        multi_document_risk_signals:
          description: Array of risk signals computed from a set of uploaded documents and the associated documents' metadata
          items:
            $ref: "#/components/schemas/MultiDocumentRiskSignal"
          type: array
        single_document_risk_signals:
          description: Array of document metadata and associated risk signals per document
          items:
            $ref: "#/components/schemas/SingleDocumentRiskSignal"
          type: array
      required:
        - account_id
        - single_document_risk_signals
        - multi_document_risk_signals
      title: DocumentRiskSignalsObject
      type: object
    DocumentRiskSummary:
      additionalProperties: true
      description: A summary across all risk signals associated with a document
      properties:
        risk_score:
          description: A number between 0 and 100, inclusive, where a score closer to 0 indicates a document is likely to be trustworthy and a score closer to 100 indicates a document is likely to be fraudulent
          nullable: true
          type: number
      required:
        - risk_score
      title: DocumentRiskSummary
      type: object
    DocumentStatus:
      description: An outcome status for this specific document submission. Distinct from the overall `documentary_verification.status` that summarizes the verification outcome from one or more documents.
      enum:
        - success
        - failed
        - manually_approved
      example: success
      title: DocumentStatus
      type: string
    DocumentaryVerification:
      additionalProperties: true
      description: Data, images, analysis, and results from the `documentary_verification` step. This field will be `null` unless `steps.documentary_verification` has reached a terminal state of either `success` or `failed`.
      nullable: true
      properties:
        documents:
          description: |-
            An array of documents submitted to the `documentary_verification` step. Each entry represents one user submission, where each submission will contain both a front and back image, or just a front image, depending on the document type.

            Note: Plaid will automatically let a user submit a new set of document images up to three times if we detect that a previous attempt might have failed due to user error. For example, if the first set of document images are blurry or obscured by glare, the user will be asked to capture their documents again, resulting in at least two separate entries within `documents`. If the overall `documentary_verification` is `failed`, the user has exhausted their retry attempts.
          items:
            $ref: "#/components/schemas/DocumentaryVerificationDocument"
          type: array
        status:
          description: The outcome status for the associated Identity Verification attempt's `documentary_verification` step. This field will always have the same value as `steps.documentary_verification`.
          example: success
          type: string
      required:
        - status
        - documents
      title: DocumentaryVerification
      type: object
    DocumentaryVerificationDocument:
      additionalProperties: true
      description: Images, extracted data, and analysis from a user's identity document
      properties:
        analysis:
          $ref: "#/components/schemas/DocumentAnalysis"
        attempt:
          description: The `attempt` field begins with 1 and increments with each subsequent document upload.
          example: 1
          type: number
        extracted_data:
          $ref: "#/components/schemas/PhysicalDocumentExtractedData"
        images:
          $ref: "#/components/schemas/PhysicalDocumentImages"
        redacted_at:
          $ref: "#/components/schemas/TimestampNullable"
        status:
          $ref: "#/components/schemas/DocumentStatus"
      required:
        - analysis
        - attempt
        - extracted_data
        - images
        - status
        - redacted_at
      type: object
    Earnings:
      additionalProperties: true
      description: An object representing both a breakdown of earnings on a paystub and the total earnings.
      properties:
        breakdown:
          items:
            $ref: "#/components/schemas/EarningsBreakdown"
          type: array
        subtotals:
          deprecated: true
          items:
            $ref: "#/components/schemas/EarningsTotal"
          type: array
        total:
          $ref: "#/components/schemas/EarningsTotal"
        totals:
          deprecated: true
          items:
            $ref: "#/components/schemas/EarningsTotal"
          type: array
      title: Earnings
      type: object
    EarningsBreakdown:
      additionalProperties: true
      description: An object representing the earnings line items for the pay period.
      properties:
        canonical_description:
          $ref: "#/components/schemas/EarningsBreakdownCanonicalDescription"
        current_amount:
          description: Raw amount of the earning line item.
          format: double
          nullable: true
          type: number
        description:
          description: Description of the earning line item.
          nullable: true
          type: string
        hours:
          description: Number of hours applicable for this earning.
          nullable: true
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        rate:
          description: Hourly rate applicable for this earning.
          format: double
          nullable: true
          type: number
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the line item. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The year-to-date amount of the deduction.
          format: double
          nullable: true
          type: number
      title: EarningsBreakdown
      type: object
    EarningsBreakdownCanonicalDescription:
      description: Commonly used term to describe the earning line item.
      enum:
        - BONUS
        - COMMISSION
        - OVERTIME
        - PAID TIME OFF
        - REGULAR PAY
        - VACATION
        - BASIC ALLOWANCE HOUSING
        - BASIC ALLOWANCE SUBSISTENCE
        - OTHER
        - null
      nullable: true
      type: string
    EarningsTotal:
      additionalProperties: true
      description: An object representing both the current pay period and year to date amount for an earning category.
      properties:
        current_amount:
          description: Total amount of the earnings for this pay period
          format: double
          nullable: true
          type: number
        current_pay:
          $ref: "#/components/schemas/Pay"
        hours:
          description: Total number of hours worked for this pay period
          nullable: true
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the security. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The total year-to-date amount of the earnings
          format: double
          nullable: true
          type: number
        ytd_pay:
          $ref: "#/components/schemas/Pay"
      title: EarningsTotal
      type: object
    Email:
      additionalProperties: true
      description: An object representing an email address
      properties:
        data:
          description: The email address.
          type: string
        primary:
          description: When `true`, identifies the email address as the primary email on an account.
          type: boolean
        type:
          description: The type of email account as described by the financial institution.
          enum:
            - primary
            - secondary
            - other
          type: string
      required:
        - data
        - primary
        - type
      title: Email
      type: object
    EmailAddress:
      description: A valid email address.
      example: user@example.com
      format: email
      title: EmailAddress
      type: string
    EmailAddressMatchScore:
      additionalProperties: true
      description: Score found by matching email provided by the API with the email on the account at the financial institution. 100 is a perfect match and 0 is a no match. If the account contains multiple owners, the maximum match score is filled.
      nullable: true
      properties:
        score:
          description: Match score for normalized email. 100 is a perfect match and 0 is a no match. If the email is missing from either the API or financial institution, this is empty.
          nullable: true
          type: integer
      title: EmailAddressMatchScore
      type: object
    EmailAddressNullable:
      description: A valid email address.
      example: user@example.com
      format: email
      nullable: true
      title: EmailAddress
      type: string
    Employee:
      additionalProperties: true
      description: Data about the employee.
      properties:
        address:
          $ref: "#/components/schemas/PaystubAddress"
        marital_status:
          description: Marital status of the employee - either `single` or `married`.
          nullable: true
          type: string
          x-override-enum-values-shown:
            - single
            - married
        name:
          description: The name of the employee.
          nullable: true
          type: string
        taxpayer_id:
          $ref: "#/components/schemas/TaxpayerID"
      required:
        - name
        - address
      title: Employee
      type: object
    EmployeeIncomeSummaryFieldString:
      allOf:
        - $ref: "#/components/schemas/IncomeSummaryFieldString"
        - additionalProperties: true
          type: object
      description: The name of the employee, as reported on the paystub.
    Employer:
      additionalProperties: true
      description: Data about the employer.
      properties:
        address:
          $ref: "#/components/schemas/AddressDataNullable"
        confidence_score:
          description: A number from 0 to 1 indicating Plaid's level of confidence in the pairing between the employer and the institution (not yet implemented).
          format: double
          type: number
        employer_id:
          description: Plaid's unique identifier for the employer.
          type: string
        name:
          description: The name of the employer
          type: string
      required:
        - employer_id
        - name
        - address
        - confidence_score
      title: Employer
      type: object
    EmployerIncomeSummaryFieldString:
      allOf:
        - $ref: "#/components/schemas/IncomeSummaryFieldString"
        - additionalProperties: true
          type: object
      description: The name of the employer, as reported on the paystub.
    EmployerVerification:
      additionalProperties: true
      description: An object containing employer data.
      properties:
        name:
          description: Name of employer.
          nullable: true
          type: string
      title: EmployerVerification
      type: object
    EmployersSearchRequest:
      description: EmployersSearchRequest defines the request schema for `/employers/search`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        products:
          description: The Plaid products the returned employers should support. Currently, this field must be set to `"deposit_switch"`.
          items:
            type: string
          type: array
        query:
          description: The employer name to be searched for.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - query
        - products
      title: EmployersSearchRequest
      type: object
    EmployersSearchResponse:
      additionalProperties: true
      description: EmployersSearchResponse defines the response schema for `/employers/search`.
      properties:
        employers:
          description: A list of employers matching the search criteria.
          items:
            $ref: "#/components/schemas/Employer"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - employers
        - request_id
      title: EmployersSearchResponse
      type: object
    EmploymentDetails:
      additionalProperties: true
      deprecated: true
      description: An object representing employment details found on a paystub.
      properties:
        annual_salary:
          $ref: "#/components/schemas/Pay"
        hire_date:
          description: Date on which the employee was hired, in the YYYY-MM-DD format.
          format: date
          nullable: true
          type: string
      title: EmploymentDetails
      type: object
    EmploymentSourceType:
      description: The types of source employment data that users should be able to share
      enum:
        - bank
        - payroll
      title: EmploymentSourceType
      type: string
    EmploymentVerification:
      additionalProperties: true
      description: An object containing proof of employment data for an individual
      properties:
        employer:
          $ref: "#/components/schemas/EmployerVerification"
        end_date:
          description: End of employment, if applicable. Provided in ISO 8601 format (YYY-MM-DD).
          format: date
          nullable: true
          type: string
        platform_ids:
          $ref: "#/components/schemas/PlatformIds"
        start_date:
          description: Start of employment in ISO 8601 format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/EmploymentVerificationStatus"
        title:
          description: Current title of employee.
          nullable: true
          type: string
      title: EmploymentVerification
      type: object
    EmploymentVerificationGetRequest:
      description: EmploymentVerificationGetRequest defines the request schema for `/employment/verification/get`.
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      title: EmploymentVerificationGetRequest
      type: object
    EmploymentVerificationGetResponse:
      additionalProperties: true
      description: EmploymentVerificationGetResponse defines the response schema for `/employment/verification/get`.
      properties:
        employments:
          description: A list of employment verification summaries.
          items:
            $ref: "#/components/schemas/EmploymentVerification"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - employments
        - request_id
      title: EmploymentVerificationGetResponse
      type: object
    EmploymentVerificationStatus:
      description: Current employment status.
      enum:
        - EMPLOYMENT_STATUS_ACTIVE
        - EMPLOYMENT_STATUS_INACTIVE
        - null
      nullable: true
      type: string
    Enhancements:
      additionalProperties: true
      description: A grouping of the Plaid produced transaction enhancement fields.
      properties:
        category:
          description: 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).
          items:
            type: string
          type: array
        category_id:
          description: 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).
          nullable: true
          type: string
        check_number:
          description: The check number of the transaction. This field is only populated for check transactions.
          nullable: true
          type: string
        counterparties:
          description: The counterparties present in the transaction. Counterparties, such as the merchant or the financial institution, are extracted by Plaid from the raw description.
          items:
            $ref: "#/components/schemas/Counterparty"
          type: array
        location:
          $ref: "#/components/schemas/Location"
        logo_url:
          description: The URL of a logo associated with this transaction, if available. The logo is formatted as a 100x100 pixel PNG file.
          nullable: true
          type: string
        merchant_name:
          description: The name of the primary counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description.
          nullable: true
          type: string
        payment_channel:
          $ref: "#/components/schemas/PaymentChannel"
        personal_finance_category:
          $ref: "#/components/schemas/PersonalFinanceCategory"
        personal_finance_category_icon_url:
          description: A link to the icon associated with the primary personal finance category. The logo will always be 100x100 pixels.
          type: string
        website:
          description: The website associated with this transaction, if available.
          nullable: true
          type: string
      required:
        - payment_channel
        - location
        - category
        - category_id
      title: Enhancements
      type: object
    EnrichTransactionDirection:
      description: |-
        The direction of the transaction from the perspective of the account holder:

        `OUTFLOW` - Includes outgoing transfers, purchases, and fees. (Typically represented as a negative value on checking accounts and debit cards and a positive value on credit cards.)

        `INFLOW` - Includes incoming transfers, refunds, and income. (Typically represented as a positive value on checking accounts and debit cards and a negative value on credit cards.)
      enum:
        - INFLOW
        - OUTFLOW
      title: EnrichTransactionDirection
      type: string
    Enrichments:
      additionalProperties: true
      description: A grouping of the Plaid produced transaction enrichment fields.
      properties:
        check_number:
          description: The check number of the transaction. This field is only populated for check transactions.
          nullable: true
          type: string
          x-hidden-from-docs: true
        counterparties:
          description: The counterparties present in the transaction. Counterparties, such as the merchant or the financial institution, are extracted by Plaid from the raw description.
          items:
            $ref: "#/components/schemas/Counterparty"
          type: array
        entity_id:
          description: A unique, stable, Plaid-generated id that maps to the primary counterparty.
          nullable: true
          type: string
        legacy_category:
          deprecated: true
          description: |-
            A hierarchical array of the legacy categories to which this transaction belongs. For a full list of legacy categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).

            We recommend using the `personal_finance_category` for transaction categorization to obtain the best results.
          items:
            type: string
          type: array
        legacy_category_id:
          deprecated: true
          description: |-
            The ID of the legacy category to which this transaction belongs. For a full list of legacy categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).

            We recommend using the `personal_finance_category` for transaction categorization to obtain the best results.
          nullable: true
          type: string
        location:
          $ref: "#/components/schemas/Location"
        logo_url:
          description: The URL of a logo associated with this transaction, if available. The logo is formatted as a 100x100 pixel PNG file.
          nullable: true
          type: string
        merchant_name:
          description: The name of the primary counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description.
          nullable: true
          type: string
        payment_channel:
          $ref: "#/components/schemas/PaymentChannel"
        personal_finance_category:
          $ref: "#/components/schemas/PersonalFinanceCategory"
        personal_finance_category_icon_url:
          description: A link to the icon associated with the primary personal finance category. The logo will always be 100x100 pixels.
          type: string
        recurrence:
          $ref: "#/components/schemas/Recurrence"
        website:
          description: The website associated with this transaction.
          nullable: true
          type: string
      required:
        - payment_channel
        - location
        - personal_finance_category
        - personal_finance_category_icon_url
        - logo_url
        - website
        - counterparties
        - merchant_name
      title: Enrichments
      type: object
    EntityDocument:
      additionalProperties: true
      description: An official document, usually issued by a governing body or institution, with an associated identifier.
      properties:
        number:
          $ref: "#/components/schemas/WatchlistScreeningDocumentValue"
        type:
          $ref: "#/components/schemas/EntityDocumentType"
      required:
        - type
        - number
      title: EntityDocument
      type: object
    EntityDocumentType:
      description: |-
        The kind of official document represented by this object.

        `bik` - Russian bank code

        `business_number` - A number that uniquely identifies the business within a category of businesses

        `imo` - Number assigned to the entity by the International Maritime Organization

        `other` - Any document not covered by other categories

        `swift` - Number identifying a bank and branch.

        `tax_id` - Identification issued for the purpose of collecting taxes
      enum:
        - bik
        - business_number
        - imo
        - other
        - swift
        - tax_id
      example: swift
      title: EntityDocumentType
      type: string
    EntityScreeningHitAnalysis:
      additionalProperties: true
      description: Analysis information describing why a screening hit matched the provided entity information
      properties:
        documents:
          $ref: "#/components/schemas/MatchSummaryCode"
        email_addresses:
          $ref: "#/components/schemas/MatchSummaryCode"
        locations:
          $ref: "#/components/schemas/MatchSummaryCode"
        names:
          $ref: "#/components/schemas/MatchSummaryCode"
        phone_numbers:
          $ref: "#/components/schemas/MatchSummaryCode"
        search_terms_version:
          description: The version of the entity screening's `search_terms` that were compared when the entity screening hit was added. entity screening hits are immutable once they have been reviewed. If changes are detected due to updates to the entity screening's `search_terms`, the associated entity program, or the list's source data prior to review, the entity screening hit will be updated to reflect those changes.
          example: 1
          type: number
        urls:
          $ref: "#/components/schemas/MatchSummaryCode"
      required:
        - search_terms_version
      type: object
    EntityScreeningHitData:
      additionalProperties: true
      description: Information associated with the entity watchlist hit
      properties:
        documents:
          description: Documents associated with the watchlist hit
          items:
            $ref: "#/components/schemas/EntityScreeningHitDocumentsItems"
          type: array
        email_addresses:
          description: Email addresses associated with the watchlist hit
          items:
            $ref: "#/components/schemas/EntityScreeningHitEmailsItems"
          type: array
        locations:
          description: Locations associated with the watchlist hit
          items:
            $ref: "#/components/schemas/GenericScreeningHitLocationItems"
          type: array
        names:
          description: Names associated with the watchlist hit
          items:
            $ref: "#/components/schemas/EntityScreeningHitNamesItems"
          type: array
        phone_numbers:
          description: Phone numbers associated with the watchlist hit
          items:
            $ref: "#/components/schemas/EntityScreeningHitsPhoneNumberItems"
          type: array
        urls:
          description: URLs associated with the watchlist hit
          items:
            $ref: "#/components/schemas/EntityScreeningHitUrlsItems"
          type: array
      type: object
    EntityScreeningHitDocumentsItems:
      additionalProperties: true
      description: Analyzed documents for the associated hit
      properties:
        analysis:
          $ref: "#/components/schemas/MatchSummary"
        data:
          $ref: "#/components/schemas/EntityDocument"
      type: object
    EntityScreeningHitEmails:
      additionalProperties: true
      description: Email address information for the associated entity watchlist hit
      properties:
        email_address:
          $ref: "#/components/schemas/EmailAddress"
      required:
        - email_address
      type: object
    EntityScreeningHitEmailsItems:
      additionalProperties: true
      description: Analyzed emails for the associated hit
      properties:
        analysis:
          $ref: "#/components/schemas/MatchSummary"
        data:
          $ref: "#/components/schemas/EntityScreeningHitEmails"
      type: object
    EntityScreeningHitNames:
      additionalProperties: true
      description: Name information for the associated entity watchlist hit
      properties:
        full:
          description: The full name of the entity.
          example: Al Qaida
          type: string
        is_primary:
          description: Primary names are those most commonly used to refer to this entity. Only one name will ever be marked as primary.
          example: false
          type: boolean
        weak_alias_determination:
          $ref: "#/components/schemas/WeakAliasDetermination"
      required:
        - full
        - is_primary
        - weak_alias_determination
      type: object
    EntityScreeningHitNamesItems:
      additionalProperties: true
      description: Analyzed names for the associated hit
      properties:
        analysis:
          $ref: "#/components/schemas/MatchSummary"
        data:
          $ref: "#/components/schemas/EntityScreeningHitNames"
      type: object
    EntityScreeningHitPhoneNumbers:
      additionalProperties: true
      description: Phone number information associated with the entity screening hit
      properties:
        phone_number:
          $ref: "#/components/schemas/WatchlistScreeningPhoneNumber"
        type:
          $ref: "#/components/schemas/PhoneType"
      required:
        - type
        - phone_number
      type: object
    EntityScreeningHitUrls:
      additionalProperties: true
      description: URLs associated with the entity screening hit
      properties:
        url:
          $ref: "#/components/schemas/URL"
      required:
        - url
      type: object
    EntityScreeningHitUrlsItems:
      additionalProperties: true
      description: Analyzed URLs for the associated hit
      properties:
        analysis:
          $ref: "#/components/schemas/MatchSummary"
        data:
          $ref: "#/components/schemas/EntityScreeningHitUrls"
      type: object
    EntityScreeningHitsPhoneNumberItems:
      additionalProperties: true
      description: Analyzed phone numbers for the associated hit
      properties:
        analysis:
          $ref: "#/components/schemas/MatchSummary"
        data:
          $ref: "#/components/schemas/EntityScreeningHitPhoneNumbers"
      type: object
    EntityScreeningStatusUpdatedWebhook:
      additionalProperties: true
      description: Fired when an entity screening status has changed, which can occur manually via the dashboard or during ongoing monitoring.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        screening_id:
          description: The ID of the associated screening.
          type: string
        webhook_code:
          description: "`STATUS_UPDATED`"
          type: string
        webhook_type:
          description: "`ENTITY_SCREENING`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - screening_id
        - environment
      title: EntityScreeningStatusUpdatedWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          screening_id: entscr_52xR9LKo77r1Np
          webhook_code: STATUS_UPDATED
          webhook_type: ENTITY_SCREENING
    EntityWatchlistCode:
      description: Shorthand identifier for a specific screening list for entities.
      enum:
        - CA_CON
        - EU_CON
        - IZ_SOE
        - IZ_UNC
        - IZ_WBK
        - US_CAP
        - US_FSE
        - US_MBS
        - US_SDN
        - US_SSI
        - US_CMC
        - US_UVL
        - AU_CON
        - UK_HMC
      example: EU_CON
      title: EntityWatchlistCode
      type: string
    EntityWatchlistProgram:
      additionalProperties: true
      description: A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of entities.
      properties:
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        created_at:
          $ref: "#/components/schemas/Timestamp"
        id:
          $ref: "#/components/schemas/EntityWatchlistProgramID"
        is_archived:
          $ref: "#/components/schemas/ProgramArchived"
        is_rescanning_enabled:
          description: Indicator specifying whether the program is enabled and will perform daily rescans.
          example: true
          type: boolean
        lists_enabled:
          description: Watchlists enabled for the associated program
          example:
            - EU_CON
          items:
            $ref: "#/components/schemas/EntityWatchlistCode"
          type: array
          uniqueItems: true
        name:
          $ref: "#/components/schemas/EntityWatchlistScreeningProgramName"
        name_sensitivity:
          $ref: "#/components/schemas/ProgramNameSensitivity"
      required:
        - id
        - created_at
        - is_rescanning_enabled
        - lists_enabled
        - name
        - name_sensitivity
        - audit_trail
        - is_archived
      title: EntityWatchlistProgram
      type: object
    EntityWatchlistProgramID:
      description: ID of the associated entity program.
      example: entprg_2eRPsDnL66rZ7H
      title: EntityWatchlistProgramID
      type: string
    EntityWatchlistScreening:
      additionalProperties: true
      description: "The entity screening object allows you to represent an entity in your system, update its profile, and search for it on various watchlists. Note: Rejected entity screenings will not receive new hits, regardless of entity program configuration."
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserIDNullable"
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        client_user_id:
          $ref: "#/components/schemas/ClientUserIDNullable"
        id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        search_terms:
          $ref: "#/components/schemas/EntityWatchlistScreeningSearchTerms"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - id
        - search_terms
        - assignee
        - status
        - client_user_id
        - audit_trail
      title: EntityWatchlistScreening
      type: object
    EntityWatchlistScreeningHit:
      additionalProperties: true
      description: Data from a government watchlist that has been attached to the screening.
      properties:
        analysis:
          $ref: "#/components/schemas/EntityScreeningHitAnalysis"
        data:
          $ref: "#/components/schemas/EntityScreeningHitData"
        first_active:
          $ref: "#/components/schemas/Timestamp"
        historical_since:
          $ref: "#/components/schemas/TimestampNullable"
        id:
          $ref: "#/components/schemas/EntityWatchlistScreeningHitID"
        inactive_since:
          $ref: "#/components/schemas/TimestampNullable"
        list_code:
          $ref: "#/components/schemas/EntityWatchlistCode"
        plaid_uid:
          $ref: "#/components/schemas/InternalUID"
        review_status:
          $ref: "#/components/schemas/WatchlistScreeningHitStatus"
        source_uid:
          $ref: "#/components/schemas/SourceUID"
      required:
        - id
        - review_status
        - first_active
        - inactive_since
        - historical_since
        - list_code
        - plaid_uid
        - source_uid
      title: EntityWatchlistScreeningHit
      type: object
    EntityWatchlistScreeningHitID:
      description: ID of the associated entity screening hit.
      example: enthit_52xR9LKo77r1Np
      title: EntityWatchlistScreeningHitID
      type: string
    EntityWatchlistScreeningID:
      description: ID of the associated entity screening.
      example: entscr_52xR9LKo77r1Np
      title: EntityWatchlistScreeningID
      type: string
    EntityWatchlistScreeningName:
      description: The name of the organization being screened.
      example: Al-Qaida
      minLength: 1
      title: EntityWatchlistScreeningName
      type: string
    EntityWatchlistScreeningProgramName:
      description: A name for the entity program to define its purpose. For example, "High Risk Organizations" or "Applicants".
      example: Sample Program
      minLength: 1
      title: EntityWatchlistScreeningProgramName
      type: string
    EntityWatchlistScreeningReview:
      additionalProperties: true
      description: |-
        A review submitted by a team member for an entity watchlist screening. A review can be either a comment on the current screening state, actions taken
        against hits attached to the watchlist screening, or both.
      properties:
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        comment:
          $ref: "#/components/schemas/ReviewComment"
        confirmed_hits:
          description: Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
          items:
            $ref: "#/components/schemas/EntityWatchlistScreeningHitID"
          type: array
        dismissed_hits:
          description: Hits marked as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
          items:
            $ref: "#/components/schemas/EntityWatchlistScreeningHitID"
          type: array
        id:
          $ref: "#/components/schemas/EntityWatchlistScreeningReviewID"
      required:
        - id
        - confirmed_hits
        - dismissed_hits
        - comment
        - audit_trail
      title: EntityWatchlistScreeningReview
      type: object
    EntityWatchlistScreeningReviewID:
      description: ID of the associated entity review.
      example: entrev_aCLNRxK3UVzn2r
      title: EntityWatchlistScreeningReviewID
      type: string
    EntityWatchlistScreeningSearchTerms:
      additionalProperties: true
      description: Search terms associated with an entity used for searching against watchlists
      properties:
        country:
          $ref: "#/components/schemas/GenericCountryCodeNullable"
        document_number:
          $ref: "#/components/schemas/WatchlistScreeningDocumentValueNullable"
        email_address:
          $ref: "#/components/schemas/EmailAddressNullable"
        entity_watchlist_program_id:
          $ref: "#/components/schemas/EntityWatchlistProgramID"
        legal_name:
          $ref: "#/components/schemas/EntityWatchlistScreeningName"
        phone_number:
          $ref: "#/components/schemas/WatchlistScreeningPhoneNumberNullable"
        url:
          $ref: "#/components/schemas/URLNullable"
        version:
          description: The current version of the search terms. Starts at `1` and increments with each edit to `search_terms`.
          example: 1
          type: number
      required:
        - entity_watchlist_program_id
        - legal_name
        - document_number
        - email_address
        - country
        - phone_number
        - url
        - version
      type: object
    EntityWatchlistSearchTerms:
      description: Search inputs for creating an entity watchlist screening
      properties:
        country:
          $ref: "#/components/schemas/GenericCountryCodeNullable"
        document_number:
          $ref: "#/components/schemas/WatchlistScreeningDocumentValueNullable"
        email_address:
          $ref: "#/components/schemas/EmailAddressNullable"
        entity_watchlist_program_id:
          $ref: "#/components/schemas/EntityWatchlistProgramID"
        legal_name:
          $ref: "#/components/schemas/EntityWatchlistScreeningName"
        phone_number:
          $ref: "#/components/schemas/WatchlistScreeningPhoneNumberNullable"
        url:
          $ref: "#/components/schemas/URLNullable"
      required:
        - entity_watchlist_program_id
        - legal_name
      type: object
    ExpirationDate:
      description: |-
        A description of whether the associated document was expired when the verification was performed.

        Note: In the case where an expiration date is not present on the document or failed to be extracted, this value will be `no_data`.
      enum:
        - not_expired
        - expired
        - no_data
      example: not_expired
      type: string
    ExternalPaymentInitiationConsentOptions:
      additionalProperties: true
      description: Additional payment consent options
      nullable: true
      properties:
        bacs:
          $ref: "#/components/schemas/PaymentInitiationOptionalRestrictionBacs"
        iban:
          description: The International Bank Account Number (IBAN) for the payer's account. Where possible, the end user will be able to set up payment consent using only the specified bank account if provided.
          maxLength: 34
          minLength: 15
          nullable: true
          type: string
        request_refund_details:
          description: When `true`, Plaid will attempt to request refund details from the payee's financial institution.  Support varies between financial institutions and will not always be available.  If refund details could be retrieved, they will be available in the `/payment_initiation/payment/get` response.
          nullable: true
          type: boolean
      title: ExternalPaymentInitiationConsentOptions
      type: object
    ExternalPaymentOptions:
      additionalProperties: true
      description: Additional payment options
      nullable: true
      properties:
        bacs:
          $ref: "#/components/schemas/PaymentInitiationOptionalRestrictionBacs"
        iban:
          description: The International Bank Account Number (IBAN) for the payer's account. Where possible, the end user will be able to send payments only from the specified bank account if provided.
          maxLength: 34
          minLength: 15
          nullable: true
          type: string
        request_refund_details:
          description: When `true`, Plaid will attempt to request refund details from the payee's financial institution.  Support varies between financial institutions and will not always be available.  If refund details could be retrieved, they will be available in the `/payment_initiation/payment/get` response.
          nullable: true
          type: boolean
        scheme:
          $ref: "#/components/schemas/PaymentScheme"
      title: PaymentOptions
      type: object
    ExternalPaymentRefundDetails:
      description: Details about external payment refund
      nullable: true
      properties:
        bacs:
          $ref: "#/components/schemas/RecipientBACSNullable"
        iban:
          description: The International Bank Account Number (IBAN) for the account.
          nullable: true
          type: string
        name:
          description: The name of the account holder.
          type: string
      required:
        - name
        - iban
        - bacs
      title: ExternalPaymentRefundDetails
      type: object
    ExternalPaymentScheduleBase:
      additionalProperties: true
      description: The schedule that the payment will be executed on. If a schedule is provided, the payment is automatically set up as a standing order. If no schedule is specified, the payment will be executed only once.
      nullable: true
      properties:
        adjusted_start_date:
          description: The start date sent to the bank after adjusting for holidays or weekends.  Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). If the start date did not require adjustment, this field will be `null`.
          format: date
          nullable: true
          type: string
        end_date:
          description: |-
            A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will end on the last `interval_execution_day` on or before the `end_date`.
            If the only `interval_execution_day` between the start date and the end date (inclusive) is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make a payment on that day, but it is not guaranteed to do so.
          format: date
          nullable: true
          type: string
        interval:
          $ref: "#/components/schemas/PaymentScheduleInterval"
        interval_execution_day:
          description: |-
            The day of the interval on which to schedule the payment.

            If the payment interval is weekly, `interval_execution_day` should be an integer from 1 (Monday) to 7 (Sunday).

            If the payment interval is monthly, `interval_execution_day` should be an integer indicating which day of the month to make the payment on. Integers from 1 to 28 can be used to make a payment on that day of the month. Negative integers from -1 to -5 can be used to make a payment relative to the end of the month. To make a payment on the last day of the month, use -1; to make the payment on the second-to-last day, use -2, and so on.
          type: integer
        start_date:
          description: |-
            A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will begin on the first `interval_execution_day` on or after the `start_date`.

            If the first `interval_execution_day` on or after the start date is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make the first payment on that day, but it is not guaranteed to do so.
          format: date
          type: string
      title: ExternalPaymentScheduleBase
      type: object
    ExternalPaymentScheduleGet:
      allOf:
        - $ref: "#/components/schemas/ExternalPaymentScheduleBase"
        - type: object
      description: The schedule that the payment will be executed on. If a schedule is provided, the payment is automatically set up as a standing order. If no schedule is specified, the payment will be executed only once.
      nullable: true
      required:
        - adjusted_start_date
        - end_date
        - interval
        - interval_execution_day
        - start_date
      title: ExternalPaymentScheduleGet
    ExternalPaymentScheduleRequest:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/ExternalPaymentScheduleBase"
        - type: object
      description: The schedule that the payment will be executed on. If a schedule is provided, the payment is automatically set up as a standing order. If no schedule is specified, the payment will be executed only once.
      required:
        - start_date
        - interval
        - interval_execution_day
      title: ExternalPaymentScheduleRequest
    FDXContentTypes:
      description: Types of document formats. (Suggested values)
      enum:
        - application/pdf
        - image/gif
        - image/jpeg
        - image/tiff
        - image/png
        - application/json
      title: Content Types
      type: string
    FDXFiAttribute:
      description: Financial Institution provider-specific attribute
      properties:
        name:
          description: Name of attribute
          type: string
        value:
          description: Value of attribute
          type: string
      title: FI Attribute entity
      type: object
    FDXHateoasLink:
      description: REST application constraint (Hypermedia As The Engine Of Application State)
      properties:
        action:
          $ref: "#/components/schemas/FDXHateoasLinkAction"
        href:
          description: URL to invoke the action on the resource
          example: https://api.fi.com/fdx/v4/accounts/12345
          format: uri-reference
          type: string
        rel:
          description: Relation of this link to its containing entity, as defined by and with many example relation values at [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)
          type: string
        types:
          description: Content-types that can be used in the Accept header
          items:
            $ref: "#/components/schemas/FDXContentTypes"
          type: array
      required:
        - href
      title: HATEOAS Link
      type: object
    FDXHateoasLinkAction:
      description: HTTP Method to use for the request
      enum:
        - GET
        - POST
        - PATCH
        - DELETE
        - PUT
      type: string
    FDXNotification:
      description: Provides the base fields of a notification. Clients will read the `type` property to determine the expected notification payload
      properties:
        category:
          $ref: "#/components/schemas/FDXNotificationCategory"
        notificationId:
          description: Id of notification
          type: string
        notificationPayload:
          $ref: "#/components/schemas/FDXNotificationPayload"
        priority:
          $ref: "#/components/schemas/FDXNotificationPriority"
        publisher:
          $ref: "#/components/schemas/FDXParty"
        sentOn:
          $ref: "#/components/schemas/FDXTimestamp"
        severity:
          $ref: "#/components/schemas/FDXNotificationSeverity"
        subscriber:
          $ref: "#/components/schemas/FDXParty"
        type:
          $ref: "#/components/schemas/FDXNotificationType"
        url:
          $ref: "#/components/schemas/FDXHateoasLink"
      required:
        - notificationId
        - type
        - sentOn
        - category
        - publisher
        - notificationPayload
      title: FDX Notification entity
      type: object
    FDXNotificationCategory:
      description: Category of Notification
      enum:
        - SECURITY
        - MAINTENANCE
        - FRAUD
        - CONSENT
        - NEW_DATA
      title: Notification Category
      type: string
    FDXNotificationPayload:
      description: Custom key-value pairs payload for a notification
      properties:
        customFields:
          $ref: "#/components/schemas/FDXFiAttribute"
        id:
          description: ID for the origination entity related to the notification
          type: string
        idType:
          $ref: "#/components/schemas/FDXNotificationPayloadIdType"
      title: Notification Payload entity
      type: object
    FDXNotificationPayloadIdType:
      description: Type of entity causing origination of a notification
      enum:
        - ACCOUNT
        - CUSTOMER
        - PARTY
        - MAINTENANCE
        - CONSENT
      title: Notification Payload Id Type
      type: string
    FDXNotificationPriority:
      description: Priority of notification
      enum:
        - HIGH
        - MEDIUM
        - LOW
      title: Notification Priority
      type: string
    FDXNotificationSeverity:
      description: Severity level of notification
      enum:
        - EMERGENCY
        - ALERT
        - WARNING
        - NOTICE
        - INFO
      title: Notification Severity
      type: string
    FDXNotificationType:
      description: Type of Notification
      enum:
        - CONSENT_REVOKED
        - CONSENT_UPDATED
        - CUSTOM
        - SERVICE
        - BALANCE
        - PLANNED_OUTAGE
      title: Notification Type
      type: string
    FDXParty:
      description: FDX Participant - an entity or person that is a part of a FDX API transaction
      properties:
        homeUri:
          description: URI for party, where an end user could learn more about the company or application involved in the data sharing chain
          format: uri
          type: string
        logoUri:
          description: URI for a logo asset to be displayed to the end user
          format: uri
          type: string
        name:
          description: Human recognizable common name
          type: string
        registeredEntityId:
          description: Registered id of party
          type: string
        registeredEntityName:
          description: Registered name of party
          type: string
        registry:
          $ref: "#/components/schemas/FDXPartyRegistry"
        type:
          $ref: "#/components/schemas/FDXPartyType"
      required:
        - name
        - type
      title: Party entity
      type: object
    FDXPartyRegistry:
      description: The registry containing the party’s registration with name and id
      enum:
        - FDX
        - GLEIF
        - ICANN
        - PRIVATE
      title: Party Registry
      type: string
    FDXPartyType:
      description: Identifies the type of a party
      enum:
        - DATA_ACCESS_PLATFORM
        - DATA_PROVIDER
        - DATA_RECIPIENT
        - INDIVIDUAL
        - MERCHANT
        - VENDOR
      title: Party Type
      type: string
    FDXTimestamp:
      description: ISO 8601 date-time in format 'YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)
      example: 2021-07-15T14:46:41.375Z
      format: date-time
      title: Timestamp
      type: string
    FallbackAuthMicrodepositAutoVerifiedWebhook:
      additionalProperties: true
      description: Fires when an account is automatically verified using micro-deposits
      properties:
        account_id:
          description: The external account ID associated with the micro-deposit
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          description: The error code associated with the webhook.
          nullable: true
          type: string
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`AUTOMATICALLY_VERIFIED`"
          type: string
        webhook_type:
          description: "`AUTH`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - account_id
        - item_id
        - environment
      title: FallbackAuthMicrodepositAutoVerifiedWebhook
      type: object
    FallbackAuthMicrodepositVerificationExpiredWebhook:
      additionalProperties: true
      description: Fires when an account has an expired verification when using micro-deposits
      properties:
        account_id:
          description: The external account ID associated with the micro-deposit
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          description: The error code associated with the webhook.
          nullable: true
          type: string
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`VERIFICATION_EXPIRED`"
          type: string
        webhook_type:
          description: "`AUTH`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - account_id
        - item_id
        - environment
      title: FallbackAuthMicrodepositVerificationExpiredWebhook
      type: object
    FamilyNameField:
      description: A string with at least one non-whitespace character, with a max length of 100 characters.
      example: Knope
      title: FamilyName
      type: string
    Form1099Type:
      description: Form 1099 Type
      enum:
        - FORM_1099_TYPE_UNKNOWN
        - FORM_1099_TYPE_MISC
        - FORM_1099_TYPE_K
      title: Form1099Type
      type: string
    GenericCountryCode:
      description: Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
      example: US
      minLength: 2
      title: GenericCountryCode
      type: string
    GenericCountryCodeNullable:
      description: Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
      example: US
      minLength: 2
      nullable: true
      title: GenericCountryCode
      type: string
    GenericScreeningHitLocationItems:
      additionalProperties: true
      description: Analyzed location information for the associated hit
      properties:
        analysis:
          $ref: "#/components/schemas/MatchSummary"
        data:
          $ref: "#/components/schemas/WatchlistScreeningHitLocations"
      type: object
    GivenNameField:
      description: A string with at least one non-whitespace character, with a max length of 100 characters.
      example: Leslie
      title: GivenName
      type: string
    HealthIncident:
      additionalProperties: true
      description: A status health incident
      properties:
        end_date:
          description: The end date of the incident, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `"2020-10-30T15:26:48Z"`.
          format: date-time
          nullable: true
          type: string
        incident_updates:
          description: Updates on the health incident.
          items:
            $ref: "#/components/schemas/IncidentUpdate"
          type: array
        start_date:
          description: The start date of the incident, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `"2020-10-30T15:26:48Z"`.
          format: date-time
          type: string
        title:
          description: The title of the incident
          type: string
      required:
        - start_date
        - title
        - incident_updates
      title: HealthIncident
      type: object
    HistoricalBalance:
      additionalProperties: true
      description: An object representing a balance held by an account in the past
      properties:
        current:
          description: |-
            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.
          format: double
          type: number
        date:
          description: The date of the calculated historical balance, in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)
          format: date
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the balance. Always `null` if `unofficial_currency_code` is non-`null`.
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            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 `iso_currency_code`s.
          nullable: true
          type: string
      required:
        - date
        - current
        - iso_currency_code
        - unofficial_currency_code
      title: HistoricalBalance
      type: object
    HistoricalUpdateWebhook:
      additionalProperties: true
      description: |-
        Fired when an Item's historical transaction pull is completed and Plaid has prepared as much historical transaction data as possible for the Item. Once this webhook has been fired, transaction data beyond the most recent 30 days can be fetched for the Item. If [Account Select v2](https://plaid.com/docs/link/customization/#account-select) is enabled, this webhook will also be fired if account selections for the Item are updated, with `new_transactions` set to the number of net new transactions pulled after the account selection update.

        This webhook is intended for use with `/transactions/get`; if you are using the newer `/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        new_transactions:
          description: The number of new, unfetched transactions available
          type: number
        webhook_code:
          description: "`HISTORICAL_UPDATE`"
          type: string
        webhook_type:
          description: "`TRANSACTIONS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - new_transactions
        - item_id
        - environment
      title: HistoricalUpdateWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          new_transactions: 231
          webhook_code: HISTORICAL_UPDATE
          webhook_type: TRANSACTIONS
    Holding:
      additionalProperties: true
      description: A securities holding at an institution.
      properties:
        account_id:
          description: The Plaid `account_id` associated with the holding.
          type: string
        cost_basis:
          description: 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.
          format: double
          nullable: true
          type: number
        institution_price:
          description: The last price given by the institution for this security.
          format: double
          type: number
        institution_price_as_of:
          description: The date at which `institution_price` was current.
          format: date
          nullable: true
          type: string
        institution_price_datetime:
          description: |
            Date and time at which `institution_price` was current, in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ).

            This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00).
          format: date-time
          nullable: true
          type: string
        institution_value:
          description: The value of the holding, as reported by the institution.
          format: double
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the holding. Always `null` if `unofficial_currency_code` is non-`null`.
          nullable: true
          type: string
        quantity:
          description: 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.
          format: double
          type: number
        security_id:
          description: 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.
          type: string
        unofficial_currency_code:
          description: |
            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 `iso_currency_code`s.
          nullable: true
          type: string
      required:
        - account_id
        - security_id
        - institution_price
        - institution_value
        - cost_basis
        - quantity
        - iso_currency_code
        - unofficial_currency_code
      title: Holding
      type: object
    HoldingsDefaultUpdateWebhook:
      additionalProperties: true
      description: Fired when new or updated holdings have been detected on an investment account. The webhook typically fires in response to any newly added holdings or price changes to existing holdings, most commonly after market close.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        new_holdings:
          description: The number of new holdings reported since the last time this webhook was fired.
          type: number
        updated_holdings:
          description: The number of updated holdings reported since the last time this webhook was fired.
          type: number
        webhook_code:
          description: "`DEFAULT_UPDATE`"
          type: string
        webhook_type:
          description: "`HOLDINGS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - new_holdings
        - updated_holdings
        - environment
      title: HoldingsDefaultUpdateWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          new_holdings: 19
          updated_holdings: 0
          webhook_code: DEFAULT_UPDATE
          webhook_type: HOLDINGS
    HoldingsOverride:
      description: Specify the holdings on the account.
      properties:
        cost_basis:
          description: The average original value of the holding. Multiple cost basis values for the same security purchased at different prices are not supported.
          format: double
          type: number
        currency:
          description: Either a valid `iso_currency_code` or `unofficial_currency_code`
          type: string
        institution_price:
          description: The last price given by the institution for this security
          format: double
          type: number
        institution_price_as_of:
          description: The date at which `institution_price` was current. Must be formatted as an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date.
          format: date
          type: string
        quantity:
          description: The total quantity of the asset held, as reported by the financial institution.
          format: double
          type: number
        security:
          $ref: "#/components/schemas/SecurityOverride"
      required:
        - institution_price
        - quantity
        - currency
        - security
      title: HoldingsOverride
      type: object
    IDNumberType:
      description: A globally unique and human readable ID type, specific to the country and document category. For more context on this field, see [Hybrid Input Validation](https://plaid.com/docs/identity-verification/hybrid-input-validation).
      enum:
        - ar_dni
        - au_drivers_license
        - au_passport
        - br_cpf
        - ca_sin
        - cl_run
        - cn_resident_card
        - co_nit
        - dk_cpr
        - eg_national_id
        - es_dni
        - es_nie
        - hk_hkid
        - in_pan
        - it_cf
        - jo_civil_id
        - jp_my_number
        - ke_huduma_namba
        - kw_civil_id
        - mx_curp
        - mx_rfc
        - my_nric
        - ng_nin
        - nz_drivers_license
        - om_civil_id
        - ph_psn
        - pl_pesel
        - ro_cnp
        - sa_national_id
        - se_pin
        - sg_nric
        - tr_tc_kimlik
        - us_ssn
        - us_ssn_last_4
        - za_smart_id
      example: us_ssn
      title: IDNumberType
      type: string
    IDNumberValue:
      description: Value of identity document value typed in by user. Alpha-numeric, with all formatting characters stripped.
      example: "123456789"
      title: IDNumberValue
      type: string
    IPAddress:
      description: An IPv4 or IPV6 address.
      example: 192.0.2.42
      nullable: true
      title: IPAddress
      type: string
    ISO8601Date:
      description: A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
      example: 1990-05-29
      format: date
      title: ISO8601Date
      type: string
    ISO8601DateNullable:
      description: A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
      example: 1990-05-29
      format: date
      nullable: true
      title: ISO8601Date
      type: string
    IdempotencyFlag:
      description: |-
        An optional flag specifying how you would like Plaid to handle attempts to create an Identity Verification when an Identity Verification already exists for the provided `client_user_id` and `template_id`.
        If idempotency is enabled, Plaid will return the existing Identity Verification. If idempotency is disabled, Plaid will reject the request with a `400 Bad Request` status code if an Identity Verification already exists for the supplied `client_user_id` and `template_id`.
      example: true
      nullable: true
      title: IdempotencyFlag
      type: boolean
    IdentityDefaultUpdateWebhook:
      additionalProperties: true
      description: Fired when a change to identity data has been detected on an Item. Items are checked for identity updates every 30-90 days. We recommend that upon receiving this webhook you make another call to `/identity/get` to fetch the user's latest identity data.
      properties:
        account_ids_with_updated_identity:
          $ref: "#/components/schemas/AccountIdsWithUpdatedIdentity"
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`DEFAULT_UPDATE`"
          type: string
        webhook_type:
          description: "`IDENTITY`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - error
        - account_ids_with_updated_identity
        - environment
      title: IdentityDefaultUpdateWebhook
      type: object
      x-examples:
        example-1:
          account_ids_with_updated_identity:
            BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp:
              - ADDRESSES
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          webhook_code: DEFAULT_UPDATE
          webhook_type: IDENTITY
    IdentityGetRequest:
      description: IdentityGetRequest defines the request schema for `/identity/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/IdentityGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    IdentityGetRequestOptions:
      description: An optional object to filter `/identity/get` results.
      properties:
        account_ids:
          description: |-
            A list of `account_ids` to retrieve for the Item.
            Note: An error will be returned if a provided `account_id` is not associated with the Item.
          items:
            type: string
          type: array
      type: object
    IdentityGetResponse:
      additionalProperties: true
      description: IdentityGetResponse defines the response schema for `/identity/get`
      properties:
        accounts:
          description: The accounts for which Identity data has been requested
          items:
            $ref: "#/components/schemas/AccountIdentity"
          type: array
        item:
          $ref: "#/components/schemas/Item"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - accounts
        - item
        - request_id
      type: object
    IdentityMatchIdentityVerificationID:
      description: ID of the associated Identity Verification attempt. This field can be used instead of `user` to perform fuzzy match against the data collected during identity verification.
      example: idv_52xR9LKo77r1Np
      title: IdentityMatchIdentityVerificationID
      type: string
      x-hidden-from-docs: true
    IdentityMatchRequest:
      description: IdentityMatchRequest defines the request schema for `/identity/match`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        identity_verification_id:
          $ref: "#/components/schemas/IdentityMatchIdentityVerificationID"
        options:
          $ref: "#/components/schemas/IdentityMatchRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        user:
          $ref: "#/components/schemas/IdentityMatchUser"
      required:
        - access_token
      type: object
    IdentityMatchRequestOptions:
      description: An optional object to filter /identity/match results
      properties:
        account_ids:
          description: An array of `account_ids` to perform fuzzy match
          items:
            type: string
          type: array
      type: object
    IdentityMatchResponse:
      additionalProperties: true
      description: IdentityMatchResponse defines the response schema for `/identity/match`
      properties:
        accounts:
          description: The accounts for which Identity match has been requested
          items:
            $ref: "#/components/schemas/AccountIdentityMatchScore"
          type: array
        item:
          $ref: "#/components/schemas/Item"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - accounts
        - item
        - request_id
      type: object
    IdentityMatchUser:
      additionalProperties: true
      description: The user's legal name, phone number, email address and address used to perform fuzzy match.
      properties:
        address:
          $ref: "#/components/schemas/AddressDataNullable"
        email_address:
          description: The user's email address.
          nullable: true
          type: string
        legal_name:
          description: The user's full legal name.
          nullable: true
          type: string
        phone_number:
          description: "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."
          nullable: true
          type: string
      title: IdentityMatchUser
      type: object
    IdentityUpdateTypes:
      description: The possible types of identity data that may have changed.
      enum:
        - PHONES
        - ADDRESSES
        - EMAILS
        - NAMES
      type: string
    IdentityVerification:
      additionalProperties: true
      description: A identity verification attempt represents a customer's attempt to verify their identity, reflecting the required steps for completing the session, the results for each step, and information collected in the process.
      properties:
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        completed_at:
          $ref: "#/components/schemas/TimestampNullable"
        created_at:
          $ref: "#/components/schemas/Timestamp"
        documentary_verification:
          $ref: "#/components/schemas/DocumentaryVerification"
        id:
          $ref: "#/components/schemas/IdentityVerificationID"
        kyc_check:
          $ref: "#/components/schemas/KYCCheckDetails"
        previous_attempt_id:
          $ref: "#/components/schemas/PreviousIdentityVerificationAttemptID"
        redacted_at:
          $ref: "#/components/schemas/TimestampNullable"
        risk_check:
          $ref: "#/components/schemas/RiskCheckDetails"
        shareable_url:
          $ref: "#/components/schemas/ShareableURL"
        status:
          $ref: "#/components/schemas/IdentityVerificationStatus"
        steps:
          $ref: "#/components/schemas/IdentityVerificationStepSummary"
        template:
          $ref: "#/components/schemas/IdentityVerificationTemplateReference"
        user:
          $ref: "#/components/schemas/IdentityVerificationUserData"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualIDNullable"
      required:
        - id
        - client_user_id
        - created_at
        - completed_at
        - previous_attempt_id
        - shareable_url
        - template
        - user
        - status
        - steps
        - documentary_verification
        - kyc_check
        - risk_check
        - watchlist_screening_id
        - redacted_at
      type: object
    IdentityVerificationConsent:
      default: false
      description: |-
        A flag specifying whether the end user has already agreed to a privacy policy specifying that their data will be shared with Plaid for verification purposes.

        If `gave_consent` is set to `true`, the `accept_tos` step will be marked as `skipped` and the end user's session will start at the next step requirement.
      example: true
      title: IdentityVerificationConsent
      type: boolean
    IdentityVerificationCreateRequest:
      description: Request schema for '/identity_verification/create'
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        gave_consent:
          $ref: "#/components/schemas/IdentityVerificationConsent"
        is_idempotent:
          $ref: "#/components/schemas/IdempotencyFlag"
        is_shareable:
          description: A flag specifying whether you would like Plaid to expose a shareable URL for the verification being created.
          example: true
          title: EnableSharableLink
          type: boolean
        secret:
          $ref: "#/components/schemas/APISecret"
        template_id:
          $ref: "#/components/schemas/IdentityVerificationTemplateID"
        user:
          $ref: "#/components/schemas/IdentityVerificationRequestUser"
      required:
        - is_shareable
        - template_id
        - user
        - gave_consent
      type: object
    IdentityVerificationCreateResponse:
      additionalProperties: true
      description: A identity verification attempt represents a customer's attempt to verify their identity, reflecting the required steps for completing the session, the results for each step, and information collected in the process.
      properties:
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        completed_at:
          $ref: "#/components/schemas/TimestampNullable"
        created_at:
          $ref: "#/components/schemas/Timestamp"
        documentary_verification:
          $ref: "#/components/schemas/DocumentaryVerification"
        id:
          $ref: "#/components/schemas/IdentityVerificationID"
        kyc_check:
          $ref: "#/components/schemas/KYCCheckDetails"
        previous_attempt_id:
          $ref: "#/components/schemas/PreviousIdentityVerificationAttemptID"
        redacted_at:
          $ref: "#/components/schemas/TimestampNullable"
        request_id:
          $ref: "#/components/schemas/RequestID"
        risk_check:
          $ref: "#/components/schemas/RiskCheckDetails"
        shareable_url:
          $ref: "#/components/schemas/ShareableURL"
        status:
          $ref: "#/components/schemas/IdentityVerificationStatus"
        steps:
          $ref: "#/components/schemas/IdentityVerificationStepSummary"
        template:
          $ref: "#/components/schemas/IdentityVerificationTemplateReference"
        user:
          $ref: "#/components/schemas/IdentityVerificationUserData"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualIDNullable"
      required:
        - id
        - client_user_id
        - created_at
        - completed_at
        - previous_attempt_id
        - shareable_url
        - template
        - user
        - status
        - steps
        - documentary_verification
        - kyc_check
        - risk_check
        - watchlist_screening_id
        - redacted_at
        - request_id
      type: object
    IdentityVerificationGetRequest:
      description: Request input for fetching an identity verification
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        identity_verification_id:
          $ref: "#/components/schemas/IdentityVerificationID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - identity_verification_id
      type: object
    IdentityVerificationGetResponse:
      additionalProperties: true
      description: A identity verification attempt represents a customer's attempt to verify their identity, reflecting the required steps for completing the session, the results for each step, and information collected in the process.
      properties:
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        completed_at:
          $ref: "#/components/schemas/TimestampNullable"
        created_at:
          $ref: "#/components/schemas/Timestamp"
        documentary_verification:
          $ref: "#/components/schemas/DocumentaryVerification"
        id:
          $ref: "#/components/schemas/IdentityVerificationID"
        kyc_check:
          $ref: "#/components/schemas/KYCCheckDetails"
        previous_attempt_id:
          $ref: "#/components/schemas/PreviousIdentityVerificationAttemptID"
        redacted_at:
          $ref: "#/components/schemas/TimestampNullable"
        request_id:
          $ref: "#/components/schemas/RequestID"
        risk_check:
          $ref: "#/components/schemas/RiskCheckDetails"
        shareable_url:
          $ref: "#/components/schemas/ShareableURL"
        status:
          $ref: "#/components/schemas/IdentityVerificationStatus"
        steps:
          $ref: "#/components/schemas/IdentityVerificationStepSummary"
        template:
          $ref: "#/components/schemas/IdentityVerificationTemplateReference"
        user:
          $ref: "#/components/schemas/IdentityVerificationUserData"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualIDNullable"
      required:
        - id
        - client_user_id
        - created_at
        - completed_at
        - previous_attempt_id
        - shareable_url
        - template
        - user
        - status
        - steps
        - documentary_verification
        - kyc_check
        - risk_check
        - watchlist_screening_id
        - redacted_at
        - request_id
      type: object
    IdentityVerificationID:
      description: ID of the associated Identity Verification attempt.
      example: idv_52xR9LKo77r1Np
      title: IdentityVerificationID
      type: string
    IdentityVerificationListRequest:
      description: Request input for listing identity verifications
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        secret:
          $ref: "#/components/schemas/APISecret"
        template_id:
          $ref: "#/components/schemas/IdentityVerificationTemplateID"
      required:
        - template_id
        - client_user_id
      type: object
    IdentityVerificationListResponse:
      additionalProperties: true
      description: Paginated list of Plaid sessions.
      properties:
        identity_verifications:
          description: List of Plaid sessions
          items:
            $ref: "#/components/schemas/IdentityVerification"
          type: array
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - identity_verifications
        - next_cursor
        - request_id
      type: object
    IdentityVerificationRequestUser:
      additionalProperties: true
      description: |-
        User information collected outside of Link, most likely via your own onboarding process.

        Each of the following identity fields are optional:

        `email_address`

        `phone_number`

        `date_of_birth`

        `name`

        `address`

        `id_number`

        Specifically, these fields are optional in that they can either be fully provided (satisfying every required field in their subschema) or omitted from the request entirely by not providing the key or value.
        Providing these fields via the API will result in Link skipping the data collection process for the associated user. All verification steps enabled in the associated Identity Verification Template will still be run. Verification steps will either be run immediately, or once the user completes the `accept_tos` step, depending on the value provided to the `gave_consent` field.
      properties:
        address:
          $ref: "#/components/schemas/UserAddress"
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        date_of_birth:
          $ref: "#/components/schemas/ISO8601Date"
        email_address:
          $ref: "#/components/schemas/EmailAddress"
        id_number:
          $ref: "#/components/schemas/UserIDNumber"
        name:
          $ref: "#/components/schemas/IdentityVerificationRequestUserName"
        phone_number:
          $ref: "#/components/schemas/IdentityVerificationUserPhoneNumber"
      required:
        - client_user_id
      type: object
    IdentityVerificationRequestUserName:
      description: You can use this field to pre-populate the user's legal name; if it is provided here, they will not be prompted to enter their name in the identity verification attempt.
      nullable: true
      properties:
        family_name:
          $ref: "#/components/schemas/FamilyNameField"
        given_name:
          $ref: "#/components/schemas/GivenNameField"
      required:
        - given_name
        - family_name
      type: object
    IdentityVerificationResponseUserName:
      additionalProperties: true
      description: The full name provided by the user. If the user has not submitted their name, this field will be null. Otherwise, both fields are guaranteed to be filled.
      nullable: true
      properties:
        family_name:
          $ref: "#/components/schemas/FamilyNameField"
        given_name:
          $ref: "#/components/schemas/GivenNameField"
      required:
        - given_name
        - family_name
      type: object
    IdentityVerificationRetriedWebhook:
      additionalProperties: true
      description: Fired when identity verification has been retried, which can be triggered via the dashboard or the API.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        identity_verification_id:
          description: The ID of the associated Identity Verification attempt.
          type: string
        webhook_code:
          description: "`RETRIED`"
          type: string
        webhook_type:
          description: "`IDENTITY_VERIFICATION`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - identity_verification_id
        - environment
      title: IdentityVerificationRetriedWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          identity_verification_id: idv_52xR9LKo77r1Np
          webhook_code: RETRIED
          webhook_type: IDENTITY_VERIFICATION
    IdentityVerificationRetryRequest:
      description: Request input for retrying an identity verification attempt
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        secret:
          $ref: "#/components/schemas/APISecret"
        steps:
          $ref: "#/components/schemas/IdentityVerificationRetryRequestStepsObject"
        strategy:
          $ref: "#/components/schemas/Strategy"
        template_id:
          $ref: "#/components/schemas/IdentityVerificationTemplateID"
      required:
        - client_user_id
        - strategy
        - template_id
      type: object
    IdentityVerificationRetryRequestStepsObject:
      description: |-
        Instructions for the `custom` retry strategy specifying which steps should be required or skipped.


        Note:


        This field must be provided when the retry strategy is `custom` and must be omitted otherwise.

        Custom retries override settings in your Plaid Template. For example, if your Plaid Template has `verify_sms` disabled, a custom retry with `verify_sms` enabled will still require the step.

        The `selfie_check` step is currently not supported on the sandbox server. Sandbox requests will silently disable the `selfie_check` step when provided.
      nullable: true
      properties:
        documentary_verification:
          description: A boolean field specifying whether the new session should require or skip the `documentary_verification` step.
          type: boolean
        kyc_check:
          description: A boolean field specifying whether the new session should require or skip the `kyc_check` step.
          type: boolean
        selfie_check:
          description: A boolean field specifying whether the new session should require or skip the `selfie_check` step.
          type: boolean
        verify_sms:
          description: A boolean field specifying whether the new session should require or skip the `verify_sms` step.
          type: boolean
      required:
        - verify_sms
        - kyc_check
        - documentary_verification
        - selfie_check
      type: object
    IdentityVerificationRetryResponse:
      additionalProperties: true
      description: A identity verification attempt represents a customer's attempt to verify their identity, reflecting the required steps for completing the session, the results for each step, and information collected in the process.
      properties:
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        completed_at:
          $ref: "#/components/schemas/TimestampNullable"
        created_at:
          $ref: "#/components/schemas/Timestamp"
        documentary_verification:
          $ref: "#/components/schemas/DocumentaryVerification"
        id:
          $ref: "#/components/schemas/IdentityVerificationID"
        kyc_check:
          $ref: "#/components/schemas/KYCCheckDetails"
        previous_attempt_id:
          $ref: "#/components/schemas/PreviousIdentityVerificationAttemptID"
        redacted_at:
          $ref: "#/components/schemas/TimestampNullable"
        request_id:
          $ref: "#/components/schemas/RequestID"
        risk_check:
          $ref: "#/components/schemas/RiskCheckDetails"
        shareable_url:
          $ref: "#/components/schemas/ShareableURL"
        status:
          $ref: "#/components/schemas/IdentityVerificationStatus"
        steps:
          $ref: "#/components/schemas/IdentityVerificationStepSummary"
        template:
          $ref: "#/components/schemas/IdentityVerificationTemplateReference"
        user:
          $ref: "#/components/schemas/IdentityVerificationUserData"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualIDNullable"
      required:
        - id
        - client_user_id
        - created_at
        - completed_at
        - previous_attempt_id
        - shareable_url
        - template
        - user
        - status
        - steps
        - documentary_verification
        - kyc_check
        - risk_check
        - watchlist_screening_id
        - redacted_at
        - request_id
      type: object
    IdentityVerificationStatus:
      description: |-
        The status of this Identity Verification attempt.


        `active` - The Identity Verification attempt is incomplete. The user may have completed part of the session, but has neither failed or passed.

        `success` - The Identity Verification attempt has completed, passing all steps defined to the associated Identity Verification template

        `failed` - The user failed one or more steps in the session and was told to contact support.

        `expired` - The Identity Verification attempt was active for a long period of time without being completed and was automatically marked as expired. Note that sessions currently do not expire. Automatic expiration is expected to be enabled in the future.

        `canceled` - The Identity Verification attempt was canceled, either via the dashboard by a user, or via API. The user may have completed part of the session, but has neither failed or passed.

        `pending_review` - The Identity Verification attempt template was configured to perform a screening that had one or more hits needing review.
      enum:
        - active
        - success
        - failed
        - expired
        - canceled
        - pending_review
      example: success
      title: IdentityVerificationStatus
      type: string
    IdentityVerificationStatusUpdatedWebhook:
      additionalProperties: true
      description: Fired when the status of an identity verification has been updated, which can be triggered via the dashboard or the API.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        identity_verification_id:
          description: The ID of the associated Identity Verification attempt.
          type: string
        webhook_code:
          description: "`STATUS_UPDATED`"
          type: string
        webhook_type:
          description: "`IDENTITY_VERIFICATION`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - identity_verification_id
        - environment
      title: IdentityVerificationStatusUpdatedWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          identity_verification_id: idv_52xR9LKo77r1Np
          webhook_code: STATUS_UPDATED
          webhook_type: IDENTITY_VERIFICATION
    IdentityVerificationStepStatus:
      description: The status of a step in the identity verification process.
      enum:
        - success
        - active
        - failed
        - waiting_for_prerequisite
        - not_applicable
        - skipped
        - expired
        - canceled
        - pending_review
        - manually_approved
        - manually_rejected
      example: success
      title: IdentityVerificationStepStatus
      type: string
    IdentityVerificationStepSummary:
      additionalProperties: true
      description: |-
        Each step will be one of the following values:


        `active` - This step is the user's current step. They are either in the process of completing this step, or they recently closed their Identity Verification attempt while in the middle of this step. Only one step will be marked as `active` at any given point.

        `success` - The Identity Verification attempt has completed this step.

        `failed` - The user failed this step. This can either call the user to fail the session as a whole, or cause them to fallback to another step depending on how the Identity Verification template is configured. A failed step does not imply a failed session.

        `waiting_for_prerequisite` - The user needs to complete another step first, before they progress to this step. This step may never run, depending on if the user fails an earlier step or if the step is only run as a fallback.

        `not_applicable` - This step will not be run for this session.

        `skipped` - The retry instructions that created this Identity Verification attempt specified that this step should be skipped.

        `expired` - This step had not yet been completed when the Identity Verification attempt as a whole expired.

        `canceled` - The Identity Verification attempt was canceled before the user completed this step.

        `pending_review` - The Identity Verification attempt template was configured to perform a screening that had one or more hits needing review.

        `manually_approved` - The step was manually overridden to pass by a team member in the dashboard.

        `manually_rejected` - The step was manually overridden to fail by a team member in the dashboard.
      properties:
        accept_tos:
          $ref: "#/components/schemas/IdentityVerificationStepStatus"
        documentary_verification:
          $ref: "#/components/schemas/IdentityVerificationStepStatus"
        kyc_check:
          $ref: "#/components/schemas/IdentityVerificationStepStatus"
        risk_check:
          $ref: "#/components/schemas/IdentityVerificationStepStatus"
        selfie_check:
          $ref: "#/components/schemas/IdentityVerificationStepStatus"
        verify_sms:
          $ref: "#/components/schemas/IdentityVerificationStepStatus"
        watchlist_screening:
          $ref: "#/components/schemas/IdentityVerificationStepStatus"
      required:
        - accept_tos
        - verify_sms
        - kyc_check
        - documentary_verification
        - selfie_check
        - watchlist_screening
        - risk_check
      type: object
    IdentityVerificationStepUpdatedWebhook:
      additionalProperties: true
      description: Fired when an end user has completed a step of the Identity Verification process.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        identity_verification_id:
          description: The ID of the associated Identity Verification attempt.
          type: string
        webhook_code:
          description: "`STEP_UPDATED`"
          type: string
        webhook_type:
          description: "`IDENTITY_VERIFICATION`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - identity_verification_id
        - environment
      title: IdentityVerificationStepUpdatedWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          identity_verification_id: idv_52xR9LKo77r1Np
          webhook_code: STEP_UPDATED
          webhook_type: IDENTITY_VERIFICATION
    IdentityVerificationTemplateID:
      description: ID of the associated Identity Verification template.
      example: idvtmp_4FrXJvfQU3zGUR
      title: IdentityVerificationTemplateID
      type: string
    IdentityVerificationTemplateReference:
      additionalProperties: true
      description: The resource ID and version number of the template configuring the behavior of a given identity verification.
      properties:
        id:
          $ref: "#/components/schemas/IdentityVerificationTemplateID"
        version:
          $ref: "#/components/schemas/IdentityVerificationTemplateVersion"
      required:
        - id
        - version
      type: object
    IdentityVerificationTemplateVersion:
      description: Version of the associated Identity Verification template.
      example: 2
      title: IdentityVerificationTemplateVersion
      type: number
    IdentityVerificationUserAddress:
      additionalProperties: true
      description: |-
        Even if an address has been collected, some fields may be null depending on the region's addressing system. For example:

        Addresses from the United Kingdom will not include a region

        Addresses from Hong Kong will not include postal code
      nullable: true
      properties:
        city:
          $ref: "#/components/schemas/CityNullable"
        country:
          $ref: "#/components/schemas/GenericCountryCode"
        postal_code:
          $ref: "#/components/schemas/PostalCodeNullable"
        region:
          $ref: "#/components/schemas/RegionNullable"
        street:
          $ref: "#/components/schemas/StreetNullable"
        street2:
          $ref: "#/components/schemas/Street2"
      required:
        - street
        - street2
        - city
        - region
        - postal_code
        - country
      type: object
    IdentityVerificationUserData:
      additionalProperties: true
      description: The identity data that was either collected from the user or provided via API in order to perform an identity verification.
      properties:
        address:
          $ref: "#/components/schemas/IdentityVerificationUserAddress"
        date_of_birth:
          $ref: "#/components/schemas/ISO8601DateNullable"
        email_address:
          $ref: "#/components/schemas/EmailAddressNullable"
        id_number:
          $ref: "#/components/schemas/UserIDNumber"
        ip_address:
          $ref: "#/components/schemas/IPAddress"
        name:
          $ref: "#/components/schemas/IdentityVerificationResponseUserName"
        phone_number:
          $ref: "#/components/schemas/IdentityVerificationUserPhoneNumber"
      required:
        - date_of_birth
        - email_address
        - ip_address
        - name
        - address
        - id_number
      type: object
    IdentityVerificationUserPhoneNumber:
      description: A phone number in E.164 format.
      example: "+19876543212"
      nullable: true
      title: PhoneNumber
      type: string
    ImageQuality:
      description: |-
        A high level description of the quality of the image the user submitted.

        For example, an image that is blurry, distorted by glare from a nearby light source, or improperly framed might be marked as low or medium quality. Poor quality images are more likely to fail OCR and/or template conformity checks.

        Note: By default, Plaid will let a user recapture document images twice before failing the entire session if we attribute the failure to low image quality.
      enum:
        - high
        - medium
        - low
      example: high
      type: string
    IncidentUpdate:
      additionalProperties: true
      description: An update on the health incident
      properties:
        description:
          description: The content of the update.
          type: string
        status:
          description: The status of the incident.
          enum:
            - INVESTIGATING
            - IDENTIFIED
            - SCHEDULED
            - RESOLVED
            - UNKNOWN
          type: string
        updated_date:
          description: The date when the update was published, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `"2020-10-30T15:26:48Z"`.
          format: date-time
          type: string
      title: IncidentUpdate
      type: object
    IncomeBreakdown:
      additionalProperties: true
      deprecated: true
      description: An object representing a breakdown of the different income types on the paystub.
      properties:
        hours:
          description: The number of hours logged for this income for this pay period.
          nullable: true
          type: number
        rate:
          description: The hourly rate at which the income is paid.
          format: double
          nullable: true
          type: number
        total:
          description: The total pay for this pay period.
          format: double
          nullable: true
          type: number
        type:
          $ref: "#/components/schemas/IncomeBreakdownType"
      required:
        - type
        - rate
        - hours
        - total
      title: IncomeBreakdown
      type: object
    IncomeBreakdownType:
      description: |-
        The type of income. Possible values include:
          `"regular"`: regular income
          `"overtime"`: overtime income
          `"bonus"`: bonus income
      enum:
        - bonus
        - overtime
        - regular
        - null
      nullable: true
      type: string
    IncomeOverride:
      description: Specify payroll data on the account.
      properties:
        paystubs:
          description: A list of paystubs associated with the account.
          items:
            $ref: "#/components/schemas/PaystubOverride"
          type: array
      title: IncomeOverride
      type: object
    IncomeSummary:
      additionalProperties: true
      description: The verified fields from a paystub verification. All fields are provided as reported on the paystub.
      properties:
        employee_name:
          $ref: "#/components/schemas/EmployeeIncomeSummaryFieldString"
        employer_name:
          $ref: "#/components/schemas/EmployerIncomeSummaryFieldString"
        pay_frequency:
          $ref: "#/components/schemas/PayFrequency"
        projected_wage:
          $ref: "#/components/schemas/ProjectedIncomeSummaryFieldNumber"
        verified_transaction:
          $ref: "#/components/schemas/TransactionData"
        ytd_gross_income:
          $ref: "#/components/schemas/YTDGrossIncomeSummaryFieldNumber"
        ytd_net_income:
          $ref: "#/components/schemas/YTDNetIncomeSummaryFieldNumber"
      required:
        - employer_name
        - employee_name
        - ytd_gross_income
        - ytd_net_income
        - pay_frequency
        - projected_wage
        - verified_transaction
      title: IncomeSummary
      type: object
    IncomeSummaryFieldNumber:
      additionalProperties: true
      description: Field number for income summary
      nullable: true
      properties:
        value:
          description: The value of the field.
          format: double
          type: number
        verification_status:
          $ref: "#/components/schemas/VerificationStatus"
      required:
        - value
        - verification_status
      title: IncomeSummaryFieldNumber
      type: object
    IncomeSummaryFieldString:
      additionalProperties: true
      description: Data about the income summary
      nullable: true
      properties:
        value:
          description: The value of the field.
          type: string
        verification_status:
          $ref: "#/components/schemas/VerificationStatus"
      required:
        - value
        - verification_status
      title: IncomeSummaryFieldString
      type: object
    IncomeVerificationCreateRequest:
      description: IncomeVerificationCreateRequest defines the request schema for `/income/verification/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/IncomeVerificationCreateRequestOptions"
        precheck_id:
          description: The ID of a precheck created with `/income/verification/precheck`. Will be used to improve conversion of the income verification flow.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        webhook:
          description: The URL endpoint to which Plaid should send webhooks related to the progress of the income verification process.
          type: string
      required:
        - webhook
      title: IncomeVerificationCreateRequest
      type: object
    IncomeVerificationCreateRequestOptions:
      description: Optional arguments for `/income/verification/create`
      properties:
        access_tokens:
          description: An array of access tokens corresponding to the Items that will be cross-referenced with the product data. Plaid will attempt to correlate transaction history from these Items with data from the user's paystub, such as date and amount. The `verification` status of the paystub as returned by `/income/verification/paystubs/get` will indicate if the verification status was successful, or, if not, why it failed. If the `transactions` product was not initialized for the Items during Link, it will be initialized after this Link session.
          items:
            $ref: "#/components/schemas/AccessToken"
          type: array
      title: IncomeVerificationCreateRequestOptions
      type: object
    IncomeVerificationCreateResponse:
      additionalProperties: true
      description: IncomeVerificationCreateResponse defines the response schema for `/income/verification/create`.
      properties:
        income_verification_id:
          description: ID of the verification. This ID is persisted throughout the lifetime of the verification.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - income_verification_id
        - request_id
      title: IncomeVerificationCreateResponse
      type: object
    IncomeVerificationDocumentsDownloadRequest:
      description: IncomeVerificationDocumentsDownloadRequest defines the request schema for `/income/verification/documents/download`.
      properties:
        access_token:
          $ref: "#/components/schemas/AccessTokenNullable"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        document_id:
          description: The document ID to download. If passed, a single document will be returned in the resulting zip file, rather than all document
          nullable: true
          type: string
        income_verification_id:
          deprecated: true
          description: The ID of the verification.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      title: IncomeVerificationDocumentsDownloadRequest
      type: object
    IncomeVerificationPayrollFlowType:
      description: Flow types to retrieve payroll income data
      enum:
        - payroll_digital_income
        - payroll_document_income
      title: IncomeVerificationPayrollFlowType
      type: string
    IncomeVerificationPaystubsGetRequest:
      description: IncomeVerificationPaystubsGetRequest defines the request schema for `/income/verification/paystubs/get`.
      properties:
        access_token:
          $ref: "#/components/schemas/AccessTokenNullable"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        income_verification_id:
          deprecated: true
          description: The ID of the verification for which to get paystub information.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      title: IncomeVerificationPaystubsGetRequest
      type: object
    IncomeVerificationPaystubsGetResponse:
      additionalProperties: true
      description: IncomeVerificationPaystubsGetResponse defines the response schema for `/income/verification/paystubs/get`.
      properties:
        document_metadata:
          description: Metadata for an income document.
          items:
            $ref: "#/components/schemas/DocumentMetadata"
          type: array
        error:
          $ref: "#/components/schemas/PlaidError"
        paystubs:
          items:
            $ref: "#/components/schemas/Paystub"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - paystubs
        - request_id
      title: IncomeVerificationPaystubsGetResponse
      type: object
    IncomeVerificationPrecheckConfidence:
      description: |-
        The confidence that Plaid can support the user in the digital income verification flow instead of requiring a manual paystub upload. One of the following:

        `"HIGH"`: It is very likely that this user can use the digital income verification flow.

        "`LOW`": It is unlikely that this user can use the digital income verification flow.

        `"UNKNOWN"`: It was not possible to determine if the user is supportable with the information passed.
      enum:
        - HIGH
        - LOW
        - UNKNOWN
      type: string
    IncomeVerificationPrecheckEmployer:
      description: Information about the end user's employer
      nullable: true
      properties:
        address:
          $ref: "#/components/schemas/IncomeVerificationPrecheckEmployerAddress"
        name:
          description: The employer's name
          nullable: true
          type: string
        tax_id:
          description: The employer's tax id
          nullable: true
          type: string
        url:
          description: The URL for the employer's public website
          nullable: true
          type: string
      title: IncomeVerificationPrecheckEmployer
      type: object
    IncomeVerificationPrecheckEmployerAddress:
      allOf:
        - $ref: "#/components/schemas/IncomeVerificationPrecheckEmployerAddressData"
        - additionalProperties: true
          type: object
      description: The address of the employer
      nullable: true
      title: IncomeVerificationPrecheckEmployerAddress
      type: object
    IncomeVerificationPrecheckEmployerAddressData:
      additionalProperties: true
      description: Data about the components comprising an address.
      properties:
        city:
          description: The full city name
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code
          type: string
        postal_code:
          description: The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
          type: string
        region:
          description: |-
            The region or state. In API versions 2018-05-22 and earlier, this field is called `state`.
            Example: `"NC"`
          type: string
        street:
          description: |-
            The full street address
            Example: `"564 Main Street, APT 15"`
          type: string
      title: AddressData
      type: object
    IncomeVerificationPrecheckMilitaryInfo:
      description: Data about military info in the income verification precheck.
      nullable: true
      properties:
        branch:
          description: |-
            If the user is currently serving in the US military, the branch of the military in which they are serving
            Valid values: 'AIR FORCE', 'ARMY', 'COAST GUARD', 'MARINES', 'NAVY', 'UNKNOWN'
          nullable: true
          type: string
        is_active_duty:
          description: Is the user currently active duty in the US military
          nullable: true
          type: boolean
      title: IncomeVerificationPrecheckMilitaryInfo
      type: object
    IncomeVerificationPrecheckPayrollInstitution:
      description: Information about the end user's payroll institution
      nullable: true
      properties:
        name:
          description: The name of payroll institution
          nullable: true
          type: string
      title: IncomeVerificationPrecheckPayrollInstitution
      type: object
    IncomeVerificationPrecheckRequest:
      description: IncomeVerificationPrecheckRequest defines the request schema for `/income/verification/precheck`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        employer:
          $ref: "#/components/schemas/IncomeVerificationPrecheckEmployer"
        payroll_institution:
          $ref: "#/components/schemas/IncomeVerificationPrecheckPayrollInstitution"
        secret:
          $ref: "#/components/schemas/APISecret"
        transactions_access_token:
          allOf:
            - $ref: "#/components/schemas/AccessTokenNullable"
          deprecated: true
        transactions_access_tokens:
          description: An array of access tokens corresponding to Items belonging to the user whose eligibility is being checked. Note that if the Items specified here are not already initialized with `transactions`, providing them in this field will cause these Items to be initialized with (and billed for) the Transactions product.
          items:
            $ref: "#/components/schemas/AccessToken"
          type: array
        us_military_info:
          $ref: "#/components/schemas/IncomeVerificationPrecheckMilitaryInfo"
        user:
          $ref: "#/components/schemas/IncomeVerificationPrecheckUser"
      title: IncomeVerificationPrecheckRequest
      type: object
    IncomeVerificationPrecheckResponse:
      additionalProperties: true
      description: IncomeVerificationPrecheckResponse defines the response schema for `/income/verification/precheck`.
      properties:
        confidence:
          $ref: "#/components/schemas/IncomeVerificationPrecheckConfidence"
        precheck_id:
          description: ID of the precheck. Provide this value when calling `/link/token/create` in order to optimize Link conversion.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - precheck_id
        - confidence
        - request_id
      title: IncomeVerificationPrecheckResponse
      type: object
    IncomeVerificationPrecheckUser:
      description: Information about the user whose eligibility is being evaluated.
      nullable: true
      properties:
        email_address:
          description: The user's email address
          nullable: true
          type: string
        first_name:
          description: The user's first name
          nullable: true
          type: string
        home_address:
          $ref: "#/components/schemas/SignalAddressData"
        last_name:
          description: The user's last name
          nullable: true
          type: string
      title: IncomeVerificationPrecheckUser
      type: object
    IncomeVerificationSourceType:
      description: The types of source income data that users should be able to share
      enum:
        - bank
        - payroll
      title: IncomeVerificationSourceType
      type: string
    IncomeVerificationStatusWebhook:
      additionalProperties: true
      description: Fired when the status of an income verification instance has changed. It will typically take several minutes for this webhook to fire after the end user has uploaded their documents in the Document Income flow.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        item_id:
          description: The Item ID associated with the verification.
          type: string
        user_id:
          $ref: "#/components/schemas/UserId"
        verification_status:
          description: |-
            `VERIFICATION_STATUS_PROCESSING_COMPLETE`: The income verification status processing has completed. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the `/income/verification/paystubs/get` endpoint and check the document metadata to see which documents were successfully parsed.

            `VERIFICATION_STATUS_PROCESSING_FAILED`: A failure occurred when attempting to process the verification documentation.

            `VERIFICATION_STATUS_PENDING_APPROVAL`: (deprecated) The income verification has been sent to the user for review.
          type: string
        webhook_code:
          description: "`INCOME_VERIFICATION`"
          type: string
        webhook_type:
          description: '`"INCOME"`'
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - verification_status
        - environment
      title: IncomeVerificationStatusWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          item_id: gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ
          user_id: 9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334
          verification_status: VERIFICATION_STATUS_PROCESSING_COMPLETE
          webhook_code: INCOME_VERIFICATION
          webhook_type: INCOME
    IncomeVerificationTaxformsGetRequest:
      additionalProperties: true
      description: IncomeVerificationTaxformsGetRequest defines the request schema for `/income/verification/taxforms/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessTokenNullable"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        income_verification_id:
          deprecated: true
          description: The ID of the verification.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      title: IncomeVerificationTaxformsGetRequest
      type: object
    IncomeVerificationTaxformsGetResponse:
      additionalProperties: true
      description: IncomeVerificationTaxformsGetResponse defines the response schema for `/income/verification/taxforms/get`
      properties:
        document_metadata:
          items:
            $ref: "#/components/schemas/DocumentMetadata"
          type: array
        error:
          $ref: "#/components/schemas/PlaidError"
        request_id:
          $ref: "#/components/schemas/RequestID"
        taxforms:
          description: A list of forms.
          items:
            $ref: "#/components/schemas/Taxform"
          type: array
      required:
        - taxforms
        - document_metadata
      title: IncomeVerificationTaxformsGetResponse
      type: object
    IncomeVerificationWebhookStatus:
      additionalProperties: true
      description: Status of the income verification webhook
      properties:
        id:
          type: string
      required:
        - id
      title: IncomeVerificationWebhookStatus
      type: object
    IndividualName:
      additionalProperties: true
      description: Parent container for name that allows for choice group between parsed and unparsed containers.Parent container for name that allows for choice group between parsed and unparsed containers.
      properties:
        FirstName:
          description: The first name of the individual represented by the parent object.
          type: string
        LastName:
          description: The last name of the individual represented by the parent object.
          type: string
      required:
        - FirstName
        - LastName
      title: NAME
      type: object
    IndividualScreeningHitNames:
      additionalProperties: true
      description: Name information for the associated individual watchlist hit
      properties:
        full:
          description: The full name of the individual, including all parts.
          example: Aleksey Potemkin
          type: string
        is_primary:
          description: Primary names are those most commonly used to refer to this person. Only one name will ever be marked as primary.
          example: false
          type: boolean
        weak_alias_determination:
          $ref: "#/components/schemas/WeakAliasDetermination"
      required:
        - full
        - is_primary
        - weak_alias_determination
      type: object
    IndividualWatchlistCode:
      description: Shorthand identifier for a specific screening list for individuals.
      enum:
        - AU_CON
        - CA_CON
        - EU_CON
        - IZ_CIA
        - IZ_IPL
        - IZ_PEP
        - IZ_UNC
        - IZ_WBK
        - UK_HMC
        - US_DPL
        - US_DTC
        - US_FBI
        - US_FSE
        - US_ISN
        - US_MBS
        - US_PLC
        - US_SDN
        - US_SSI
        - SG_SOF
        - TR_TWL
        - TR_DFD
        - TR_FOR
        - TR_WMD
        - TR_CMB
      example: US_SDN
      title: IndividualWatchlistCode
      type: string
    IndividualWatchlistProgram:
      additionalProperties: true
      description: A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of individuals.
      properties:
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        created_at:
          $ref: "#/components/schemas/Timestamp"
        id:
          $ref: "#/components/schemas/WatchlistProgramID"
        is_archived:
          $ref: "#/components/schemas/ProgramArchived"
        is_rescanning_enabled:
          description: Indicator specifying whether the program is enabled and will perform daily rescans.
          example: true
          type: boolean
        lists_enabled:
          description: Watchlists enabled for the associated program
          example:
            - US_SDN
          items:
            $ref: "#/components/schemas/IndividualWatchlistCode"
          type: array
          uniqueItems: true
        name:
          $ref: "#/components/schemas/IndividualWatchlistScreeningProgramName"
        name_sensitivity:
          $ref: "#/components/schemas/ProgramNameSensitivity"
      required:
        - id
        - created_at
        - is_rescanning_enabled
        - lists_enabled
        - name
        - name_sensitivity
        - audit_trail
        - is_archived
      title: IndividualWatchlistProgram
      type: object
    IndividualWatchlistScreeningProgramName:
      description: A name for the program to define its purpose. For example, "High Risk Individuals", "US Cardholders", or "Applicants".
      example: Sample Program
      minLength: 1
      title: IndividualWatchlistScreeningProgramName
      type: string
    InflowModel:
      additionalProperties: true
      description: The `inflow_model` allows you to model a test account that receives regular income or make regular payments on a loan. Any transactions generated by the `inflow_model` will appear in addition to randomly generated test data or transactions specified by `override_accounts`.
      properties:
        income_amount:
          description: Amount of income per month. This value is required if `type` is `monthly-income`.
          format: double
          type: number
        payment_day_of_month:
          description: Number between 1 and 28, or `last` meaning the last day of the month. The day of the month on which the income transaction will appear. The name of the income transaction. This field is required if `type` is `monthly-income`, `monthly-balance-payment` or `monthly-interest-only-payment`.
          type: number
        statement_day_of_month:
          description: Number between 1 and 28, or `last` meaning the last day of the month. The day of the month on which the balance is calculated for the next payment. The name of the income transaction. This field is required if `type` is `monthly-balance-payment` or `monthly-interest-only-payment`.
          type: string
        transaction_name:
          description: The name of the income transaction. This field is required if `type` is `monthly-income`, `monthly-balance-payment` or `monthly-interest-only-payment`.
          type: string
        type:
          description: |-
            Inflow model. One of the following:

            `none`: No income

            `monthly-income`: Income occurs once per month `monthly-balance-payment`: Pays off the balance on a liability account at the given statement day of month.

            `monthly-interest-only-payment`: Makes an interest-only payment on a liability account at the given statement day of month.

            Note that account types supported by Liabilities will accrue interest in the Sandbox. The types impacted are account type `credit` with subtype `credit` or `paypal`, and account type `loan` with subtype `student` or `mortgage`.
          type: string
      required:
        - type
        - income_amount
        - payment_day_of_month
        - transaction_name
        - statement_day_of_month
      title: InflowModel
      type: object
    InitialUpdateWebhook:
      additionalProperties: true
      description: |-
        Fired when an Item's initial transaction pull is completed. Once this webhook has been fired, transaction data for the most recent 30 days can be fetched for the Item. If [Account Select v2](https://plaid.com/docs/link/customization/#account-select) is enabled, this webhook will also be fired if account selections for the Item are updated, with `new_transactions` set to the number of net new transactions pulled after the account selection update.

        This webhook is intended for use with `/transactions/get`; if you are using the newer `/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          description: The error code associated with the webhook.
          nullable: true
          type: string
        item_id:
          $ref: "#/components/schemas/ItemId"
        new_transactions:
          description: The number of new, unfetched transactions available.
          type: number
        webhook_code:
          description: "`INITIAL_UPDATE`"
          type: string
        webhook_type:
          description: "`TRANSACTIONS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - new_transactions
        - item_id
        - environment
      title: InitialUpdateWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          new_transactions: 19
          webhook_code: INITIAL_UPDATE
          webhook_type: TRANSACTIONS
    Institution:
      additionalProperties: true
      description: Details relating to a specific financial institution
      properties:
        auth_metadata:
          $ref: "#/components/schemas/AuthMetadata"
        country_codes:
          description: A list of the country codes supported by the institution.
          items:
            $ref: "#/components/schemas/CountryCode"
          type: array
        dtc_numbers:
          description: A partial list of DTC numbers associated with the institution.
          items:
            type: string
          type: array
        institution_id:
          description: Unique identifier for the institution
          type: string
        logo:
          description: Base64 encoded representation of the institution's logo, returned as a base64 encoded 152x152 PNG. Not all institutions' logos are available.
          nullable: true
          type: string
        name:
          description: The official name of the institution
          type: string
        oauth:
          description: Indicates that the institution has a mandatory OAuth login flow. Note that `oauth` may be `false` even for institutions that support OAuth, if the institution is in the process of migrating to OAuth and some active Items still exist that do not use OAuth.
          type: boolean
        payment_initiation_metadata:
          $ref: "#/components/schemas/PaymentInitiationMetadata"
        primary_color:
          description: Hexadecimal representation of the primary color used by the institution
          nullable: true
          type: string
        products:
          description: A list of the Plaid products supported by the institution. Note that only institutions that support Instant Auth will return `auth` in the product array; institutions that do not list `auth` may still support other Auth methods such as Instant Match or Automated Micro-deposit Verification. To identify institutions that support those methods, use the `auth_metadata` object. For more details, see [Full Auth coverage](https://plaid.com/docs/auth/coverage/).
          items:
            $ref: "#/components/schemas/Products"
          type: array
        routing_numbers:
          description: A partial list of routing numbers associated with the institution. This list is provided for the purpose of looking up institutions by routing number. It is not comprehensive and should never be used as a complete list of routing numbers for an institution.
          items:
            type: string
          type: array
        status:
          $ref: "#/components/schemas/InstitutionStatus"
        url:
          description: The URL for the institution's website
          nullable: true
          type: string
      required:
        - institution_id
        - name
        - products
        - country_codes
        - routing_numbers
        - oauth
      title: Institution
      type: object
    InstitutionStatus:
      additionalProperties: true
      description: |
        The status of an institution is determined by the health of its Item logins, Transactions updates, Investments updates, Liabilities updates, Auth requests, Balance requests, Identity requests, Investments requests, and Liabilities requests. A login attempt is conducted during the initial Item add in Link. If there is not enough traffic to accurately calculate an institution's status, Plaid will return null rather than potentially inaccurate data.

        Institution status is accessible in the Dashboard and via the API using the `/institutions/get_by_id` endpoint with the `include_status` option set to true. Note that institution status is not available in the Sandbox environment.
      nullable: true
      properties:
        auth:
          $ref: "#/components/schemas/ProductStatus"
        health_incidents:
          description: Details of recent health incidents associated with the institution.
          items:
            $ref: "#/components/schemas/HealthIncident"
          nullable: true
          type: array
        identity:
          $ref: "#/components/schemas/ProductStatus"
        investments:
          $ref: "#/components/schemas/ProductStatus"
        investments_updates:
          $ref: "#/components/schemas/ProductStatus"
        item_logins:
          $ref: "#/components/schemas/ProductStatus"
        liabilities:
          $ref: "#/components/schemas/ProductStatus"
        liabilities_updates:
          $ref: "#/components/schemas/ProductStatus"
        transactions_updates:
          $ref: "#/components/schemas/ProductStatus"
      title: InstitutionStatus
      type: object
      x-examples:
        example-1:
          status:
            auth:
              breakdown:
                error_institution: 0.08
                error_plaid: 0.01
                success: 0.91
              last_status_change: 2019-02-15T15:53:00Z
              status: HEALTHY
            identity:
              breakdown:
                error_institution: 0.5
                error_plaid: 0.08
                success: 0.42
              last_status_change: 2019-02-15T15:50:00Z
              status: DEGRADED
            investments:
              breakdown:
                error_institution: 0.09
                error_plaid: 0.02
                success: 0.89
              last_status_change: 2019-02-15T15:53:00Z
              status: HEALTHY
            investments_updates:
              breakdown:
                error_institution: 0.03
                error_plaid: 0.02
                refresh_interval: NORMAL
                success: 0.95
              last_status_change: 2019-02-12T08:22:00Z
              status: HEALTHY
            item_logins:
              breakdown:
                error_institution: 0.09
                error_plaid: 0.01
                success: 0.9
              last_status_change: 2019-02-15T15:53:00Z
              status: HEALTHY
            liabilities:
              breakdown:
                error_institution: 0.09
                error_plaid: 0.02
                success: 0.89
              last_status_change: 2019-02-15T15:53:00Z
              status: HEALTHY
            liabilities_updates:
              breakdown:
                error_institution: 0.03
                error_plaid: 0.02
                refresh_interval: NORMAL
                success: 0.95
              last_status_change: 2019-02-12T08:22:00Z
              status: HEALTHY
            transactions_updates:
              breakdown:
                error_institution: 0.03
                error_plaid: 0.02
                refresh_interval: NORMAL
                success: 0.95
              last_status_change: 2019-02-12T08:22:00Z
              status: HEALTHY
    InstitutionSupportedNetworks:
      additionalProperties: true
      description: Contains the RTP network and types supported by the linked Item's institution.
      properties:
        rtp:
          $ref: "#/components/schemas/TransferCapabilitiesGetRTP"
      required:
        - rtp
      title: InstitutionSupportedNetworks
      type: object
    InstitutionsGetByIdRequest:
      description: InstitutionsGetByIdRequest defines the request schema for `/institutions/get_by_id`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        country_codes:
          description: |
            Specify an array of Plaid-supported country codes this institution supports, using the ISO-3166-1 alpha-2 country code standard. In API versions 2019-05-29 and earlier, the `country_codes` parameter is an optional parameter within the `options` object and will default to `[US]` if it is not supplied.
          items:
            $ref: "#/components/schemas/CountryCode"
          type: array
        institution_id:
          description: The ID of the institution to get details about
          minLength: 1
          type: string
        options:
          $ref: "#/components/schemas/InstitutionsGetByIdRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - institution_id
        - country_codes
      type: object
    InstitutionsGetByIdRequestOptions:
      description: Specifies optional parameters for `/institutions/get_by_id`. If provided, must not be `null`.
      properties:
        include_auth_metadata:
          default: false
          description: When `true`, returns metadata related to the Auth product indicating which auth methods are supported.
          type: boolean
        include_optional_metadata:
          default: false
          description: |-
            When `true`, return an institution's logo, brand color, and URL. When available, the bank's logo is returned as a base64 encoded 152x152 PNG, the brand color is in hexadecimal format. The default value is `false`.

            Note that Plaid does not own any of the logos shared by the API and that by accessing or using these logos, you agree that you are doing so at your own risk and will, if necessary, obtain all required permissions from the appropriate rights holders and adhere to any applicable usage guidelines. Plaid disclaims all express or implied warranties with respect to the logos.
          type: boolean
        include_payment_initiation_metadata:
          default: false
          description: When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported.
          type: boolean
        include_status:
          default: false
          description: If `true`, the response will include status information about the institution. Default value is `false`.
          type: boolean
      type: object
    InstitutionsGetByIdResponse:
      additionalProperties: true
      description: InstitutionsGetByIdResponse defines the response schema for `/institutions/get_by_id`
      properties:
        institution:
          $ref: "#/components/schemas/Institution"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - institution
        - request_id
      type: object
    InstitutionsGetRequest:
      description: InstitutionsGetRequest defines the request schema for `/institutions/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          description: The total number of Institutions to return.
          maximum: 500
          minimum: 1
          type: integer
        country_codes:
          description: |
            Specify an array of Plaid-supported country codes this institution supports, using the ISO-3166-1 alpha-2 country code standard.

            In API versions 2019-05-29 and earlier, the `country_codes` parameter is an optional parameter within the `options` object and will default to `[US]` if it is not supplied.
          items:
            $ref: "#/components/schemas/CountryCode"
          minItems: 1
          type: array
        offset:
          description: The number of Institutions to skip.
          minimum: 0
          type: integer
        options:
          $ref: "#/components/schemas/InstitutionsGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - count
        - offset
        - country_codes
      type: object
    InstitutionsGetRequestOptions:
      description: An optional object to filter `/institutions/get` results.
      properties:
        include_auth_metadata:
          default: false
          description: When `true`, returns metadata related to the Auth product indicating which auth methods are supported.
          type: boolean
        include_optional_metadata:
          description: |-
            When `true`, return the institution's homepage URL, logo and primary brand color.

            Note that Plaid does not own any of the logos shared by the API, and that by accessing or using these logos, you agree that you are doing so at your own risk and will, if necessary, obtain all required permissions from the appropriate rights holders and adhere to any applicable usage guidelines. Plaid disclaims all express or implied warranties with respect to the logos.
          type: boolean
        include_payment_initiation_metadata:
          default: false
          description: When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported.
          type: boolean
        oauth:
          description: Limit results to institutions with or without mandatory OAuth login flows. Note that institutions will only have `oauth` set to `true` if *all* Items associated with that institution are required to use OAuth flows; institutions in a state of migration to OAuth may have the `oauth` attribute set to `false` even if they support OAuth.
          nullable: true
          type: boolean
        products:
          description: "Filter the Institutions based on which products they support. "
          items:
            $ref: "#/components/schemas/Products"
          minItems: 1
          nullable: true
          type: array
          x-override-enum-values-shown:
            - assets
            - auth
            - balance
            - employment
            - identity
            - income_verification
            - identity_verification
            - investments
            - liabilities
            - payment_initiation
            - standing_orders
            - transactions
            - transfer
        routing_numbers:
          description: Specify an array of routing numbers to filter institutions. The response will only return institutions that match all of the routing numbers in the array. Routing number records used for this matching are not comprehensive; failure to match a given routing number to an institution does not mean that the institution is unsupported by Plaid.
          items:
            type: string
          nullable: true
          type: array
      type: object
    InstitutionsGetResponse:
      additionalProperties: true
      description: InstitutionsGetResponse defines the response schema for `/institutions/get`
      properties:
        institutions:
          description: A list of Plaid institutions
          items:
            $ref: "#/components/schemas/Institution"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
        total:
          description: The total number of institutions available via this endpoint
          type: integer
      required:
        - institutions
        - total
        - request_id
      type: object
    InstitutionsSearchAccountFilter:
      additionalProperties: true
      description: An account filter to apply to institutions search requests
      properties:
        credit:
          items:
            $ref: "#/components/schemas/AccountSubtype"
          type: array
        depository:
          items:
            $ref: "#/components/schemas/AccountSubtype"
          type: array
        investment:
          items:
            $ref: "#/components/schemas/AccountSubtype"
          type: array
        loan:
          items:
            $ref: "#/components/schemas/AccountSubtype"
          type: array
      title: InstitutionsSearchAccountFilter
      type: object
    InstitutionsSearchPaymentInitiationOptions:
      additionalProperties: true
      description: Additional options that will be used to filter institutions by various Payment Initiation configurations.
      nullable: true
      properties:
        consent_id:
          description: A unique ID identifying the payment consent
          nullable: true
          type: string
        payment_id:
          description: A unique ID identifying the payment
          nullable: true
          type: string
      type: object
    InstitutionsSearchRequest:
      description: InstitutionsSearchRequest defines the request schema for `/institutions/search`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        country_codes:
          description: |
            Specify an array of Plaid-supported country codes this institution supports, using the ISO-3166-1 alpha-2 country code standard. In API versions 2019-05-29 and earlier, the `country_codes` parameter is an optional parameter within the `options` object and will default to `[US]` if it is not supplied.
          items:
            $ref: "#/components/schemas/CountryCode"
          type: array
        options:
          $ref: "#/components/schemas/InstitutionsSearchRequestOptions"
        products:
          description: Filter the Institutions based on whether they support all products listed in `products`. Provide `null` to get institutions regardless of supported products. Note that when `auth` is specified as a product, if you are enabled for Instant Match or Automated Micro-deposits, institutions that support those products will be returned even if `auth` is not present in their product array.
          items:
            $ref: "#/components/schemas/Products"
          minItems: 1
          nullable: true
          type: array
          x-override-enum-values-shown:
            - assets
            - auth
            - balance
            - employment
            - identity
            - income_verification
            - investments
            - liabilities
            - identity_verification
            - payment_initiation
            - standing_orders
            - transactions
            - transfer
        query:
          description: The search query. Institutions with names matching the query are returned
          minLength: 1
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - query
        - products
        - country_codes
      type: object
    InstitutionsSearchRequestOptions:
      description: An optional object to filter `/institutions/search` results.
      properties:
        include_auth_metadata:
          default: false
          description: When `true`, returns metadata related to the Auth product indicating which auth methods are supported.
          nullable: true
          type: boolean
        include_optional_metadata:
          description: When true, return the institution's homepage URL, logo and primary brand color.
          type: boolean
        include_payment_initiation_metadata:
          default: false
          description: When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported.
          nullable: true
          type: boolean
        oauth:
          description: Limit results to institutions with or without mandatory OAuth login flows. Note that institutions will only have `oauth` set to `true` if *all* Items associated with that institution are required to use OAuth flows; institutions in a state of migration to OAuth may have the `oauth` attribute set to `false` even if they support OAuth.
          nullable: true
          type: boolean
        payment_initiation:
          $ref: "#/components/schemas/InstitutionsSearchPaymentInitiationOptions"
      type: object
    InstitutionsSearchResponse:
      additionalProperties: true
      description: InstitutionsSearchResponse defines the response schema for `/institutions/search`
      properties:
        institutions:
          description: An array of institutions matching the search criteria
          items:
            $ref: "#/components/schemas/Institution"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - institutions
        - request_id
      type: object
    InternalUID:
      description: A universal identifier for a watchlist individual that is stable across searches and updates.
      example: uid_3NggckTimGSJHS
      title: InternalUID
      type: string
    InvestmentAccountSubtype:
      description: Valid account subtypes for investment accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-investment).
      enum:
        - "529"
        - 401a
        - 401k
        - 403B
        - 457b
        - brokerage
        - cash isa
        - crypto exchange
        - education savings account
        - fixed annuity
        - gic
        - health reimbursement arrangement
        - hsa
        - ira
        - isa
        - keogh
        - lif
        - life insurance
        - lira
        - lrif
        - lrsp
        - mutual fund
        - non-custodial wallet
        - non-taxable brokerage account
        - other
        - other annuity
        - other insurance
        - pension
        - prif
        - profit sharing plan
        - qshr
        - rdsp
        - resp
        - retirement
        - rlif
        - roth
        - roth 401k
        - rrif
        - rrsp
        - sarsep
        - sep ira
        - simple ira
        - sipp
        - stock plan
        - tfsa
        - trust
        - ugma
        - utma
        - variable annuity
        - all
      type: string
    InvestmentAccountSubtypeStandalone:
      description: "An investment account. Supported products for `investment` accounts are: Balance and Investments. In API versions 2018-05-22 and earlier, this type is called `brokerage`."
      properties:
        "529":
          description: |
            Tax-advantaged college savings and prepaid tuition 529 plans (US)
          type: string
        401a:
          description: Employer-sponsored money-purchase 401(a) retirement plan (US)
          type: string
        401k:
          description: Standard 401(k) retirement account (US)
          type: string
        403B:
          description: 403(b) retirement savings account for non-profits and schools (US)
          type: string
        457b:
          description: Tax-advantaged deferred-compensation 457(b) retirement plan for governments and non-profits (US)
          type: string
        brokerage:
          description: Standard brokerage account
          type: string
        cash isa:
          description: Individual Savings Account (ISA) that pays interest tax-free (UK)
          type: string
        crypto exchange:
          description: Standard cryptocurrency exchange account
          type: string
        education savings account:
          description: Tax-advantaged Coverdell Education Savings Account (ESA) (US)
          type: string
        fixed annuity:
          description: Fixed annuity
          type: string
        gic:
          description: Guaranteed Investment Certificate (Canada)
          type: string
        health reimbursement arrangement:
          description: Tax-advantaged Health Reimbursement Arrangement (HRA) benefit plan (US)
          type: string
        hsa:
          description: |
            Non-cash tax-advantaged medical Health Savings Account (HSA) (US)
          type: string
        ira:
          description: Traditional Individual Retirement Account (IRA) (US)
          type: string
        isa:
          description: Non-cash Individual Savings Account (ISA) (UK)
          type: string
        keogh:
          description: Keogh self-employed retirement plan (US)
          type: string
        lif:
          description: |
            Life Income Fund (LIF) retirement account (Canada)
          type: string
        life insurance:
          description: Life insurance account
          type: string
        lira:
          description: Locked-in Retirement Account (LIRA) (Canada)
          type: string
        lrif:
          description: Locked-in Retirement Income Fund (LRIF) (Canada)
          type: string
        lrsp:
          description: Locked-in Retirement Savings Plan (Canada)
          type: string
        mutual fund:
          description: Mutual fund account
          type: string
        non-custodial wallet:
          description: A cryptocurrency wallet where the user controls the private key
          type: string
        non-taxable brokerage account:
          description: A non-taxable brokerage account that is not covered by a more specific subtype
          type: string
        other:
          description: An account whose type could not be determined
          type: string
        other annuity:
          description: An annuity account not covered by other subtypes
          type: string
        other insurance:
          description: An insurance account not covered by other subtypes
          type: string
        pension:
          description: Standard pension account
          type: string
        prif:
          description: Prescribed Registered Retirement Income Fund (Canada)
          type: string
        profit sharing plan:
          description: Plan that gives employees share of company profits
          type: string
        qshr:
          description: Qualifying share account
          type: string
        rdsp:
          description: Registered Disability Savings Plan (RSDP) (Canada)
          type: string
        resp:
          description: Registered Education Savings Plan (Canada)
          type: string
        retirement:
          description: Retirement account not covered by other subtypes
          type: string
        rlif:
          description: Restricted Life Income Fund (RLIF) (Canada)
          type: string
        roth:
          description: Roth IRA (US)
          type: string
        roth 401k:
          description: Employer-sponsored Roth 401(k) plan (US)
          type: string
        rrif:
          description: Registered Retirement Income Fund (RRIF) (Canada)
          type: string
        rrsp:
          description: Registered Retirement Savings Plan (Canadian, similar to US 401(k))
          type: string
        sarsep:
          description: Salary Reduction Simplified Employee Pension Plan (SARSEP), discontinued retirement plan (US)
          type: string
        sep ira:
          description: Simplified Employee Pension IRA (SEP IRA), retirement plan for small businesses and self-employed (US)
          type: string
        simple ira:
          description: Savings Incentive Match Plan for Employees IRA, retirement plan for small businesses (US)
          type: string
        sipp:
          description: Self-Invested Personal Pension (SIPP) (UK)
          type: string
        stock plan:
          description: Standard stock plan account
          type: string
        tfsa:
          description: Tax-Free Savings Account (TFSA), a retirement plan similar to a Roth IRA (Canada)
          type: string
        trust:
          description: Account representing funds or assets held by a trustee for the benefit of a beneficiary. Includes both revocable and irrevocable trusts.
          type: string
        ugma:
          description: "'Uniform Gift to Minors Act' (brokerage account for minors, US)"
          type: string
        utma:
          description: |
            'Uniform Transfers to Minors Act' (brokerage account for minors, US)
          type: string
        variable annuity:
          description: Tax-deferred capital accumulation annuity contract
          type: string
      required:
        - "529"
        - 401a
        - 401k
        - 403B
        - 457b
        - brokerage
        - cash isa
        - crypto exchange
        - education savings account
        - fixed annuity
        - gic
        - health reimbursement arrangement
        - hsa
        - ira
        - isa
        - keogh
        - lif
        - life insurance
        - lira
        - lrif
        - lrsp
        - mutual fund
        - non-custodial wallet
        - non-taxable brokerage account
        - other
        - other annuity
        - other insurance
        - pension
        - prif
        - profit sharing plan
        - qshr
        - rdsp
        - resp
        - retirement
        - rlif
        - roth
        - roth 401k
        - rrif
        - rrsp
        - sarsep
        - sep ira
        - simple ira
        - sipp
        - stock plan
        - tfsa
        - trust
        - ugma
        - utma
        - variable annuity
      title: InvestmentAccountSubtype
      type: string
    InvestmentAccountSubtypes:
      description: "An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema). "
      items:
        $ref: "#/components/schemas/InvestmentAccountSubtype"
      title: InvestmentAccountSubtypes
      type: array
    InvestmentFilter:
      additionalProperties: true
      description: A filter to apply to `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier).
      properties:
        account_subtypes:
          $ref: "#/components/schemas/InvestmentAccountSubtypes"
      required:
        - account_subtypes
      title: InvestmentFilter
      type: object
    InvestmentHoldingsGetRequestOptions:
      description: An optional object to filter `/investments/holdings/get` results. If provided, must not be `null`.
      properties:
        account_ids:
          description: An array of `account_id`s to retrieve for the Item. An error will be returned if a provided `account_id` is not associated with the Item.
          items:
            type: string
          type: array
      type: object
    InvestmentTransaction:
      additionalProperties: true
      description: A transaction within an investment account.
      properties:
        account_id:
          description: The `account_id` of the account against which this transaction posted.
          type: string
        amount:
          description: 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.
          format: double
          type: number
        cancel_transaction_id:
          deprecated: true
          description: A legacy field formerly used internally by Plaid to identify certain canceled transactions.
          nullable: true
          type: string
        date:
          description: The [ISO 8601](https://wikipedia.org/wiki/ISO_8601) posting date for the transaction.
          format: date
          type: string
        fees:
          description: The combined value of all fees applied to this transaction
          format: double
          nullable: true
          type: number
        investment_transaction_id:
          description: The ID of the Investment transaction, unique across all Plaid transactions. Like all Plaid identifiers, the `investment_transaction_id` is case sensitive.
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-`null`.
          nullable: true
          type: string
        name:
          description: The institution’s description of the transaction.
          type: string
        price:
          description: The price of the security at which this transaction occurred.
          format: double
          type: number
        quantity:
          description: The number of units of the security involved in this transaction. Positive for buy transactions; negative for sell transactions.
          format: double
          type: number
        security_id:
          description: The `security_id` to which this transaction is related.
          nullable: true
          type: string
        subtype:
          $ref: "#/components/schemas/InvestmentTransactionSubtype"
        type:
          $ref: "#/components/schemas/InvestmentTransactionType"
        unofficial_currency_code:
          description: |-
            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 `iso_currency_code`s.
          nullable: true
          type: string
      required:
        - investment_transaction_id
        - account_id
        - security_id
        - date
        - name
        - quantity
        - amount
        - price
        - fees
        - type
        - subtype
        - iso_currency_code
        - unofficial_currency_code
      title: InvestmentTransaction
      type: object
    InvestmentTransactionSubtype:
      description: For descriptions of possible transaction types and subtypes, see the [Investment transaction types schema](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).
      enum:
        - 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
      type: string
    InvestmentTransactionType:
      description: |-
        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).
      enum:
        - buy
        - sell
        - cancel
        - cash
        - fee
        - transfer
      type: string
    InvestmentsDefaultUpdateWebhook:
      additionalProperties: true
      description: Fired when new transactions have been detected on an investment account.
      properties:
        canceled_investments_transactions:
          description: The number of canceled transactions reported since the last time this webhook was fired.
          type: number
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        new_investments_transactions:
          description: The number of new transactions reported since the last time this webhook was fired.
          type: number
        webhook_code:
          description: "`DEFAULT_UPDATE`"
          type: string
        webhook_type:
          description: "`INVESTMENTS_TRANSACTIONS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - new_investments_transactions
        - canceled_investments_transactions
        - environment
      title: InvestmentsDefaultUpdateWebhook
      type: object
      x-examples:
        example-1:
          canceled_investments_transactions: 0
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          new_investments_transactions: 16
          webhook_code: DEFAULT_UPDATE
          webhook_type: INVESTMENTS_TRANSACTIONS
    InvestmentsHoldingsGetRequest:
      description: InvestmentsHoldingsGetRequest defines the request schema for `/investments/holdings/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/InvestmentHoldingsGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    InvestmentsHoldingsGetResponse:
      additionalProperties: true
      description: InvestmentsHoldingsGetResponse defines the response schema for `/investments/holdings/get`
      properties:
        accounts:
          description: The accounts associated with the Item
          items:
            $ref: "#/components/schemas/AccountBase"
          type: array
        holdings:
          description: "The holdings belonging to investment accounts associated with the Item. Details of the securities in the holdings are provided in the `securities` field. "
          items:
            $ref: "#/components/schemas/Holding"
          type: array
        item:
          $ref: "#/components/schemas/Item"
        request_id:
          $ref: "#/components/schemas/RequestID"
        securities:
          description: "Objects describing the securities held in the accounts associated with the Item. "
          items:
            $ref: "#/components/schemas/Security"
          type: array
      required:
        - accounts
        - holdings
        - securities
        - item
        - request_id
      type: object
    InvestmentsTransactionsGetRequest:
      description: InvestmentsTransactionsGetRequest defines the request schema for `/investments/transactions/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        end_date:
          description: The most recent date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.
          format: date
          type: string
        options:
          $ref: "#/components/schemas/InvestmentsTransactionsGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        start_date:
          description: The earliest date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.
          format: date
          type: string
      required:
        - access_token
        - start_date
        - end_date
      type: object
    InvestmentsTransactionsGetRequestOptions:
      description: An optional object to filter `/investments/transactions/get` results. If provided, must be non-`null`.
      properties:
        account_ids:
          description: An array of `account_ids` to retrieve for the Item.
          items:
            type: string
          type: array
        count:
          default: 100
          description: |
            The number of transactions to fetch.
          maximum: 500
          minimum: 1
          type: integer
        offset:
          default: 0
          description: The number of transactions to skip when fetching transaction history
          minimum: 0
          type: integer
      type: object
    InvestmentsTransactionsGetResponse:
      additionalProperties: true
      description: InvestmentsTransactionsGetResponse defines the response schema for `/investments/transactions/get`
      properties:
        accounts:
          description: The accounts for which transaction history is being fetched.
          items:
            $ref: "#/components/schemas/AccountBase"
          type: array
        investment_transactions:
          description: The transactions being fetched
          items:
            $ref: "#/components/schemas/InvestmentTransaction"
          type: array
        item:
          $ref: "#/components/schemas/Item"
        request_id:
          $ref: "#/components/schemas/RequestID"
        securities:
          description: All securities for which there is a corresponding transaction being fetched.
          items:
            $ref: "#/components/schemas/Security"
          type: array
        total_investment_transactions:
          description: The total number of transactions available within the date range specified. If `total_investment_transactions` is larger than the size of the `transactions` array, more transactions are available and can be fetched via manipulating the `offset` parameter.
          type: integer
      required:
        - item
        - accounts
        - securities
        - investment_transactions
        - total_investment_transactions
        - request_id
      type: object
    Investments_TransactionsOverride:
      description: Specify the list of investments transactions on the account.
      properties:
        currency:
          description: Either a valid `iso_currency_code` or `unofficial_currency_code`
          type: string
        date:
          description: Posting date for the transaction. Must be formatted as an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date.
          format: date
          type: string
        fees:
          description: The combined value of all fees applied to this transaction.
          format: double
          type: number
        name:
          description: The institution's description of the transaction.
          type: string
        price:
          description: The price of the security at which this transaction occurred.
          format: double
          type: number
        quantity:
          description: The number of units of the security involved in this transaction. Must be positive if the type is a buy and negative if the type is a sell.
          format: double
          type: number
        security:
          $ref: "#/components/schemas/SecurityOverride"
        type:
          description: |-
            The type of the investment transaction. Possible values are:
            `buy`: Buying an investment
            `sell`: Selling an investment
            `cash`: Activity that modifies a cash position
            `fee`: A fee on the account
            `transfer`: Activity that modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer
          type: string
      required:
        - date
        - name
        - quantity
        - price
        - type
        - currency
      title: Investments_TransactionsOverride
      type: object
    IssuingCountry:
      description: |-
        A binary match indicator specifying whether the country that issued the provided document matches the country that the user separately provided to Plaid.

        Note: You can configure whether a `no_match` on `issuing_country` fails the `documentary_verification` by editing your Plaid Template.
      enum:
        - match
        - no_match
      type: string
    Item:
      additionalProperties: true
      description: Metadata about the Item.
      properties:
        available_products:
          description: A list of products available for the Item that have not yet been accessed. The contents of this array will be mutually exclusive with `billed_products`.
          items:
            $ref: "#/components/schemas/Products"
          type: array
        billed_products:
          description: |
            A list of products that have been billed for the Item. The contents of this array will be mutually exclusive with `available_products`. Note - `billed_products` is populated in all environments but only requests in Production are billed. Also note that products that are billed on a pay-per-call basis rather than a pay-per-Item basis, such as `balance`, will not appear here.
          items:
            $ref: "#/components/schemas/Products"
          type: array
        consent_expiration_time:
          description: |
            The RFC 3339 timestamp after which the consent provided by the end user will expire. Upon consent expiration, the item will enter the `ITEM_LOGIN_REQUIRED` error state. To circumvent the `ITEM_LOGIN_REQUIRED` error and maintain continuous consent, the end user can reauthenticate via Link’s update mode in advance of the consent expiration time.

            Note - This is only relevant for certain OAuth-based institutions. For all other institutions, this field will be null.
          format: date-time
          nullable: true
          type: string
        consented_products:
          description: |
            Beta: A list of products that have gone through consent collection for the Item. Only present for those enabled in the beta.
          items:
            $ref: "#/components/schemas/Products"
          type: array
        error:
          $ref: "#/components/schemas/PlaidError"
        institution_id:
          description: The Plaid Institution ID associated with the Item. Field is `null` for Items created via Same Day Micro-deposits.
          nullable: true
          type: string
        item_id:
          description: The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive.
          type: string
        products:
          description: |
            A list of authorized products for the Item.
          items:
            $ref: "#/components/schemas/Products"
          type: array
        update_type:
          description: |-
            Indicates whether an Item requires user interaction to be updated, which can be the case for Items with some forms of two-factor authentication.

            `background` - Item can be updated in the background

            `user_present_required` - Item requires user interaction to be updated
          enum:
            - background
            - user_present_required
          type: string
        webhook:
          description: The URL registered to receive webhooks for the Item.
          nullable: true
          type: string
      required:
        - item_id
        - webhook
        - error
        - available_products
        - billed_products
        - consent_expiration_time
        - update_type
      type: object
    ItemAccessTokenInvalidateRequest:
      description: ItemAccessTokenInvalidateRequest defines the request schema for `/item/access_token/invalidate`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    ItemAccessTokenInvalidateResponse:
      additionalProperties: true
      description: ItemAccessTokenInvalidateResponse defines the response schema for `/item/access_token/invalidate`
      properties:
        new_access_token:
          $ref: "#/components/schemas/AccessToken"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - new_access_token
        - request_id
      type: object
    ItemActivityListRequest:
      description: Request to list a historical log of user consent events.
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 50
          maximum: 50
          minimum: 1
          type: integer
        cursor:
          description: Cursor used for pagination.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      type: object
    ItemActivityListResponse:
      additionalProperties: true
      description: Describes a historical log of user consent events.
      properties:
        activities:
          description: A list of activities.
          items:
            $ref: "#/components/schemas/Activity"
          type: array
        cursor:
          description: Cursor used for pagination.
          type: string
        last_data_access_times:
          description: An array of objects containing timestamps for the last time each data type was accessed per application.
          items:
            $ref: "#/components/schemas/LastDataAccessTimes"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - activities
        - last_data_access_times
      type: object
    ItemApplicationListRequest:
      description: Request to list connected applications for a user.
      properties:
        access_token:
          $ref: "#/components/schemas/AccessTokenNullable"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      type: object
    ItemApplicationListResponse:
      additionalProperties: true
      description: Describes the connected application for a particular end user.
      properties:
        applications:
          description: A list of connected applications.
          items:
            $ref: "#/components/schemas/ConnectedApplication"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - applications
      type: object
    ItemApplicationListUserAuth:
      description: User authentication parameters, for clients making a request without an `access_token`. This is only allowed for select clients and will not be supported in the future. Most clients should call /item/import to obtain an access token before making a request.
      nullable: true
      properties:
        fi_username_hash:
          description: Account username hashed by FI.
          nullable: true
          type: string
        user_id:
          description: Account username.
          nullable: true
          type: string
      type: object
    ItemApplicationScopesUpdateRequest:
      description: ItemApplicationScopesUpdateRequest defines the request schema for `/item/application/scopes/update`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        application_id:
          $ref: "#/components/schemas/ApplicationID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        context:
          $ref: "#/components/schemas/ScopesContext"
        scopes:
          $ref: "#/components/schemas/Scopes"
        secret:
          $ref: "#/components/schemas/APISecret"
        state:
          $ref: "#/components/schemas/ScopesState"
      required:
        - application_id
        - access_token
        - scopes
        - context
      type: object
    ItemApplicationScopesUpdateResponse:
      additionalProperties: true
      description: ItemApplicationScopesUpdateResponse defines the response schema for `/item/application/scopes/update`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      type: object
    ItemErrorWebhook:
      additionalProperties: true
      description: Fired when an error is encountered with an Item. The error can be resolved by having the user go through Link’s update mode.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`ERROR`"
          type: string
        webhook_type:
          description: "`ITEM`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - error
        - environment
      title: ItemErrorWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error:
            display_message: null
            error_code: ITEM_LOGIN_REQUIRED
            error_message: the login details of this item have changed (credentials, MFA, or required user action) and a user login is required to update this information. use Link's update mode to restore the item to a good state
            error_type: ITEM_ERROR
            status: 400
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          webhook_code: ERROR
          webhook_type: ITEM
    ItemGetRequest:
      description: ItemGetRequest defines the request schema for `/item/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    ItemGetResponse:
      additionalProperties: true
      description: ItemGetResponse defines the response schema for `/item/get` and `/item/webhook/update`
      properties:
        item:
          $ref: "#/components/schemas/Item"
        request_id:
          $ref: "#/components/schemas/RequestID"
        status:
          $ref: "#/components/schemas/ItemStatusNullable"
      required:
        - item
        - request_id
      type: object
    ItemId:
      description: The `item_id` of the Item associated with this webhook, warning, or error
      title: ItemId
      type: string
    ItemImportRequest:
      description: ItemImportRequest defines the request schema for `/item/import`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/ItemImportRequestOptions"
        products:
          description: Array of product strings
          items:
            $ref: "#/components/schemas/Products"
          minItems: 1
          type: array
          x-override-enum-values-shown:
            - assets
            - auth
            - balance
            - employment
            - identity
            - income_verification
            - investments
            - liabilities
            - payment_initiation
            - standing_orders
            - transactions
            - transfer
        secret:
          $ref: "#/components/schemas/APISecret"
        user_auth:
          $ref: "#/components/schemas/ItemImportRequestUserAuth"
      required:
        - products
        - user_auth
      type: object
    ItemImportRequestOptions:
      description: An optional object to configure `/item/import` request.
      properties:
        webhook:
          description: |
            Specifies a webhook URL to associate with an Item. Plaid fires a webhook if credentials fail.
          type: string
      type: object
    ItemImportRequestUserAuth:
      description: Object of user ID and auth token pair, permitting Plaid to aggregate a user’s accounts
      properties:
        auth_token:
          description: Authorization token Plaid will use to aggregate this user’s accounts
          type: string
        user_id:
          description: Opaque user identifier
          type: string
      required:
        - user_id
        - auth_token
      type: object
    ItemImportResponse:
      additionalProperties: true
      description: ItemImportResponse defines the response schema for `/item/import`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - access_token
        - request_id
      type: object
    ItemLoginRepairedWebhook:
      additionalProperties: true
      description: Fired when an Item login is repaired and the Item no longer needs to go through update mode. This will occur when the user completed the update mode flow for the Item, either in your application or in another Plaid-connected app. If you have messaging that tells the user to complete the update mode flow (such as in-app banners or out-of-band notifications) you should silence this messaging upon receiving the `LOGIN_REPAIRED` webhook.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`LOGIN_REPAIRED`"
          type: string
        webhook_type:
          description: "`ITEM`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - environment
      title: ItemLoginRepairedWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          webhook_code: LOGIN_REPAIRED
          webhook_type: ITEM
    ItemProductReadyWebhook:
      additionalProperties: true
      description: Fired once Plaid calculates income from an Item.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`PRODUCT_READY`"
          type: string
        webhook_type:
          description: "`INCOME`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - environment
      title: ItemProductReadyWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          webhook_code: PRODUCT_READY
          webhook_type: INCOME
    ItemPublicTokenCreateRequest:
      description: ItemPublicTokenCreateRequest defines the request schema for `/item/public_token/create`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    ItemPublicTokenCreateResponse:
      additionalProperties: true
      description: ItemPublicTokenCreateResponse defines the response schema for `/item/public_token/create`
      properties:
        expiration:
          format: date-time
          type: string
        public_token:
          description: A `public_token` for the particular Item corresponding to the specified `access_token`
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - public_token
        - request_id
      type: object
    ItemPublicTokenExchangeRequest:
      description: ItemPublicTokenExchangeRequest defines the request schema for `/item/public_token/exchange`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        public_token:
          description: Your `public_token`, obtained from the Link `onSuccess` callback or `/sandbox/item/public_token/create`.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - public_token
      type: object
    ItemPublicTokenExchangeResponse:
      additionalProperties: true
      description: ItemPublicTokenExchangeResponse defines the response schema for `/item/public_token/exchange`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        item_id:
          description: The `item_id` value of the Item associated with the returned `access_token`
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - access_token
        - item_id
        - request_id
      type: object
    ItemRemoveRequest:
      description: ItemRemoveRequest defines the request schema for `/item/remove`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    ItemRemoveResponse:
      additionalProperties: true
      description: ItemRemoveResponse defines the response schema for `/item/remove`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      type: object
    ItemStatus:
      additionalProperties: true
      description: An object with information about the status of the Item.
      nullable: true
      properties:
        investments:
          $ref: "#/components/schemas/ItemStatusInvestments"
        last_webhook:
          $ref: "#/components/schemas/ItemStatusLastWebhook"
        transactions:
          $ref: "#/components/schemas/ItemStatusTransactions"
      title: ItemStatus
      type: object
      x-examples:
        example-1: {}
    ItemStatusInvestments:
      additionalProperties: true
      description: Information about the last successful and failed investments update for the Item.
      nullable: true
      properties:
        last_failed_update:
          description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last failed investments update for the Item. The status will update each time Plaid fails an attempt to connect with the institution, regardless of whether any new data is available in the update."
          format: date-time
          nullable: true
          type: string
        last_successful_update:
          description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last successful investments update for the Item. The status will update each time Plaid successfully connects with the institution, regardless of whether any new data is available in the update."
          format: date-time
          nullable: true
          type: string
      type: object
    ItemStatusLastWebhook:
      additionalProperties: true
      description: Information about the last webhook fired for the Item.
      nullable: true
      properties:
        code_sent:
          description: The last webhook code sent.
          nullable: true
          type: string
        sent_at:
          description: |
            [ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of when the webhook was fired.
          format: date-time
          nullable: true
          type: string
      type: object
    ItemStatusNullable:
      allOf:
        - $ref: "#/components/schemas/ItemStatus"
        - additionalProperties: true
          type: object
      description: Information about the last successful and failed transactions update for the Item.
      nullable: true
    ItemStatusTransactions:
      additionalProperties: true
      description: Information about the last successful and failed transactions update for the Item.
      nullable: true
      properties:
        last_failed_update:
          description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last failed transactions update for the Item. The status will update each time Plaid fails an attempt to connect with the institution, regardless of whether any new data is available in the update."
          format: date-time
          nullable: true
          type: string
        last_successful_update:
          description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last successful transactions update for the Item. The status will update each time Plaid successfully connects with the institution, regardless of whether any new data is available in the update."
          format: date-time
          nullable: true
          type: string
      type: object
    ItemWebhookUpdateRequest:
      description: ItemWebhookUpdateRequest defines the request schema for `/item/webhook/update`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        webhook:
          description: The new webhook URL to associate with the Item. To remove a webhook from an Item, set to `null`.
          nullable: true
          type: string
      required:
        - access_token
      type: object
    ItemWebhookUpdateResponse:
      additionalProperties: true
      description: ItemWebhookUpdateResponse defines the response schema for `/item/webhook/update`
      properties:
        item:
          $ref: "#/components/schemas/Item"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - item
        - request_id
      type: object
    JWKPublicKey:
      additionalProperties: true
      description: A JSON Web Key (JWK) that can be used in conjunction with [JWT libraries](https://jwt.io/#libraries-io) to verify Plaid webhooks
      properties:
        alg:
          description: The alg member identifies the cryptographic algorithm family used with the key.
          type: string
        created_at:
          description: The timestamp when the key was created, in Unix time.
          type: integer
        crv:
          description: The crv member identifies the cryptographic curve used with the key.
          type: string
        expired_at:
          description: The timestamp when the key expired, in Unix time.
          nullable: true
          type: integer
        kid:
          description: The kid (Key ID) member can be used to match a specific key. This can be used, for instance, to choose among a set of keys within the JWK during key rollover.
          type: string
        kty:
          description: The kty (key type) parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC.
          type: string
        use:
          description: The use (public key use) parameter identifies the intended use of the public key.
          type: string
        x:
          description: The x member contains the x coordinate for the elliptic curve point, provided as a base64url-encoded string of the coordinate's big endian representation.
          type: string
        y:
          description: The y member contains the y coordinate for the elliptic curve point, provided as a base64url-encoded string of the coordinate's big endian representation.
          type: string
      required:
        - alg
        - kid
        - kty
        - crv
        - x
        - y
        - use
        - created_at
        - expired_at
      type: object
    JWTHeader:
      additionalProperties: true
      description: A JWT Header, used for webhook validation
      properties:
        id:
          type: string
      required:
        - id
      title: JWTHeader
      type: object
    KYCCheckAddressSummary:
      additionalProperties: true
      description: Result summary object specifying how the `address` field matched.
      properties:
        po_box:
          $ref: "#/components/schemas/POBoxStatus"
        summary:
          $ref: "#/components/schemas/MatchSummaryCode"
        type:
          $ref: "#/components/schemas/AddressPurposeLabel"
      required:
        - summary
        - po_box
        - type
      type: object
    KYCCheckDateOfBirthSummary:
      additionalProperties: true
      description: Result summary object specifying how the `date_of_birth` field matched.
      properties:
        summary:
          $ref: "#/components/schemas/MatchSummaryCode"
      required:
        - summary
      type: object
    KYCCheckDetails:
      additionalProperties: true
      description: Additional information for the `kyc_check` step. This field will be `null` unless `steps.kyc_check` has reached a terminal state of either `success` or `failed`.
      nullable: true
      properties:
        address:
          $ref: "#/components/schemas/KYCCheckAddressSummary"
        date_of_birth:
          $ref: "#/components/schemas/KYCCheckDateOfBirthSummary"
        id_number:
          $ref: "#/components/schemas/KYCCheckIDNumberSummary"
        name:
          $ref: "#/components/schemas/KYCCheckNameSummary"
        phone_number:
          $ref: "#/components/schemas/KYCCheckPhoneSummary"
        status:
          description: The outcome status for the associated Identity Verification attempt's `kyc_check` step. This field will always have the same value as `steps.kyc_check`.
          example: success
          type: string
      required:
        - status
        - phone_number
        - address
        - name
        - date_of_birth
        - id_number
      type: object
    KYCCheckIDNumberSummary:
      additionalProperties: true
      description: Result summary object specifying how the `id_number` field matched.
      properties:
        summary:
          $ref: "#/components/schemas/MatchSummaryCode"
      required:
        - summary
      type: object
    KYCCheckNameSummary:
      additionalProperties: true
      description: Result summary object specifying how the `name` field matched.
      properties:
        summary:
          $ref: "#/components/schemas/MatchSummaryCode"
      required:
        - summary
      type: object
    KYCCheckPhoneSummary:
      additionalProperties: true
      description: Result summary object specifying how the `phone` field matched.
      properties:
        summary:
          $ref: "#/components/schemas/MatchSummaryCode"
      required:
        - summary
      type: object
    LastDataAccessTimes:
      additionalProperties: true
      description: Describes the last time each datatype was accessed by an application.
      properties:
        account_balance_info:
          description: The last time account_balance_info was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
          example: 2023-02-08T10:00:00Z
          format: date-time
          nullable: true
          type: string
        account_routing_number:
          description: The last time account_routing_number was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
          example: 2023-02-08T10:00:00Z
          format: date-time
          nullable: true
          type: string
        application_id:
          description: ID of the application accessing data.
          type: string
        contact_details:
          description: The last time contact_details was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
          example: 2023-02-08T10:00:00Z
          format: date-time
          nullable: true
          type: string
        credit_and_loans:
          description: The last time credit_and_loans was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
          example: 2023-02-08T10:00:00Z
          format: date-time
          nullable: true
          type: string
        investments:
          description: The last time investments was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
          example: 2023-02-08T10:00:00Z
          format: date-time
          nullable: true
          type: string
        payroll_info:
          description: The last time payroll_info was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
          example: 2023-02-08T10:00:00Z
          format: date-time
          nullable: true
          type: string
        transaction_risk_info:
          description: The last time transaction_risk_info was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
          example: 2023-02-08T10:00:00Z
          format: date-time
          nullable: true
          type: string
        transactions:
          description: The last time transactions was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.
          example: 2023-02-08T10:00:00Z
          format: date-time
          nullable: true
          type: string
      required:
        - application_id
        - account_balance_info
        - account_routing_number
        - contact_details
        - transactions
        - credit_and_loans
        - investments
        - payroll_info
        - transaction_risk_info
      type: object
    LiabilitiesAccountIdsWithUpdatedLiabilities:
      additionalProperties:
        items:
          type: string
        type: array
      description: |
        An object with keys of `account_id`'s that are mapped to their respective liabilities fields that changed.

        Example: `{ "XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58": ["past_amount_due"] }`
      type: object
    LiabilitiesDefaultUpdateWebhook:
      description: The webhook of type `LIABILITIES` and code `DEFAULT_UPDATE` will be fired when new or updated liabilities have been detected on a liabilities item.
      properties:
        account_ids_with_new_liabilities:
          description: An array of `account_id`'s for accounts that contain new liabilities.'
          items:
            type: string
          type: array
        account_ids_with_updated_liabilities:
          $ref: "#/components/schemas/LiabilitiesAccountIdsWithUpdatedLiabilities"
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`DEFAULT_UPDATE`"
          type: string
        webhook_type:
          description: "`LIABILITIES`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - error
        - account_ids_with_new_liabilities
        - account_ids_with_updated_liabilities
        - environment
      title: LiabilitiesDefaultUpdateWebhook
      type: object
      x-examples:
        example-1:
          account_ids_with_new_liabilities:
            - XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58
            - BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
          account_ids_with_updated_liabilities:
            XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58:
              - past_amount_due
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          webhook_code: DEFAULT_UPDATE
          webhook_type: LIABILITIES
    LiabilitiesGetRequest:
      description: LiabilitiesGetRequest defines the request schema for `/liabilities/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/LiabilitiesGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    LiabilitiesGetRequestOptions:
      description: An optional object to filter `/liabilities/get` results. If provided, `options` cannot be null.
      properties:
        account_ids:
          description: |-
            A list of accounts to retrieve for the Item.

            An error will be returned if a provided `account_id` is not associated with the Item
          items:
            type: string
          type: array
      type: object
    LiabilitiesGetResponse:
      additionalProperties: true
      description: LiabilitiesGetResponse defines the response schema for `/liabilities/get`
      properties:
        accounts:
          description: An array of accounts associated with the Item
          items:
            $ref: "#/components/schemas/AccountBase"
          type: array
        item:
          $ref: "#/components/schemas/Item"
        liabilities:
          $ref: "#/components/schemas/LiabilitiesObject"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - accounts
        - item
        - liabilities
        - request_id
      type: object
    LiabilitiesObject:
      additionalProperties: true
      description: An object containing liability accounts
      properties:
        credit:
          description: The credit accounts returned.
          items:
            $ref: "#/components/schemas/CreditCardLiability"
          nullable: true
          type: array
        mortgage:
          description: The mortgage accounts returned.
          items:
            $ref: "#/components/schemas/MortgageLiability"
          nullable: true
          type: array
        student:
          description: The student loan accounts returned.
          items:
            $ref: "#/components/schemas/StudentLoan"
          nullable: true
          type: array
      required:
        - credit
        - mortgage
        - student
      title: LiabilitiesObject
      type: object
    LiabilityOverride:
      additionalProperties: true
      description: Used to configure Sandbox test data for the Liabilities product
      properties:
        balance_transfer_apr:
          description: The balance transfer APR percentage value. Can only be set if `type` is `credit`.
          format: double
          type: number
        cash_apr:
          description: The cash APR percentage value. Can only be set if `type` is `credit`.
          format: double
          type: number
        expected_payoff_date:
          description: Override the `expected_payoff_date` field. Can only be set if `type` is `student`.
          format: date
          type: string
        guarantor:
          description: Override the `guarantor` field. Can only be set if `type` is `student`.
          type: string
        interest_capitalization_grace_period_months:
          description: If set, interest capitalization begins at the given number of months after loan origination. By default interest is never capitalized. Can only be set if `type` is `student`.
          type: number
        is_federal:
          description: Override the `is_federal` field. Can only be set if `type` is `student`.
          type: boolean
        is_overdue:
          description: Override the `is_overdue` field
          type: boolean
        last_payment_amount:
          description: Override the `last_payment_amount` field. Can only be set if `type` is `credit`.
          format: double
          type: number
        loan_name:
          description: Override the `loan_name` field. Can only be set if `type` is `student`.
          type: string
        loan_status:
          $ref: "#/components/schemas/StudentLoanStatus"
        minimum_payment_amount:
          description: Override the `minimum_payment_amount` field. Can only be set if `type` is `credit` or `student`.
          format: double
          type: number
        nominal_apr:
          description: The interest rate on the loan as a percentage. Can only be set if `type` is `student`.
          format: double
          type: number
        origination_date:
          description: The date on which the loan was initially lent, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Can only be set if `type` is `student`.
          format: date
          type: string
        payment_reference_number:
          description: Override the `payment_reference_number` field. Can only be set if `type` is `student`.
          type: string
        principal:
          description: The original loan principal. Can only be set if `type` is `student`.
          format: double
          type: number
        pslf_status:
          $ref: "#/components/schemas/PSLFStatus"
        purchase_apr:
          description: The purchase APR percentage value. For simplicity, this is the only interest rate used to calculate interest charges. Can only be set if `type` is `credit`.
          format: double
          type: number
        repayment_model:
          $ref: "#/components/schemas/StudentLoanRepaymentModel"
        repayment_plan_description:
          description: Override the `repayment_plan.description` field. Can only be set if `type` is `student`.
          type: string
        repayment_plan_type:
          description: 'Override the `repayment_plan.type` field. Can only be set if `type` is `student`. Possible values are: `"extended graduated"`, `"extended standard"`, `"graduated"`, `"income-contingent repayment"`, `"income-based repayment"`, `"interest only"`, `"other"`, `"pay as you earn"`, `"revised pay as you earn"`, or `"standard"`.'
          type: string
        sequence_number:
          description: Override the `sequence_number` field. Can only be set if `type` is `student`.
          type: string
        servicer_address:
          $ref: "#/components/schemas/Address"
        special_apr:
          description: The special APR percentage value. Can only be set if `type` is `credit`.
          format: double
          type: number
        type:
          description: The type of the liability object, either `credit` or `student`. Mortgages are not currently supported in the custom Sandbox.
          type: string
      required:
        - type
        - purchase_apr
        - cash_apr
        - balance_transfer_apr
        - special_apr
        - last_payment_amount
        - minimum_payment_amount
        - is_overdue
        - origination_date
        - principal
        - nominal_apr
        - interest_capitalization_grace_period_months
        - repayment_model
        - expected_payoff_date
        - guarantor
        - is_federal
        - loan_name
        - loan_status
        - payment_reference_number
        - pslf_status
        - repayment_plan_description
        - repayment_plan_type
        - sequence_number
        - servicer_address
      title: LiabilityOverride
      type: object
    LinkCallbackMetadata:
      additionalProperties: true
      description: Information related to the callback from the hosted Link session.
      properties:
        accounts:
          description: A list of accounts attached to the connected Item. If Account Select is enabled via the developer dashboard, accounts will only include selected accounts.
          items:
            $ref: "#/components/schemas/LinkDeliveryAccount"
          type: array
        callback_type:
          $ref: "#/components/schemas/LinkDeliveryWebhookCallbackType"
        event_name:
          $ref: "#/components/schemas/LinkEventName"
        institution:
          $ref: "#/components/schemas/LinkDeliveryInstitution"
        link_session_id:
          description: A unique identifier associated with a user's actions and events through the Link flow. Include this identifier when opening a support ticket for faster turnaround.
          type: string
        request_id:
          description: The request ID for the last request made by Link. This can be shared with Plaid Support to expedite investigation.
          type: string
        status:
          description: Indicates where in the flow the Link user exited
          type: string
      title: LinkCallbackMetadata
      type: object
      x-hidden-from-docs: true
    LinkDeliveryAccount:
      additionalProperties: true
      description: Information related to account attached to the connected Item
      properties:
        class_type:
          description: If micro-deposit verification is being used, indicates whether the account being verified is a `business` or `personal` account.
          type: string
        id:
          description: The Plaid `account_id`
          type: string
        mask:
          description: 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. It may also not match the mask that the bank displays to the user.
          type: string
        name:
          description: The official account name
          type: string
        subtype:
          description: The account subtype. See the [Account schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of possible values
          type: string
        type:
          description: The account type. See the [Account schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of possible values
          type: string
        verification_status:
          $ref: "#/components/schemas/LinkDeliveryVerificationStatus"
      title: LinkDeliveryAccount
      type: object
      x-hidden-from-docs: true
    LinkDeliveryCallbackWebhook:
      additionalProperties: true
      description: Webhook containing metadata proxied over from Link callback e.g `onEvent`, `onExit`, `onSuccess`.
      properties:
        error:
          $ref: "#/components/schemas/PlaidError"
        link_callback_metadata:
          $ref: "#/components/schemas/LinkCallbackMetadata"
        link_delivery_session_id:
          description: The ID of the link delivery session.
          type: string
        timestamp:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
          type: string
        webhook_code:
          description: "`LINK_CALLBACK`"
          type: string
        webhook_type:
          description: "`LINK_DELIVERY`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - link_delivery_session_id
        - timestamp
        - link_callback_metadata
      title: LinkDeliveryCallbackWebhook
      type: object
      x-examples: {}
      x-hidden-from-docs: true
    LinkDeliveryCommunicationMethod:
      description: The communication method containing both the type and address to send the URL.
      properties:
        address:
          description: The phone number / email address that link delivery sessions are delivered to. Phone numbers must be in E.164 format.
          type: string
        method:
          $ref: "#/components/schemas/LinkDeliveryDeliveryMethod"
      type: object
    LinkDeliveryCreateRequest:
      description: LinkDeliveryCreateRequest defines the request schema for `/link_delivery/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        link_token:
          description: A `link_token` from a previous invocation of `/link/token/create` with Link Delivery enabled.
          type: string
        options:
          $ref: "#/components/schemas/LinkDeliveryOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - link_token
      type: object
    LinkDeliveryCreateResponse:
      additionalProperties: true
      description: LinkDeliveryCreateResponse defines the response schema for `/link_delivery/create`
      properties:
        link_delivery_session_id:
          description: The ID for the Link Delivery session. Same as the `link_token` string excluding the "link-{env}-" prefix.
          type: string
        link_delivery_url:
          description: The URL to the Link Delivery session, which will be delivered by the specified delivery method.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - link_delivery_url
        - link_delivery_session_id
        - request_id
      type: object
    LinkDeliveryDeliveryMethod:
      description: |-
        The delivery method to be used to deliver the Link Delivery URL.

        `SMS`: The URL will be delivered through SMS

        `EMAIL`: The URL will be delivered through email
      enum:
        - SMS
        - EMAIL
      type: string
    LinkDeliveryGetRequest:
      description: LinkDeliveryGetRequest defines the request schema for `/link_delivery/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        link_delivery_session_id:
          description: The ID for the Link Delivery session from a previous invocation of `/link_delivery/create`.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - link_delivery_session_id
      type: object
    LinkDeliveryGetResponse:
      additionalProperties: true
      description: LinkDeliveryGetRequest defines the response schema for `/link_delivery/get`
      properties:
        access_tokens:
          description: An array of access tokens associated with the Link Delivery session.
          items:
            $ref: "#/components/schemas/AccessToken"
          nullable: true
          type: array
        completed_at:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the time the given Link Delivery Session was completed at.
          format: date-time
          nullable: true
          type: string
        created_at:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the time the given Link Delivery Session was created at.
          format: date-time
          type: string
        item_ids:
          description: An array of `item_id`s associated with the Link Delivery session.
          items:
            $ref: "#/components/schemas/ItemId"
          nullable: true
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
        status:
          $ref: "#/components/schemas/LinkDeliverySessionStatus"
      required:
        - status
        - created_at
        - request_id
      type: object
    LinkDeliveryInstitution:
      additionalProperties: true
      description: Information related to the financial institution.
      properties:
        institution_id:
          description: The Plaid institution identifier
          type: string
        name:
          description: The full institution name, such as 'Wells Fargo'
          type: string
      title: LinkDeliveryInstitution
      type: object
      x-hidden-from-docs: true
    LinkDeliveryMetadata:
      additionalProperties: true
      description: Information related to the related to the delivery of the link session to users
      properties:
        communication_method:
          $ref: "#/components/schemas/LinkDeliveryWebhookCommunicationMethod"
        delivery_status:
          $ref: "#/components/schemas/LinkDeliveryWebhookDeliveryStatus"
      title: LinkDeliveryMetadata
      type: object
      x-hidden-from-docs: true
    LinkDeliveryOptions:
      description: Optional metadata related to the link delivery session
      properties:
        recipient:
          $ref: "#/components/schemas/LinkDeliveryRecipient"
      type: object
    LinkDeliveryRecipient:
      description: Metadata related to the recipient. If the information required to populate this field is not available, leave it blank.
      properties:
        communication_methods:
          description: The list of communication methods to send the Link Delivery URL to. If delivery is not required, leave this field blank.
          items:
            $ref: "#/components/schemas/LinkDeliveryCommunicationMethod"
          type: array
        first_name:
          description: First name of the recipient. Will be used in the body of the email / text (if configured). If this information is not available, leave this field blank.
          type: string
      type: object
    LinkDeliverySessionStatus:
      description: |-
        The status of the given Link Delivery Session.

        `CREATED`: The session is created but not yet accessed by the user

        `OPENED`: The session is opened by the user but not yet completed

        `COMPLETED`: The session has been completed by the user

        `EXPIRED`: The session has expired
      enum:
        - CREATED
        - OPENED
        - COMPLETED
        - EXPIRED
      type: string
    LinkDeliveryVerificationStatus:
      description: Indicates an Item's micro-deposit-based verification status.
      enum:
        - automatically_verified
        - pending_automatic_verification
        - pending_manual_verification
        - manually_verified
        - verification_expired
        - verification_failed
      title: LinkDeliveryVerificationStatus
      type: string
    LinkDeliveryWebhookCallbackType:
      description: The type of Link callback event
      enum:
        - ON_SUCCESS
        - ON_EVENT
        - ON_EXIT
      title: LinkDeliveryWebhookCallbackType
      type: string
    LinkDeliveryWebhookCommunicationMethod:
      description: The communication method used to deliver the hosted link session
      enum:
        - sms
        - email
      title: LinkDeliveryWebhookCommunicationMethod
      type: string
    LinkDeliveryWebhookDeliveryStatus:
      description: The status of the delivery of the hosted link to the user
      enum:
        - succeeded
        - failed
      title: LinkDeliveryWebhookDeliveryStatus
      type: string
    LinkEventName:
      description: A string representing the event that has just occurred in the Link flow.
      enum:
        - BANK_INCOME_INSIGHTS_COMPLETED
        - CLOSE_OAUTH
        - ERROR
        - EXIT
        - FAIL_OAUTH
        - HANDOFF
        - OPEN
        - OPEN_MY_PLAID
        - OPEN_OAUTH
        - SEARCH_INSTITUTION
        - SELECT_AUTH_TYPE
        - SELECT_BRAND
        - SELECT_DEGRADED_INSTITUTION
        - SELECT_DOWN_INSTITUTION
        - SELECT_INSTITUTION
        - SUBMIT_ACCOUNT_NUMBER
        - SUBMIT_CREDENTIALS
        - SUBMIT_DOCUMENTS
        - SUBMIT_DOCUMENTS_ERROR
        - SUBMIT_DOCUMENTS_SUCCESS
        - SUBMIT_MFA
        - SUBMIT_ROUTING_NUMBER
        - TRANSITION_VIEW
        - VIEW_DATA_TYPES
      title: LinkEventName
      type: string
    LinkOAuthCorrelationIdExchangeRequest:
      description: LinkOAuthCorrelationIdExchangeRequest defines the request schema for `/link/oauth/correlation_id/exchange`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        link_correlation_id:
          description: A `link_correlation_id` from a received OAuth redirect URI callback
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - link_correlation_id
      type: object
    LinkOAuthCorrelationIdExchangeResponse:
      additionalProperties: true
      description: LinkOAuthCorrelationIdExchangeResponse defines the response schema for `/link/oauth/correlation_id/exchange`
      properties:
        link_token:
          description: The `link_token` associated to the given `link_correlation_id`, which can be used to re-initialize Link.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - link_token
        - request_id
      type: object
    LinkTokenAccountFilters:
      additionalProperties: true
      description: |
        By default, Link will provide limited account filtering: it will only display Institutions that are compatible with all products supplied in the `products` parameter of `/link/token/create`, and, if `auth` is specified in the `products` array, will also filter out accounts other than `checking` and `savings` accounts on the Account Select pane. You can further limit the accounts shown in Link by using `account_filters` to specify the account subtypes to be shown in Link. Only the specified subtypes will be shown. This filtering applies to both the Account Select view (if enabled) and the Institution Select view. Institutions that do not support the selected subtypes will be omitted from Link. To indicate that all subtypes should be shown, use the value `"all"`. If the `account_filters` filter is used, any account type for which a filter is not specified will be entirely omitted from Link. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).

        For institutions using OAuth, the filter will not affect the list of accounts shown by the bank in the OAuth window.
      properties:
        credit:
          $ref: "#/components/schemas/CreditFilter"
        depository:
          $ref: "#/components/schemas/DepositoryFilter"
        investment:
          $ref: "#/components/schemas/InvestmentFilter"
        loan:
          $ref: "#/components/schemas/LoanFilter"
      type: object
    LinkTokenCreateCreditFilter:
      additionalProperties: true
      description: A filter to apply to `credit`-type accounts
      properties:
        account_subtypes:
          $ref: "#/components/schemas/CreditAccountSubtypes"
      type: object
    LinkTokenCreateDepositoryFilter:
      additionalProperties: true
      description: A filter to apply to `depository`-type accounts
      properties:
        account_subtypes:
          $ref: "#/components/schemas/DepositoryAccountSubtypes"
      type: object
    LinkTokenCreateInstitutionData:
      description: A map containing data used to highlight institutions in Link.
      properties:
        routing_number:
          description: The routing number of the bank to highlight.
          type: string
      type: object
    LinkTokenCreateInvestmentFilter:
      additionalProperties: true
      description: A filter to apply to `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier).
      properties:
        account_subtypes:
          $ref: "#/components/schemas/InvestmentAccountSubtypes"
      type: object
    LinkTokenCreateLoanFilter:
      additionalProperties: true
      description: A filter to apply to `loan`-type accounts
      properties:
        account_subtypes:
          $ref: "#/components/schemas/LoanAccountSubtypes"
      type: object
    LinkTokenCreateRequest:
      description: LinkTokenCreateRequest defines the request schema for `/link/token/create`
      properties:
        access_token:
          description: The `access_token` associated with the Item to update or reference, used when updating, modifying, or accessing an existing `access_token`. Used when launching Link in update mode, when completing the Same-day (manual) Micro-deposit flow, or (optionally) when initializing Link for a returning user as part of the Transfer UI flow.
          type: string
        account_filters:
          $ref: "#/components/schemas/LinkTokenAccountFilters"
        additional_consented_products:
          description: |-
            (Beta) This field has no effect unless you are participating in the Product Scope Transparency beta program.
            List of additional Plaid product(s) you wish to collect consent for. These products will not be billed until you start using them by calling the relevant endpoints.

            `balance` is *not* a valid value, the Balance product does not require explicit initialization and will automatically have consent collected.

            Institutions that do not support these products will still be shown in Link
          items:
            $ref: "#/components/schemas/Products"
          type: array
          x-override-enum-values-shown:
            - auth
            - identity
            - investments
            - liabilities
            - transactions
            - signal
        android_package_name:
          description: The name of your app's Android package. Required if using the `link_token` to initialize Link on Android. Any package name specified here must also be added to the Allowed Android package names setting on the [developer dashboard](https://dashboard.plaid.com/team/api). When creating a `link_token` for initializing Link on other platforms, `android_package_name` must be left blank and `redirect_uri` should be used instead.
          type: string
        auth:
          $ref: "#/components/schemas/LinkTokenCreateRequestAuth"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_name:
          description: The name of your application, as it should be displayed in Link. Maximum length of 30 characters. If a value longer than 30 characters is provided, Link will display "This Application" instead.
          type: string
        country_codes:
          description: |-
            Specify an array of Plaid-supported country codes using the ISO-3166-1 alpha-2 country code standard. Institutions from all listed countries will be shown. For a complete mapping of supported products by country, see https://plaid.com/global/.

            If Link is launched with multiple country codes, only products that you are enabled for in all countries will be used by Link. Note that while all countries are enabled by default in Sandbox and Development, in Production only US and Canada are enabled by default. Access to European institutions requires additional compliance steps. To request access to European institutions in the Production environment, [file a product access Support ticket](https://dashboard.plaid.com/support/new/product-and-development/product-troubleshooting/request-product-access) via the Plaid dashboard. If you initialize with a European country code, your users will see the European consent panel during the Link flow.

            If using a Link customization, make sure the country codes in the customization match those specified in `country_codes`, or the customization may not be applied.

            If using the Auth features Instant Match, Same-day Micro-deposits, or Automated Micro-deposits, `country_codes` must be set to `['US']`.
          items:
            $ref: "#/components/schemas/CountryCode"
          minItems: 1
          type: array
        deposit_switch:
          $ref: "#/components/schemas/LinkTokenCreateRequestDepositSwitch"
        employment:
          $ref: "#/components/schemas/LinkTokenCreateRequestEmployment"
        eu_config:
          $ref: "#/components/schemas/LinkTokenEUConfig"
        identity_verification:
          $ref: "#/components/schemas/LinkTokenCreateRequestIdentityVerification"
        income_verification:
          $ref: "#/components/schemas/LinkTokenCreateRequestIncomeVerification"
        institution_data:
          $ref: "#/components/schemas/LinkTokenCreateInstitutionData"
        institution_id:
          description: Used for certain Europe-only configurations, as well as certain legacy use cases in other regions.
          type: string
        investments:
          $ref: "#/components/schemas/LinkTokenInvestments"
        language:
          description: |-
            The language that Link should be displayed in. When initializing with Identity Verification, this field is not used; for more details, see [Identity Verification supported languages](https://www.plaid.com/docs/identity-verification/#supported-languages).

            Supported languages are:
            - Danish (`'da'`)
            - Dutch (`'nl'`)
            - English (`'en'`)
            - Estonian (`'et'`)
            - French (`'fr'`)
            - German (`'de'`)
            - Italian (`'it'`)
            - Latvian (`'lv'`)
            - Lithuanian (`'lt'`)
            - Norwegian (`'no'`)
            - Polish (`'pl'`)
            - Portuguese (`'pt'`)
            - Romanian (`'ro'`)
            - Spanish (`'es'`)
            - Swedish (`'se'`)

            When using a Link customization, the language configured here must match the setting in the customization, or the customization will not be applied.
          type: string
        link_customization_name:
          description: The name of the Link customization from the Plaid Dashboard to be applied to Link. If not specified, the `default` customization will be used. When using a Link customization, the language in the customization must match the language selected via the `language` parameter, and the countries in the customization should match the country codes selected via `country_codes`.
          type: string
        payment_initiation:
          $ref: "#/components/schemas/LinkTokenCreateRequestPaymentInitiation"
        products:
          description: |-
            List of Plaid product(s) you wish to use. If launching Link in update mode, should be omitted (unless you are using update mode to add Income or Assets to an Item); required otherwise.

            `balance` is *not* a valid value, the Balance product does not require explicit initialization and will automatically be initialized when any other product is initialized.

            The products specified here will determine which institutions will be available to your users in Link. Only institutions that support *all* requested products can be selected; a if a user attempts to select an institution that does not support a listed product, a "Connectivity not supported" error message will appear in Link. To maximize the number of institutions available, initialize Link with the minimal product set required for your use case. Additional products can be added after Link initialization by calling the relevant endpoints. For details and exceptions, see [Choosing when to initialize products](https://plaid.com/docs/link/initializing-products/).

            Note that, unless you have opted to disable Instant Match support, institutions that support Instant Match will also be shown in Link if `auth` is specified as a product, even though these institutions do not contain `auth` in their product array.

            In Production, you will be billed for each product that you specify when initializing Link. Note that a product cannot be removed from an Item once the Item has been initialized with that product. To stop billing on an Item for subscription-based products, such as Liabilities, Investments, and Transactions, remove the Item via `/item/remove`.
          items:
            $ref: "#/components/schemas/Products"
          type: array
          x-override-enum-values-shown:
            - assets
            - auth
            - employment
            - identity
            - income_verification
            - identity_verification
            - investments
            - liabilities
            - payment_initiation
            - standing_orders
            - transactions
            - transfer
            - signal
        redirect_uri:
          description: A URI indicating the destination where a user should be forwarded after completing the Link flow; used to support OAuth authentication flows when launching Link in the browser or via a webview. The `redirect_uri` should not contain any query parameters. When used in Production or Development, must be an https URI. To specify any subdomain, use `*` as a wildcard character, e.g. `https://*.example.com/oauth.html`. Note that any redirect URI must also be added to the Allowed redirect URIs list in the [developer dashboard](https://dashboard.plaid.com/team/api). If initializing on Android, `android_package_name` must be specified instead and `redirect_uri` should be left blank.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        transfer:
          $ref: "#/components/schemas/LinkTokenCreateRequestTransfer"
        update:
          $ref: "#/components/schemas/LinkTokenCreateRequestUpdate"
        user:
          $ref: "#/components/schemas/LinkTokenCreateRequestUser"
        user_token:
          description: A user token generated using `/user/create`. Any Item created during the Link session will be associated with the user.
          type: string
        webhook:
          description: The destination URL to which any webhooks should be sent. Note that webhooks for Payment Initiation (e-wallet transactions only), Transfer, Bank Transfer (including Auth micro-deposit notification webhooks) and Identity Verification are configured via the Dashboard instead.
          type: string
      required:
        - client_name
        - language
        - country_codes
        - user
      type: object
    LinkTokenCreateRequestAccountSubtypes:
      description: |
        By default, Link will only display account types that are compatible with all products supplied in the `products` parameter of `/link/token/create`. You can further limit the accounts shown in Link by using `account_filters` to specify the account subtypes to be shown in Link. Only the specified subtypes will be shown. This filtering applies to both the Account Select view (if enabled) and the Institution Select view. Institutions that do not support the selected subtypes will be omitted from Link. To indicate that all subtypes should be shown, use the value `"all"`. If the `account_filters` filter is used, any account type for which a filter is not specified will be entirely omitted from Link.

        For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).

        For institutions using OAuth, the filter will not affect the list of institutions or accounts shown by the bank in the OAuth window.
      properties:
        credit:
          $ref: "#/components/schemas/LinkTokenCreateCreditFilter"
        depository:
          $ref: "#/components/schemas/LinkTokenCreateDepositoryFilter"
        investment:
          $ref: "#/components/schemas/LinkTokenCreateInvestmentFilter"
        loan:
          $ref: "#/components/schemas/LinkTokenCreateLoanFilter"
      type: object
    LinkTokenCreateRequestAuth:
      description: Specifies options for initializing Link for use with the Auth product. This field can be used to enable or disable extended Auth flows for the resulting Link session. Omitting any field will result in a default that can be configured by your account manager.
      properties:
        auth_type_select_enabled:
          default: false
          description: Specifies whether Auth Type Select is enabled for the Link session, allowing the end user to choose between linking instantly or manually prior to selecting their financial institution. Note that this can only be true if `same_day_microdeposits_enabled` is set to true.
          type: boolean
        automated_microdeposits_enabled:
          description: Specifies whether the Link session is enabled for the Automated Micro-deposits flow.
          type: boolean
        flow_type:
          deprecated: true
          description: This field has been deprecated in favor of `auth_type_select_enabled`.
          enum:
            - FLEXIBLE_AUTH
          type: string
        instant_match_enabled:
          description: Specifies whether the Link session is enabled for the Instant Match flow. As of November 2022, Instant Match will be enabled by default. Instant Match can be disabled by setting this field to `false`.
          type: boolean
        same_day_microdeposits_enabled:
          description: Specifies whether the Link session is enabled for the Same Day Micro-deposits flow.
          type: boolean
      type: object
    LinkTokenCreateRequestDepositSwitch:
      description: Specifies options for initializing Link for use with the Deposit Switch (beta) product. This field is required if `deposit_switch` is included in the `products` array.
      properties:
        deposit_switch_id:
          description: The `deposit_switch_id` provided by the `/deposit_switch/create` endpoint.
          type: string
      required:
        - deposit_switch_id
      type: object
      x-hidden-from-docs: true
    LinkTokenCreateRequestEmployment:
      description: Specifies options for initializing Link for use with the Employment product. This field is required if `employment` is included in the `products` array.
      properties:
        bank_employment:
          $ref: "#/components/schemas/LinkTokenCreateRequestEmploymentBankIncome"
        employment_source_types:
          description: The types of source employment data that users will be permitted to share. Options include `bank` and `payroll`. Currently you can only specify one of these options.
          items:
            $ref: "#/components/schemas/EmploymentSourceType"
          type: array
      title: LinkTokenCreateRequestEmployment
      type: object
      x-hidden-from-docs: true
    LinkTokenCreateRequestEmploymentBankIncome:
      description: Specifies options for initializing Link for use with Bank Employment. This field is required if `employment` is included in the `products` array and `bank` is specified in `employment_source_types`.
      properties:
        days_requested:
          description: The number of days of data to request for the Bank Employment product.
          type: integer
      required:
        - days_requested
      title: LinkTokenCreateRequestEmploymentBankIncome
      type: object
    LinkTokenCreateRequestIdentityVerification:
      description: Specifies option for initializing Link for use with the Identity Verification product.
      properties:
        consent:
          allOf:
            - $ref: "#/components/schemas/IdentityVerificationConsent"
          x-hidden-from-docs: true
        gave_consent:
          $ref: "#/components/schemas/IdentityVerificationConsent"
        template_id:
          $ref: "#/components/schemas/IdentityVerificationTemplateID"
      required:
        - template_id
      type: object
    LinkTokenCreateRequestIncomeVerification:
      description: Specifies options for initializing Link for use with the Income product. This field is required if `income_verification` is included in the `products` array.
      properties:
        access_tokens:
          description: |-
            An array of access tokens corresponding to Items that a user has previously connected with. Data from these institutions will be cross-referenced with document data received during the Document Income flow to help verify that the uploaded documents are accurate. If the `transactions` product was not initialized for these Items during link, it will be initialized after this Link session.

            This field should only be used with the `payroll` income source type.
          items:
            $ref: "#/components/schemas/AccessToken"
          type: array
        asset_report_id:
          description: The `asset_report_id` of an asset report associated with the user, as provided by `/asset_report/create`. Providing an `asset_report_id` is optional and can be used to verify the user through a streamlined flow. If provided, the bank linking flow will be skipped.
          type: string
        bank_income:
          $ref: "#/components/schemas/LinkTokenCreateRequestIncomeVerificationBankIncome"
        income_source_types:
          description: The types of source income data that users will be permitted to share. Options include `bank` and `payroll`. Currently you can only specify one of these options.
          items:
            $ref: "#/components/schemas/IncomeVerificationSourceType"
          type: array
        income_verification_id:
          deprecated: true
          description: The `income_verification_id` of the verification instance, as provided by `/income/verification/create`.
          type: string
        payroll_income:
          $ref: "#/components/schemas/LinkTokenCreateRequestIncomeVerificationPayrollIncome"
        precheck_id:
          description: The ID of a precheck created with `/income/verification/precheck`. Will be used to improve conversion of the income verification flow by streamlining the Link interface presented to the end user.
          type: string
        stated_income_sources:
          description: A list of user stated income sources
          items:
            $ref: "#/components/schemas/LinkTokenCreateRequestUserStatedIncomeSource"
          type: array
      title: LinkTokenCreateRequestIncomeVerification
      type: object
    LinkTokenCreateRequestIncomeVerificationBankIncome:
      description: Specifies options for initializing Link for use with Bank Income. This field is required if `income_verification` is included in the `products` array and `bank` is specified in `income_source_types`.
      properties:
        days_requested:
          description: The number of days of data to request for the Bank Income product
          maximum: 731
          minimum: 1
          type: integer
        enable_multiple_items:
          default: false
          description: Whether to enable multiple Items to be added in the Link session
          nullable: true
          type: boolean
      required:
        - days_requested
      title: LinkTokenCreateRequestIncomeVerificationBankIncome
      type: object
    LinkTokenCreateRequestIncomeVerificationPayrollIncome:
      description: Specifies options for initializing Link for use with Payroll Income.
      properties:
        flow_types:
          description: The types of payroll income verification to enable for the Link session. If none are specified, then users will see both document and digital payroll income.
          items:
            $ref: "#/components/schemas/IncomeVerificationPayrollFlowType"
          nullable: true
          type: array
        is_update_mode:
          default: false
          description: An identifier to indicate whether the income verification Link token will be used for an update or not
          type: boolean
        item_id_to_update:
          description: Uniquely identify a payroll income item to update with. It should only be used for update mode.
          nullable: true
          type: string
      title: LinkTokenCreateRequestIncomeVerificationPayrollIncome
      type: object
    LinkTokenCreateRequestPaymentInitiation:
      description: Specifies options for initializing Link for use with the Payment Initiation (Europe) product. This field is required if `payment_initiation` is included in the `products` array. Either `payment_id` or `consent_id` must be provided.
      properties:
        consent_id:
          description: The `consent_id` provided by the `/payment_initiation/consent/create` endpoint.
          type: string
        payment_id:
          description: The `payment_id` provided by the `/payment_initiation/payment/create` endpoint.
          type: string
      type: object
    LinkTokenCreateRequestTransfer:
      description: Specifies options for initializing Link for use with the Transfer product.
      properties:
        intent_id:
          description: The `id` returned by the `/transfer/intent/create` endpoint.
          type: string
        payment_profile_token:
          description: The `payment_profile_token` returned by the `/payment_profile/create` endpoint.
          type: string
      type: object
    LinkTokenCreateRequestUpdate:
      description: Specifies options for initializing Link for [update mode](https://plaid.com/docs/link/update-mode).
      properties:
        account_selection_enabled:
          default: false
          description: If `true`, enables [update mode with Account Select](https://plaid.com/docs/link/update-mode/#using-update-mode-to-request-new-accounts).
          type: boolean
      type: object
    LinkTokenCreateRequestUser:
      description: An object specifying information about the end user who will be linking their account.
      properties:
        address:
          $ref: "#/components/schemas/UserAddress"
        client_user_id:
          description: A unique ID representing the end user. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`. It is currently used as a means of searching logs for the given user in the Plaid Dashboard.
          type: string
        date_of_birth:
          deprecated: true
          description: To be provided in the format "yyyy-mm-dd". Not currently used.
          format: date
          nullable: true
          type: string
        email_address:
          description: The user's email address. This field is optional, but required to enable the [pre-authenticated returning user flow](https://plaid.com/docs/link/returning-user/#pre-authenticated-rux).
          type: string
        email_address_verified_time:
          deprecated: true
          description: |-
            The date and time the email address was verified in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDThh:mm:ssZ`). This was previously an optional field used in the [returning user experience](https://plaid.com/docs/link/returning-user). This field is no longer required to enable the returning user experience.

             Only pass a verification time for an email address that you have verified. If you have performed verification but don’t have the time, you may supply a signal value of the start of the UNIX epoch.

             Example: `2020-01-01T00:00:00Z`
          format: date-time
          nullable: true
          type: string
        id_number:
          $ref: "#/components/schemas/UserIDNumber"
        legal_name:
          description: The user's full legal name, used for [micro-deposit based verification flows](https://plaid.com/docs/auth/coverage/). For a small number of customers on legacy flows, providing this field is required to enable micro-deposit-based flows. For all other customers, this field is optional, but providing the user's name in this field when using micro-deposit-based verification will enable certain risk checks and can reduce micro-deposit fraud.
          type: string
        name:
          allOf:
            - $ref: "#/components/schemas/IdentityVerificationRequestUserName"
            - description: The user's full name. Optional if using the [Identity Verification](https://plaid.com/docs/api/products/identity-verification) product; if not using Identity Verification, this field is not allowed. Users will not be asked for their name when this field is provided.
        phone_number:
          description: The user's phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format. This field is optional, but required to enable the [returning user experience](https://plaid.com/docs/link/returning-user).
          type: string
        phone_number_verified_time:
          deprecated: true
          description: |
            The date and time the phone number was verified in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDThh:mm:ssZ`). This was previously an optional field used in the [returning user experience](https://plaid.com/docs/link/returning-user). This field is no longer required to enable the returning user experience.

             Only pass a verification time for a phone number that you have verified. If you have performed verification but don’t have the time, you may supply a signal value of the start of the UNIX epoch.

             Example: `2020-01-01T00:00:00Z`
          format: date-time
          nullable: true
          type: string
        ssn:
          deprecated: true
          description: To be provided in the format "ddd-dd-dddd". Not currently used.
          type: string
      required:
        - client_user_id
      type: object
    LinkTokenCreateRequestUserStatedIncomeSource:
      description: Specifies user stated income sources for the Income product
      properties:
        category:
          $ref: "#/components/schemas/UserStatedIncomeSourceCategory"
        employer:
          description: The employer corresponding to an income source specified by the user
          type: string
        pay_annual:
          description: The income amount paid annually for a specified income source
          format: double
          type: number
        pay_frequency:
          $ref: "#/components/schemas/UserStatedIncomeSourceFrequency"
        pay_per_cycle:
          description: The income amount paid per cycle for a specified income source
          format: double
          type: number
        pay_type:
          $ref: "#/components/schemas/UserStatedIncomeSourcePayType"
      type: object
    LinkTokenCreateResponse:
      additionalProperties: true
      description: LinkTokenCreateResponse defines the response schema for `/link/token/create`
      properties:
        expiration:
          description: The expiration date for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format. A `link_token` created to generate a `public_token` that will be exchanged for a new `access_token` expires after 4 hours. A `link_token` created for an existing Item (such as when updating an existing `access_token` by launching Link in update mode) expires after 30 minutes.
          format: date-time
          type: string
        link_token:
          description: A `link_token`, which can be supplied to Link in order to initialize it and receive a `public_token`, which can be exchanged for an `access_token`.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - link_token
        - expiration
        - request_id
      type: object
    LinkTokenEUConfig:
      description: Configuration parameters for EU flows
      properties:
        headless:
          description: If `true`, open Link without an initial UI. Defaults to `false`.
          type: boolean
      type: object
    LinkTokenGetMetadataResponse:
      additionalProperties: true
      description: An object specifying the arguments originally provided to the `/link/token/create` call.
      properties:
        account_filters:
          $ref: "#/components/schemas/AccountFiltersResponse"
        client_name:
          description: The `client_name` specified in the `/link/token/create` call.
          nullable: true
          type: string
        country_codes:
          description: The `country_codes` specified in the `/link/token/create` call.
          items:
            $ref: "#/components/schemas/CountryCode"
          type: array
        initial_products:
          description: The `products` specified in the `/link/token/create` call.
          items:
            $ref: "#/components/schemas/Products"
          type: array
          x-override-enum-values-shown:
            - assets
            - auth
            - employment
            - identity
            - income_verification
            - identity_verification
            - investments
            - liabilities
            - payment_initiation
            - standing_orders
            - transactions
            - transfer
        institution_data:
          $ref: "#/components/schemas/LinkTokenCreateInstitutionData"
        language:
          description: The `language` specified in the `/link/token/create` call.
          nullable: true
          type: string
        redirect_uri:
          description: The `redirect_uri` specified in the `/link/token/create` call.
          nullable: true
          type: string
        webhook:
          description: The `webhook` specified in the `/link/token/create` call.
          nullable: true
          type: string
      required:
        - initial_products
        - webhook
        - country_codes
        - language
        - redirect_uri
        - client_name
      type: object
    LinkTokenGetRequest:
      description: LinkTokenGetRequest defines the request schema for `/link/token/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        link_token:
          description: A `link_token` from a previous invocation of `/link/token/create`
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - link_token
      type: object
    LinkTokenGetResponse:
      additionalProperties: true
      description: LinkTokenGetResponse defines the response schema for `/link/token/get`
      properties:
        created_at:
          description: The creation timestamp for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
          format: date-time
          nullable: true
          type: string
        expiration:
          description: The expiration timestamp for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
          format: date-time
          nullable: true
          type: string
        link_token:
          description: A `link_token`, which can be supplied to Link in order to initialize it and receive a `public_token`, which can be exchanged for an `access_token`.
          type: string
        metadata:
          $ref: "#/components/schemas/LinkTokenGetMetadataResponse"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - link_token
        - created_at
        - expiration
        - metadata
        - request_id
      type: object
    LinkTokenInvestments:
      description: Configuration parameters for the Investments product
      properties:
        allow_unverified_crypto_wallets:
          description: If `true`, allow self-custody crypto wallets to be added without requiring signature verification. Defaults to `false`.
          type: boolean
      type: object
    LinkUserDeliveryStatusWebhook:
      additionalProperties: true
      description: Webhook indicating that the status of the delivery of the hosted link session to a user
      properties:
        link_delivery_metadata:
          $ref: "#/components/schemas/LinkDeliveryMetadata"
        link_delivery_session_id:
          description: The ID of the link delivery session.
          type: string
        timestamp:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
          type: string
        webhook_code:
          description: "`DELIVERY_STATUS`"
          type: string
        webhook_type:
          description: "`LINK_DELIVERY`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - link_delivery_session_id
        - timestamp
        - link_delivery_metadata
      title: LinkUserDeliveryStatusWebhook
      type: object
      x-examples: {}
      x-hidden-from-docs: true
    Loan:
      additionalProperties: true
      description: Information specific to a mortgage loan agreement between one or more borrowers and a mortgage lender.
      properties:
        LOAN_IDENTIFIERS:
          $ref: "#/components/schemas/LoanIdentifiers"
      required:
        - LOAN_IDENTIFIERS
      title: Loan
      type: object
    LoanAccount:
      description: "A loan type account. Supported products for `loan` accounts are: Balance, Liabilities, and Transactions."
      properties:
        auto:
          description: Auto loan
          type: string
        business:
          description: Business loan
          type: string
        commercial:
          description: Commercial loan
          type: string
        construction:
          description: Construction loan
          type: string
        consumer:
          description: Consumer loan
          type: string
        home equity:
          description: Home Equity Line of Credit (HELOC)
          type: string
        line of credit:
          description: Pre-approved line of credit
          type: string
        loan:
          description: General loan
          type: string
        mortgage:
          description: Mortgage loan
          type: string
        other:
          description: Other loan type or unknown loan type
          type: string
        overdraft:
          description: Pre-approved overdraft account, usually tied to a checking account
          type: string
        student:
          description: Student loan
          type: string
      required:
        - auto
        - business
        - commercial
        - construction
        - consumer
        - home equity
        - loan
        - mortgage
        - overdraft
        - line of credit
        - student
        - other
      title: LoanAccount
      type: string
    LoanAccountSubtype:
      description: Valid account subtypes for loan accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-loan).
      enum:
        - auto
        - business
        - commercial
        - construction
        - consumer
        - home equity
        - loan
        - mortgage
        - line of credit
        - student
        - other
        - all
      type: string
    LoanAccountSubtypes:
      description: "An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema). "
      items:
        $ref: "#/components/schemas/LoanAccountSubtype"
      title: LoanAccountSubtypes
      type: array
    LoanFilter:
      additionalProperties: true
      description: A filter to apply to `loan`-type accounts
      properties:
        account_subtypes:
          $ref: "#/components/schemas/LoanAccountSubtypes"
      required:
        - account_subtypes
      title: LoanFilter
      type: object
    LoanIdentifier:
      additionalProperties: true
      description: The information used to identify this loan by various parties to the transaction or other organizations.
      properties:
        LoanIdentifier:
          description: The value of the identifier for the specified type.
          nullable: true
          type: string
        LoanIdentifierType:
          $ref: "#/components/schemas/LoanIdentifierType"
      required:
        - LoanIdentifier
        - LoanIdentifierType
      title: LoanIdentifier
      type: object
    LoanIdentifierType:
      description: A value from a MISMO prescribed list that specifies the type of loan identifier.
      enum:
        - LenderLoan
        - UniversalLoan
      nullable: true
      title: LoanIdentifierType
      type: string
    LoanIdentifiers:
      additionalProperties: true
      description: Collection of current and previous identifiers for this loan.
      properties:
        LOAN_IDENTIFIER:
          $ref: "#/components/schemas/LoanIdentifier"
      required:
        - LOAN_IDENTIFIER
      title: LoanIdentifiers
      type: object
    Loans:
      additionalProperties: true
      description: A collection of loans that are part of a single deal.
      properties:
        LOAN:
          $ref: "#/components/schemas/Loan"
      required:
        - LOAN
      title: Loans
      type: object
    Location:
      additionalProperties: true
      description: A representation of where a transaction took place
      properties:
        address:
          description: The street address where the transaction occurred.
          nullable: true
          type: string
        city:
          description: The city where the transaction occurred.
          nullable: true
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code where the transaction occurred.
          nullable: true
          type: string
        lat:
          description: The latitude where the transaction occurred.
          format: double
          nullable: true
          type: number
        lon:
          description: The longitude where the transaction occurred.
          format: double
          nullable: true
          type: number
        postal_code:
          description: The postal code where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `zip`.
          nullable: true
          type: string
        region:
          description: The region or state where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `state`.
          nullable: true
          type: string
        store_number:
          description: The merchant defined store number where the transaction occurred.
          nullable: true
          type: string
      required:
        - address
        - city
        - region
        - postal_code
        - country
        - lat
        - lon
        - store_number
      title: Transaction Location
      type: object
    MFA:
      additionalProperties: true
      description: Specifies the multi-factor authentication settings to use with this test account
      properties:
        question_rounds:
          description: "Number of rounds of questions. Required if value of `type` is `questions`. "
          type: number
        questions_per_round:
          description: Number of questions per round. Required if value of `type` is `questions`. If value of type is `selections`, default value is 2.
          type: number
        selection_rounds:
          description: Number of rounds of selections, used if `type` is `selections`. Defaults to 1.
          type: number
        selections_per_question:
          description: |
            Number of available answers per question, used if `type` is `selection`. Defaults to 2.
          type: number
        type:
          description: |-
            Possible values are `device`, `selections`, or `questions`.

            If value is `device`, the MFA answer is `1234`.

            If value is `selections`, the MFA answer is always the first option.

            If value is `questions`, the MFA answer is  `answer_<i>_<j>` for the j-th question in the i-th round, starting from 0. For example, the answer to the first question in the second round is `answer_1_0`.
          type: string
      required:
        - type
        - question_rounds
        - questions_per_round
        - selection_rounds
        - selections_per_question
      title: MFA
      type: object
    MatchSummary:
      additionalProperties: true
      description: Summary object reflecting the match result of the associated data
      properties:
        summary:
          $ref: "#/components/schemas/MatchSummaryCode"
      required:
        - summary
      type: object
    MatchSummaryCode:
      description: |-
        An enum indicating the match type between data provided by user and data checked against an external data source.


        `match` indicates that the provided input data was a strong match against external data.

        `partial_match` indicates the data approximately matched against external data. For example, "Knope" vs. "Knope-Wyatt" for last name.

        `no_match` indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data.

        `no_data` indicates that Plaid was unable to find external data to compare against the provided input data.

        `no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
      enum:
        - match
        - partial_match
        - no_match
        - no_data
        - no_input
      example: match
      title: MatchSummaryCode
      type: string
    Meta:
      additionalProperties: true
      description: Allows specifying the metadata of the test account
      properties:
        limit:
          description: The account's limit
          format: double
          type: number
        mask:
          description: The account's mask. Should be a string of 2-4 alphanumeric characters. This allows you to model a mask which does not match the account number (such as with a virtual account number).
          maxLength: 4
          minLength: 2
          pattern: ^[A-Za-z0-9]{2,4}$
          type: string
        name:
          description: The account's name
          type: string
        official_name:
          description: The account's official name
          type: string
      required:
        - name
        - official_name
        - limit
        - mask
      title: Meta
      type: object
    MinLastUpdatedDatetime:
      description: |-
        Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the oldest acceptable balance when making a request to `/accounts/balance/get`.

        If the balance that is pulled for `ins_128026` (Capital One) is older than the given timestamp, 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.

        This field is only used when the institution is `ins_128026` (Capital One), in which case a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For all other institutions, this field is ignored.
      format: date-time
      title: MinLastUpdatedDatetime
      type: string
    MortgageInterestRate:
      additionalProperties: true
      description: Object containing metadata about the interest rate for the mortgage.
      properties:
        percentage:
          description: Percentage value (interest rate of current mortgage, not APR) of interest payable on a loan.
          format: double
          nullable: true
          type: number
        type:
          description: The type of interest charged (fixed or variable).
          nullable: true
          type: string
      required:
        - percentage
        - type
      title: MortgageInterestRate
      type: object
    MortgageLiability:
      additionalProperties: true
      description: Contains details about a mortgage account.
      properties:
        account_id:
          description: The ID of the account that this liability belongs to.
          type: string
        account_number:
          description: The account number of the loan.
          type: string
        current_late_fee:
          description: The current outstanding amount charged for late payment.
          format: double
          nullable: true
          type: number
        escrow_balance:
          description: Total amount held in escrow to pay taxes and insurance on behalf of the borrower.
          format: double
          nullable: true
          type: number
        has_pmi:
          description: Indicates whether the borrower has private mortgage insurance in effect.
          nullable: true
          type: boolean
        has_prepayment_penalty:
          description: Indicates whether the borrower will pay a penalty for early payoff of mortgage.
          nullable: true
          type: boolean
        interest_rate:
          $ref: "#/components/schemas/MortgageInterestRate"
        last_payment_amount:
          description: The amount of the last payment.
          format: double
          nullable: true
          type: number
        last_payment_date:
          description: The date of the last payment. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        loan_term:
          description: Full duration of mortgage as at origination (e.g. `10 year`).
          nullable: true
          type: string
        loan_type_description:
          description: Description of the type of loan, for example `conventional`, `fixed`, or `variable`. This field is provided directly from the loan servicer and does not have an enumerated set of possible values.
          nullable: true
          type: string
        maturity_date:
          description: Original date on which mortgage is due in full. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        next_monthly_payment:
          description: The amount of the next payment.
          format: double
          nullable: true
          type: number
        next_payment_due_date:
          description: The due date for the next payment. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        origination_date:
          description: The date on which the loan was initially lent. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        origination_principal_amount:
          description: The original principal balance of the mortgage.
          format: double
          nullable: true
          type: number
        past_due_amount:
          description: Amount of loan (principal + interest) past due for payment.
          format: double
          nullable: true
          type: number
        property_address:
          $ref: "#/components/schemas/MortgagePropertyAddress"
        ytd_interest_paid:
          description: The year to date (YTD) interest paid.
          format: double
          nullable: true
          type: number
        ytd_principal_paid:
          description: The YTD principal paid.
          format: double
          nullable: true
          type: number
      required:
        - account_id
        - account_number
        - current_late_fee
        - escrow_balance
        - has_pmi
        - has_prepayment_penalty
        - interest_rate
        - last_payment_amount
        - last_payment_date
        - loan_type_description
        - loan_term
        - maturity_date
        - next_monthly_payment
        - next_payment_due_date
        - origination_date
        - origination_principal_amount
        - past_due_amount
        - property_address
        - ytd_interest_paid
        - ytd_principal_paid
      title: MortgageLiability
      type: object
    MortgagePropertyAddress:
      additionalProperties: true
      description: Object containing fields describing property address.
      properties:
        city:
          description: The city name.
          nullable: true
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code.
          nullable: true
          type: string
        postal_code:
          description: The five or nine digit postal code.
          nullable: true
          type: string
        region:
          description: The region or state (example "NC").
          nullable: true
          type: string
        street:
          description: The full street address (example "564 Main Street, Apt 15").
          nullable: true
          type: string
      required:
        - city
        - country
        - postal_code
        - region
        - street
      title: MortgagePropertyAddress
      type: object
    MultiDocumentRiskSignal:
      additionalProperties: true
      description: Object containing risk signals and relevant metadata for a set of uploaded documents
      properties:
        document_references:
          description: Array of objects containing attributes that could indicate if a document is fraudulent
          items:
            $ref: "#/components/schemas/RiskSignalDocumentReference"
          type: array
        risk_signals:
          description: Array of attributes that indicate whether or not there is fraud risk with a set of documents
          items:
            $ref: "#/components/schemas/DocumentRiskSignal"
          type: array
      required:
        - document_references
        - risk_signals
      title: MultiDocumentRiskSignal
      type: object
    NameMatchScore:
      additionalProperties: true
      description: Score found by matching name provided by the API with the name on the account at the financial institution. If the account contains multiple owners, the maximum match score is filled.
      nullable: true
      properties:
        is_business_name_detected:
          description: Is `true` if the name on either of the names that was matched for the score contained strings indicative of a business name, such as "CORP", "LLC", "INC", or "LTD". A `true` result generally indicates the entity is a business. However, a `false` result does not mean the entity is not a business, as some businesses do not use these strings in the names used for their financial institution accounts.
          nullable: true
          type: boolean
        is_first_name_or_last_name_match:
          description: first or last name completely matched, likely a family member
          nullable: true
          type: boolean
        is_nickname_match:
          description: nickname matched, example Jennifer and Jenn.
          nullable: true
          type: boolean
        score:
          description: Represents the match score for name. 100 is a perfect score, 85-99 means a strong match, 50-84 is a partial match, less than 50 is a weak match and 0 is a complete mismatch. If the name is missing from either the API or financial institution, this is empty.
          nullable: true
          type: integer
      title: NameMatchScore
      type: object
    NetPay:
      additionalProperties: true
      description: An object representing information about the net pay amount on the paystub.
      properties:
        current_amount:
          description: Raw amount of the net pay for the pay period
          format: double
          nullable: true
          type: number
        description:
          description: Description of the net pay
          nullable: true
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        total:
          $ref: "#/components/schemas/Total"
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the net pay. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The year-to-date amount of the net pay
          format: double
          nullable: true
          type: number
      title: NetPay
      type: object
    NewAccountsAvailableWebhook:
      description: Fired when Plaid detects a new account for Items created or updated with [Account Select v2](https://plaid.com/docs/link/customization/#account-select). Upon receiving this webhook, you can prompt your users to share new accounts with you through [Account Select v2 update mode](https://plaid.com/docs/link/update-mode/#using-update-mode-to-request-new-accounts).
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`NEW_ACCOUNTS_AVAILABLE`"
          type: string
        webhook_type:
          description: "`ITEM`"
          type: string
      title: NewAccountsAvailableWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error: null
          item_id: gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ
          webhook_code: NEW_ACCOUNTS_AVAILABLE
          webhook_type: ITEM
    Numbers:
      additionalProperties: true
      description: Account and bank identifier number data used to configure the test account. All values are optional.
      properties:
        account:
          description: Will be used for the account number.
          type: string
        ach_routing:
          description: Must be a valid ACH routing number.
          type: string
        ach_wire_routing:
          description: Must be a valid wire transfer routing number.
          type: string
        bacs_sort_code:
          description: BACS sort code
          type: string
        eft_branch:
          description: EFT branch number. Must be specified alongside `eft_institution`.
          type: string
        eft_institution:
          description: EFT institution number. Must be specified alongside `eft_branch`.
          type: string
        international_bic:
          description: Bank identifier code (BIC). Must be specified alongside `international_iban`.
          type: string
        international_iban:
          description: International bank account number (IBAN). If no account number is specified via `account`, will also be used as the account number by default. Must be specified alongside `international_bic`.
          type: string
      title: Numbers
      type: object
    NumbersACH:
      additionalProperties: true
      description: Identifying information for transferring money to or from a US account via ACH or wire transfer.
      properties:
        account:
          description: |-
            The ACH account number for the account.

            Note that when using OAuth with Chase Bank (`ins_56`), Chase will issue "tokenized" routing and account numbers, which are not the user's actual account and routing numbers. These tokenized numbers should work identically to normal account and routing numbers. The digits returned in the `mask` field will continue to reflect the actual account number, rather than the tokenized account number; for this reason, when displaying account numbers to the user to help them identify their account in your UI, always use the `mask` rather than truncating the `account` number. If a user revokes their permissions to your app, the tokenized numbers will continue to work for ACH deposits, but not withdrawals.
          type: string
        account_id:
          description: The Plaid account ID associated with the account numbers
          type: string
        can_transfer_in:
          description: Whether the account supports ACH transfers into the account
          nullable: true
          type: boolean
          x-hidden-from-docs: true
        can_transfer_out:
          description: Whether the account supports ACH transfers out of the account
          nullable: true
          type: boolean
          x-hidden-from-docs: true
        routing:
          description: The ACH routing number for the account. If the institution is `ins_56`, this may be a tokenized routing number. For more information, see the description of the `account` field.
          type: string
        wire_routing:
          description: The wire transfer routing number for the account, if available
          nullable: true
          type: string
      required:
        - account_id
        - account
        - routing
        - wire_routing
      title: NumbersACH
      type: object
    NumbersACHNullable:
      allOf:
        - $ref: "#/components/schemas/NumbersACH"
        - additionalProperties: true
          type: object
      description: Identifying information for transferring money to or from a US account via ACH or wire transfer.
      nullable: true
    NumbersBACS:
      additionalProperties: true
      description: Identifying information for transferring money to or from a UK bank account via BACS.
      properties:
        account:
          description: The BACS account number for the account
          type: string
        account_id:
          description: The Plaid account ID associated with the account numbers
          type: string
        sort_code:
          description: The BACS sort code for the account
          type: string
      required:
        - account_id
        - account
        - sort_code
      title: NumbersBACS
      type: object
    NumbersBACSNullable:
      allOf:
        - $ref: "#/components/schemas/NumbersBACS"
        - additionalProperties: true
          type: object
      description: Identifying information for transferring money to or from a UK bank account via BACS.
      nullable: true
    NumbersEFT:
      additionalProperties: true
      description: Identifying information for transferring money to or from a Canadian bank account via EFT.
      properties:
        account:
          description: The EFT account number for the account
          type: string
        account_id:
          description: The Plaid account ID associated with the account numbers
          type: string
        branch:
          description: The EFT branch number for the account
          type: string
        institution:
          description: The EFT institution number for the account
          type: string
      required:
        - account_id
        - account
        - institution
        - branch
      title: NumbersEFT
      type: object
    NumbersEFTNullable:
      allOf:
        - $ref: "#/components/schemas/NumbersEFT"
        - additionalProperties: true
          type: object
      description: Identifying information for transferring money to or from a Canadian bank account via EFT.
      nullable: true
    NumbersIBAN:
      description: International Bank Account Number (IBAN).
      maxLength: 34
      minLength: 15
      type: string
    NumbersIBANNullable:
      allOf:
        - $ref: "#/components/schemas/NumbersIBAN"
      description: International Bank Account Number (IBAN).
      nullable: true
      type: string
    NumbersInternational:
      additionalProperties: true
      description: Identifying information for transferring money to or from an international bank account via wire transfer.
      properties:
        account_id:
          description: The Plaid account ID associated with the account numbers
          type: string
        bic:
          description: The Bank Identifier Code (BIC) for the account
          type: string
        iban:
          description: The International Bank Account Number (IBAN) for the account
          type: string
      required:
        - account_id
        - iban
        - bic
      title: NumbersInternational
      type: object
    NumbersInternationalIBAN:
      additionalProperties: true
      description: Account numbers using the International Bank Account Number and BIC/SWIFT code format.
      nullable: true
      properties:
        bic:
          description: The Business Identifier Code, also known as SWIFT code, for this bank account.
          maxLength: 11
          minLength: 8
          type: string
        iban:
          $ref: "#/components/schemas/NumbersIBAN"
      required:
        - iban
        - bic
      type: object
    NumbersInternationalNullable:
      allOf:
        - $ref: "#/components/schemas/NumbersInternational"
        - additionalProperties: true
          type: object
      description: Identifying information for transferring money to or from an international bank account via wire transfer.
      nullable: true
    Originator:
      additionalProperties: true
      description: Originator and their status.
      properties:
        client_id:
          description: Originator’s client ID.
          type: string
        transfer_diligence_status:
          $ref: "#/components/schemas/TransferDiligenceStatus"
      required:
        - client_id
        - transfer_diligence_status
      title: Originator
      type: object
    OverrideAccountType:
      description: |-
        `investment:` Investment account.

        `credit:` Credit card

        `depository:` Depository account

        `loan:` Loan account

        `payroll:` Payroll 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.
      enum:
        - investment
        - credit
        - depository
        - loan
        - payroll
        - other
      title: OverrideAccountType
      type: string
    OverrideAccounts:
      additionalProperties: true
      description: Data to use to set values of test accounts. Some values cannot be specified in the schema and will instead will be calculated from other test data in order to achieve more consistent, realistic test data.
      properties:
        currency:
          description: ISO-4217 currency code. If provided, the account will be denominated in the given currency. Transactions will also be in this currency by default.
          type: string
        force_available_balance:
          description: If provided, the account will always have this amount as its  available balance, regardless of current balance or changes in transactions over time.
          format: double
          type: number
        holdings:
          $ref: "#/components/schemas/HoldingsOverride"
        identity:
          $ref: "#/components/schemas/OwnerOverride"
        income:
          $ref: "#/components/schemas/IncomeOverride"
        inflow_model:
          $ref: "#/components/schemas/InflowModel"
        investment_transactions:
          $ref: "#/components/schemas/Investments_TransactionsOverride"
        liability:
          $ref: "#/components/schemas/LiabilityOverride"
        meta:
          $ref: "#/components/schemas/Meta"
        numbers:
          $ref: "#/components/schemas/Numbers"
        starting_balance:
          description: |
            If provided, the account will start with this amount as the current balance.
          format: double
          type: number
        subtype:
          $ref: "#/components/schemas/AccountSubtype"
        transactions:
          description: Specify the list of transactions on the account.
          items:
            $ref: "#/components/schemas/TransactionOverride"
          type: array
        type:
          $ref: "#/components/schemas/OverrideAccountType"
      required:
        - type
        - subtype
        - starting_balance
        - force_available_balance
        - currency
        - meta
        - numbers
        - transactions
        - identity
        - liability
        - inflow_model
      title: OverrideAccounts
      type: object
    Owner:
      additionalProperties: true
      description: Data returned from the financial institution about the owner or owners of an account. Only the `names` array must be non-empty.
      properties:
        addresses:
          description: 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.
          items:
            $ref: "#/components/schemas/Address"
          type: array
        emails:
          description: 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.
          items:
            $ref: "#/components/schemas/Email"
          type: array
        names:
          description: |-
            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.
          items:
            type: string
          type: array
        phone_numbers:
          description: 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.
          items:
            $ref: "#/components/schemas/PhoneNumber"
          type: array
      required:
        - names
        - phone_numbers
        - emails
        - addresses
      title: Owner
      type: object
    OwnerOverride:
      additionalProperties: true
      description: Data about the owner or owners of an account. Any fields not specified will be filled in with default Sandbox information.
      properties:
        addresses:
          description: Data about the various addresses associated with the account.
          items:
            $ref: "#/components/schemas/Address"
          type: array
        emails:
          description: A list of email addresses associated with the account.
          items:
            $ref: "#/components/schemas/Email"
          type: array
        names:
          description: A list of names associated with the account by the financial institution. These should always be the names of individuals, even for business accounts. Note that the same name data will be used for all accounts associated with an Item.
          items:
            type: string
          type: array
        phone_numbers:
          description: A list of phone numbers associated with the account.
          items:
            $ref: "#/components/schemas/PhoneNumber"
          type: array
      required:
        - names
        - phone_numbers
        - emails
        - addresses
      title: OwnerOverride
      type: object
    OwnershipType:
      description: |-
        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.
      enum:
        - null
        - individual
        - joint
        - association
        - trust
      nullable: true
    POBoxStatus:
      description: Field describing whether the associated address is a post office box. Will be `yes` when a P.O. box is detected, `no` when Plaid confirmed the address is not a P.O. box, and `no_data` when Plaid was not able to determine if the address is a P.O. box.
      enum:
        - yes
        - no
        - no_data
      example: yes
      type: string
    PSLFStatus:
      additionalProperties: true
      description: "Information about the student's eligibility in the Public Service Loan Forgiveness program. This is only returned if the institution is FedLoan (`ins_116527`). "
      properties:
        estimated_eligibility_date:
          description: The estimated date borrower will have completed 120 qualifying monthly payments. Returned in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        payments_made:
          description: The number of qualifying payments that have been made.
          nullable: true
          type: number
        payments_remaining:
          description: The number of qualifying payments remaining.
          nullable: true
          type: number
      required:
        - estimated_eligibility_date
        - payments_made
        - payments_remaining
      title: PSLFStatus
      type: object
    Parties:
      additionalProperties: true
      description: A collection of objects that define specific parties to a deal. This includes the direct participating parties, such as borrower and seller and the indirect parties such as the credit report provider.
      properties:
        PARTY:
          items:
            $ref: "#/components/schemas/Party"
          type: array
      required:
        - PARTY
      title: Parties
      type: object
    PartnerCustomerCreateRequest:
      description: Request schema for `/partner/customer/create`.
      properties:
        address:
          $ref: "#/components/schemas/PartnerEndCustomerAddress"
        application_name:
          description: The name of the end customer's application. This will be shown to end users when they go through the Plaid Link flow.
          type: string
        assets_under_management:
          $ref: "#/components/schemas/PartnerEndCustomerAssetsUnderManagement"
        billing_contact:
          $ref: "#/components/schemas/PartnerEndCustomerBillingContact"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        company_name:
          description: The company name of the end customer being created. This will be used to display the end customer in the Plaid Dashboard. It will not be shown to end users.
          type: string
        create_link_customization:
          description: If `true`, the end customer's default Link customization will be set to match the partner's. You can always change the end customer's Link customization in the Plaid Dashboard. See the [Link Customization docs](https://plaid.com/docs/link/customization/) for more information.
          type: boolean
        customer_support_info:
          $ref: "#/components/schemas/PartnerEndCustomerCustomerSupportInfo"
        is_bank_addendum_completed:
          description: Denotes whether the partner has forwarded the Plaid bank addendum to the end customer.
          type: boolean
        is_diligence_attested:
          description: Denotes whether or not the partner has completed attestation of diligence for the end customer to be created.
          type: boolean
        legal_entity_name:
          description: The end customer's legal name. This will be shared with financial institutions as part of the OAuth registration process. It will not be shown to end users.
          type: string
        logo:
          description: Base64-encoded representation of the end customer's logo. Must be a PNG of size 1024x1024 under 4MB. The logo will be shared with financial institutions and shown to the end user during Link flows. A logo is required if `create_link_customization` is `true`. If `create_link_customization` is `false` and the logo is omitted, a stock logo will be used.
          type: string
        products:
          description: The products to be enabled for the end customer.
          items:
            $ref: "#/components/schemas/Products"
          type: array
          x-override-enum-values-shown:
            - assets
            - auth
            - balance
            - identity
            - income_verification
            - investments
            - liabilities
            - transactions
            - employment
        redirect_uris:
          description: A list of URIs indicating the destination(s) where a user can be forwarded after completing the Link flow; used to support OAuth authentication flows when launching Link in the browser or via a webview. URIs should not contain any query parameters. When used in Production or Development, URIs must use https. To specify any subdomain, use `*` as a wildcard character, e.g. `https://*.example.com/oauth.html`. To modify redirect URIs for an end customer after creating them, go to the end customer's [API page](https://dashboard.plaid.com/team/api) in the Dashboard.
          items:
            type: string
          type: array
        secret:
          $ref: "#/components/schemas/APISecret"
        technical_contact:
          $ref: "#/components/schemas/PartnerEndCustomerTechnicalContact"
        website:
          description: The end customer's website.
          type: string
      required:
        - company_name
        - is_diligence_attested
        - products
        - legal_entity_name
        - website
        - application_name
        - address
        - is_bank_addendum_completed
    PartnerCustomerCreateResponse:
      additionalProperties: true
      description: Response schema for `/partner/customer/create`.
      properties:
        end_customer:
          $ref: "#/components/schemas/PartnerEndCustomerWithSecrets"
        request_id:
          $ref: "#/components/schemas/RequestID"
      type: object
    PartnerCustomerEnableRequest:
      description: Request schema for `/partner/customer/enable`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        end_customer_client_id:
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - end_customer_client_id
    PartnerCustomerEnableResponse:
      additionalProperties: true
      description: Response schema for `/partner/customer/enable`.
      properties:
        production_secret:
          description: The end customer's secret key for the Production environment.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      type: object
    PartnerCustomerGetRequest:
      description: Request schema for `/partner/customer/get`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        end_customer_client_id:
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - end_customer_client_id
    PartnerCustomerGetResponse:
      additionalProperties: true
      description: Response schema for `/partner/customer/get`.
      properties:
        end_customer:
          $ref: "#/components/schemas/PartnerEndCustomer"
        request_id:
          $ref: "#/components/schemas/RequestID"
      type: object
    PartnerCustomerOAuthInstitutionsGetRequest:
      description: Request schema for `/partner/customer/oauth_institutions/get`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        end_customer_client_id:
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - end_customer_client_id
    PartnerCustomerOAuthInstitutionsGetResponse:
      additionalProperties: true
      description: Response schema for `/partner/customer/oauth_institutions/get`.
      properties:
        flowdown_status:
          $ref: "#/components/schemas/PartnerEndCustomerFlowdownStatus"
        institutions:
          description: The OAuth institutions with which the end customer's application is being registered.
          items:
            $ref: "#/components/schemas/PartnerEndCustomerOAuthInstitution"
          type: array
        questionnaire_status:
          $ref: "#/components/schemas/PartnerEndCustomerQuestionnaireStatus"
        request_id:
          $ref: "#/components/schemas/RequestID"
      type: object
    PartnerCustomerRemoveRequest:
      description: Request schema for `/partner/customer/remove`.
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        end_customer_client_id:
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - end_customer_client_id
    PartnerCustomerRemoveResponse:
      additionalProperties: true
      description: Response schema for `/partner/customer/remove`.
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      type: object
    PartnerEndCustomer:
      additionalProperties: true
      description: The details for an end customer.
      properties:
        client_id:
          type: string
        company_name:
          type: string
        status:
          $ref: "#/components/schemas/PartnerEndCustomerStatus"
      type: object
    PartnerEndCustomerAddress:
      additionalProperties: true
      description: The end customer's address.
      properties:
        city:
          type: string
        country_code:
          description: ISO-3166-1 alpha-2 country code standard.
          type: string
        postal_code:
          type: string
        region:
          type: string
        street:
          type: string
      type: object
    PartnerEndCustomerAssetsUnderManagement:
      additionalProperties: true
      description: Assets under management for the given end customer. Required for end customers with monthly service commitments.
      properties:
        amount:
          format: double
          type: number
        iso_currency_code:
          type: string
      required:
        - amount
        - iso_currency_code
      type: object
    PartnerEndCustomerBillingContact:
      additionalProperties: true
      description: The billing contact for the end customer. Defaults to partner's billing contact if omitted.
      properties:
        email:
          type: string
        family_name:
          type: string
        given_name:
          type: string
      type: object
    PartnerEndCustomerCustomerSupportInfo:
      additionalProperties: true
      description: This information is public. Users of your app will see this information when managing connections between your app and their bank accounts in Plaid Portal. Defaults to partner's customer support info if omitted.
      properties:
        contact_url:
          type: string
        email:
          type: string
        link_update_url:
          type: string
        phone_number:
          type: string
      type: object
    PartnerEndCustomerFlowdownStatus:
      description: The status of the addendum to the Plaid MSA ("flowdown") for the end customer.
      enum:
        - NOT_STARTED
        - IN_REVIEW
        - NEGOTIATION
        - COMPLETE
      type: string
    PartnerEndCustomerOAuthInstitution:
      additionalProperties: true
      description: The OAuth registration information for an institution.
      properties:
        classic_disablement_date:
          description: The date on which non-OAuth Item adds will no longer be supported for this institution, or an empty string if no such date has been set by the institution.
          nullable: true
          type: string
        environments:
          $ref: "#/components/schemas/PartnerEndCustomerOAuthInstitutionEnvironments"
        institution_id:
          type: string
        name:
          type: string
        production_enablement_date:
          description: The date on which the end customer's application was approved by the institution, or an empty string if their application has not yet been approved.
          nullable: true
          type: string
      type: object
    PartnerEndCustomerOAuthInstitutionApplicationStatus:
      description: The registration status for the end customer's application.
      enum:
        - NOT_STARTED
        - PROCESSING
        - APPROVED
        - ENABLED
        - ATTENTION_REQUIRED
      type: string
    PartnerEndCustomerOAuthInstitutionEnvironments:
      additionalProperties: true
      description: Registration statuses by environment.
      properties:
        development:
          $ref: "#/components/schemas/PartnerEndCustomerOAuthInstitutionApplicationStatus"
        production:
          $ref: "#/components/schemas/PartnerEndCustomerOAuthInstitutionApplicationStatus"
      type: object
    PartnerEndCustomerOAuthStatusUpdatedValues:
      description: The OAuth status of the update
      enum:
        - not-started
        - processing
        - approved
        - enabled
        - attention-required
      nullable: false
      type: string
    PartnerEndCustomerOAuthStatusUpdatedWebhook:
      description: The webhook of type `PARTNER` and code `END_CUSTOMER_OAUTH_STATUS_UPDATED` will be fired when a partner's end customer has an update on their OAuth registration status with an institution.
      properties:
        end_customer_client_id:
          description: The client ID of the end customer
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        institution_id:
          description: The institution ID
          type: string
        institution_name:
          description: The institution name
          type: string
        status:
          $ref: "#/components/schemas/PartnerEndCustomerOAuthStatusUpdatedValues"
        webhook_code:
          description: "`END_CUSTOMER_OAUTH_STATUS_UPDATED`"
          type: string
        webhook_type:
          description: "`PARTNER`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - end_customer_client_id
        - environment
        - institution_id
        - institution_name
        - status
      title: PartnerEndCustomerOAuthStatusUpdatedWebhook
      type: object
      x-examples:
        example-1:
          end_customer_client_id: 634758733ebb4f00134b85ea
          environment: production
          institution_id: ins_127989
          institution_name: Bank of America
          status: attention-required
          webhook_code: END_CUSTOMER_OAUTH_STATUS_UPDATED
          webhook_type: PARTNER
    PartnerEndCustomerQuestionnaireStatus:
      description: The status of the end customer's security questionnaire.
      enum:
        - NOT_STARTED
        - RECEIVED
        - COMPLETE
      type: string
    PartnerEndCustomerSecrets:
      additionalProperties: true
      description: The secrets for the newly created end customer in non-Production environments.
      properties:
        development:
          description: The end customer's secret key for the Development environment.
          type: string
        sandbox:
          description: The end customer's secret key for the Sandbox environment.
          type: string
      type: object
    PartnerEndCustomerStatus:
      description: |-
        The status of the given end customer.

        `UNDER_REVIEW`: The end customer has been created and enabled in the non-Production environments. The end customer must be manually reviewed by the Plaid team before it can be enabled in production, at which point its status will automatically transition to `PENDING_ENABLEMENT` or `DENIED`.

        `PENDING_ENABLEMENT`: The end customer is ready to be enabled in the Production environment. Call the `/partner/customer/enable` endpoint to enable the end customer in Production.

        `ACTIVE`: The end customer has been enabled in all environments.

        `DENIED`: The end customer has been created and enabled in the non-Production environments, but it did not pass review by the Plaid team and therefore cannot be enabled in the Production environment. Talk to your Account Manager for more information.
      enum:
        - UNDER_REVIEW
        - PENDING_ENABLEMENT
        - ACTIVE
        - DENIED
      type: string
    PartnerEndCustomerTechnicalContact:
      additionalProperties: true
      description: The technical contact for the end customer. Defaults to partner's technical contact if omitted.
      properties:
        email:
          type: string
        family_name:
          type: string
        given_name:
          type: string
      type: object
    PartnerEndCustomerWithSecrets:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/PartnerEndCustomer"
        - properties:
            secrets:
              $ref: "#/components/schemas/PartnerEndCustomerSecrets"
          type: object
      description: The details for the newly created end customer, including secrets for non-Production environments.
      type: object
    Party:
      additionalProperties: true
      description: A collection of information about a single party to a transaction. Included direct participants like the borrower and seller as well as indirect participants such as the flood certificate provider.
      properties:
        INDIVIDUAL:
          $ref: "#/components/schemas/PartyIndividual"
        ROLES:
          $ref: "#/components/schemas/Roles"
        TAXPAYER_IDENTIFIERS:
          $ref: "#/components/schemas/TaxpayerIdentifiers"
      required:
        - INDIVIDUAL
        - ROLES
        - TAXPAYER_IDENTIFIERS
      title: Party
      type: object
    PartyIndividual:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        NAME:
          $ref: "#/components/schemas/IndividualName"
      required:
        - NAME
      title: INDIVIDUAL
      type: object
    PartyRoleType:
      description: A value from a MISMO defined list that identifies the role that the party plays in the transaction. Parties may be either a person or legal entity. A party may play multiple roles in a transaction.A value from a MISMO defined list that identifies the role that the party plays in the transaction. Parties may be either a person or legal entity. A party may play multiple roles in a transaction.
      enum:
        - Borrower
      title: PartyRoleType
      type: string
    Pay:
      additionalProperties: true
      deprecated: true
      description: An object representing a monetary amount.
      properties:
        amount:
          description: A numerical amount of a specific currency.
          format: double
          nullable: true
          type: number
        currency:
          description: Currency code, e.g. USD
          nullable: true
          type: string
      title: Pay
      type: object
    PayFrequency:
      additionalProperties: true
      description: The frequency of the pay period.
      nullable: true
      properties:
        value:
          $ref: "#/components/schemas/PayFrequencyValue"
        verification_status:
          $ref: "#/components/schemas/VerificationStatus"
      required:
        - value
        - verification_status
      title: PayFrequency
      type: object
    PayFrequencyValue:
      description: The frequency of the pay period.
      enum:
        - monthly
        - semimonthly
        - weekly
        - biweekly
        - unknown
        - null
      title: PayFrequencyValue
      type: string
    PayPeriodDetails:
      additionalProperties: true
      description: Details about the pay period.
      properties:
        check_amount:
          description: The amount of the paycheck.
          format: double
          nullable: true
          type: number
        distribution_breakdown:
          items:
            $ref: "#/components/schemas/DistributionBreakdown"
          type: array
        end_date:
          description: 'The pay period end date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: "yyyy-mm-dd".'
          format: date
          nullable: true
          type: string
        gross_earnings:
          description: Total earnings before tax/deductions.
          format: double
          nullable: true
          type: number
        pay_date:
          description: The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ("yyyy-mm-dd").
          format: date
          nullable: true
          type: string
        pay_day:
          deprecated: true
          description: The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ("yyyy-mm-dd").
          format: date
          nullable: true
          type: string
        pay_frequency:
          description: The frequency at which an individual is paid.
          enum:
            - PAY_FREQUENCY_UNKNOWN
            - PAY_FREQUENCY_WEEKLY
            - PAY_FREQUENCY_BIWEEKLY
            - PAY_FREQUENCY_SEMIMONTHLY
            - PAY_FREQUENCY_MONTHLY
            - null
          nullable: true
          type: string
        start_date:
          description: 'The pay period start date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: "yyyy-mm-dd".'
          format: date
          nullable: true
          type: string
      title: PayPeriodDetails
      type: object
    PayStubDeductionsBreakdown:
      additionalProperties: true
      description: An object representing the deduction line items for the pay period
      properties:
        current_amount:
          description: Raw amount of the deduction
          format: double
          nullable: true
          type: number
        description:
          description: Description of the deduction line item
          nullable: true
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the line item. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The year-to-date amount of the deduction
          format: double
          nullable: true
          type: number
      required:
        - current_amount
        - description
        - iso_currency_code
        - unofficial_currency_code
        - ytd_amount
      title: PayStubDeductionsBreakdown
      type: object
    PayStubDeductionsTotal:
      additionalProperties: true
      description: An object representing the total deductions for the pay period
      properties:
        current_amount:
          description: Raw amount of the deduction
          format: double
          nullable: true
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the line item. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The year-to-date total amount of the deductions
          format: double
          nullable: true
          type: number
      required:
        - current_amount
        - iso_currency_code
        - unofficial_currency_code
        - ytd_amount
      title: PayStubDeductionsTotal
      type: object
    PayStubDistributionBreakdown:
      additionalProperties: true
      description: Information about the accounts that the payment was distributed to.
      properties:
        account_name:
          description: Name of the account for the given distribution.
          nullable: true
          type: string
        bank_name:
          description: The name of the bank that the payment is being deposited to.
          nullable: true
          type: string
        current_amount:
          description: The amount distributed to this account.
          format: double
          nullable: true
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        mask:
          description: The last 2-4 alphanumeric characters of an account's official account number.
          nullable: true
          type: string
        type:
          description: Type of the account that the paystub was sent to (e.g. 'checking').
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the net pay. 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 `iso_currency_code`s.
          nullable: true
          type: string
      required:
        - account_name
        - bank_name
        - current_amount
        - iso_currency_code
        - mask
        - type
        - unofficial_currency_code
      title: PayStubDistributionBreakdown
      type: object
    PayStubEarningsBreakdown:
      additionalProperties: true
      description: An object representing the earnings line items for the pay period.
      properties:
        canonical_description:
          $ref: "#/components/schemas/PayStubEarningsBreakdownCanonicalDescription"
        current_amount:
          description: Raw amount of the earning line item.
          format: double
          nullable: true
          type: number
        description:
          description: Description of the earning line item.
          nullable: true
          type: string
        hours:
          description: Number of hours applicable for this earning.
          nullable: true
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        rate:
          description: Hourly rate applicable for this earning.
          format: double
          nullable: true
          type: number
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the line item. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The year-to-date amount of the deduction.
          format: double
          nullable: true
          type: number
      required:
        - canonical_description
        - current_amount
        - description
        - hours
        - iso_currency_code
        - rate
        - unofficial_currency_code
        - ytd_amount
      title: PayStubEarningsBreakdown
      type: object
    PayStubEarningsBreakdownCanonicalDescription:
      description: Commonly used term to describe the earning line item.
      nullable: true
      type: string
      x-override-enum-values-shown:
        - BONUS
        - COMMISSION
        - OVERTIME
        - PAID_TIME_OFF
        - REGULAR_PAY
        - VACATION
        - BASIC_ALLOWANCE_HOUSING
        - BASIC_ALLOWANCE_SUBSISTENCE
        - OTHER
        - null
    PayStubEarningsTotal:
      additionalProperties: true
      description: An object representing both the current pay period and year to date amount for an earning category.
      properties:
        current_amount:
          description: Total amount of the earnings for this pay period.
          format: double
          nullable: true
          type: number
        hours:
          description: Total number of hours worked for this pay period.
          nullable: true
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the security. 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 `iso_currency_code`s.
          nullable: true
          type: string
        ytd_amount:
          description: The total year-to-date amount of the earnings.
          format: double
          nullable: true
          type: number
      required:
        - current_amount
        - hours
        - iso_currency_code
        - unofficial_currency_code
        - ytd_amount
      title: PayStubEarningsTotal
      type: object
    PayStubPayPeriodDetails:
      additionalProperties: true
      description: Details about the pay period.
      properties:
        distribution_breakdown:
          items:
            $ref: "#/components/schemas/PayStubDistributionBreakdown"
          type: array
        end_date:
          description: The date on which the pay period ended, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ("yyyy-mm-dd").
          format: date
          nullable: true
          type: string
        gross_earnings:
          description: Total earnings before tax/deductions.
          format: double
          nullable: true
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        pay_amount:
          description: The amount of the paycheck.
          format: double
          nullable: true
          type: number
        pay_basis:
          $ref: "#/components/schemas/CreditPayStubPayBasisType"
        pay_date:
          description: The date on which the pay stub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ("yyyy-mm-dd").
          format: date
          nullable: true
          type: string
        pay_frequency:
          description: The frequency at which an individual is paid.
          nullable: true
          type: string
          x-override-enum-values-shown:
            - UNKNOWN
            - WEEKLY
            - BIWEEKLY
            - SEMI_MONTHLY
            - MONTHLY
            - null
        start_date:
          description: The date on which the pay period started, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ("yyyy-mm-dd").
          format: date
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the net pay. 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 `iso_currency_code`s.
          nullable: true
          type: string
      required:
        - pay_amount
        - distribution_breakdown
        - end_date
        - gross_earnings
        - iso_currency_code
        - pay_date
        - pay_frequency
        - start_date
        - unofficial_currency_code
      title: PayStubPayPeriodDetails
      type: object
    PayStubTaxpayerID:
      additionalProperties: true
      description: Taxpayer ID of the individual receiving the paystub.
      properties:
        id_mask:
          description: ID mask; i.e. last 4 digits of the taxpayer ID.
          nullable: true
          type: string
        id_type:
          description: Type of ID, e.g. 'SSN'.
          nullable: true
          type: string
      required:
        - id_type
        - id_mask
      title: PayStubTaxpayerID
      type: object
    PaymentAmount:
      additionalProperties: true
      description: The amount and currency of a payment
      properties:
        currency:
          $ref: "#/components/schemas/PaymentAmountCurrency"
        value:
          description: The amount of the payment. Must contain at most two digits of precision e.g. `1.23`. Minimum accepted value is `1`.
          format: double
          type: number
      required:
        - currency
        - value
      title: PaymentAmount
      type: object
    PaymentAmountCurrency:
      description: The ISO-4217 currency code of the payment. For standing orders and payment consents, `"GBP"` must be used.
      enum:
        - GBP
        - EUR
        - PLN
        - SEK
        - DKK
        - NOK
      maxLength: 3
      minLength: 3
      type: string
    PaymentAmountNullable:
      additionalProperties: true
      description: The amount and currency of a payment
      nullable: true
      properties:
        currency:
          $ref: "#/components/schemas/PaymentAmountCurrency"
        value:
          description: The amount of the payment. Must contain at most two digits of precision e.g. `1.23`.
          format: double
          minimum: 0.01
          type: number
      required:
        - currency
        - value
      title: PaymentAmount
      type: object
    PaymentAmountRefunded:
      allOf:
        - $ref: "#/components/schemas/PaymentAmountNullable"
        - additionalProperties: true
          description: The amount that has been refunded already. Subtract this from the payment amount to calculate the amount still available to refund.
          type: object
      description: The amount and currency of a payment
    PaymentAmountToRefund:
      allOf:
        - $ref: "#/components/schemas/PaymentAmountNullable"
        - additionalProperties: true
          description: An amount to refund the payment partially. If this amount is not specified, the payment is refunded fully for the remaining amount.
          type: object
      description: The amount and currency of a payment
    PaymentChannel:
      description: |-
        The channel used to make a payment.
        `online:` transactions that took place online.

        `in store:` transactions that were made at a physical location.

        `other:` transactions that relate to banks, e.g. fees or deposits.
      enum:
        - online
        - in store
        - other
      title: Transaction Payment Channel
      type: string
    PaymentConsentMaxPaymentAmount:
      allOf:
        - $ref: "#/components/schemas/PaymentAmount"
      description: Maximum amount of a single payment initiated using the payment consent.
    PaymentConsentPeriodicAlignment:
      description: |-
        Where the payment consent period should start.

        `CALENDAR`: line up with a calendar.

        `CONSENT`: on the date of consent creation.
      enum:
        - CALENDAR
        - CONSENT
      type: string
    PaymentConsentPeriodicAmount:
      additionalProperties: true
      description: Defines consent payments limitations per period.
      properties:
        alignment:
          $ref: "#/components/schemas/PaymentConsentPeriodicAlignment"
        amount:
          $ref: "#/components/schemas/PaymentConsentPeriodicAmountAmount"
        interval:
          $ref: "#/components/schemas/PaymentConsentPeriodicInterval"
      required:
        - amount
        - interval
        - alignment
      title: PaymentConsentPeriodicAmount
      type: object
    PaymentConsentPeriodicAmountAmount:
      allOf:
        - $ref: "#/components/schemas/PaymentAmount"
      description: Maximum cumulative amount for all payments in the specified interval.
    PaymentConsentPeriodicInterval:
      description: Payment consent periodic interval.
      enum:
        - DAY
        - WEEK
        - MONTH
        - YEAR
      type: string
    PaymentConsentValidDateTime:
      additionalProperties: true
      description: Life span for the payment consent. After the `to` date the payment consent expires and can no longer be used for payment initiation.
      nullable: true
      properties:
        from:
          description: The date and time from which the consent should be active, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
          format: date-time
          nullable: true
          type: string
        to:
          description: The date and time at which the consent expires, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
          format: date-time
          nullable: true
          type: string
      title: PaymentConsentValidDateTime
      type: object
    PaymentInitiationAddress:
      additionalProperties: true
      description: The optional address of the payment recipient. Required by most institutions outside of the UK.
      nullable: true
      properties:
        city:
          description: The city where the recipient is located. Maximum of 35 characters.
          maxLength: 35
          minLength: 1
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code where the recipient is located.
          maxLength: 2
          minLength: 2
          type: string
        postal_code:
          description: The postal code where the recipient is located. Maximum of 16 characters.
          maxLength: 16
          minLength: 1
          type: string
        street:
          description: An array of length 1-2 representing the street address where the recipient is located. Maximum of 70 characters.
          items:
            minLength: 1
            type: string
          minItems: 1
          type: array
      required:
        - street
        - city
        - postal_code
        - country
      title: PaymentInitiationAddress
      type: object
    PaymentInitiationConsent:
      additionalProperties: true
      description: PaymentInitiationConsent defines a payment initiation consent.
      properties:
        consent_id:
          description: The consent ID.
          minLength: 1
          type: string
        constraints:
          $ref: "#/components/schemas/PaymentInitiationConsentConstraints"
        created_at:
          description: Consent creation timestamp, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
          format: date-time
          type: string
        recipient_id:
          description: The ID of the recipient the payment consent is for.
          minLength: 1
          type: string
        reference:
          description: A reference for the payment consent.
          type: string
        scopes:
          description: An array of payment consent scopes.
          items:
            $ref: "#/components/schemas/PaymentInitiationConsentScope"
          type: array
        status:
          $ref: "#/components/schemas/PaymentInitiationConsentStatus"
      required:
        - consent_id
        - status
        - created_at
        - recipient_id
        - reference
        - constraints
        - scopes
      type: object
    PaymentInitiationConsentConstraints:
      additionalProperties: true
      description: Limitations that will be applied to payments initiated using the payment consent.
      properties:
        max_payment_amount:
          $ref: "#/components/schemas/PaymentConsentMaxPaymentAmount"
        periodic_amounts:
          description: A list of amount limitations per period of time.
          items:
            $ref: "#/components/schemas/PaymentConsentPeriodicAmount"
          minItems: 1
          type: array
        valid_date_time:
          $ref: "#/components/schemas/PaymentConsentValidDateTime"
      required:
        - max_payment_amount
        - periodic_amounts
      title: PaymentInitiationConsentConstraints
      type: object
    PaymentInitiationConsentCreateRequest:
      description: PaymentInitiationConsentCreateRequest defines the request schema for `/payment_initiation/consent/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        constraints:
          $ref: "#/components/schemas/PaymentInitiationConsentConstraints"
        options:
          $ref: "#/components/schemas/ExternalPaymentInitiationConsentOptions"
        recipient_id:
          description: The ID of the recipient the payment consent is for. The created consent can be used to transfer funds to this recipient only.
          type: string
        reference:
          description: A reference for the payment consent. This must be an alphanumeric string with at most 18 characters and must not contain any special characters.
          maxLength: 18
          minLength: 1
          type: string
        scopes:
          description: An array of payment consent scopes.
          items:
            $ref: "#/components/schemas/PaymentInitiationConsentScope"
          minItems: 1
          type: array
          uniqueItems: true
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - recipient_id
        - reference
        - scopes
        - constraints
      type: object
    PaymentInitiationConsentCreateResponse:
      additionalProperties: true
      description: PaymentInitiationConsentCreateResponse defines the response schema for `/payment_initiation/consent/create`
      properties:
        consent_id:
          description: A unique ID identifying the payment consent.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
        status:
          $ref: "#/components/schemas/PaymentInitiationConsentStatus"
      required:
        - consent_id
        - status
        - request_id
      type: object
    PaymentInitiationConsentGetRequest:
      description: PaymentInitiationConsentGetRequest defines the request schema for `/payment_initiation/consent/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        consent_id:
          description: The `consent_id` returned from `/payment_initiation/consent/create`.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - consent_id
      type: object
    PaymentInitiationConsentGetResponse:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/PaymentInitiationConsent"
        - properties:
            request_id:
              $ref: "#/components/schemas/RequestID"
          type: object
      description: PaymentInitiationConsentGetResponse defines the response schema for `/payment_initation/consent/get`
      required:
        - request_id
      type: object
    PaymentInitiationConsentPaymentExecuteRequest:
      description: PaymentInitiationConsentPaymentExecuteRequest defines the request schema for `/payment_initiation/consent/payment/execute`
      properties:
        amount:
          $ref: "#/components/schemas/PaymentAmount"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        consent_id:
          description: The consent ID.
          type: string
        idempotency_key:
          $ref: "#/components/schemas/ConsentPaymentIdempotencyKey"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - consent_id
        - amount
        - idempotency_key
      type: object
    PaymentInitiationConsentPaymentExecuteResponse:
      additionalProperties: true
      description: PaymentInitiationConsentPaymentExecuteResponse defines the response schema for `/payment_initiation/consent/payment/execute`
      properties:
        payment_id:
          description: A unique ID identifying the payment
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
        status:
          $ref: "#/components/schemas/PaymentInitiationPaymentStatus"
      required:
        - payment_id
        - status
        - request_id
      type: object
    PaymentInitiationConsentRevokeRequest:
      description: PaymentInitiationConsentRevokeRequest defines the request schema for `/payment_initiation/consent/revoke`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        consent_id:
          description: The consent ID.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - consent_id
      type: object
    PaymentInitiationConsentRevokeResponse:
      additionalProperties: true
      description: PaymentInitiationConsentRevokeResponse defines the response schema for `/payment_initation/consent/revoke`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      type: object
    PaymentInitiationConsentScope:
      description: |-
        Payment consent scope. Defines possible directions for payments made with the given consent.

        `ME_TO_ME`: Allows moving money between accounts owned by the same user.

        `EXTERNAL`: Allows initiating payments from the user's account to third parties.
      enum:
        - ME_TO_ME
        - EXTERNAL
      title: PaymentInitiationConsentScope
      type: string
    PaymentInitiationConsentStatus:
      description: |-
        The status of the payment consent.

        `UNAUTHORISED`: Consent created, but requires user authorisation.

        `REJECTED`: Consent authorisation was rejected by the user and/or the bank.

        `AUTHORISED`: Consent is active and ready to be used.

        `REVOKED`: Consent has been revoked and can no longer be used.

        `EXPIRED`: Consent is no longer valid.
      enum:
        - UNAUTHORISED
        - AUTHORISED
        - REVOKED
        - REJECTED
        - EXPIRED
      type: string
    PaymentInitiationMaximumPaymentAmount:
      additionalProperties:
        type: string
      description: |
        A mapping of currency to maximum payment amount (denominated in the smallest unit of currency) supported by the institution.

        Example: `{"GBP": "10000"}`
      type: object
    PaymentInitiationMetadata:
      additionalProperties: true
      description: Metadata that captures what specific payment configurations an institution supports when making Payment Initiation requests.
      nullable: true
      properties:
        maximum_payment_amount:
          $ref: "#/components/schemas/PaymentInitiationMaximumPaymentAmount"
        standing_order_metadata:
          $ref: "#/components/schemas/PaymentInitiationStandingOrderMetadata"
        supports_international_payments:
          description: Indicates whether the institution supports payments from a different country.
          type: boolean
        supports_refund_details:
          description: Indicates whether the institution supports returning refund details when initiating a payment.
          type: boolean
        supports_sepa_instant:
          description: Indicates whether the institution supports SEPA Instant payments.
          type: boolean
      required:
        - supports_international_payments
        - supports_sepa_instant
        - maximum_payment_amount
        - supports_refund_details
        - standing_order_metadata
      title: PaymentInitiationMetadata
      type: object
    PaymentInitiationOptionalRestrictionBacs:
      allOf:
        - $ref: "#/components/schemas/RecipientBACS"
        - additionalProperties: true
          type: object
      description: An optional object used to restrict the accounts used for payments. If provided, the end user will be able to send payments only from the specified bank account.
      nullable: true
    PaymentInitiationPayment:
      additionalProperties: true
      description: PaymentInitiationPayment defines a payment initiation payment
      properties:
        adjusted_reference:
          description: The value of the reference sent to the bank after adjustment to pass bank validation rules.
          nullable: true
          type: string
        adjusted_scheme:
          $ref: "#/components/schemas/PaymentScheme"
        amount:
          $ref: "#/components/schemas/PaymentAmount"
        amount_refunded:
          $ref: "#/components/schemas/PaymentAmountRefunded"
        bacs:
          $ref: "#/components/schemas/SenderBACSNullable"
        consent_id:
          description: The payment consent ID that this payment was initiated with. Is present only when payment was initiated using the payment consent.
          nullable: true
          type: string
        iban:
          description: The International Bank Account Number (IBAN) for the sender, if specified in the `/payment_initiation/payment/create` call.
          nullable: true
          type: string
        last_status_update:
          description: The date and time of the last time the `status` was updated, in IS0 8601 format
          format: date-time
          type: string
        payment_id:
          description: The ID of the payment. Like all Plaid identifiers, the `payment_id` is case sensitive.
          type: string
        recipient_id:
          description: The ID of the recipient
          type: string
        reference:
          description: A reference for the payment.
          type: string
        refund_details:
          $ref: "#/components/schemas/ExternalPaymentRefundDetails"
        refund_ids:
          description: Refund IDs associated with the payment.
          items:
            type: string
          nullable: true
          type: array
        schedule:
          $ref: "#/components/schemas/ExternalPaymentScheduleGet"
        scheme:
          $ref: "#/components/schemas/PaymentScheme"
        status:
          $ref: "#/components/schemas/PaymentInitiationPaymentStatus"
        transaction_id:
          description: The transaction ID that this payment is associated with, if any. This is present only when a payment was initiated using virtual accounts.
          nullable: true
          type: string
        wallet_id:
          description: The EMI (E-Money Institution) wallet that this payment is associated with, if any. This wallet is used as an intermediary account to enable Plaid to reconcile the settlement of funds for Payment Initiation requests.
          nullable: true
          type: string
      required:
        - payment_id
        - amount
        - status
        - recipient_id
        - reference
        - last_status_update
        - bacs
        - iban
      type: object
    PaymentInitiationPaymentCreateRequest:
      description: PaymentInitiationPaymentCreateRequest defines the request schema for `/payment_initiation/payment/create`
      properties:
        amount:
          $ref: "#/components/schemas/PaymentAmount"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/ExternalPaymentOptions"
        recipient_id:
          description: The ID of the recipient the payment is for.
          type: string
        reference:
          description: |-
            A reference for the payment. This must be an alphanumeric string with at most 18 characters and must not contain any special characters (since not all institutions support them).
            In order to track settlement via Payment Confirmation, each payment must have a unique reference. If the reference provided through the API is not unique, Plaid will adjust it.
            Both the originally provided and automatically adjusted references (if any) can be found in the `reference` and `adjusted_reference` fields, respectively.
          maxLength: 18
          minLength: 1
          type: string
        schedule:
          $ref: "#/components/schemas/ExternalPaymentScheduleRequest"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - recipient_id
        - reference
        - amount
      type: object
    PaymentInitiationPaymentCreateResponse:
      additionalProperties: true
      description: PaymentInitiationPaymentCreateResponse defines the response schema for `/payment_initiation/payment/create`
      properties:
        payment_id:
          description: A unique ID identifying the payment
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
        status:
          $ref: "#/components/schemas/PaymentInitiationPaymentCreateStatus"
      required:
        - payment_id
        - status
        - request_id
      type: object
    PaymentInitiationPaymentCreateStatus:
      description: |-
        For a payment returned by this endpoint, there is only one possible value:

        `PAYMENT_STATUS_INPUT_NEEDED`: The initial phase of the payment
      enum:
        - PAYMENT_STATUS_INPUT_NEEDED
      type: string
    PaymentInitiationPaymentGetRequest:
      description: PaymentInitiationPaymentGetRequest defines the request schema for `/payment_initiation/payment/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        payment_id:
          description: The `payment_id` returned from `/payment_initiation/payment/create`.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - payment_id
      type: object
    PaymentInitiationPaymentGetResponse:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/PaymentInitiationPayment"
        - properties:
            request_id:
              $ref: "#/components/schemas/RequestID"
          type: object
      description: PaymentInitiationPaymentGetResponse defines the response schema for `/payment_initation/payment/get`
      required:
        - request_id
        - payment_id
        - amount
        - status
        - recipient_id
        - reference
        - last_status_update
        - bacs
        - iban
    PaymentInitiationPaymentListRequest:
      description: PaymentInitiationPaymentListRequest defines the request schema for `/payment_initiation/payment/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        consent_id:
          description: The consent ID. If specified, only payments, executed using this consent, will be returned.
          nullable: true
          type: string
        count:
          default: 10
          description: The maximum number of payments to return. If `count` is not specified, a maximum of 10 payments will be returned, beginning with the most recent payment before the cursor (if specified).
          maximum: 200
          minimum: 1
          nullable: true
          type: integer
        cursor:
          description: A string in RFC 3339 format (i.e. "2019-12-06T22:35:49Z"). Only payments created before the cursor will be returned.
          format: date-time
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      type: object
    PaymentInitiationPaymentListResponse:
      additionalProperties: true
      description: PaymentInitiationPaymentListResponse defines the response schema for `/payment_initiation/payment/list`
      properties:
        next_cursor:
          description: The value that, when used as the optional `cursor` parameter to `/payment_initiation/payment/list`, will return the next unreturned payment as its first payment.
          format: date-time
          nullable: true
          type: string
        payments:
          description: An array of payments that have been created, associated with the given `client_id`.
          items:
            $ref: "#/components/schemas/PaymentInitiationPayment"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - payments
        - next_cursor
        - request_id
      type: object
    PaymentInitiationPaymentReverseRequest:
      description: PaymentInitiationPaymentReverseRequest defines the request schema for `/payment_initiation/payment/reverse`
      properties:
        amount:
          $ref: "#/components/schemas/PaymentAmountToRefund"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        idempotency_key:
          $ref: "#/components/schemas/WalletTransactionIdempotencyKey"
        payment_id:
          description: The ID of the payment to reverse
          type: string
        reference:
          description: A reference for the refund. This must be an alphanumeric string with 6 to 18 characters and must not contain any special characters or spaces.
          maxLength: 18
          minLength: 6
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - payment_id
        - idempotency_key
        - reference
      type: object
    PaymentInitiationPaymentReverseResponse:
      additionalProperties: true
      description: PaymentInitiationPaymentReverseResponse defines the response schema for `/payment_initation/payment/reverse`
      properties:
        refund_id:
          description: A unique ID identifying the refund
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
        status:
          $ref: "#/components/schemas/WalletTransactionStatus"
      required:
        - refund_id
        - request_id
        - status
      type: object
    PaymentInitiationPaymentStatus:
      description: |-
        The status of the payment.

        `PAYMENT_STATUS_INPUT_NEEDED`: This is the initial state of all payments. It indicates that the payment is waiting on user input to continue processing. A payment may re-enter this state later on if further input is needed.

        `PAYMENT_STATUS_INITIATED`: The payment has been successfully authorised and accepted by the financial institution but has not been executed.

        `PAYMENT_STATUS_INSUFFICIENT_FUNDS`: The payment has failed due to insufficient funds.

        `PAYMENT_STATUS_FAILED`: The payment has failed to be initiated. This error is retryable once the root cause is resolved.

        `PAYMENT_STATUS_BLOCKED`: The payment has been blocked. This is a retryable error.

        `PAYMENT_STATUS_AUTHORISING`: The payment is currently being processed. The payment will automatically exit this state when the financial institution has authorised the transaction.

        `PAYMENT_STATUS_CANCELLED`: The payment was cancelled during authorisation.

        `PAYMENT_STATUS_EXECUTED`: The payment has been successfully executed and is considered complete.

        `PAYMENT_STATUS_SETTLED`: The payment has settled and funds are available for use. Payment settlement can only be guaranteed by using Plaid virtual accounts. A payment will typically settle within seconds to several days, depending on which payment rail is used.

        `PAYMENT_STATUS_ESTABLISHED`: Indicates that the standing order has been successfully established. This state is only used for standing orders.

        `PAYMENT_STATUS_REJECTED`: The payment was rejected by the financial institution.

        Deprecated:
        These statuses will be removed in a future release.

        `PAYMENT_STATUS_UNKNOWN`: The payment status is unknown.

        `PAYMENT_STATUS_PROCESSING`: The payment is currently being processed. The payment will automatically exit this state when processing is complete.

        `PAYMENT_STATUS_COMPLETED`: Indicates that the standing order has been successfully established. This state is only used for standing orders.
      enum:
        - PAYMENT_STATUS_INPUT_NEEDED
        - PAYMENT_STATUS_PROCESSING
        - PAYMENT_STATUS_INITIATED
        - PAYMENT_STATUS_COMPLETED
        - PAYMENT_STATUS_INSUFFICIENT_FUNDS
        - PAYMENT_STATUS_FAILED
        - PAYMENT_STATUS_BLOCKED
        - PAYMENT_STATUS_UNKNOWN
        - PAYMENT_STATUS_EXECUTED
        - PAYMENT_STATUS_SETTLED
        - PAYMENT_STATUS_AUTHORISING
        - PAYMENT_STATUS_CANCELLED
        - PAYMENT_STATUS_ESTABLISHED
        - PAYMENT_STATUS_REJECTED
      type: string
    PaymentInitiationPaymentTokenCreateRequest:
      description: PaymentInitiationPaymentTokenCreateRequest defines the request schema for `/payment_initiation/payment/token/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        payment_id:
          description: The `payment_id` returned from `/payment_initiation/payment/create`.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - payment_id
      type: object
    PaymentInitiationPaymentTokenCreateResponse:
      additionalProperties: true
      description: PaymentInitiationPaymentTokenCreateResponse defines the response schema for `/payment_initiation/payment/token/create`
      properties:
        payment_token:
          description: A `payment_token` that can be provided to Link initialization to enter the payment initiation flow
          type: string
        payment_token_expiration_time:
          description: The date and time at which the token will expire, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format. A `payment_token` expires after 15 minutes.
          format: date-time
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - payment_token
        - payment_token_expiration_time
        - request_id
      type: object
    PaymentInitiationRecipient:
      additionalProperties: true
      description: PaymentInitiationRecipient defines a payment initiation recipient
      properties:
        address:
          $ref: "#/components/schemas/PaymentInitiationAddress"
        bacs:
          $ref: "#/components/schemas/RecipientBACSNullable"
        iban:
          description: The International Bank Account Number (IBAN) for the recipient.
          nullable: true
          type: string
        name:
          description: The name of the recipient.
          type: string
        recipient_id:
          description: The ID of the recipient.
          type: string
      required:
        - recipient_id
        - name
      title: PaymentInitiationRecipient
      type: object
    PaymentInitiationRecipientCreateRequest:
      description: PaymentInitiationRecipientCreateRequest defines the request schema for `/payment_initiation/recipient/create`
      properties:
        address:
          $ref: "#/components/schemas/PaymentInitiationAddress"
        bacs:
          $ref: "#/components/schemas/RecipientBACSNullable"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        iban:
          description: The International Bank Account Number (IBAN) for the recipient. If BACS data is not provided, an IBAN is required.
          maxLength: 34
          minLength: 15
          nullable: true
          type: string
        name:
          description: The name of the recipient. We recommend using strings of length 18 or less and avoid special characters to ensure compatibility with all institutions.
          minLength: 1
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - name
      type: object
    PaymentInitiationRecipientCreateResponse:
      additionalProperties: true
      description: PaymentInitiationRecipientCreateResponse defines the response schema for `/payment_initation/recipient/create`
      properties:
        recipient_id:
          description: A unique ID identifying the recipient
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - recipient_id
        - request_id
      type: object
    PaymentInitiationRecipientGetRequest:
      description: PaymentInitiationRecipientGetRequest defines the request schema for `/payment_initiation/recipient/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        recipient_id:
          description: The ID of the recipient
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - recipient_id
      type: object
    PaymentInitiationRecipientGetResponse:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/PaymentInitiationRecipient"
        - properties:
            request_id:
              $ref: "#/components/schemas/RequestID"
          type: object
      description: PaymentInitiationRecipientGetResponse defines the response schema for `/payment_initiation/recipient/get`
      required:
        - recipient_id
        - name
        - request_id
    PaymentInitiationRecipientListRequest:
      description: PaymentInitiationRecipientListRequest defines the request schema for `/payment_initiation/recipient/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      type: object
    PaymentInitiationRecipientListResponse:
      additionalProperties: true
      description: PaymentInitiationRecipientListResponse defines the response schema for `/payment_initiation/recipient/list`
      properties:
        recipients:
          description: An array of payment recipients created for Payment Initiation
          items:
            $ref: "#/components/schemas/PaymentInitiationRecipient"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - recipients
        - request_id
      type: object
    PaymentInitiationStandingOrderMetadata:
      additionalProperties: true
      description: Metadata specifically related to valid Payment Initiation standing order configurations for the institution.
      nullable: true
      properties:
        supports_standing_order_end_date:
          description: Indicates whether the institution supports closed-ended standing orders by providing an end date.
          type: boolean
        supports_standing_order_negative_execution_days:
          description: This is only applicable to `MONTHLY` standing orders. Indicates whether the institution supports negative integers (-1 to -5) for setting up a `MONTHLY` standing order relative to the end of the month.
          type: boolean
        valid_standing_order_intervals:
          description: A list of the valid standing order intervals supported by the institution.
          items:
            $ref: "#/components/schemas/PaymentScheduleInterval"
          type: array
      required:
        - supports_standing_order_end_date
        - supports_standing_order_negative_execution_days
        - valid_standing_order_intervals
      title: PaymentInitiationStandingOrderMetadata
      type: object
    PaymentMeta:
      additionalProperties: true
      description: |-
        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/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.
      properties:
        by_order_of:
          description: The party initiating a wire transfer. Will be `null` if the transaction is not a wire transfer.
          nullable: true
          type: string
        payee:
          description: For transfers, the party that is receiving the transaction.
          nullable: true
          type: string
        payer:
          description: For transfers, the party that is paying the transaction.
          nullable: true
          type: string
        payment_method:
          description: The type of transfer, e.g. 'ACH'
          nullable: true
          type: string
        payment_processor:
          description: The name of the payment processor
          nullable: true
          type: string
        ppd_id:
          description: The ACH PPD ID for the payer.
          nullable: true
          type: string
        reason:
          description: The payer-supplied description of the transfer.
          nullable: true
          type: string
        reference_number:
          description: The transaction reference number supplied by the financial institution.
          nullable: true
          type: string
      required:
        - reference_number
        - ppd_id
        - payee
        - by_order_of
        - payer
        - payment_method
        - payment_processor
        - reason
      title: PaymentMeta
      type: object
    PaymentProfileCreateRequest:
      description: PaymentProfileCreateRequest defines the request schema for `/payment_profile/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      type: object
    PaymentProfileCreateResponse:
      additionalProperties: true
      description: PaymentProfileCreateResponse defines the response schema for `/payment_profile/create`
      properties:
        payment_profile_token:
          $ref: "#/components/schemas/PaymentProfileToken"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - payment_profile_token
        - request_id
      type: object
    PaymentProfileGetRequest:
      description: PaymentProfileGetRequest defines the request schema for `/payment_profile/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        payment_profile_token:
          $ref: "#/components/schemas/PaymentProfileToken"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - payment_profile_token
      type: object
    PaymentProfileGetResponse:
      additionalProperties: true
      description: PaymentProfileGetResponse defines the response schema for `/payment_profile/get`
      properties:
        created_at:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the time the given Payment Profile was created at
          format: date-time
          type: string
        deleted_at:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the time the given Payment Profile was deleted at. Always `null` if the Payment Profile has not been deleted
          format: date-time
          nullable: true
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
        status:
          $ref: "#/components/schemas/PaymentProfileStatus"
        updated_at:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the last time the given Payment Profile was updated at
          format: date-time
          type: string
      required:
        - request_id
        - status
        - created_at
        - updated_at
        - deleted_at
      type: object
    PaymentProfileRemoveRequest:
      description: PaymentProfileRemoveRequest defines the request schema for `/payment_profile/remove`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        payment_profile_token:
          $ref: "#/components/schemas/PaymentProfileToken"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - payment_profile_token
      type: object
    PaymentProfileRemoveResponse:
      additionalProperties: true
      description: PaymentProfileRemoveResponse defines the response schema for `/payment_profile/remove`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      type: object
    PaymentProfileStatus:
      description: |-
        The status of the given Payment Profile.

        `READY`: This Payment Profile is ready to be used to create transfers using `/transfer/authorization/create` and `/transfer/create`.

        `PENDING`: This Payment Profile is not ready to be used. You’ll need to call `/link/token/create` and provide the `payment_profile_token` in the `transfer.payment_profile_token` field to initiate the account linking experience.

        `REMOVED`: This Payment Profile has been removed.
      enum:
        - PENDING
        - READY
        - REMOVED
      type: string
    PaymentProfileToken:
      description: A payment profile token associated with the Payment Profile data that is being requested.
      title: PaymentProfileToken
      type: string
    PaymentScheduleInterval:
      description: The frequency interval of the payment.
      enum:
        - WEEKLY
        - MONTHLY
      minLength: 1
      title: PaymentScheduleInterval
      type: string
    PaymentScheme:
      description: |-
        Payment scheme. If not specified - the default in the region will be used (e.g. `SEPA_CREDIT_TRANSFER` for EU). Using unsupported values will result in a failed payment.

        `LOCAL_DEFAULT`: The default payment scheme for the selected market and currency will be used.

        `LOCAL_INSTANT`: The instant payment scheme for the selected market and currency will be used (if applicable). Fees may be applied by the institution. If the market does not support an Instant Scheme (e.g. Denmark), the default in the region will be used.

        `SEPA_CREDIT_TRANSFER`: The standard payment to a beneficiary within the SEPA area.

        `SEPA_CREDIT_TRANSFER_INSTANT`: Instant payment within the SEPA area. May involve additional fees and may not be available at some banks.
      enum:
        - null
        - LOCAL_DEFAULT
        - LOCAL_INSTANT
        - SEPA_CREDIT_TRANSFER
        - SEPA_CREDIT_TRANSFER_INSTANT
      nullable: true
      type: string
    PaymentStatusUpdateWebhook:
      additionalProperties: true
      description: Fired when the status of a payment has changed.
      properties:
        adjusted_reference:
          description: The value of the reference sent to the bank after adjustment to pass bank validation rules.
          nullable: true
          type: string
        adjusted_start_date:
          description: The start date sent to the bank after adjusting for holidays or weekends.  Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). If the start date did not require adjustment, or if the payment is not a standing order, this field will be `null`.
          format: date
          nullable: true
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        new_payment_status:
          $ref: "#/components/schemas/PaymentInitiationPaymentStatus"
        old_payment_status:
          $ref: "#/components/schemas/PaymentInitiationPaymentStatus"
        original_reference:
          description: The original value of the reference when creating the payment.
          nullable: true
          type: string
        original_start_date:
          description: The original value of the `start_date` provided during the creation of a standing order. If the payment is not a standing order, this field will be `null`.
          format: date
          nullable: true
          type: string
        payment_id:
          description: The `payment_id` for the payment being updated
          type: string
        timestamp:
          description: The timestamp of the update, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `"2017-09-14T14:42:19.350Z"`
          format: date-time
          type: string
        transaction_id:
          description: The transaction ID that this payment is associated with, if any. This is present only when a payment was initiated using virtual accounts.
          nullable: true
          type: string
        webhook_code:
          description: "`PAYMENT_STATUS_UPDATE`"
          type: string
        webhook_type:
          description: "`PAYMENT_INITIATION`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - payment_id
        - new_payment_status
        - old_payment_status
        - original_reference
        - original_start_date
        - adjusted_start_date
        - timestamp
        - environment
      title: PaymentStatusUpdateWebhook
      type: object
      x-examples:
        example-1:
          adjusted_reference: Account Funding 99
          adjusted_start_date: 2017-09-15
          environment: production
          new_payment_status: PAYMENT_STATUS_INITIATED
          old_payment_status: PAYMENT_STATUS_PROCESSING
          original_reference: Account Funding 99744
          original_start_date: 2017-09-14
          payment_id: payment-id-production-2ba30780-d549-4335-b1fe-c2a938aa39d2
          timestamp: 2017-09-14T14:42:19.350Z
          webhook_code: PAYMENT_STATUS_UPDATE
          webhook_type: PAYMENT_INITIATION
    PayrollIncomeAccountData:
      additionalProperties: true
      description: An object containing account level data.
      nullable: true
      properties:
        account_id:
          description: ID of the payroll provider account.
          nullable: true
          type: string
        pay_frequency:
          description: The frequency at which an individual is paid.
          nullable: true
          type: string
          x-override-enum-values-shown:
            - DAILY
            - WEEKLY
            - BIWEEKLY
            - SEMI_MONTHLY
            - MONTHLY
            - CONTRACT
            - QUARTERLY
            - SEMI_ANNUALLY
            - ANNUALLY
            - OTHER
            - null
        rate_of_pay:
          $ref: "#/components/schemas/PayrollIncomeRateOfPay"
      required:
        - account_id
        - rate_of_pay
        - pay_frequency
      title: PayrollIncomeAccountData
      type: object
    PayrollIncomeObject:
      additionalProperties: true
      description: An object representing payroll data.
      properties:
        account_id:
          description: ID of the payroll provider account.
          nullable: true
          type: string
        form1099s:
          description: Array of tax form 1099s.
          items:
            $ref: "#/components/schemas/Credit1099"
          type: array
        pay_stubs:
          description: Array of pay stubs for the user.
          items:
            $ref: "#/components/schemas/CreditPayStub"
          type: array
        w2s:
          description: Array of tax form W-2s.
          items:
            $ref: "#/components/schemas/CreditW2"
          type: array
      required:
        - account_id
        - pay_stubs
        - w2s
        - form1099s
      title: PayrollIncomeObject
      type: object
    PayrollIncomeRateOfPay:
      additionalProperties: true
      description: An object representing the rate at which an individual is paid.
      properties:
        pay_amount:
          description: The amount at which an employee is paid.
          format: double
          nullable: true
          type: number
        pay_rate:
          description: The rate at which an employee is paid.
          nullable: true
          type: string
          x-override-enum-values-shown:
            - ANNUAL
            - HOURLY
            - CONTRACT
            - WEEKLY
            - BI_WEEKLY
            - MONTHLY
            - SEMI_MONTHLY
            - DAILY
            - COMMISSION
            - OTHER
            - null
      title: PayrollIncomeRateOfPay
      type: object
    PayrollItem:
      description: An object containing information about the payroll item.
      properties:
        accounts:
          items:
            $ref: "#/components/schemas/PayrollIncomeAccountData"
          type: array
        institution_id:
          description: The unique identifier of the institution associated with the Item.
          type: string
        institution_name:
          description: The name of the institution associated with the Item.
          type: string
        item_id:
          $ref: "#/components/schemas/ItemId"
        payroll_income:
          items:
            $ref: "#/components/schemas/PayrollIncomeObject"
          type: array
        status:
          $ref: "#/components/schemas/PayrollItemStatus"
        updated_at:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the Item was updated.
          format: date-time
          nullable: true
          type: string
      required:
        - item_id
        - institution_id
        - institution_name
        - payroll_income
        - status
        - accounts
        - updated_at
      title: PayrollItem
      type: object
    PayrollItemStatus:
      additionalProperties: true
      description: Details about the status of the payroll item.
      nullable: true
      properties:
        processing_status:
          description: |-
            Denotes the processing status for the verification.

            `UNKNOWN`: The processing status could not be determined.

            `PROCESSING_COMPLETE`: The processing has completed and the user has approved for sharing. The data is available to be retrieved.

            `PROCESSING`: The verification is still processing. The data is not available yet.

            `FAILED`: The processing failed to complete successfully.

            `APPROVAL_STATUS_PENDING`: The processing has completed but the user has not yet approved the sharing of the data.
          nullable: true
          title: PayrollItemStatusProcessingStatus
          type: string
          x-override-enum-values-shown:
            - UNKNOWN
            - PROCESSING_COMPLETE
            - PROCESSING
            - FAILED
            - APPROVAL_STATUS_PENDING
      title: PayrollItemStatus
      type: object
    PayrollRiskSignalsItem:
      additionalProperties: true
      description: Object containing fraud risk data pertaining to the Item linked as part of the verification.
      properties:
        item_id:
          $ref: "#/components/schemas/ItemId"
        verification_risk_signals:
          description: Array of payroll income document authenticity data retrieved for each of the user's accounts.
          items:
            $ref: "#/components/schemas/DocumentRiskSignalsObject"
          type: array
      required:
        - item_id
        - verification_risk_signals
      title: PayrollRiskSignalsItem
      type: object
    Paystub:
      additionalProperties: true
      description: An object representing data extracted from the end user's paystub.
      properties:
        deductions:
          $ref: "#/components/schemas/Deductions"
        doc_id:
          description: An identifier of the document referenced by the document metadata.
          type: string
        earnings:
          $ref: "#/components/schemas/Earnings"
        employee:
          $ref: "#/components/schemas/Employee"
        employer:
          $ref: "#/components/schemas/PaystubEmployer"
        employment_details:
          $ref: "#/components/schemas/EmploymentDetails"
        income_breakdown:
          deprecated: true
          items:
            $ref: "#/components/schemas/IncomeBreakdown"
          type: array
        net_pay:
          $ref: "#/components/schemas/NetPay"
        pay_period_details:
          $ref: "#/components/schemas/PayPeriodDetails"
        paystub_details:
          $ref: "#/components/schemas/PaystubDetails"
        ytd_earnings:
          $ref: "#/components/schemas/PaystubYTDDetails"
      required:
        - deductions
        - doc_id
        - earnings
        - employee
        - employer
        - net_pay
        - pay_period_details
      title: Paystub
      type: object
    PaystubAddress:
      additionalProperties: true
      description: Address on the paystub
      properties:
        city:
          description: The full city name.
          nullable: true
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code.
          nullable: true
          type: string
        line1:
          deprecated: true
          description: Street address line 1.
          nullable: true
          type: string
        line2:
          deprecated: true
          description: Street address line 2.
          nullable: true
          type: string
        postal_code:
          description: The postal code of the address.
          nullable: true
          type: string
        region:
          description: |-
            The region or state
            Example: `"NC"`
          nullable: true
          type: string
        state_code:
          deprecated: true
          description: |-
            The region or state
            Example: `"NC"`
          nullable: true
          type: string
        street:
          description: The full street address.
          nullable: true
          type: string
      title: Address
      type: object
    PaystubDeduction:
      additionalProperties: true
      description: Deduction on the paystub
      properties:
        is_pretax:
          description: "`true` if the deduction is pre-tax; `false` otherwise."
          nullable: true
          type: boolean
        total:
          description: The amount of the deduction.
          format: double
          nullable: true
          type: number
        type:
          description: 'The description of the deduction, as provided on the paystub. For example: `"401(k)"`, `"FICA MED TAX"`.'
          nullable: true
          type: string
      required:
        - type
        - is_pretax
        - total
      title: PaystubDeduction
      type: object
    PaystubDetails:
      additionalProperties: true
      deprecated: true
      description: An object representing details that can be found on the paystub.
      properties:
        pay_date:
          description: Pay date on the paystub in the 'YYYY-MM-DD' format.
          format: date
          nullable: true
          type: string
        pay_frequency:
          $ref: "#/components/schemas/PaystubPayFrequency"
        pay_period_end_date:
          description: Ending date of the pay period on the paystub in the 'YYYY-MM-DD' format.
          format: date
          nullable: true
          type: string
        pay_period_start_date:
          description: Beginning date of the pay period on the paystub in the 'YYYY-MM-DD' format.
          format: date
          nullable: true
          type: string
        paystub_provider:
          description: The name of the payroll provider that generated the paystub, e.g. ADP
          nullable: true
          type: string
      title: PaystubDetails
      type: object
    PaystubEmployer:
      additionalProperties: true
      description: Information about the employer on the paystub
      properties:
        address:
          $ref: "#/components/schemas/PaystubAddress"
        name:
          description: The name of the employer on the paystub.
          nullable: true
          type: string
      required:
        - name
      title: Employer
      type: object
    PaystubOverride:
      description: An object representing data from a paystub.
      properties:
        employee:
          $ref: "#/components/schemas/PaystubOverrideEmployee"
        employer:
          $ref: "#/components/schemas/PaystubOverrideEmployer"
        income_breakdown:
          items:
            $ref: "#/components/schemas/IncomeBreakdown"
          type: array
        pay_period_details:
          $ref: "#/components/schemas/PayPeriodDetails"
      title: PaystubOverride
      type: object
    PaystubOverrideEmployee:
      description: The employee on the paystub.
      properties:
        address:
          $ref: "#/components/schemas/PaystubOverrideEmployeeAddress"
        name:
          description: The name of the employee.
          type: string
      type: object
    PaystubOverrideEmployeeAddress:
      description: The address of the employee.
      properties:
        city:
          description: The full city name.
          type: string
        country:
          description: The country of the address.
          type: string
        postal_code:
          description: 5 digit postal code.
          type: string
        region:
          description: |-
            The region or state
            Example: `"NC"`
          type: string
        street:
          description: |-
            The full street address
            Example: `"564 Main Street, APT 15"`
          type: string
      type: object
    PaystubOverrideEmployer:
      description: The employer on the paystub.
      properties:
        name:
          description: The name of the employer.
          type: string
      type: object
    PaystubPayFrequency:
      description: "The frequency at which the employee is paid. Possible values: `MONTHLY`, `BI-WEEKLY`, `WEEKLY`, `SEMI-MONTHLY`."
      enum:
        - MONTHLY
        - BI-WEEKLY
        - WEEKLY
        - SEMI-MONTHLY
        - null
      nullable: true
      type: string
    PaystubYTDDetails:
      additionalProperties: true
      deprecated: true
      description: The amount of income earned year to date, as based on paystub data.
      properties:
        gross_earnings:
          description: Year-to-date gross earnings.
          format: double
          nullable: true
          type: number
        net_earnings:
          description: Year-to-date net (take home) earnings.
          format: double
          nullable: true
          type: number
      title: PaystubYTDDetails
      type: object
    PendingExpirationWebhook:
      additionalProperties: true
      description: Fired when an Item’s access consent is expiring in 7 days. Some Items have explicit expiration times and we try to relay this when possible to reduce service disruption. This can be resolved by having the user go through Link’s update mode.
      properties:
        consent_expiration_time:
          description: The date and time at which the Item's access consent will expire, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format
          format: date-time
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`PENDING_EXPIRATION`"
          type: string
        webhook_type:
          description: "`ITEM`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - consent_expiration_time
        - environment
      title: PendingExpirationWebhook
      type: object
      x-examples:
        example-1:
          consent_expiration_time: 2020-01-15T13:25:17.766Z
          environment: production
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          webhook_code: PENDING_EXPIRATION
          webhook_type: ITEM
    PersonalFinanceCategory:
      additionalProperties: true
      description: |-
        Information describing the intent of the transaction. Most relevant for personal finance use cases, but not limited to such use cases.

        See the [`taxonomy csv file`](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) for a full list of personal finance categories.
      nullable: true
      properties:
        detailed:
          description: A granular category conveying the transaction's intent. This field can also be used as a unique identifier for the category.
          type: string
        primary:
          description: A high level category that communicates the broad category of the transaction.
          type: string
      required:
        - primary
        - detailed
      title: PersonalFinanceCategory
      type: object
    PhoneNumber:
      additionalProperties: true
      description: A phone number
      properties:
        data:
          description: The phone number.
          type: string
        primary:
          description: When `true`, identifies the phone number as the primary number on an account.
          type: boolean
        type:
          description: The type of phone number.
          enum:
            - home
            - work
            - office
            - mobile
            - mobile1
            - other
          type: string
      required:
        - data
        - primary
        - type
      title: PhoneNumber
      type: object
    PhoneNumberMatchScore:
      additionalProperties: true
      description: Score found by matching phone number provided by the API with the phone number on the account at the financial institution. 100 is a perfect match and 0 is a no match. If the account contains multiple owners, the maximum match score is filled.
      nullable: true
      properties:
        score:
          description: Match score for normalized phone number. 100 is a perfect match and 0 is a no match. If the phone number is missing from either the API or financial institution, this is empty.
          nullable: true
          type: integer
      title: PhoneNumberMatchScore
      type: object
    PhoneType:
      description: An enum indicating whether a phone number is a phone line or a fax line.
      enum:
        - phone
        - fax
      type: string
    PhysicalDocumentCategory:
      description: |-
        The type of identity document detected in the images provided. Will always be one of the following values:

          `drivers_license` - A driver's license for the associated country

          `id_card` - A general national identification card, distinct from driver's licenses

          `passport` - A passport for the associated country

          `residence_permit_card` - An identity document permitting a foreign citizen to <em>temporarily</em> reside in the associated country

          `resident_card` - An identity document permitting a foreign citizen to <em>permanently</em> reside in the associated country

        Note: This value may be different from the ID type that the user selects within Link. For example, if they select "Driver's License" but then submit a picture of a passport, this field will say `passport`
      enum:
        - drivers_license
        - id_card
        - passport
        - residence_permit_card
        - resident_card
      example: drivers_license
      type: string
    PhysicalDocumentExtractedData:
      additionalProperties: true
      description: Data extracted from a user-submitted document.
      nullable: true
      properties:
        category:
          $ref: "#/components/schemas/PhysicalDocumentCategory"
        expiration_date:
          $ref: "#/components/schemas/ISO8601DateNullable"
        id_number:
          $ref: "#/components/schemas/PhysicalDocumentIDNumber"
        issuing_country:
          $ref: "#/components/schemas/GenericCountryCode"
        issuing_region:
          $ref: "#/components/schemas/RegionNullable"
      required:
        - id_number
        - category
        - expiration_date
        - issuing_country
        - issuing_region
      type: object
    PhysicalDocumentExtractedDataAnalysis:
      additionalProperties: true
      description: Analysis of the data extracted from the submitted document.
      nullable: true
      properties:
        date_of_birth:
          $ref: "#/components/schemas/DocumentDateOfBirthMatchCode"
        expiration_date:
          $ref: "#/components/schemas/ExpirationDate"
        issuing_country:
          $ref: "#/components/schemas/IssuingCountry"
        name:
          $ref: "#/components/schemas/DocumentNameMatchCode"
      required:
        - name
        - date_of_birth
        - expiration_date
        - issuing_country
      type: object
    PhysicalDocumentIDNumber:
      description: Alpha-numeric ID number extracted via OCR from the user's document image.
      example: AB123456
      nullable: true
      type: string
    PhysicalDocumentImages:
      additionalProperties: true
      description: URLs for downloading original and cropped images for this document submission. The URLs are designed to only allow downloading, not hot linking, so the URL will only serve the document image for 60 seconds before expiring. The expiration time is 60 seconds after the `GET` request for the associated Identity Verification attempt. A new expiring URL is generated with each request, so you can always rerequest the Identity Verification attempt if one of your URLs expires.
      properties:
        cropped_back:
          $ref: "#/components/schemas/DocumentImage__CroppedBack"
        cropped_front:
          $ref: "#/components/schemas/DocumentImage__CroppedFront"
        face:
          $ref: "#/components/schemas/DocumentImage__Face"
        original_back:
          $ref: "#/components/schemas/DocumentImage__Back"
        original_front:
          $ref: "#/components/schemas/DocumentImage__Front"
      required:
        - original_front
        - original_back
        - cropped_front
        - cropped_back
        - face
      type: object
    PlaidError:
      additionalProperties: true
      description: 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. An Item with a non-`null` error object will only be part of an API response when calling `/item/get` to view Item status. Otherwise, error fields will be `null` if no error has occurred; if an error has occurred, an error code will be returned instead.
      nullable: true
      properties:
        causes:
          description: |-
            In the Assets 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 only be provided for the `error_type` `ASSET_REPORT_ERROR`. `causes` will also not be populated inside an error nested within a `warning` object.
          items: {}
          type: array
        display_message:
          description: |-
            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.
          nullable: true
          type: string
        documentation_url:
          description: The URL of a Plaid documentation page with more information about the error
          type: string
        error_code:
          description: The particular error code. Safe for programmatic use.
          type: string
        error_message:
          description: A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
          type: string
        error_type:
          $ref: "#/components/schemas/PlaidErrorType"
        request_id:
          description: A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.
          type: string
        status:
          description: 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.
          nullable: true
          type: number
        suggested_action:
          description: Suggested steps for resolving the error
          nullable: true
          type: string
      required:
        - error_type
        - error_code
        - error_message
        - display_message
      title: Error
      type: object
    PlaidErrorType:
      description: A broad categorization of the error. Safe for programmatic use.
      enum:
        - INVALID_REQUEST
        - INVALID_RESULT
        - INVALID_INPUT
        - INSTITUTION_ERROR
        - RATE_LIMIT_EXCEEDED
        - API_ERROR
        - ITEM_ERROR
        - ASSET_REPORT_ERROR
        - RECAPTCHA_ERROR
        - OAUTH_ERROR
        - PAYMENT_ERROR
        - BANK_TRANSFER_ERROR
        - INCOME_VERIFICATION_ERROR
        - MICRODEPOSITS_ERROR
      title: PlaidErrorType
      type: string
    PlatformIds:
      additionalProperties: true
      description: An object containing a set of ids related to an employee
      properties:
        employee_id:
          description: The ID of an employee as given by their employer
          nullable: true
          type: string
        payroll_id:
          description: The ID of an employee as given by their payroll
          nullable: true
          type: string
        position_id:
          description: The ID of the position of the employee
          nullable: true
          type: string
      title: PlatformIds
      type: object
    PostalCode:
      description: The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
      example: "46001"
      title: PostalCode
      type: string
    PostalCodeNullable:
      description: The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
      example: "46001"
      nullable: true
      title: PostalCode
      type: string
    PreviousIdentityVerificationAttemptID:
      description: The ID for the Identity Verification preceding this session. This field will only be filled if the current Identity Verification is a retry of a previous attempt.
      example: idv_42cF1MNo42r9Xj
      nullable: true
      type: string
    ProcessorApexProcessorTokenCreateRequest:
      description: ProcessorApexProcessorTokenCreateRequest defines the request schema for `/processor/apex/processor_token/create`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        account_id:
          description: The `account_id` value obtained from the `onSuccess` callback in Link
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
        - account_id
      type: object
    ProcessorAuthGetRequest:
      description: ProcessorAuthGetRequest defines the request schema for `/processor/auth/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        processor_token:
          $ref: "#/components/schemas/ProcessorToken"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - processor_token
      type: object
    ProcessorAuthGetResponse:
      additionalProperties: true
      description: ProcessorAuthGetResponse defines the response schema for `/processor/auth/get`
      properties:
        account:
          $ref: "#/components/schemas/AccountBase"
        numbers:
          $ref: "#/components/schemas/ProcessorNumber"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
        - numbers
        - account
      type: object
    ProcessorBalanceGetRequest:
      description: ProcessorBalanceGetRequest defines the request schema for `/processor/balance/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/ProcessorBalanceGetRequestOptions"
        processor_token:
          $ref: "#/components/schemas/ProcessorToken"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - processor_token
      type: object
    ProcessorBalanceGetRequestOptions:
      description: An optional object to filter `/processor/balance/get` results.
      properties:
        min_last_updated_datetime:
          $ref: "#/components/schemas/MinLastUpdatedDatetime"
      type: object
    ProcessorBalanceGetResponse:
      additionalProperties: true
      description: ProcessorBalanceGetResponse defines the response schema for `/processor/balance/get`
      properties:
        account:
          $ref: "#/components/schemas/AccountBase"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - account
        - request_id
      type: object
    ProcessorBankTransferCreateRequest:
      description: Defines the request schema for `/processor/bank_transfer/create`
      properties:
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/BankTransferAmount"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        custom_tag:
          description: An arbitrary string provided by the client for storage with the bank transfer. May be up to 100 characters.
          maxLength: 100
          nullable: true
          type: string
        description:
          description: The transfer description. Maximum of 10 characters.
          maxLength: 10
          type: string
        idempotency_key:
          $ref: "#/components/schemas/BankTransferIdempotencyKey"
        iso_currency_code:
          description: The currency of the transfer amount – should be set to "USD".
          type: string
        metadata:
          $ref: "#/components/schemas/BankTransferMetadata"
        network:
          $ref: "#/components/schemas/BankTransferNetwork"
        origination_account_id:
          description: Plaid’s unique identifier for the origination account for this transfer. If you have more than one origination account, this value must be specified.
          nullable: true
          type: string
        processor_token:
          $ref: "#/components/schemas/ProcessorToken"
        secret:
          $ref: "#/components/schemas/APISecret"
        type:
          $ref: "#/components/schemas/BankTransferType"
        user:
          $ref: "#/components/schemas/BankTransferUser"
      required:
        - idempotency_key
        - processor_token
        - type
        - network
        - amount
        - iso_currency_code
        - description
        - user
      title: ProcessorBankTransferCreateRequest
      type: object
    ProcessorBankTransferCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/processor/bank_transfer/create`
      properties:
        bank_transfer:
          $ref: "#/components/schemas/BankTransfer"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - bank_transfer
        - request_id
      title: ProcessorBankTransferCreateResponse
      type: object
    ProcessorIdentityGetRequest:
      description: ProcessorIdentityGetRequest defines the request schema for `/processor/identity/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        processor_token:
          $ref: "#/components/schemas/ProcessorToken"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - processor_token
      type: object
    ProcessorIdentityGetResponse:
      additionalProperties: true
      description: ProcessorIdentityGetResponse defines the response schema for `/processor/identity/get`
      properties:
        account:
          $ref: "#/components/schemas/AccountIdentity"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - account
        - request_id
      type: object
    ProcessorNumber:
      additionalProperties: true
      description: An object containing identifying numbers used for making electronic transfers to and from the `account`. The identifying number type (ACH, EFT, IBAN, or BACS) used will depend on the country of the account. An account may have more than one number type. If a particular identifying number type is not used by the `account` for which auth data has been requested, a null value will be returned.
      properties:
        ach:
          $ref: "#/components/schemas/NumbersACHNullable"
        bacs:
          $ref: "#/components/schemas/NumbersBACSNullable"
        eft:
          $ref: "#/components/schemas/NumbersEFTNullable"
        international:
          $ref: "#/components/schemas/NumbersInternationalNullable"
      type: object
    ProcessorSignalDecisionReportRequest:
      description: ProcessorSignalDecisionReportRequest defines the request schema for `/processor/signal/decision/report`
      properties:
        amount_instantly_available:
          description: "The amount (in USD) made available to your customers instantly following the debit transaction. It could be a partial amount of the requested transaction (example: 102.05)."
          format: double
          nullable: true
          type: number
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_transaction_id:
          description: Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`
          maxLength: 36
          minLength: 1
          type: string
        days_funds_on_hold:
          description: |-
            The actual number of days (hold time) since the ACH debit transaction that you wait before making funds available to your customers. The holding time could affect the ACH return rate.

            For example, use 0 if you make funds available to your customers instantly or the same day following the debit transaction, or 1 if you make funds available the next day following the debit initialization.
          minimum: 0
          nullable: true
          type: integer
        decision_outcome:
          $ref: "#/components/schemas/SignalDecisionOutcome"
        initiated:
          description: |-
            `true` if the ACH transaction was initiated, `false` otherwise.

            This field must be returned as a boolean. If formatted incorrectly, this will result in an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error.
          type: boolean
        payment_method:
          $ref: "#/components/schemas/SignalPaymentMethod"
        processor_token:
          $ref: "#/components/schemas/ProcessorToken"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - processor_token
        - client_transaction_id
        - initiated
      title: ProcessorSignalDecisionReportRequest
      type: object
    ProcessorSignalDecisionReportResponse:
      additionalProperties: true
      description: ProcessorSignalDecisionReportResponse defines the response schema for `/processor/signal/decision/report`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: ProcessorSignalDecisionReportResponse
      type: object
    ProcessorSignalEvaluateRequest:
      description: ProcessorSignalEvaluateRequest defines the request schema for `/processor/signal/evaluate`
      properties:
        amount:
          description: The transaction amount, in USD (e.g. `102.05`)
          format: double
          type: number
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_transaction_id:
          description: The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal data, you could use your internal ID/identifier for this transaction. The max length for this field is 36 characters.
          maxLength: 36
          minLength: 1
          type: string
        client_user_id:
          description: A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with multiple Items. The max length for this field is 36 characters. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
          maxLength: 36
          type: string
        default_payment_method:
          description: |-
            The default ACH or non-ACH payment method to complete the transaction.
            `SAME_DAY_ACH`: Same Day ACH by NACHA. The debit transaction is processed and settled on the same day
            `NEXT_DAY_ACH`: Next Day ACH settlement for debit transactions, offered by some payment processors
            `STANDARD_ACH`: standard ACH by NACHA
            `REAL_TIME_PAYMENTS`: real-time payments such as RTP and FedNow
            `DEBIT_CARD`: if the default payment is over debit card networks
            `MULTIPLE_PAYMENT_METHODS`: if there is no default debit rail or there are multiple payment methods
            Possible values:  `SAME_DAY_ACH`, `NEXT_DAY_ACH`, `STANDARD_ACH`, `REAL_TIME_PAYMENTS`, `DEBIT_CARD`, `MULTIPLE_PAYMENT_METHODS`
          nullable: true
          type: string
        device:
          $ref: "#/components/schemas/SignalDevice"
        is_recurring:
          description: "**true** if the ACH transaction is a recurring transaction; **false** otherwise "
          nullable: true
          type: boolean
        processor_token:
          $ref: "#/components/schemas/ProcessorToken"
        secret:
          $ref: "#/components/schemas/APISecret"
        user:
          $ref: "#/components/schemas/SignalUser"
        user_present:
          description: "`true` if the end user is present while initiating the ACH transfer and the endpoint is being called; `false` otherwise (for example, when the ACH transfer is scheduled and the end user is not present, or you call this endpoint after the ACH transfer but before submitting the Nacha file for ACH processing)."
          nullable: true
          type: boolean
      required:
        - processor_token
        - client_transaction_id
        - amount
      title: ProcessorSignalEvaluateRequest
      type: object
    ProcessorSignalEvaluateResponse:
      additionalProperties: true
      description: ProcessorSignalEvaluateResponse defines the response schema for `/processor/signal/evaluate`
      properties:
        core_attributes:
          $ref: "#/components/schemas/SignalEvaluateCoreAttributes"
        request_id:
          $ref: "#/components/schemas/RequestID"
        scores:
          $ref: "#/components/schemas/SignalScores"
      required:
        - request_id
        - scores
      title: ProcessorSignalEvaluateResponse
      type: object
    ProcessorSignalReturnReportRequest:
      description: ProcessorSignalReturnReportRequest defines the request schema for `/processor/signal/return/report`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_transaction_id:
          description: Must be the same as the `client_transaction_id` supplied when calling `/processor/signal/evaluate`
          maxLength: 36
          minLength: 1
          type: string
        processor_token:
          $ref: "#/components/schemas/ProcessorToken"
        return_code:
          description: |-
            Must be a valid ACH return code (e.g. "R01")

            If formatted incorrectly, this will result in an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error.
          type: string
        returned_at:
          description: Date and time when you receive the returns from your payment processors, in ISO 8601 format (`YYYY-MM-DDTHH:mm:ssZ`).
          format: date-time
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - processor_token
        - client_transaction_id
        - return_code
      title: ProcessorSignalReturnReportRequest
      type: object
    ProcessorSignalReturnReportResponse:
      additionalProperties: true
      description: ProcessorSignalReturnReportResponse defines the response schema for `/processor/signal/return/report`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: ProcessorSignalReturnReportResponse
      type: object
    ProcessorStripeBankAccountTokenCreateRequest:
      description: ProcessorStripeBankAccountTokenCreateRequest defines the request schema for `/processor/stripe/bank_account/create`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        account_id:
          description: The `account_id` value obtained from the `onSuccess` callback in Link
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
        - account_id
      type: object
    ProcessorStripeBankAccountTokenCreateResponse:
      additionalProperties: true
      description: ProcessorStripeBankAccountTokenCreateResponse defines the response schema for `/processor/stripe/bank_account/create`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        stripe_bank_account_token:
          description: A token that can be sent to Stripe for use in making API calls to Plaid
          type: string
      required:
        - stripe_bank_account_token
        - request_id
      type: object
    ProcessorToken:
      description: "The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`"
      title: ProcessorToken
      type: string
    ProcessorTokenCreateRequest:
      description: ProcessorTokenCreateRequest defines the request schema for `/processor/token/create`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        account_id:
          description: The `account_id` value obtained from the `onSuccess` callback in Link
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        processor:
          description: The processor you are integrating with.
          enum:
            - dwolla
            - galileo
            - modern_treasury
            - ocrolus
            - prime_trust
            - vesta
            - drivewealth
            - vopay
            - achq
            - check
            - checkbook
            - circle
            - sila_money
            - rize
            - svb_api
            - unit
            - wyre
            - lithic
            - alpaca
            - astra
            - moov
            - treasury_prime
            - marqeta
            - checkout
            - solid
            - highnote
            - apex_clearing
            - gusto
            - adyen
            - atomic
            - i2c
            - wepay
            - riskified
            - utb
            - adp_roll
            - fortress_trust
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
        - account_id
        - processor
      type: object
    ProcessorTokenCreateResponse:
      additionalProperties: true
      description: ProcessorTokenCreateResponse defines the response schema for `/processor/token/create` and `/processor/apex/processor_token/create`
      properties:
        processor_token:
          description: The `processor_token` that can then be used by the Plaid partner to make API requests
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - processor_token
        - request_id
      type: object
    ProductAccess:
      additionalProperties: true
      description: The product access being requested. Used to or disallow product access across all accounts. If unset, defaults to all products allowed.
      properties:
        accounts_details_transactions:
          default: true
          description: Allow access to "accounts_details_transactions". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        accounts_routing_number:
          default: true
          description: Allow access to "accounts_routing_number". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        accounts_statements:
          default: true
          description: Allow access to "accounts_statements". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        accounts_tax_statements:
          default: true
          description: Allow access to "accounts_tax_statements". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        auth:
          default: true
          description: Allow access to account number details. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        customers_profiles:
          default: true
          description: Allow access to "customers_profiles". Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        identity:
          default: true
          description: Allow access to the Identity product (name, email, phone, address). Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        statements:
          default: true
          description: Allow access to statements. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
        transactions:
          default: true
          description: Allow access to transaction details. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.
          nullable: true
          type: boolean
      type: object
    ProductStatus:
      additionalProperties: true
      description: A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.
      nullable: true
      properties:
        breakdown:
          $ref: "#/components/schemas/ProductStatusBreakdown"
        last_status_change:
          description: |
            [ISO 8601](https://wikipedia.org/wiki/ISO_8601) formatted timestamp of the last status change for the institution.
          format: date-time
          type: string
        status:
          deprecated: true
          description: |-
            This field is deprecated in favor of the `breakdown` object, which provides more granular institution health data.

            `HEALTHY`: the majority of requests are successful
            `DEGRADED`: only some requests are successful
            `DOWN`: all requests are failing
          enum:
            - HEALTHY
            - DEGRADED
            - DOWN
          type: string
      required:
        - status
        - last_status_change
        - breakdown
      title: ProductStatus
      type: object
    ProductStatusBreakdown:
      additionalProperties: true
      description: A detailed breakdown of the institution's performance for a request type. The values for `success`, `error_plaid`, and `error_institution` sum to 1. The time range used for calculating the breakdown may range from the most recent few minutes to the past six hours. In general, smaller institutions will show status that was calculated over a longer period of time. For Investment updates, which are refreshed less frequently, the period assessed may be 24 hours or more. For more details, see [Institution status details](https://plaid.com/docs/account/activity/#institution-status-details).
      properties:
        error_institution:
          description: The percentage of logins that are failing due to an issue in the institution's system, expressed as a decimal.
          format: double
          type: number
        error_plaid:
          description: |
            The percentage of logins that are failing due to an internal Plaid issue, expressed as a decimal.
          format: double
          type: number
        refresh_interval:
          description: The `refresh_interval` may be `DELAYED` or `STOPPED` even when the success rate is high. This value is only returned for Transactions status breakdowns.
          enum:
            - NORMAL
            - DELAYED
            - STOPPED
          type: string
        success:
          description: The percentage of login attempts that are successful, expressed as a decimal.
          format: double
          type: number
      required:
        - success
        - error_plaid
        - error_institution
      title: StatusBreakdown
      type: object
    Products:
      description: A list of products that an institution can support. All Items must be initialized with at least one product. The Balance product is always available and does not need to be specified during initialization.
      enum:
        - assets
        - auth
        - balance
        - identity
        - investments
        - liabilities
        - payment_initiation
        - identity_verification
        - transactions
        - credit_details
        - income
        - income_verification
        - deposit_switch
        - standing_orders
        - transfer
        - employment
        - recurring_transactions
        - signal
      title: Products
      type: string
    ProgramArchived:
      description: Archived programs are read-only and cannot screen new customers nor participate in ongoing monitoring.
      example: false
      title: Archived
      type: boolean
    ProgramNameSensitivity:
      description: |-
        The valid name matching sensitivity configurations for a screening program. Note that while certain matching techniques may be more prevalent on less strict settings, all matching algorithms are enabled for every sensitivity.

        `coarse` - See more potential matches. This sensitivity will see more broad phonetic matches across alphabets that make missing a potential hit very unlikely. This setting is noisier and will require more manual review.

        `balanced` - A good default for most companies. This sensitivity is balanced to show high quality hits with reduced noise.

        `strict` - Aggressive false positive reduction. This sensitivity will require names to be more similar than `coarse` and `balanced` settings, relying less on phonetics, while still accounting for character transpositions, missing tokens, and other common permutations.

        `exact` - Matches must be nearly exact. This sensitivity will only show hits with exact or nearly exact name matches with only basic correction such as extraneous symbols and capitalization. This setting is generally not recommended unless you have a very specific use case.
      enum:
        - coarse
        - balanced
        - strict
        - exact
      example: balanced
      title: ProgramNameSensitivity
      type: string
    ProjectedIncomeSummaryFieldNumber:
      allOf:
        - $ref: "#/components/schemas/IncomeSummaryFieldNumber"
        - additionalProperties: true
          description: The employee's estimated annual salary, as derived from information reported on the paystub.
          type: object
      description: The employee's estimated annual salary, as derived from information reported on the paystub.
    ProxyType:
      description: |-
        An enum indicating whether a network proxy is present and if so what type it is.

        `none_detected` indicates the user is not on a detectable proxy network.

        `tor` indicates the user was using a Tor browser, which sends encrypted traffic on a decentralized network and is somewhat similar to a VPN (Virtual Private Network).

        `vpn` indicates the user is on a VPN (Virtual Private Network)

        `web_proxy` indicates the user is on a web proxy server, which may allow them to conceal information such as their IP address or other identifying information.

        `public_proxy` indicates the user is on a public web proxy server, which is similar to a web proxy but can be shared by multiple users. This may allow multiple users to appear as if they have the same IP address for instance.
      enum:
        - none_detected
        - tor
        - vpn
        - web_proxy
        - public_proxy
      nullable: true
      type: string
    Recaptcha_RequiredError:
      additionalProperties: true
      description: The request was flagged by Plaid's fraud system, and requires additional verification to ensure they are not a bot.
      properties:
        common_causes:
          description: Plaid's fraud system detects abusive traffic and considers a variety of parameters throughout Item creation requests. When a request is considered risky or possibly fraudulent, Link presents a reCAPTCHA for the user to solve.
          type: string
        display_message:
          type: string
        error_code:
          description: RECAPTCHA_REQUIRED
          type: string
        error_type:
          description: RECAPTCHA_ERROR
          type: string
        http_code:
          description: "400"
          type: string
        link_user_experience:
          description: Your user will be prompted to solve a Google reCAPTCHA challenge in the Link Recaptcha pane. If they solve the challenge successfully, the user's request is resubmitted and they are directed to the next Item creation step.
          type: string
        troubleshooting_steps:
          description: |-
            Link will automatically guide your user through reCAPTCHA verification. As a general rule, we recommend instrumenting basic fraud monitoring to detect and protect your website from spam and abuse.

            If your user cannot verify their session, please submit a Support ticket with the following identifiers: `link_session_id` or `request_id`
          type: string
      required:
        - error_type
        - error_code
        - display_message
        - http_code
        - link_user_experience
        - common_causes
        - troubleshooting_steps
      title: Recaptcha_RequiredError
      type: object
      x-examples:
        example-1:
          display_message: null
          error_code: RECAPTCHA_REQUIRED
          error_message: This request requires additional verification. Please resubmit the request after completing the challenge
          error_type: RECAPTCHA_ERROR
          http_code: 400
          request_id: HNTDNrA8F1shFEW
    RecipientBACS:
      additionalProperties: true
      description: An object containing a BACS account number and sort code. If an IBAN is not provided or if you need to accept domestic GBP-denominated payments, BACS data is required.
      nullable: true
      properties:
        account:
          description: The account number of the account. Maximum of 10 characters.
          maxLength: 10
          minLength: 1
          type: string
        sort_code:
          description: The 6-character sort code of the account.
          maxLength: 6
          minLength: 6
          type: string
      title: RecipientBACS
      type: object
    RecipientBACSNullable:
      allOf:
        - $ref: "#/components/schemas/RecipientBACS"
        - additionalProperties: true
          description: The account number and sort code of the recipient's account.
          type: object
      description: An object containing a BACS account number and sort code. If an IBAN is not provided or if this recipient needs to accept domestic GBP-denominated payments, BACS data is required.
      nullable: true
    Recurrence:
      additionalProperties: true
      description: |-
        Insights relating to expenses and deposits that are predicted to occur on a scheduled basis, such as biweekly, monthly, or annually.

        Common examples include loan payments, bill payments, subscriptions, and payroll income.

        This is a beta field, available to all users.
      nullable: true
      properties:
        is_recurring:
          description: Whether or not the transaction is periodically recurring.
          nullable: true
          type: boolean
      title: Recurrence
      type: object
    RecurringCancelledWebhook:
      additionalProperties: true
      description: Fired when a recurring transfer is cancelled by Plaid.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        recurring_transfer_id:
          $ref: "#/components/schemas/RecurringTransferID"
        webhook_code:
          description: "`RECURRING_CANCELLED`"
          type: string
        webhook_type:
          description: "`TRANSFER`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - recurring_transfer_id
        - environment
      title: RecurringCancelledWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          recurring_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
          webhook_code: RECURRING_CANCELLED
          webhook_type: TRANSFER
    RecurringNewTransferWebhook:
      additionalProperties: true
      description: Fired when a new transfer of a recurring transfer is originated.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        recurring_transfer_id:
          $ref: "#/components/schemas/RecurringTransferID"
        transfer_id:
          $ref: "#/components/schemas/TransferID"
        webhook_code:
          description: "`RECURRING_NEW_TRANSFER`"
          type: string
        webhook_type:
          description: "`TRANSFER`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - recurring_transfer_id
        - transfer_id
        - environment
      title: RecurringNewTransferWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          recurring_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
          transfer_id: 271ef220-dbf8-caeb-a7dc-a2b3e8a80963
          webhook_code: RECURRING_NEW_TRANSFER
          webhook_type: TRANSFER
    RecurringTransactionFrequency:
      description: |-
        Describes the frequency of the transaction stream.

        `WEEKLY`: Assigned to a transaction stream that occurs approximately every week.

        `BIWEEKLY`: Assigned to a transaction stream that occurs approximately every 2 weeks.

        `SEMI_MONTHLY`: Assigned to a transaction stream that occurs approximately twice per month. This frequency is typically seen for inflow transaction streams.

        `MONTHLY`: Assigned to a transaction stream that occurs approximately every month.

        `ANNUALLY`: Assigned to a transaction stream that occurs approximately every year.

        `UNKNOWN`: Assigned to a transaction stream that does not fit any of the pre-defined frequencies.
      enum:
        - UNKNOWN
        - WEEKLY
        - BIWEEKLY
        - SEMI_MONTHLY
        - MONTHLY
        - ANNUALLY
      title: RecurringTransactionFrequency
      type: string
    RecurringTransactionsUpdateWebhook:
      additionalProperties: true
      description: |-
        Fired when recurring transactions data is updated. This includes when a new recurring stream is detected or when a new transaction is added to an existing recurring stream. The `RECURRING_TRANSACTIONS_UPDATE` webhook will also fire when one or more attributes of the recurring stream changes, which is usually a result of the addition, update, or removal of transactions to the stream.

        After receipt of this webhook, the updated data can be fetched from `/transactions/recurring/get`.
      properties:
        account_ids:
          description: A list of `account_ids` for accounts that have new or updated recurring transactions data.
          items:
            type: string
          type: array
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`RECURRING_TRANSACTIONS_UPDATE`"
          type: string
        webhook_type:
          description: "`TRANSACTIONS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - account_ids
        - environment
      title: RecurringTransactionsUpdateWebhook
      type: object
      x-examples:
        example-1:
          account_ids:
            - lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje
            - lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff
          environment: production
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          webhook_code: RECURRING_TRANSACTIONS_UPDATE
          webhook_type: TRANSACTIONS
    RecurringTransfer:
      additionalProperties: true
      description: Represents a recurring transfer within the Transfers API.
      properties:
        account_id:
          description: The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
          type: string
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/TransferAmount"
        created:
          description: The datetime when this transfer was created. This will be of the form `2006-01-02T15:04:05Z`
          format: date-time
          type: string
        description:
          description: The description of the recurring transfer.
          type: string
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDResponse"
        iso_currency_code:
          description: The currency of the transfer amount, e.g. "USD"
          type: string
        network:
          $ref: "#/components/schemas/TransferNetwork"
        next_origination_date:
          description: |-
            A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).

            The next transfer origination date after bank holiday adjustment.
          format: date
          type: string
        origination_account_id:
          deprecated: true
          description: Plaid’s unique identifier for the origination account that was used for this transfer.
          type: string
          x-hidden-from-docs: true
        recurring_transfer_id:
          $ref: "#/components/schemas/RecurringTransferID"
        schedule:
          $ref: "#/components/schemas/TransferRecurringSchedule"
        status:
          $ref: "#/components/schemas/TransferRecurringStatus"
        test_clock_id:
          description: Plaid’s unique identifier for a test clock.
          nullable: true
          type: string
        transfer_ids:
          items:
            $ref: "#/components/schemas/TransferID"
          type: array
        type:
          $ref: "#/components/schemas/TransferType"
        user:
          $ref: "#/components/schemas/TransferUserInResponse"
      required:
        - recurring_transfer_id
        - created
        - next_origination_date
        - type
        - amount
        - status
        - network
        - iso_currency_code
        - origination_account_id
        - funding_account_id
        - account_id
        - user
        - schedule
        - description
        - transfer_ids
      title: RecurringTransfer
      type: object
    RecurringTransferID:
      description: Plaid’s unique identifier for a recurring transfer.
      title: RecurringTransferID
      type: string
    RecurringTransferNullable:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/RecurringTransfer"
        - nullable: true
          type: object
      description: Represents a recurring transfer within the Transfers API.
      title: RecurringTransferNullable
      type: object
    RecurringTransferSkippedWebhook:
      additionalProperties: true
      description: Fired when Plaid is unable to originate a new ACH transaction of the recurring transfer on the planned date.
      properties:
        authorization_decision:
          $ref: "#/components/schemas/TransferAuthorizationDecision"
        authorization_decision_rationale_code:
          $ref: "#/components/schemas/TransferAuthorizationDecisionRationaleCode"
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        recurring_transfer_id:
          $ref: "#/components/schemas/RecurringTransferID"
        skipped_origination_date:
          description: The planned date on which Plaid is unable to originate a new ACH transaction of the recurring transfer. This will be of the form YYYY-MM-DD.
          format: date
          type: string
        webhook_code:
          description: "`RECURRING_TRANSFER_SKIPPED`"
          type: string
        webhook_type:
          description: "`TRANSFER`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - recurring_transfer_id
        - authorization_decision
        - skipped_origination_date
        - environment
      title: RecurringTransferSkippedWebhook
      type: object
      x-examples:
        example-1:
          authorization_decision: declined
          authorization_decision_rationale_code: NSF
          environment: production
          recurring_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
          skipped_origination_date: 2022-11-30
          webhook_code: RECURRING_TRANSFER_SKIPPED
          webhook_type: TRANSFER
    Region:
      description: An ISO 3166-2 subdivision code. Related terms would be "state", "province", "prefecture", "zone", "subdivision", etc.
      example: IN
      title: Region
      type: string
    RegionNullable:
      description: An ISO 3166-2 subdivision code. Related terms would be "state", "province", "prefecture", "zone", "subdivision", etc.
      example: IN
      nullable: true
      title: Region
      type: string
    RemovedTransaction:
      description: A representation of a removed transaction
      properties:
        transaction_id:
          description: The ID of the removed transaction.
          type: string
      title: RemovedTransaction
      type: object
      x-examples: {}
    ReportType:
      description: The report type. It can be `assets` or `income`.
      enum:
        - assets
        - income
      nullable: false
      title: ReportType
      type: string
    ReportingInformation:
      additionalProperties: true
      description: Information about an report identifier and a report name.
      properties:
        ReportingInformationIdentifier:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          type: string
      required:
        - ReportingInformationIdentifier
      title: ReportingInformation
      type: object
    RequestID:
      description: A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
      title: RequestID
      type: string
    ReviewComment:
      description: A comment submitted by a team member as part of reviewing a watchlist screening.
      example: These look like legitimate matches, rejecting the customer.
      minLength: 1
      nullable: true
      title: ReviewComment
      type: string
    RiskCheckBehavior:
      additionalProperties: true
      description: Result summary object specifying values for `behavior` attributes of risk check, when available.
      nullable: true
      properties:
        bot_detected:
          $ref: "#/components/schemas/RiskCheckBehaviorBotDetectedLabel"
        fraud_ring_detected:
          $ref: "#/components/schemas/RiskCheckBehaviorFraudRingDetectedLabel"
        user_interactions:
          $ref: "#/components/schemas/RiskCheckBehaviorUserInteractionsLabel"
      required:
        - user_interactions
        - fraud_ring_detected
        - bot_detected
      type: object
    RiskCheckBehaviorBotDetectedLabel:
      description: |-
        Field describing the outcome of a bot detection behavior risk check.

        `yes` indicates that automated activity was detected.

        `no` indicates that automated activity was not detected.

        `no_data` indicates there was not enough information available to give an accurate signal.
      enum:
        - yes
        - no
        - no_data
      type: string
    RiskCheckBehaviorFraudRingDetectedLabel:
      description: |-
        Field describing the outcome of a fraud ring behavior risk check.

        `yes` indicates that fraud ring activity was detected.

        `no` indicates that fraud ring activity was not detected.

        `no_data` indicates there was not enough information available to give an accurate signal.
      enum:
        - yes
        - no
        - no_data
      type: string
    RiskCheckBehaviorUserInteractionsLabel:
      description: |-
        Field describing the overall user interaction signals of a behavior risk check. This value represents how familiar the user is with the personal data they provide, based on a number of signals that are collected during their session.

        `genuine` indicates the user has high familiarity with the data they are providing, and that fraud is unlikely.

        `neutral` indicates some signals are present in between `risky` and `genuine`, but there are not enough clear signals to determine an outcome.

        `risky` indicates the user has low familiarity with the data they are providing, and that fraud is likely.

        `no_data` indicates there is not sufficient information to give an accurate signal.
      enum:
        - genuine
        - neutral
        - risky
        - no_data
      example: risky
      type: string
    RiskCheckDetails:
      additionalProperties: true
      description: Additional information for the `risk_check` step.
      nullable: true
      properties:
        behavior:
          $ref: "#/components/schemas/RiskCheckBehavior"
        devices:
          description: Array of result summary objects specifying values for `device` attributes of risk check.
          items:
            $ref: "#/components/schemas/RiskCheckDevice"
          type: array
        email:
          $ref: "#/components/schemas/RiskCheckEmail"
        phone:
          $ref: "#/components/schemas/RiskCheckPhone"
        status:
          $ref: "#/components/schemas/IdentityVerificationStepStatus"
      required:
        - status
        - behavior
        - devices
        - email
        - phone
      type: object
    RiskCheckDevice:
      additionalProperties: true
      description: Result summary object specifying values for `device` attributes of risk check.
      properties:
        ip_proxy_type:
          $ref: "#/components/schemas/ProxyType"
        ip_spam_list_count:
          description: Count of spam lists the IP address is associated with if known.
          example: 1
          nullable: true
          type: integer
        ip_timezone_offset:
          $ref: "#/components/schemas/UTCOffset"
      required:
        - ip_proxy_type
        - ip_spam_list_count
        - ip_timezone_offset
      type: object
    RiskCheckEmail:
      additionalProperties: true
      description: Result summary object specifying values for `email` attributes of risk check.
      nullable: true
      properties:
        breach_count:
          description: Count of all known breaches of this email address if known.
          example: 1
          nullable: true
          type: integer
        domain_is_custom:
          $ref: "#/components/schemas/RiskCheckEmailDomainIsCustom"
        domain_is_disposable:
          $ref: "#/components/schemas/RiskCheckEmailDomainIsDisposable"
        domain_is_free_provider:
          $ref: "#/components/schemas/RiskCheckEmailDomainIsFreeProvider"
        domain_registered_at:
          $ref: "#/components/schemas/ISO8601DateNullable"
        first_breached_at:
          $ref: "#/components/schemas/ISO8601DateNullable"
        is_deliverable:
          $ref: "#/components/schemas/RiskCheckEmailIsDeliverableStatus"
        last_breached_at:
          $ref: "#/components/schemas/ISO8601DateNullable"
        linked_services:
          example:
            - facebook
          items:
            $ref: "#/components/schemas/RiskCheckLinkedService"
          type: array
          uniqueItems: true
        top_level_domain_is_suspicious:
          $ref: "#/components/schemas/RiskCheckEmailTopLevelDomainIsSuspicious"
      required:
        - is_deliverable
        - breach_count
        - first_breached_at
        - last_breached_at
        - domain_registered_at
        - domain_is_free_provider
        - domain_is_custom
        - domain_is_disposable
        - top_level_domain_is_suspicious
        - linked_services
      type: object
    RiskCheckEmailDomainIsCustom:
      description: Indicates whether the email address domain is custom if known, i.e. a company domain and not free or disposable.
      enum:
        - yes
        - no
        - no_data
      example: yes
      type: string
    RiskCheckEmailDomainIsDisposable:
      description: Indicates whether the email domain is listed as disposable if known. Disposable domains are often used to create email addresses that are part of a fake set of user details.
      enum:
        - yes
        - no
        - no_data
      example: yes
      type: string
    RiskCheckEmailDomainIsFreeProvider:
      description: Indicates whether the email address domain is a free provider such as Gmail or Hotmail if known.
      enum:
        - yes
        - no
        - no_data
      example: yes
      type: string
    RiskCheckEmailIsDeliverableStatus:
      description: SMTP-MX check to confirm the email address exists if known.
      enum:
        - yes
        - no
        - no_data
      example: yes
      type: string
    RiskCheckEmailTopLevelDomainIsSuspicious:
      description: Indicates whether the email address top level domain, which is the last part of the domain, is fraudulent or risky if known. In most cases, a suspicious top level domain is also associated with a disposable or high-risk domain.
      enum:
        - yes
        - no
        - no_data
      example: yes
      type: string
    RiskCheckLinkedService:
      description: An enum indicating the type of a linked service.
      enum:
        - apple
        - ebay
        - facebook
        - flickr
        - foursquare
        - github
        - google
        - gravatar
        - instagram
        - lastfm
        - linkedin
        - microsoft
        - myspace
        - pinterest
        - skype
        - spotify
        - telegram
        - tumblr
        - twitter
        - viber
        - vimeo
        - weibo
        - whatsapp
        - yahoo
        - airbnb
        - amazon
        - booking
        - discord
        - kakao
        - ok
        - qzone
        - line
        - snapchat
        - zalo
      type: string
    RiskCheckPhone:
      additionalProperties: true
      description: Result summary object specifying values for `phone` attributes of risk check.
      nullable: true
      properties:
        linked_services:
          example:
            - facebook
          items:
            $ref: "#/components/schemas/RiskCheckLinkedService"
          type: array
          uniqueItems: true
      required:
        - linked_services
      type: object
    RiskSignalDocumentReference:
      additionalProperties: true
      description: Object containing metadata for the document
      properties:
        document_id:
          description: An identifier of the document referenced by the document metadata.
          nullable: true
          type: string
        document_name:
          description: The name of the document
          type: string
      title: RiskSignalDocumentReference
      type: object
    Role:
      additionalProperties: true
      description: ADocumentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ROLE_DETAIL:
          $ref: "#/components/schemas/RoleDetail"
      required:
        - ROLE_DETAIL
      title: Role
      type: object
    RoleDetail:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        PartyRoleType:
          $ref: "#/components/schemas/PartyRoleType"
      required:
        - PartyRoleType
      title: RoleDetail
      type: object
    Roles:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ROLE:
          $ref: "#/components/schemas/Role"
      required:
        - ROLE
      title: Roles
      type: object
    SandboxBankTransferFireWebhookRequest:
      description: Defines the request schema for `/sandbox/bank_transfer/fire_webhook`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        webhook:
          description: The URL to which the webhook should be sent.
          type: string
      required:
        - webhook
      title: SandboxBankTransferFireWebhookRequest
      type: object
    SandboxBankTransferFireWebhookResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/bank_transfer/fire_webhook`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SandboxBankTransferFireWebhookResponse
      type: object
    SandboxBankTransferSimulateRequest:
      description: Defines the request schema for `/sandbox/bank_transfer/simulate`
      properties:
        bank_transfer_id:
          $ref: "#/components/schemas/BankTransferID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        event_type:
          description: |
            The asynchronous event to be simulated. May be: `posted`, `failed`, or `reversed`.

            An error will be returned if the event type is incompatible with the current transfer status. Compatible status --> event type transitions include:

            `pending` --> `failed`

            `pending` --> `posted`

            `posted` --> `reversed`
          type: string
        failure_reason:
          $ref: "#/components/schemas/BankTransferFailure"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - bank_transfer_id
        - event_type
      title: SandboxBankTransferSimulateRequest
      type: object
    SandboxBankTransferSimulateResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/bank_transfer/simulate`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SandboxBankTransferSimulateResponse
      type: object
    SandboxIncomeFireWebhookRequest:
      description: SandboxIncomeFireWebhookRequest defines the request schema for `/sandbox/income/fire_webhook`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        item_id:
          description: The Item ID associated with the verification.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        user_id:
          $ref: "#/components/schemas/UserId"
        verification_status:
          description: |-
            `VERIFICATION_STATUS_PROCESSING_COMPLETE`: The income verification status processing has completed. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the `/income/verification/paystubs/get` endpoint and check the document metadata to see which documents were successfully parsed.

            `VERIFICATION_STATUS_PROCESSING_FAILED`: A failure occurred when attempting to process the verification documentation.

            `VERIFICATION_STATUS_PENDING_APPROVAL`: (deprecated) The income verification has been sent to the user for review.
          enum:
            - VERIFICATION_STATUS_PROCESSING_COMPLETE
            - VERIFICATION_STATUS_PROCESSING_FAILED
            - VERIFICATION_STATUS_PENDING_APPROVAL
          type: string
        webhook:
          description: The URL to which the webhook should be sent.
          type: string
      required:
        - item_id
        - webhook
        - verification_status
      title: SandboxIncomeFireWebhookRequest
      type: object
    SandboxIncomeFireWebhookResponse:
      additionalProperties: true
      description: SandboxIncomeFireWebhookResponse defines the response schema for `/sandbox/income/fire_webhook`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SandboxIncomeFireWebhookResponse
      type: object
    SandboxItemFireWebhookRequest:
      description: SandboxItemFireWebhookRequest defines the request schema for `/sandbox/item/fire_webhook`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        webhook_code:
          description: The webhook codes that can be fired by this test endpoint.
          enum:
            - DEFAULT_UPDATE
            - NEW_ACCOUNTS_AVAILABLE
            - AUTH_DATA_UPDATE
            - RECURRING_TRANSACTIONS_UPDATE
            - SYNC_UPDATES_AVAILABLE
          type: string
        webhook_type:
          $ref: "#/components/schemas/WebhookType"
      required:
        - access_token
        - webhook_code
      type: object
    SandboxItemFireWebhookResponse:
      additionalProperties: true
      description: SandboxItemFireWebhookResponse defines the response schema for `/sandbox/item/fire_webhook`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        webhook_fired:
          description: Value is `true`  if the test` webhook_code`  was successfully fired.
          type: boolean
      required:
        - webhook_fired
        - request_id
      type: object
    SandboxItemResetLoginRequest:
      description: SandboxItemResetLoginRequest defines the request schema for `/sandbox/item/reset_login`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    SandboxItemResetLoginResponse:
      additionalProperties: true
      description: SandboxItemResetLoginResponse defines the response schema for `/sandbox/item/reset_login`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        reset_login:
          description: "`true` if the call succeeded"
          type: boolean
      required:
        - reset_login
        - request_id
      type: object
    SandboxItemSetVerificationStatusRequest:
      description: SandboxItemSetVerificationStatusRequest defines the request schema for `/sandbox/item/set_verification_status`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        account_id:
          description: The `account_id` of the account whose verification status is to be modified
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        verification_status:
          description: The verification status to set the account to.
          enum:
            - automatically_verified
            - verification_expired
          type: string
      required:
        - access_token
        - account_id
        - verification_status
      type: object
    SandboxItemSetVerificationStatusResponse:
      additionalProperties: true
      description: SandboxItemSetVerificationStatusResponse defines the response schema for `/sandbox/item/set_verification_status`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      type: object
    SandboxOauthSelectAccountsRequest:
      description: Defines the request schema for `sandbox/oauth/select_accounts`
      properties:
        accounts:
          items:
            type: string
          type: array
        oauth_state_id:
          type: string
      required:
        - oauth_state_id
        - accounts
      title: SandboxOauthSelectAccountsRequest
      type: object
    SandboxOauthSelectAccountsResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/oauth/select_accounts`
      title: SandboxOauthSelectAccountsResponse
      type: object
    SandboxOverridePassword:
      default: pass_good
      description: Test password to use for the creation of the Sandbox Item. Default value is `pass_good`.
      nullable: true
      type: string
    SandboxOverrideUsername:
      default: user_good
      description: Test username to use for the creation of the Sandbox Item. Default value is `user_good`.
      nullable: true
      type: string
    SandboxPaymentProfileResetLoginRequest:
      description: SandboxPaymentProfileResetLoginRequest defines the request schema for `/sandbox/payment_profile/reset_login`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        payment_profile_token:
          $ref: "#/components/schemas/PaymentProfileToken"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - payment_profile_token
      type: object
    SandboxPaymentProfileResetLoginResponse:
      additionalProperties: true
      description: SandboxPaymentProfileResetLoginResponse defines the response schema for `/sandbox/payment_profile/reset_login`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        reset_login:
          description: "`true` if the call succeeded"
          type: boolean
      required:
        - reset_login
        - request_id
      type: object
    SandboxProcessorTokenCreateRequest:
      description: SandboxProcessorTokenCreateRequest defines the request schema for `/sandbox/processor_token/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        institution_id:
          description: The ID of the institution the Item will be associated with
          type: string
        options:
          $ref: "#/components/schemas/SandboxProcessorTokenCreateRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - institution_id
      type: object
    SandboxProcessorTokenCreateRequestOptions:
      description: An optional set of options to be used when configuring the Item. If specified, must not be `null`.
      properties:
        override_password:
          $ref: "#/components/schemas/SandboxOverridePassword"
        override_username:
          $ref: "#/components/schemas/SandboxOverrideUsername"
      type: object
    SandboxProcessorTokenCreateResponse:
      additionalProperties: true
      description: SandboxProcessorTokenCreateResponse defines the response schema for `/sandbox/processor_token/create`
      properties:
        processor_token:
          description: A processor token that can be used to call the `/processor/` endpoints.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - processor_token
        - request_id
      type: object
    SandboxPublicTokenCreateRequest:
      description: SandboxPublicTokenCreateRequest defines the request schema for `/sandbox/public_token/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        initial_products:
          description: The products to initially pull for the Item. May be any products that the specified `institution_id`  supports. This array may not be empty.
          items:
            $ref: "#/components/schemas/Products"
          minItems: 1
          type: array
          x-override-enum-values-shown:
            - assets
            - auth
            - balance
            - employment
            - identity
            - income_verification
            - identity_verification
            - investments
            - liabilities
            - payment_initiation
            - standing_orders
            - transactions
            - transfer
        institution_id:
          description: The ID of the institution the Item will be associated with
          type: string
        options:
          $ref: "#/components/schemas/SandboxPublicTokenCreateRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        user_token:
          $ref: "#/components/schemas/UserToken"
      required:
        - institution_id
        - initial_products
      type: object
    SandboxPublicTokenCreateRequestIncomeVerificationBankIncome:
      description: Specifies options for Bank Income. This field is required if `income_verification` is included in the `initial_products` array and `bank` is specified in `income_source_types`.
      properties:
        days_requested:
          description: The number of days of data to request for the Bank Income product
          type: integer
      type: object
    SandboxPublicTokenCreateRequestOptions:
      description: An optional set of options to be used when configuring the Item. If specified, must not be `null`.
      properties:
        income_verification:
          $ref: "#/components/schemas/SandboxPublicTokenCreateRequestOptionsIncomeVerification"
        override_password:
          $ref: "#/components/schemas/SandboxOverridePassword"
        override_username:
          $ref: "#/components/schemas/SandboxOverrideUsername"
        transactions:
          $ref: "#/components/schemas/SandboxPublicTokenCreateRequestOptionsTransactions"
        webhook:
          description: Specify a webhook to associate with the new Item.
          type: string
      type: object
    SandboxPublicTokenCreateRequestOptionsIncomeVerification:
      description: A set of parameters for income verification options. This field is required if `income_verification` is included in the `initial_products` array.
      properties:
        bank_income:
          $ref: "#/components/schemas/SandboxPublicTokenCreateRequestIncomeVerificationBankIncome"
        income_source_types:
          description: The types of source income data that users will be permitted to share. Options include `bank` and `payroll`. Currently you can only specify one of these options.
          items:
            $ref: "#/components/schemas/IncomeVerificationSourceType"
          type: array
      type: object
    SandboxPublicTokenCreateRequestOptionsTransactions:
      description: An optional set of parameters corresponding to transactions options.
      properties:
        end_date:
          description: The most recent date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.
          format: date
          type: string
        start_date:
          description: The earliest date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.
          format: date
          type: string
      title: SandboxPublicTokenCreateRequestOptionsTransactions
      type: object
    SandboxPublicTokenCreateResponse:
      additionalProperties: true
      description: SandboxPublicTokenCreateResponse defines the response schema for `/sandbox/public_token/create`
      properties:
        public_token:
          description: A public token that can be exchanged for an access token using `/item/public_token/exchange`
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - public_token
        - request_id
      type: object
    SandboxTransferFireWebhookRequest:
      description: Defines the request schema for `/sandbox/transfer/fire_webhook`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        webhook:
          description: The URL to which the webhook should be sent.
          type: string
      required:
        - webhook
      title: SandboxTransferFireWebhookRequest
      type: object
    SandboxTransferFireWebhookResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/transfer/fire_webhook`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SandboxTransferFireWebhookResponse
      type: object
    SandboxTransferRepaymentSimulateRequest:
      description: Defines the request schema for `/sandbox/transfer/repayment/simulate`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      title: SandboxTransferRepaymentSimulateRequest
      type: object
    SandboxTransferRepaymentSimulateResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/transfer/repayment/simulate`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SandboxTransferSimulateResponse
      type: object
    SandboxTransferSimulateRequest:
      description: Defines the request schema for `/sandbox/transfer/simulate`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        event_type:
          description: |
            The asynchronous event to be simulated. May be: `posted`, `settled`, `failed`, or `returned`.

            An error will be returned if the event type is incompatible with the current transfer status. Compatible status --> event type transitions include:

            `pending` --> `failed`

            `pending` --> `posted`

            `posted` --> `returned`

            `posted` --> `settled`
          type: string
        failure_reason:
          $ref: "#/components/schemas/TransferFailure"
        secret:
          $ref: "#/components/schemas/APISecret"
        transfer_id:
          $ref: "#/components/schemas/TransferID"
      required:
        - transfer_id
        - event_type
      title: SandboxTransferSimulateRequest
      type: object
    SandboxTransferSimulateResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/transfer/simulate`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SandboxTransferSimulateResponse
      type: object
    SandboxTransferSweepSimulateRequest:
      description: Defines the request schema for `/sandbox/transfer/sweep/simulate`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      title: SandboxTransferSweepSimulateRequest
      type: object
    SandboxTransferSweepSimulateResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/transfer/sweep/simulate`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        sweep:
          $ref: "#/components/schemas/SimulatedTransferSweep"
      required:
        - request_id
      title: SandboxTransferSweepSimulateResponse
      type: object
    SandboxTransferTestClockAdvanceRequest:
      description: Defines the request schema for `/sandbox/transfer/test_clock/advance`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        new_virtual_time:
          $ref: "#/components/schemas/VirtualTime"
        secret:
          $ref: "#/components/schemas/APISecret"
        test_clock_id:
          $ref: "#/components/schemas/TransferTestClockID"
      required:
        - test_clock_id
        - new_virtual_time
      title: SandboxTransferTestClockAdvanceRequest
      type: object
    SandboxTransferTestClockAdvanceResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/transfer/test_clock/advance`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SandboxTransferTestClockAdvanceResponse
      type: object
    SandboxTransferTestClockCreateRequest:
      description: Defines the request schema for `/sandbox/transfer/test_clock/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        virtual_time:
          $ref: "#/components/schemas/VirtualTime"
      required:
        - virtual_time
      title: SandboxTransferTestClockCreateRequest
      type: object
    SandboxTransferTestClockCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/transfer/test_clock/create`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        test_clock:
          $ref: "#/components/schemas/TransferTestClock"
      required:
        - test_clock
        - request_id
      title: SandboxTransferTestClockCreateResponse
      type: object
    SandboxTransferTestClockGetRequest:
      description: Defines the request schema for `/sandbox/transfer/test_clock/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        test_clock_id:
          $ref: "#/components/schemas/TransferTestClockID"
      required:
        - test_clock_id
      title: SandboxTransferTestClockGetRequest
      type: object
    SandboxTransferTestClockGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/transfer/test_clock/get`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        test_clock:
          $ref: "#/components/schemas/TransferTestClock"
      required:
        - test_clock
        - request_id
      title: SandboxTransferTestClockGetResponse
      type: object
    SandboxTransferTestClockListRequest:
      description: Defines the request schema for `/sandbox/transfer/test_clock/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of test clocks to return.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        end_virtual_time:
          description: The end virtual timestamp of test clocks to return. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
        offset:
          default: 0
          description: The number of test clocks to skip before returning results.
          minimum: 0
          type: integer
        secret:
          $ref: "#/components/schemas/APISecret"
        start_virtual_time:
          description: The start virtual timestamp of test clocks to return. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
      title: SandboxTransferTestClockListRequest
      type: object
    SandboxTransferTestClockListResponse:
      additionalProperties: true
      description: Defines the response schema for `/sandbox/transfer/test_clock/list`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        test_clocks:
          items:
            $ref: "#/components/schemas/TransferTestClock"
          type: array
      required:
        - test_clocks
        - request_id
      title: SandboxTransferTestClockListResponse
      type: object
    Scopes:
      description: The scopes object
      properties:
        accounts:
          items:
            $ref: "#/components/schemas/AccountAccess"
          type: array
        new_accounts:
          default: true
          description: Allow access to newly opened accounts as they are opened. If unset, defaults to `true`.
          nullable: true
          type: boolean
        product_access:
          $ref: "#/components/schemas/ProductAccess"
      type: object
    ScopesContext:
      description: An indicator for when scopes are being updated. When scopes are updated via enrollment (i.e. OAuth), the partner must send `ENROLLMENT`. When scopes are updated in a post-enrollment view, the partner must send `PORTAL`.
      enum:
        - ENROLLMENT
        - PORTAL
      type: string
    ScopesNullable:
      allOf:
        - $ref: "#/components/schemas/Scopes"
        - additionalProperties: true
          type: object
      description: The scopes object
      nullable: true
    ScopesState:
      description: When scopes are updated during enrollment, this field must be populated with the state sent to the partner in the OAuth Login URI. This field is required when the context is `ENROLLMENT`.
      type: string
    ScreeningHitAnalysis:
      additionalProperties: true
      description: Analysis information describing why a screening hit matched the provided user information
      properties:
        dates_of_birth:
          $ref: "#/components/schemas/MatchSummaryCode"
        documents:
          $ref: "#/components/schemas/MatchSummaryCode"
        locations:
          $ref: "#/components/schemas/MatchSummaryCode"
        names:
          $ref: "#/components/schemas/MatchSummaryCode"
        search_terms_version:
          description: The version of the screening's `search_terms` that were compared when the screening hit was added. screening hits are immutable once they have been reviewed. If changes are detected due to updates to the screening's `search_terms`, the associated program, or the list's source data prior to review, the screening hit will be updated to reflect those changes.
          example: 1
          type: number
      required:
        - search_terms_version
      type: object
    ScreeningHitData:
      additionalProperties: true
      description: Information associated with the watchlist hit
      properties:
        dates_of_birth:
          description: Dates of birth associated with the watchlist hit
          items:
            $ref: "#/components/schemas/ScreeningHitDateOfBirthItem"
          type: array
        documents:
          description: Documents associated with the watchlist hit
          items:
            $ref: "#/components/schemas/ScreeningHitDocumentsItems"
          type: array
        locations:
          description: Locations associated with the watchlist hit
          items:
            $ref: "#/components/schemas/GenericScreeningHitLocationItems"
          type: array
        names:
          description: Names associated with the watchlist hit
          items:
            $ref: "#/components/schemas/ScreeningHitNamesItems"
          type: array
      type: object
    ScreeningHitDateOfBirthItem:
      additionalProperties: true
      description: Analyzed date of birth for the associated hit
      properties:
        analysis:
          $ref: "#/components/schemas/MatchSummary"
        data:
          $ref: "#/components/schemas/DateRange"
      type: object
    ScreeningHitDocumentsItems:
      additionalProperties: true
      description: Analyzed document information for the associated hit
      properties:
        analysis:
          $ref: "#/components/schemas/MatchSummary"
        data:
          $ref: "#/components/schemas/WatchlistScreeningDocument"
      type: object
    ScreeningHitNamesItems:
      additionalProperties: true
      description: Analyzed name information for the associated hit
      properties:
        analysis:
          $ref: "#/components/schemas/MatchSummary"
        data:
          $ref: "#/components/schemas/IndividualScreeningHitNames"
      type: object
    ScreeningStatusUpdatedWebhook:
      additionalProperties: true
      description: Fired when an individual screening status has changed, which can occur manually via the dashboard or during ongoing monitoring.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        screening_id:
          description: The ID of the associated screening.
          type: string
        webhook_code:
          description: "`STATUS_UPDATED`"
          type: string
        webhook_type:
          description: "`SCREENING`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - screening_id
        - environment
      title: ScreeningStatusUpdatedWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          screening_id: scr_52xR9LKo77r1Np
          webhook_code: STATUS_UPDATED
          webhook_type: SCREENING
    Security:
      additionalProperties: true
      description: Contains details about a security
      properties:
        close_price:
          description: |
            Price of the security at the close of the previous trading session. Null for non-public securities.

            If the security is a foreign currency this field will be updated daily and will be priced in USD.

            If the security is a cryptocurrency, this field will be updated multiple times a day. As crypto prices can fluctuate quickly and data may become stale sooner than other asset classes, refer to `update_datetime` with the time when the price was last updated.
          format: double
          nullable: true
          type: number
        close_price_as_of:
          description: Date for which `close_price` is accurate. Always `null` if `close_price` is `null`.
          format: date
          nullable: true
          type: string
        cusip:
          description: 9-character CUSIP, an identifier assigned to North American securities. Please note that Plaid's customers must hold a license directly from CUSIP Global Services to receive CUSIP & ISIN data. This field will be null by default for new customers. For existing customers, this field will be null by default starting on Sept 15, 2023. If you would like access to this field, please contact your Plaid Account Manager or reach out to investments-vendors@plaid.com.
          nullable: true
          type: string
        institution_id:
          description: If `institution_security_id` is present, this field indicates the Plaid `institution_id` of the institution to whom the identifier belongs.
          nullable: true
          type: string
        institution_security_id:
          description: An identifier given to the security by the institution
          nullable: true
          type: string
        is_cash_equivalent:
          description: Indicates that a security is a highly liquid asset and can be treated like cash.
          nullable: true
          type: boolean
        isin:
          description: 12-character ISIN, a globally unique securities identifier. Please note that Plaid's customers must hold a license directly from CUSIP Global Services to receive CUSIP & ISIN data. This field will be null by default for new customers. For existing customers, this field will be null by default starting on Sept 15, 2023. If you would like access to this field, please contact your Plaid Account Manager or reach out to investments-vendors@plaid.com.
          nullable: true
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the price given. Always `null` if `unofficial_currency_code` is non-`null`.
          nullable: true
          type: string
        name:
          description: A descriptive name for the security, suitable for display.
          nullable: true
          type: string
        proxy_security_id:
          description: In certain cases, Plaid will provide the ID of another security whose performance resembles this security, typically when the original security has low volume, or when a private security can be modeled with a publicly traded security.
          nullable: true
          type: string
        security_id:
          description: 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.
          type: string
        sedol:
          description: 7-character SEDOL, an identifier assigned to securities in the UK.
          nullable: true
          type: string
        ticker_symbol:
          description: The security’s trading symbol for publicly traded securities, and otherwise a short identifier if available.
          nullable: true
          type: string
        type:
          description: |-
            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
          nullable: true
          type: string
        unofficial_currency_code:
          description: |-
            The unofficial currency code associated with the security. 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 `iso_currency_code`s.
          nullable: true
          type: string
        update_datetime:
          description: Date and time at which `close_price` is accurate, in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ). Always `null` if `close_price` is `null`.
          format: date-time
          nullable: true
          type: string
      required:
        - cusip
        - sedol
        - isin
        - institution_security_id
        - institution_id
        - proxy_security_id
        - name
        - ticker_symbol
        - is_cash_equivalent
        - close_price
        - close_price_as_of
        - iso_currency_code
        - unofficial_currency_code
        - security_id
        - type
      title: Security
      type: object
    SecurityOverride:
      description: Specify the security associated with the holding or investment transaction. When inputting custom security data to the Sandbox, Plaid will perform post-data-retrieval normalization and enrichment. These processes may cause the data returned by the Sandbox to be slightly different from the data you input. An ISO-4217 currency code and a security identifier (`ticker_symbol`, `cusip`, `isin`, or `sedol`) are required.
      properties:
        currency:
          description: Either a valid `iso_currency_code` or `unofficial_currency_code`
          type: string
        cusip:
          description: 9-character CUSIP, an identifier assigned to North American securities. Please note that Plaid's customers must hold a license directly from CUSIP Global Services to receive CUSIP & ISIN data. This field will be null by default for new customers. For existing customers, this field will be null by default starting on Sept 15, 2023. If you would like access to this field, please contact your Plaid Account Manager or reach out to investments-vendors@plaid.com.
          type: string
        isin:
          description: 12-character ISIN, a globally unique securities identifier. Please note that Plaid's customers must hold a license directly from CUSIP Global Services to receive CUSIP & ISIN data. This field will be null by default for new customers. For existing customers, this field will be null by default starting on Sept 15, 2023. If you would like access to this field, please contact your Plaid Account Manager or reach out to investments-vendors@plaid.com.
          type: string
        name:
          description: A descriptive name for the security, suitable for display.
          type: string
        sedol:
          description: 7-character SEDOL, an identifier assigned to securities in the UK.
          type: string
        ticker_symbol:
          description: The security’s trading symbol for publicly traded securities, and otherwise a short identifier if available.
          type: string
      title: SecurityOverride
      type: object
    SenderBACSNullable:
      allOf:
        - $ref: "#/components/schemas/RecipientBACS"
        - additionalProperties: true
          description: The account number and sort code of the sender's account, if specified in the `/payment_initiation/payment/create` call.
          type: object
      description: An object containing a BACS account number and sort code. If an IBAN is not provided or if this recipient needs to accept domestic GBP-denominated payments, BACS data is required.
      nullable: true
    Service:
      additionalProperties: true
      description: A collection of details related to a fulfillment service or product in terms of request, process and result.
      properties:
        STATUSES:
          $ref: "#/components/schemas/Statuses"
        VERIFICATION_OF_ASSET:
          $ref: "#/components/schemas/VerificationOfAsset"
      required:
        - VERIFICATION_OF_ASSET
        - STATUSES
      title: Service
      type: object
    ServiceProductFulfillment:
      additionalProperties: true
      description: A collection of details related to a fulfillment service or product in terms of request, process and result.
      properties:
        SERVICE_PRODUCT_FULFILLMENT_DETAIL:
          $ref: "#/components/schemas/ServiceProductFulfillmentDetail"
      required:
        - SERVICE_PRODUCT_FULFILLMENT_DETAIL
      title: ServiceProductFulfillment
      type: object
    ServiceProductFulfillmentDetail:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ServiceProductFulfillmentIdentifier:
          $ref: "#/components/schemas/ServiceProductFulfillmentIdentifier"
        VendorOrderIdentifier:
          description: A string that uniquely identifies a type of order Verification of Asset.
          nullable: true
          type: string
      required:
        - VendorOrderIdentifier
        - ServiceProductFulfillmentIdentifier
      title: ServiceProductFulfillmentDetail
      type: object
    ServiceProductFulfillmentIdentifier:
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      enum:
        - VOA
        - VOETRANSACTIONS
      title: ServiceProductFulfillmentIdentifier
      type: string
    ServicerAddressData:
      additionalProperties: true
      description: The address of the student loan servicer. This is generally the remittance address to which payments should be sent.
      properties:
        city:
          description: The full city name
          nullable: true
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code
          nullable: true
          type: string
        postal_code:
          description: The postal code
          nullable: true
          type: string
        region:
          description: |-
            The region or state
            Example: `"NC"`
          nullable: true
          type: string
        street:
          description: |-
            The full street address
            Example: `"564 Main Street, APT 15"`
          nullable: true
          type: string
      required:
        - city
        - region
        - street
        - postal_code
        - country
      title: ServicerAddressData
      type: object
    Services:
      additionalProperties: true
      description: A collection of objects that describe requests and responses for services.
      properties:
        SERVICE:
          $ref: "#/components/schemas/Service"
      required:
        - SERVICE
      title: Services
      type: object
    ShareableURL:
      description: A shareable URL that can be sent directly to the user to complete verification
      example: https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f
      nullable: true
      type: string
    SignalAddressData:
      additionalProperties: true
      description: Data about the components comprising an address.
      nullable: true
      properties:
        city:
          description: The full city name
          type: string
        country:
          description: The ISO 3166-1 alpha-2 country code
          nullable: true
          type: string
        postal_code:
          description: The postal code
          nullable: true
          type: string
        region:
          description: |-
            The region or state
            Example: `"NC"`
          nullable: true
          type: string
        street:
          description: |-
            The full street address
            Example: `"564 Main Street, APT 15"`
          type: string
      title: AddressData
      type: object
    SignalDecisionOutcome:
      description: |
        The payment decision from the risk assessment.

        `APPROVE`: approve the transaction without requiring further actions from your customers. For example, use this field if you are placing a standard hold for all the approved transactions before making funds available to your customers. You should also use this field if you decide to accelerate the fund availability for your customers.

        `REVIEW`: the transaction requires manual review

        `REJECT`: reject the transaction

        `TAKE_OTHER_RISK_MEASURES`: for example, placing a longer hold on funds than those approved transactions or introducing customer frictions such as step-up verification/authentication

        `NOT_EVALUATED`: if only logging the Signal results without using them

        Possible values:  `APPROVE`, `REVIEW`, `REJECT`, `TAKE_OTHER_RISK_MEASURES`, `NOT_EVALUATED`
      enum:
        - APPROVE
        - REVIEW
        - REJECT
        - TAKE_OTHER_RISK_MEASURES
        - NOT_EVALUATED
      nullable: true
      type: string
    SignalDecisionReportRequest:
      description: SignalDecisionReportRequest defines the request schema for `/signal/decision/report`
      properties:
        amount_instantly_available:
          description: "The amount (in USD) made available to your customers instantly following the debit transaction. It could be a partial amount of the requested transaction (example: 102.05)."
          format: double
          nullable: true
          type: number
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_transaction_id:
          description: Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`
          maxLength: 36
          minLength: 1
          type: string
        days_funds_on_hold:
          description: |-
            The actual number of days (hold time) since the ACH debit transaction that you wait before making funds available to your customers. The holding time could affect the ACH return rate.

            For example, use 0 if you make funds available to your customers instantly or the same day following the debit transaction, or 1 if you make funds available the next day following the debit initialization.
          minimum: 0
          nullable: true
          type: integer
        decision_outcome:
          $ref: "#/components/schemas/SignalDecisionOutcome"
        initiated:
          description: |-
            `true` if the ACH transaction was initiated, `false` otherwise.

            This field must be returned as a boolean. If formatted incorrectly, this will result in an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error.
          type: boolean
        payment_method:
          $ref: "#/components/schemas/SignalPaymentMethod"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - client_transaction_id
        - initiated
      title: SignalDecisionReportRequest
      type: object
    SignalDecisionReportResponse:
      additionalProperties: true
      description: SignalDecisionReportResponse defines the response schema for `/signal/decision/report`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SignalDecisionReportResponse
      type: object
    SignalDevice:
      description: Details about the end user's device
      properties:
        ip_address:
          description: The IP address of the device that initiated the transaction
          nullable: true
          type: string
        user_agent:
          description: The user agent of the device that initiated the transaction (e.g. "Mozilla/5.0")
          nullable: true
          type: string
      title: SignalEvaluateDevice
      type: object
    SignalEvaluateCoreAttributes:
      description: |-
        The core attributes object contains additional data that can be used to assess the ACH return risk. Examples of data include:

        `days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid
        `plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days
        `plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days
        `total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid
        `is_savings_or_money_market_account`: Indicates whether the ACH transaction funding account is a savings/money market account

        For the full list and detailed documentation of core attributes available, or to request that core attributes not be returned, contact Sales or your Plaid account manager
      properties:
        address_change_count_28d:
          description: The number of times the account's addresses on file have changed over the past 28 days
          nullable: true
          type: integer
        address_change_count_90d:
          description: The number of times the account's addresses on file have changed over the past 90 days
          nullable: true
          type: integer
        available_balance:
          description: Available balance, as of the `balance_last_updated` time. The available balance is the current balance less any outstanding holds or debits that have not yet posted to the account.
          format: double
          nullable: true
          type: number
        balance_last_updated:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the balance for the given account has been updated.
          format: date-time
          nullable: true
          type: string
        credit_transactions_count_10d:
          description: The total number of credit (inflow) transactions over the past 10 days from the account that will be debited
          nullable: true
          type: integer
        credit_transactions_count_30d:
          description: The total number of credit (inflow) transactions over the past 30 days from the account that will be debited
          nullable: true
          type: integer
        credit_transactions_count_60d:
          description: The total number of credit (inflow) transactions over the past 60 days from the account that will be debited
          nullable: true
          type: integer
        credit_transactions_count_90d:
          description: The total number of credit (inflow) transactions over the past 90 days from the account that will be debited
          nullable: true
          type: integer
        current_balance:
          description: Current balance, as of the `balance_last_updated` time. The current balance is the total amount of funds in the account.
          format: double
          nullable: true
          type: number
        days_since_first_plaid_connection:
          description: The number of days since the first time the Item was connected to an application via Plaid
          nullable: true
          type: integer
        days_with_negative_balance_count_90d:
          description: The number of days within the past 90 days when the account that will be debited had a negative end-of-day available balance
          nullable: true
          type: integer
        debit_transactions_count_10d:
          description: The total number of debit (outflow) transactions over the past 10 days from the account that will be debited
          nullable: true
          type: integer
        debit_transactions_count_30d:
          description: The total number of debit (outflow) transactions over the past 30 days from the account that will be debited
          nullable: true
          type: integer
        debit_transactions_count_60d:
          description: The total number of debit (outflow) transactions over the past 60 days from the account that will be debited
          nullable: true
          type: integer
        debit_transactions_count_90d:
          description: The total number of debit (outflow) transactions over the past 90 days from the account that will be debited
          nullable: true
          type: integer
        email_change_count_28d:
          description: The number of times the account's email addresses on file have changed over the past 28 days
          nullable: true
          type: integer
        email_change_count_90d:
          description: The number of times the account's email addresses on file have changed over the past 90 days
          nullable: true
          type: integer
        failed_plaid_non_oauth_authentication_attempts_count_30d:
          description: The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
          nullable: true
          type: integer
        failed_plaid_non_oauth_authentication_attempts_count_3d:
          description: The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
          nullable: true
          type: integer
        failed_plaid_non_oauth_authentication_attempts_count_7d:
          description: The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
          nullable: true
          type: integer
        is_savings_or_money_market_account:
          description: Indicates if the ACH transaction funding account is a savings/money market account
          nullable: true
          type: boolean
        nsf_overdraft_transactions_count_30d:
          description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 30 days from the account that will be debited.
          nullable: true
          type: integer
        nsf_overdraft_transactions_count_60d:
          description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 60 days from the account that will be debited.
          nullable: true
          type: integer
        nsf_overdraft_transactions_count_7d:
          description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 7 days from the account that will be debited.
          nullable: true
          type: integer
        nsf_overdraft_transactions_count_90d:
          description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 90 days from the account that will be debited.
          nullable: true
          type: integer
        p10_eod_balance_30d:
          description: The 10th percentile of the end-of-day available balance over the past 30 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p10_eod_balance_31d_to_60d:
          description: The 10th percentile of the end-of-day available balance between day 31 and day 60 over the past 60 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p10_eod_balance_60d:
          description: The 10th percentile of the end-of-day available balance over the past 60 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p10_eod_balance_61d_to_90d:
          description: The 10th percentile of the end-of-day available balance between day 61 and day 90 over the past 60 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p10_eod_balance_90d:
          description: The 10th percentile of the end-of-day available balance over the past 90 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p50_credit_transactions_amount_28d:
          description: The 50th percentile of all credit (inflow) transaction amounts over the past 28 days from the account that will be debited
          format: double
          nullable: true
          type: number
        p50_debit_transactions_amount_28d:
          description: The 50th percentile of all debit (outflow) transaction amounts over the past 28 days from the account that will be debited
          format: double
          nullable: true
          type: number
        p50_eod_balance_30d:
          description: The 50th percentile of the end-of-day available balance over the past 30 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p50_eod_balance_31d_to_60d:
          description: The 50th percentile of the end-of-day available balance between day 31 and day 60 over the past 60 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p50_eod_balance_60d:
          description: The 50th percentile of the end-of-day available balance over the past 60 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p50_eod_balance_61d_to_90d:
          description: The 50th percentile of the end-of-day available balance between day 61 and day 90 over the past 60 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p50_eod_balance_90d:
          description: The 50th percentile of the end-of-day available balance over the past 90 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p90_eod_balance_30d:
          description: The 90th percentile of the end-of-day available balance over the past 30 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p90_eod_balance_31d_to_60d:
          description: The 90th percentile of the end-of-day available balance between day 31 and day 60 over the past 60 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p90_eod_balance_60d:
          description: The 90th percentile of the end-of-day available balance over the past 60 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p90_eod_balance_61d_to_90d:
          description: The 90th percentile of the end-of-day available balance between day 61 and day 90 over the past 60 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p90_eod_balance_90d:
          description: The 90th percentile of the end-of-day available balance over the past 90 days of the account that will be debited
          format: double
          nullable: true
          type: number
        p95_credit_transactions_amount_28d:
          description: The 95th percentile of all credit (inflow) transaction amounts over the past 28 days from the account that will be debited
          format: double
          nullable: true
          type: number
        p95_debit_transactions_amount_28d:
          description: The 95th percentile of all debit (outflow) transaction amounts over the past 28 days from the account that will be debited
          format: double
          nullable: true
          type: number
        phone_change_count_28d:
          description: The number of times the account's phone numbers on file have changed over the past 28 days
          nullable: true
          type: integer
        phone_change_count_90d:
          description: The number of times the account's phone numbers on file have changed over the past 90 days
          nullable: true
          type: integer
        plaid_connections_count_30d:
          description: The number of times the Item has been connected to applications via Plaid over the past 30 days
          nullable: true
          type: integer
        plaid_connections_count_7d:
          description: The number of times the Item has been connected to applications via Plaid over the past 7 days
          nullable: true
          type: integer
        plaid_non_oauth_authentication_attempts_count_30d:
          description: The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
          nullable: true
          type: integer
        plaid_non_oauth_authentication_attempts_count_3d:
          description: The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
          nullable: true
          type: integer
        plaid_non_oauth_authentication_attempts_count_7d:
          description: The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
          nullable: true
          type: integer
        total_credit_transactions_amount_10d:
          description: The total credit (inflow) transaction amount over the past 10 days from the account that will be debited
          format: double
          nullable: true
          type: number
        total_credit_transactions_amount_30d:
          description: The total credit (inflow) transaction amount over the past 30 days from the account that will be debited
          format: double
          nullable: true
          type: number
        total_credit_transactions_amount_60d:
          description: The total credit (inflow) transaction amount over the past 60 days from the account that will be debited
          format: double
          nullable: true
          type: number
        total_credit_transactions_amount_90d:
          description: The total credit (inflow) transaction amount over the past 90 days from the account that will be debited
          format: double
          nullable: true
          type: number
        total_debit_transactions_amount_10d:
          description: The total debit (outflow) transaction amount over the past 10 days from the account that will be debited
          format: double
          nullable: true
          type: number
        total_debit_transactions_amount_30d:
          description: The total debit (outflow) transaction amount over the past 30 days from the account that will be debited
          format: double
          nullable: true
          type: number
        total_debit_transactions_amount_60d:
          description: The total debit (outflow) transaction amount over the past 60 days from the account that will be debited
          format: double
          nullable: true
          type: number
        total_debit_transactions_amount_90d:
          description: The total debit (outflow) transaction amount over the past 90 days from the account that will be debited
          format: double
          nullable: true
          type: number
        total_plaid_connections_count:
          description: The total number of times the Item has been connected to applications via Plaid
          nullable: true
          type: integer
        transactions_last_updated:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the transactions for the given account have been updated.
          format: date-time
          nullable: true
          type: string
        unauthorized_transactions_count_30d:
          description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 30 days from the account that will be debited.
          nullable: true
          type: integer
        unauthorized_transactions_count_60d:
          description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 60 days from the account that will be debited.
          nullable: true
          type: integer
        unauthorized_transactions_count_7d:
          description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 7 days from the account that will be debited.
          nullable: true
          type: integer
        unauthorized_transactions_count_90d:
          description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 90 days from the account that will be debited.
          nullable: true
          type: integer
      title: SignalEvaluateCoreAttributes
      type: object
    SignalEvaluateRequest:
      description: SignalEvaluateRequest defines the request schema for `/signal/evaluate`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        account_id:
          description: |-
            The Plaid `account_id` of the account that is the funding source for the proposed transaction. The `account_id` is returned in the `/accounts/get` endpoint as well as the [`onSuccess`](/docs/link/ios/#link-ios-onsuccess-linkSuccess-metadata-accounts-id) callback metadata.

            This will return an [`INVALID_ACCOUNT_ID`](/docs/errors/invalid-input/#invalid_account_id) error if the account has been removed at the bank or if the `account_id` is no longer valid.
          type: string
        amount:
          description: The transaction amount, in USD (e.g. `102.05`)
          format: double
          type: number
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_transaction_id:
          description: The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal data, you could use your internal ID/identifier for this transaction. The max length for this field is 36 characters.
          maxLength: 36
          minLength: 1
          type: string
        client_user_id:
          description: A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with multiple Items. The max length for this field is 36 characters. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
          maxLength: 36
          type: string
        default_payment_method:
          description: |-
            The default ACH or non-ACH payment method to complete the transaction.
            `SAME_DAY_ACH`: Same Day ACH by NACHA. The debit transaction is processed and settled on the same day
            `NEXT_DAY_ACH`: Next Day ACH settlement for debit transactions, offered by some payment processors
            `STANDARD_ACH`: standard ACH by NACHA
            `REAL_TIME_PAYMENTS`: real-time payments such as RTP and FedNow
            `DEBIT_CARD`: if the default payment is over debit card networks
            `MULTIPLE_PAYMENT_METHODS`: if there is no default debit rail or there are multiple payment methods
            Possible values:  `SAME_DAY_ACH`, `NEXT_DAY_ACH`, `STANDARD_ACH`, `REAL_TIME_PAYMENTS`, `DEBIT_CARD`, `MULTIPLE_PAYMENT_METHODS`
          nullable: true
          type: string
        device:
          $ref: "#/components/schemas/SignalDevice"
        is_recurring:
          description: "`true` if the ACH transaction is a recurring transaction; `false` otherwise "
          nullable: true
          type: boolean
        secret:
          $ref: "#/components/schemas/APISecret"
        user:
          $ref: "#/components/schemas/SignalUser"
        user_present:
          description: "`true` if the end user is present while initiating the ACH transfer and the endpoint is being called; `false` otherwise (for example, when the ACH transfer is scheduled and the end user is not present, or you call this endpoint after the ACH transfer but before submitting the Nacha file for ACH processing)."
          nullable: true
          type: boolean
      required:
        - access_token
        - account_id
        - client_transaction_id
        - amount
      title: SignalEvaluateRequest
      type: object
    SignalEvaluateResponse:
      additionalProperties: true
      description: SignalEvaluateResponse defines the response schema for `/signal/income/evaluate`
      properties:
        core_attributes:
          $ref: "#/components/schemas/SignalEvaluateCoreAttributes"
        request_id:
          $ref: "#/components/schemas/RequestID"
        scores:
          $ref: "#/components/schemas/SignalScores"
        warnings:
          description: If bank information was not able to be used as features into the Signal model, this array contains warnings describing why we were missing bank data
          items:
            $ref: "#/components/schemas/SignalWarning"
          type: array
      required:
        - request_id
        - scores
      title: SignalEvaluateResponse
      type: object
    SignalPaymentMethod:
      description: |
        The payment method to complete the transaction after the risk assessment. It may be different from the default payment method.

        `SAME_DAY_ACH`: Same Day ACH by NACHA. The debit transaction is processed and settled on the same day

        `NEXT_DAY_ACH`: Next Day ACH settlement for debit transactions, offered by some payment processors

        `STANDARD_ACH`: standard ACH by NACHA

        `REAL_TIME_PAYMENTS`: real-time payments such as RTP and FedNow

        `DEBIT_CARD`: if the default payment is over debit card networks

        `MULTIPLE_PAYMENT_METHODS`: if there is no default debit rail or there are multiple payment methods

        Possible values: `SAME_DAY_ACH`, `NEXT_DAY_ACH`, `STANDARD_ACH`, `REAL_TIME_PAYMENTS`, `DEBIT_CARD`, `MULTIPLE_PAYMENT_METHODS`
      enum:
        - SAME_DAY_ACH
        - NEXT_DAY_ACH
        - STANDARD_ACH
        - REAL_TIME_PAYMENTS
        - DEBIT_CARD
        - MULTIPLE_PAYMENT_METHODS
      nullable: true
      type: string
    SignalPersonName:
      description: The user's legal name
      nullable: true
      properties:
        family_name:
          description: The user's family name / surname
          nullable: true
          type: string
        given_name:
          description: The user's given name. If the user has a one-word name, it should be provided in this field.
          nullable: true
          type: string
        middle_name:
          description: The user's middle name
          nullable: true
          type: string
        prefix:
          description: The user's name prefix (e.g. "Mr.")
          nullable: true
          type: string
        suffix:
          description: The user's name suffix (e.g. "II")
          nullable: true
          type: string
      title: SignalPersonName
      type: object
    SignalPrepareRequest:
      description: SignalPrepareRequest defines the request schema for `/signal/prepare`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      title: SignalPrepareRequest
      type: object
    SignalPrepareResponse:
      additionalProperties: true
      description: SignalPrepareResponse defines the response schema for `/signal/prepare`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SignalPrepareResponse
      type: object
    SignalReturnReportRequest:
      description: SignalReturnReportRequest defines the request schema for `/signal/return/report`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_transaction_id:
          description: Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`
          maxLength: 36
          minLength: 1
          type: string
        return_code:
          description: |-
            Must be a valid ACH return code (e.g. "R01")

            If formatted incorrectly, this will result in an [`INVALID_FIELD`](/docs/errors/invalid-request/#invalid_field) error.
          type: string
        returned_at:
          description: Date and time when you receive the returns from your payment processors, in ISO 8601 format (`YYYY-MM-DDTHH:mm:ssZ`).
          format: date-time
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - client_transaction_id
        - return_code
      title: SignalReturnReportRequest
      type: object
    SignalReturnReportResponse:
      additionalProperties: true
      description: SignalReturnReportResponse defines the response schema for `/signal/return/report`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: SignalReturnReportResponse
      type: object
    SignalScore:
      description: "A score from 1-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood."
      maximum: 99
      minimum: 1
      type: integer
    SignalScores:
      additionalProperties: true
      description: Risk scoring details broken down by risk category.
      properties:
        bank_initiated_return_risk:
          $ref: "#/components/schemas/BankInitiatedReturnRisk"
        customer_initiated_return_risk:
          $ref: "#/components/schemas/CustomerInitiatedReturnRisk"
      title: SignalEvaluateScores
      type: object
    SignalUser:
      description: Details about the end user initiating the transaction (i.e., the account holder).
      properties:
        address:
          $ref: "#/components/schemas/SignalAddressData"
        email_address:
          description: The user's email address.
          nullable: true
          type: string
        name:
          $ref: "#/components/schemas/SignalPersonName"
        phone_number:
          description: "The user's phone number, in E.164 format: +{countrycode}{number}. For example: \"+14151234567\""
          nullable: true
          type: string
      title: SignalUser
      type: object
    SignalWarning:
      description: Conveys information about the errors causing missing or stale bank data used to construct the /signal/evaluate scores and response
      properties:
        warning_code:
          description: The particular warning code.
          type: string
        warning_message:
          description: A developer-friendly representation of the warning code.
          type: string
        warning_type:
          description: Broad categorization of the warning.
          type: string
      title: SignalWarning
      type: object
    SimulatedTransferSweep:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/TransferSweep"
        - nullable: true
          type: object
      description: |-
        A sweep returned from the `/sandbox/transfer/sweep/simulate` endpoint.
        Can be null if there are no transfers to include in a sweep.
      title: SimulatedTransferSweep
      type: object
    SingleDocumentRiskSignal:
      additionalProperties: true
      description: Object containing all risk signals and relevant metadata for a single document
      properties:
        document_reference:
          $ref: "#/components/schemas/RiskSignalDocumentReference"
        risk_signals:
          description: Array of attributes that indicate whether or not there is fraud risk with a document
          items:
            $ref: "#/components/schemas/DocumentRiskSignal"
          type: array
        risk_summary:
          $ref: "#/components/schemas/DocumentRiskSummary"
      required:
        - document_reference
        - risk_signals
        - risk_summary
      title: SingleDocumentRiskSignal
      type: object
    Source:
      description: A type indicating whether a dashboard user, an API-based user, or Plaid last touched this object.
      enum:
        - dashboard
        - link
        - api
        - system
      type: string
    SourceUID:
      description: The identifier provided by the source sanction or watchlist. When one is not provided by the source, this is `null`.
      example: 26192ABC
      minLength: 1
      nullable: true
      type: string
    StandaloneAccountType:
      additionalProperties: true
      description: The schema below describes the various `types` and corresponding `subtypes` that Plaid recognizes and reports for financial institution accounts.
      properties:
        credit:
          $ref: "#/components/schemas/CreditAccount"
        depository:
          $ref: "#/components/schemas/DepositoryAccount"
        investment:
          $ref: "#/components/schemas/InvestmentAccountSubtypeStandalone"
        loan:
          $ref: "#/components/schemas/LoanAccount"
        other:
          description: "Other or unknown account type. Supported products for `other` accounts are: Balance, Transactions, Identity, and Assets."
          type: string
      required:
        - depository
        - credit
        - loan
        - investment
        - other
      title: StandaloneAccountType
      type: object
    StandaloneCurrencyCodeList:
      additionalProperties: true
      description: The following currency codes are supported by Plaid.
      properties:
        iso_currency_code:
          description: Plaid supports all ISO 4217 currency codes.
          type: string
        unofficial_currency_code:
          $ref: "#/components/schemas/UnofficialCurrencyCodeList"
      required:
        - iso_currency_code
        - unofficial_currency_code
      title: StandaloneCurrencyCodeList
      type: object
    StandaloneInvestmentTransactionBuyType:
      description: Buying an investment
      properties:
        assignment:
          description: Assignment of short option holding
          type: string
        buy:
          description: Purchase to open or increase a position
          type: string
        buy to cover:
          description: Purchase to close a short position
          type: string
        contribution:
          description: Inflow of assets into a tax-advantaged account
          type: string
        dividend reinvestment:
          description: Purchase using proceeds from a cash dividend
          type: string
        interest reinvestment:
          description: Purchase using proceeds from a cash interest payment
          type: string
        long-term capital gain reinvestment:
          description: Purchase using long-term capital gain cash proceeds
          type: string
        short-term capital gain reinvestment:
          description: Purchase using short-term capital gain cash proceeds
          type: string
      title: BuyType
      type: string
    StandaloneInvestmentTransactionCashType:
      description: Activity that modifies a cash position
      properties:
        account fee:
          description: Fees paid for account maintenance
          type: string
        contribution:
          description: Inflow of assets into a tax-advantaged account
          type: string
        deposit:
          description: Inflow of cash into an account
          type: string
        dividend:
          description: Inflow of cash from a dividend
          type: string
        interest:
          description: Inflow of cash from interest
          type: string
        legal fee:
          description: Fees paid for legal charges or services
          type: string
        long-term capital gain:
          description: Long-term capital gain received as cash
          type: string
        management fee:
          description: Fees paid for investment management of a mutual fund or other pooled investment vehicle
          type: string
        margin expense:
          description: Fees paid for maintaining margin debt
          type: string
        non-qualified dividend:
          description: Inflow of cash from a non-qualified dividend
          type: string
        non-resident tax:
          description: Taxes paid on behalf of the investor for non-residency in investment jurisdiction
          type: string
        pending credit:
          description: Pending inflow of cash
          type: string
        pending debit:
          description: Pending outflow of cash
          type: string
        qualified dividend:
          description: Inflow of cash from a qualified dividend
          type: string
        short-term capital gain:
          description: Short-term capital gain received as cash
          type: string
        stock distribution:
          description: Inflow of stock from a distribution
          type: string
        tax:
          description: Taxes paid on behalf of the investor
          type: string
        tax withheld:
          description: Taxes withheld on behalf of the customer
          type: string
        transfer fee:
          description: Fees incurred for transfer of a holding or account
          type: string
        trust fee:
          description: Fees related to administration of a trust account
          type: string
        unqualified gain:
          description: Unqualified capital gain received as cash
          type: string
        withdrawal:
          description: Outflow of cash from an account
          type: string
      title: CashType
      type: string
    StandaloneInvestmentTransactionFeeType:
      description: Fees on the account, e.g. commission, bookkeeping, options-related.
      properties:
        account fee:
          description: Fees paid for account maintenance
          type: string
        adjustment:
          description: Increase or decrease in quantity of item
          type: string
        dividend:
          description: Inflow of cash from a dividend
          type: string
        interest:
          description: Inflow of cash from interest
          type: string
        interest receivable:
          description: Inflow of cash from interest receivable
          type: string
        legal fee:
          description: Fees paid for legal charges or services
          type: string
        long-term capital gain:
          description: Long-term capital gain received as cash
          type: string
        management fee:
          description: Fees paid for investment management of a mutual fund or other pooled investment vehicle
          type: string
        margin expense:
          description: Fees paid for maintaining margin debt
          type: string
        non-qualified dividend:
          description: Inflow of cash from a non-qualified dividend
          type: string
        non-resident tax:
          description: Taxes paid on behalf of the investor for non-residency in investment jurisdiction
          type: string
        qualified dividend:
          description: Inflow of cash from a qualified dividend
          type: string
        return of principal:
          description: Repayment of loan principal
          type: string
        short-term capital gain:
          description: Short-term capital gain received as cash
          type: string
        stock distribution:
          description: Inflow of stock from a distribution
          type: string
        tax:
          description: Taxes paid on behalf of the investor
          type: string
        tax withheld:
          description: Taxes withheld on behalf of the customer
          type: string
        transfer fee:
          description: Fees incurred for transfer of a holding or account
          type: string
        trust fee:
          description: Fees related to administration of a trust account
          type: string
        unqualified gain:
          description: Unqualified capital gain received as cash
          type: string
      title: FeeType
      type: string
    StandaloneInvestmentTransactionSellType:
      description: Selling an investment
      properties:
        distribution:
          description: Outflow of assets from a tax-advantaged account
          type: string
        exercise:
          description: Exercise of an option or warrant contract
          type: string
        sell:
          description: Sell to close or decrease an existing holding
          type: string
        sell short:
          description: Sell to open a short position
          type: string
      title: SellType
      type: string
    StandaloneInvestmentTransactionTransferType:
      description: Activity that modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer
      properties:
        adjustment:
          description: Increase or decrease in quantity of item
          type: string
        assignment:
          description: Assignment of short option holding
          type: string
        exercise:
          description: Exercise of an option or warrant contract
          type: string
        expire:
          description: Expiration of an option or warrant contract
          type: string
        merger:
          description: Stock exchanged at a pre-defined ratio as part of a merger between companies
          type: string
        request:
          description: Request fiat or cryptocurrency to an address or email
          type: string
        send:
          description: Inflow or outflow of fiat or cryptocurrency to an address or email
          type: string
        spin off:
          description: Inflow of stock from spin-off transaction of an existing holding
          type: string
        split:
          description: Inflow of stock from a forward split of an existing holding
          type: string
        trade:
          description: Trade of one cryptocurrency for another
          type: string
        transfer:
          description: Movement of assets into or out of an account
          type: string
      title: TransferType
      type: string
    StandaloneInvestmentTransactionType:
      additionalProperties: true
      description: Valid values for investment transaction types and subtypes. Note that transactions representing inflow of cash will appear as negative amounts, outflow of cash will appear as positive amounts.
      properties:
        buy:
          $ref: "#/components/schemas/StandaloneInvestmentTransactionBuyType"
        cancel:
          description: A cancellation of a pending transaction
          type: string
        cash:
          $ref: "#/components/schemas/StandaloneInvestmentTransactionCashType"
        fee:
          $ref: "#/components/schemas/StandaloneInvestmentTransactionFeeType"
        sell:
          $ref: "#/components/schemas/StandaloneInvestmentTransactionSellType"
        transfer:
          $ref: "#/components/schemas/StandaloneInvestmentTransactionTransferType"
      required:
        - buy
        - sell
        - cancel
        - cash
        - fee
        - transfer
      title: StandaloneInvestmentTransactionType
      type: object
    Status:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        StatusCode:
          description: Satus Code.
          nullable: true
          type: string
        StatusDescription:
          description: Status Description.
          nullable: true
          type: string
      required:
        - StatusCode
        - StatusDescription
      title: Status
      type: object
    Statuses:
      additionalProperties: true
      description: A collection of STATUS containers.
      properties:
        STATUS:
          $ref: "#/components/schemas/Status"
      required:
        - STATUS
      title: Statuses
      type: object
    Strategy:
      description: |-
        An instruction specifying what steps the new Identity Verification attempt should require the user to complete:


        `reset` - Restart the user at the beginning of the session, regardless of whether they successfully completed part of their previous session.

        `incomplete` - Start the new session at the step that the user failed in the previous session, skipping steps that have already been successfully completed.

        `infer` - If the most recent Identity Verification attempt associated with the given `client_user_id` has a status of `failed` or `expired`, retry using the `incomplete` strategy. Otherwise, use the `reset` strategy.

        `custom` - Start the new session with a custom configuration, specified by the value of the `steps` field

        Note:

        The `incomplete` strategy cannot be applied if the session's failing step is `screening` or `risk_check`.

        The `infer` strategy cannot be applied if the session's status is still `active`
      enum:
        - reset
        - incomplete
        - infer
        - custom
      type: string
    Street:
      description: The primary street portion of an address. If the user has submitted their address, this field will always be filled.
      example: 123 Main St.
      title: Street
      type: string
    Street2:
      description: Extra street information, like an apartment or suite number.
      example: Unit 42
      nullable: true
      title: Street2
      type: string
    StreetNullable:
      description: The primary street portion of an address. If the user has submitted their address, this field will always be filled.
      example: 123 Main St.
      nullable: true
      title: Street
      type: string
    StudentLoan:
      additionalProperties: true
      description: Contains details about a student loan account
      properties:
        account_id:
          description: The ID of the account that this liability belongs to.
          nullable: true
          type: string
        account_number:
          description: The account number of the loan. For some institutions, this may be a masked version of the number (e.g., the last 4 digits instead of the entire number).
          nullable: true
          type: string
        disbursement_dates:
          description: The dates on which loaned funds were disbursed or will be disbursed. These are often in the past. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          items:
            format: date
            type: string
          nullable: true
          type: array
        expected_payoff_date:
          description: The date when the student loan is expected to be paid off. Availability for this field is limited. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        guarantor:
          description: The guarantor of the student loan.
          nullable: true
          type: string
        interest_rate_percentage:
          description: The interest rate on the loan as a percentage.
          format: double
          type: number
        is_overdue:
          description: "`true` if a payment is currently overdue. Availability for this field is limited."
          nullable: true
          type: boolean
        last_payment_amount:
          description: The amount of the last payment.
          format: double
          nullable: true
          type: number
        last_payment_date:
          description: The date of the last payment. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        last_statement_issue_date:
          description: The date of the last statement. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        loan_name:
          description: The type of loan, e.g., "Consolidation Loans".
          nullable: true
          type: string
        loan_status:
          $ref: "#/components/schemas/StudentLoanStatus"
        minimum_payment_amount:
          description: |-
            The minimum payment due for the next billing cycle. There are some exceptions:
            Some institutions require a minimum payment across all loans associated with an account number. Our API presents that same minimum payment amount on each loan. The institutions that do this are: Great Lakes ( `ins_116861`), Firstmark (`ins_116295`), Commonbond Firstmark Services (`ins_116950`), Nelnet (`ins_116528`), EdFinancial Services (`ins_116304`), Granite State (`ins_116308`), and Oklahoma Student Loan Authority (`ins_116945`).
            Firstmark (`ins_116295` ) and Navient (`ins_116248`) will display as $0 if there is an autopay program in effect.
          format: double
          nullable: true
          type: number
        next_payment_due_date:
          description: The due date for the next payment. The due date is `null` if a payment is not expected. A payment is not expected if `loan_status.type` is `deferment`, `in_school`, `consolidated`, `paid in full`, or `transferred`. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        origination_date:
          description: |
            The date on which the loan was initially lent. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        origination_principal_amount:
          description: The original principal balance of the loan.
          format: double
          nullable: true
          type: number
        outstanding_interest_amount:
          description: The total dollar amount of the accrued interest balance. For Sallie Mae ( `ins_116944`), this amount is included in the current balance of the loan, so this field will return as `null`.
          format: double
          nullable: true
          type: number
        payment_reference_number:
          description: The relevant account number that should be used to reference this loan for payments. In the majority of cases, `payment_reference_number` will match `account_number,` but in some institutions, such as Great Lakes (`ins_116861`), it will be different.
          nullable: true
          type: string
        pslf_status:
          $ref: "#/components/schemas/PSLFStatus"
        repayment_plan:
          $ref: "#/components/schemas/StudentRepaymentPlan"
        sequence_number:
          description: The sequence number of the student loan. Heartland ECSI (`ins_116948`) does not make this field available.
          nullable: true
          type: string
        servicer_address:
          $ref: "#/components/schemas/ServicerAddressData"
        ytd_interest_paid:
          description: The year to date (YTD) interest paid. Availability for this field is limited.
          format: double
          nullable: true
          type: number
        ytd_principal_paid:
          description: The year to date (YTD) principal paid. Availability for this field is limited.
          format: double
          nullable: true
          type: number
      required:
        - account_id
        - account_number
        - disbursement_dates
        - expected_payoff_date
        - guarantor
        - interest_rate_percentage
        - is_overdue
        - last_payment_amount
        - last_payment_date
        - last_statement_issue_date
        - loan_name
        - loan_status
        - minimum_payment_amount
        - next_payment_due_date
        - origination_date
        - origination_principal_amount
        - outstanding_interest_amount
        - payment_reference_number
        - pslf_status
        - repayment_plan
        - sequence_number
        - servicer_address
        - ytd_interest_paid
        - ytd_principal_paid
      title: StudentLoan
      type: object
    StudentLoanRepaymentModel:
      additionalProperties: true
      description: Student loan repayment information used to configure Sandbox test data for the Liabilities product
      properties:
        non_repayment_months:
          description: Configures the number of months before repayment starts.
          type: number
        repayment_months:
          description: Configures the number of months of repayments before the loan is paid off.
          type: number
        type:
          description: The only currently supported value for this field is `standard`.
          type: string
      required:
        - type
        - non_repayment_months
        - repayment_months
      title: StudentLoanRepaymentModel
      type: object
    StudentLoanStatus:
      additionalProperties: true
      description: An object representing the status of the student loan
      properties:
        end_date:
          description: |
            The date until which the loan will be in its current status. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).
          format: date
          nullable: true
          type: string
        type:
          description: The status type of the student loan
          enum:
            - cancelled
            - charged off
            - claim
            - consolidated
            - deferment
            - delinquent
            - discharged
            - extension
            - forbearance
            - in grace
            - in military
            - in school
            - not fully disbursed
            - other
            - paid in full
            - refunded
            - repayment
            - transferred
          nullable: true
          type: string
      required:
        - end_date
        - type
      title: StudentLoanStatus
      type: object
    StudentRepaymentPlan:
      additionalProperties: true
      description: An object representing the repayment plan for the student loan
      properties:
        description:
          description: The description of the repayment plan as provided by the servicer.
          nullable: true
          type: string
        type:
          description: The type of the repayment plan.
          enum:
            - extended graduated
            - extended standard
            - graduated
            - income-contingent repayment
            - income-based repayment
            - interest-only
            - other
            - pay as you earn
            - revised pay as you earn
            - standard
            - null
          nullable: true
          type: string
      required:
        - description
        - type
      title: StudentRepaymentPlan
      type: object
    SyncUpdatesAvailableWebhook:
      additionalProperties: true
      description: |-
        Fired when an Item's transactions change. This can be due to any event resulting in new changes, such as an initial 30-day transactions fetch upon the initialization of an Item with transactions, the backfill of historical transactions that occurs shortly after, or when changes are populated from a regularly-scheduled transactions update job. It is recommended to listen for the `SYNC_UPDATES_AVAILABLE` webhook when using the `/transactions/sync` endpoint. Note that when using `/transactions/sync` the older webhooks `INITIAL_UPDATE`, `HISTORICAL_UPDATE`, `DEFAULT_UPDATE`, and `TRANSACTIONS_REMOVED`, which are intended for use with `/transactions/get`, will also continue to be sent in order to maintain backwards compatibility. It is not necessary to listen for and respond to those webhooks when using `/transactions/sync`.

        After receipt of this webhook, the new changes can be fetched for the Item from `/transactions/sync`.

        Note that to receive this webhook for an Item, `/transactions/sync` must have been called at least once on that Item. This means that, unlike the `INITIAL_UPDATE` and `HISTORICAL_UPDATE` webhooks, it will not fire immediately upon Item creation. If `/transactions/sync` is called on an Item that was *not* initialized with Transactions, the webhook will fire twice: once the first 30 days of transactions data has been fetched, and a second time when all available historical transactions data has been fetched.

        This webhook will typically not fire in the Sandbox environment, due to the lack of dynamic transactions data. To test this webhook in Sandbox, call `/sandbox/item/fire_webhook`.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        historical_update_complete:
          description: Indicates if historical pull information is available.
          type: boolean
        initial_update_complete:
          description: Indicates if initial pull information is available.
          type: boolean
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`SYNC_UPDATES_AVAILABLE`"
          type: string
        webhook_type:
          description: "`TRANSACTIONS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - initial_update_complete
        - historical_update_complete
        - environment
      title: SyncUpdatesAvailableWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          historical_update_complete: false
          initial_update_complete: true
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          webhook_code: SYNC_UPDATES_AVAILABLE
          webhook_type: TRANSACTIONS
    Taxform:
      additionalProperties: true
      description: Data about an official document used to report the user's income to the IRS.
      properties:
        doc_id:
          description: An identifier of the document referenced by the document metadata.
          type: string
        document_type:
          description: The type of tax document. Currently, the only supported value is `w2`.
          type: string
        w2:
          $ref: "#/components/schemas/W2"
      required:
        - document_type
      title: Taxform
      type: object
    TaxpayerID:
      additionalProperties: true
      description: Taxpayer ID of the individual receiving the paystub.
      properties:
        id_mask:
          description: ID mask; i.e. last 4 digits of the taxpayer ID
          nullable: true
          type: string
        id_type:
          description: Type of ID, e.g. 'SSN'
          nullable: true
          type: string
        last_4_digits:
          deprecated: true
          description: Last 4 digits of unique number of ID.
          maxLength: 4
          minLength: 4
          nullable: true
          type: string
      title: TaxpayerID
      type: object
    TaxpayerIdentifier:
      additionalProperties: true
      description: Information about the Taxpayer identification values assigned to the individual or legal entity.Information about the Taxpayer identification values assigned to the individual or legal entity.
      properties:
        TaxpayerIdentifierType:
          $ref: "#/components/schemas/TaxpayerIdentifierType"
        TaxpayerIdentifierValue:
          description: The value of the taxpayer identifier as assigned by the IRS to the individual or legal entity.
          nullable: true
          type: string
      required:
        - TaxpayerIdentifierType
        - TaxpayerIdentifierValue
      title: TaxpayerIdentifier
      type: object
    TaxpayerIdentifierType:
      description: A value from a MISMO prescribed list that classifies identification numbers used by the Internal Revenue Service (IRS) in the administration of tax laws. A Social Security number (SSN) is issued by the SSA; all other taxpayer identification numbers are issued by the IRS.
      enum:
        - IndividualTaxpayerIdentificationNumber
        - SocialSecurityNumber
      nullable: true
      title: TaxpayerIdentifierType
      type: string
    TaxpayerIdentifiers:
      additionalProperties: true
      description: The collection of TAXPAYER_IDENTIFICATION elements
      properties:
        TAXPAYER_IDENTIFIER:
          $ref: "#/components/schemas/TaxpayerIdentifier"
      required:
        - TAXPAYER_IDENTIFIER
      title: TaxpayerIdentifiers
      type: object
    Timestamp:
      description: An ISO8601 formatted timestamp.
      example: 2020-07-24T03:26:02Z
      format: date-time
      title: Timestamp
      type: string
    TimestampNullable:
      description: An ISO8601 formatted timestamp.
      example: 2020-07-24T03:26:02Z
      format: date-time
      nullable: true
      title: Timestamp
      type: string
    Total:
      additionalProperties: true
      deprecated: true
      description: An object representing both the current pay period and year to date amount for a category.
      properties:
        canonical_description:
          $ref: "#/components/schemas/TotalCanonicalDescription"
        current_pay:
          $ref: "#/components/schemas/Pay"
        description:
          description: Text of the line item as printed on the paystub.
          nullable: true
          type: string
        ytd_pay:
          $ref: "#/components/schemas/Pay"
      title: Total
      type: object
    TotalCanonicalDescription:
      description: Commonly used term to describe the line item.
      enum:
        - BONUS
        - COMMISSION
        - OVERTIME
        - PAID TIME OFF
        - REGULAR PAY
        - VACATION
        - EMPLOYEE MEDICARE
        - FICA
        - SOCIAL SECURITY EMPLOYEE TAX
        - MEDICAL
        - VISION
        - DENTAL
        - NET PAY
        - TAXES
        - NOT_FOUND
        - OTHER
        - null
      nullable: true
      type: string
    Transaction:
      allOf:
        - $ref: "#/components/schemas/TransactionBase"
        - additionalProperties: true
          properties:
            authorized_date:
              description: The date that the transaction was authorized. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ).
              format: date
              nullable: true
              type: string
            authorized_datetime:
              description: |-
                Date and time when a transaction was authorized in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ).

                This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00). This field is only populated in API version 2019-05-29 and later.
              format: date-time
              nullable: true
              type: string
            counterparties:
              description: The counterparties present in the transaction. Counterparties, such as the financial institutions, are extracted by Plaid from the raw description.
              items:
                $ref: "#/components/schemas/TransactionCounterparty"
              type: array
              x-hidden-from-docs: true
            datetime:
              description: |-
                Date and time when a transaction was posted in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ).

                This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00). This field is only populated in API version 2019-05-29 and later.
              format: date-time
              nullable: true
              type: string
            payment_channel:
              description: |
                The channel used to make a payment.
                `online:` transactions that took place online.

                `in store:` transactions that were made at a physical location.

                `other:` transactions that relate to banks, e.g. fees or deposits.

                This field replaces the `transaction_type` field.
              enum:
                - online
                - in store
                - other
              type: string
            personal_finance_category:
              $ref: "#/components/schemas/PersonalFinanceCategory"
            personal_finance_category_icon_url:
              description: A link to the icon associated with the primary personal finance category. The logo will always be 100x100 pixels.
              type: string
              x-hidden-from-docs: true
            transaction_code:
              $ref: "#/components/schemas/TransactionCode"
          required:
            - account_owner
            - pending_transaction_id
            - payment_channel
            - payment_meta
            - name
            - location
            - authorized_date
            - authorized_datetime
            - datetime
            - category_id
            - category
            - transaction_code
          type: object
      description: A representation of a transaction
      title: Transaction
      x-examples: {}
    TransactionBase:
      additionalProperties: true
      description: A representation of a transaction
      properties:
        account_id:
          description: The ID of the account in which this transaction occurred.
          type: string
        account_owner:
          description: The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts.
          nullable: true
          type: string
        amount:
          description: The settled value of the transaction, denominated in the transactions'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.
          format: double
          type: number
        category:
          description: |-
            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).

            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.
          items:
            type: string
          nullable: true
          type: array
        category_id:
          description: |-
            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).

            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.
          nullable: true
          type: string
        check_number:
          description: The check number of the transaction. This field is only populated for check transactions.
          nullable: true
          type: string
        date:
          description: 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` ).
          format: date
          type: string
        iso_currency_code:
          description: The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
          nullable: true
          type: string
        location:
          $ref: "#/components/schemas/Location"
        logo_url:
          description: The logo associated with the merchant, if available. Formatted as a 100x100 pixels PNG file path.
          nullable: true
          type: string
          x-hidden-from-docs: true
        merchant_name:
          description: The merchant name, as enriched by Plaid from the `name` field. 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`.
          nullable: true
          type: string
        name:
          description: |-
            The merchant name or transaction description.

            If the `transactions` object was returned by a Transactions endpoint such as `/transactions/get`, this field will always appear. 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.
          type: string
        original_description:
          description: The string returned by the financial institution to describe the transaction. For transactions returned by `/transactions/get`, this field is in beta and will be omitted unless the client is both enrolled in the closed beta program and has set `options.include_original_description` to `true`.
          nullable: true
          type: string
        payment_meta:
          $ref: "#/components/schemas/PaymentMeta"
        pending:
          description: When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
          type: boolean
        pending_transaction_id:
          description: The ID of a posted transaction's associated pending transaction, where applicable.
          nullable: true
          type: string
        transaction_id:
          description: The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
          type: string
        transaction_type:
          deprecated: true
          description: |
            Please use the `payment_channel` field, `transaction_type` will be deprecated in the future.

            `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.
          enum:
            - digital
            - place
            - special
            - unresolved
          type: string
        unofficial_currency_code:
          description: |-
            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 `iso_currency_code`s.
          nullable: true
          type: string
        website:
          description: The website associated with the merchant, if available.
          nullable: true
          type: string
          x-hidden-from-docs: true
      required:
        - transaction_id
        - pending
        - date
        - unofficial_currency_code
        - iso_currency_code
        - amount
        - account_id
      title: TransactionBase
      type: object
      x-examples: {}
    TransactionCode:
      description: |-
        An identifier classifying the transaction type.

        This field is only populated for European institutions. For institutions in the US and Canada, this field is set to `null`.

        `adjustment:` Bank adjustment

        `atm:` Cash deposit or withdrawal via an automated teller machine

        `bank charge:` Charge or fee levied by the institution

        `bill payment`: Payment of a bill

        `cash:` Cash deposit or withdrawal

        `cashback:` Cash withdrawal while making a debit card purchase

        `cheque:` Document ordering the payment of money to another person or organization

        `direct debit:` Automatic withdrawal of funds initiated by a third party at a regular interval

        `interest:` Interest earned or incurred

        `purchase:` Purchase made with a debit or credit card

        `standing order:` Payment instructed by the account holder to a third party at a regular interval

        `transfer:` Transfer of money between accounts
      enum:
        - adjustment
        - atm
        - bank charge
        - bill payment
        - cash
        - cashback
        - cheque
        - direct debit
        - interest
        - purchase
        - standing order
        - transfer
        - null
      nullable: true
      title: transaction_code
      type: string
    TransactionCounterparty:
      additionalProperties: true
      description: The counterparty, such as the merchant or financial institution, is extracted by Plaid from the raw description.
      properties:
        logo_url:
          description: The URL of a logo associated with the counterparty, if available. The logo is formatted as a 100x100 pixel PNG filepath.
          nullable: true
          type: string
        name:
          description: The name of the counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description.
          type: string
        type:
          $ref: "#/components/schemas/CounterpartyType"
        website:
          description: The website associated with the counterparty.
          nullable: true
          type: string
      required:
        - name
        - type
        - logo_url
        - website
      title: Counterparty
      type: object
    TransactionData:
      additionalProperties: true
      description: Information about the matched direct deposit transaction used to verify a user's payroll information.
      nullable: true
      properties:
        account_id:
          description: A unique identifier for the end user's account.
          type: string
        amount:
          description: The amount of the transaction.
          format: double
          type: number
        date:
          description: The date of the transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ("yyyy-mm-dd").
          format: date
          type: string
        description:
          description: The description of the transaction.
          type: string
        transaction_id:
          description: A unique identifier for the transaction.
          type: string
      required:
        - description
        - amount
        - date
        - account_id
        - transaction_id
      title: TransactionData
      type: object
    TransactionOverride:
      additionalProperties: true
      description: Data to populate as test transaction data. If not specified, random transactions will be generated instead.
      properties:
        amount:
          description: The transaction amount. Can be negative.
          format: double
          type: number
        currency:
          description: The ISO-4217 format currency code for the transaction.
          type: string
        date_posted:
          description: The date the transaction posted, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Posted dates in the past or present will result in posted transactions; posted dates in the future will result in pending transactions.
          format: date
          type: string
        date_transacted:
          description: The date of the transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Transactions in Sandbox will move from pending to posted once their transaction date has been reached. If a `date_transacted` is not provided by the institution, a transaction date may be available in the [`authorized_date`](https://plaid.com/docs/api/products/transactions/#transactions-get-response-transactions-authorized-date) field.
          format: date
          type: string
        description:
          description: The transaction description.
          type: string
      required:
        - date_transacted
        - date_posted
        - amount
        - description
      title: TransactionOverride
      type: object
    TransactionStream:
      additionalProperties: true
      description: A grouping of related transactions
      properties:
        account_id:
          description: The ID of the account to which the stream belongs
          type: string
        average_amount:
          $ref: "#/components/schemas/TransactionStreamAmount"
        category:
          description: A hierarchical array of the categories to which this transaction belongs. See [Categories](https://plaid.com/docs/api/products/transactions/#categoriesget).
          items:
            type: string
          type: array
        category_id:
          description: The ID of the category to which this transaction belongs. See [Categories](https://plaid.com/docs/api/products/transactions/#categoriesget).
          type: string
        description:
          description: A description of the transaction stream.
          type: string
        first_date:
          description: The posted date of the earliest transaction in the stream.
          format: date
          type: string
        frequency:
          $ref: "#/components/schemas/RecurringTransactionFrequency"
        is_active:
          description: Indicates whether the transaction stream is still live.
          type: boolean
        last_amount:
          $ref: "#/components/schemas/TransactionStreamAmount"
        last_date:
          description: The posted date of the latest transaction in the stream.
          format: date
          type: string
        merchant_name:
          description: The merchant associated with the transaction stream.
          nullable: true
          type: string
        personal_finance_category:
          $ref: "#/components/schemas/PersonalFinanceCategory"
        status:
          $ref: "#/components/schemas/TransactionStreamStatus"
        stream_id:
          description: A unique id for the stream
          type: string
        transaction_ids:
          description: An array of Plaid transaction IDs belonging to the stream, sorted by posted date.
          items:
            type: string
          type: array
      required:
        - account_id
        - stream_id
        - category
        - category_id
        - description
        - merchant_name
        - first_date
        - last_date
        - frequency
        - transaction_ids
        - average_amount
        - last_amount
        - is_active
        - status
      title: TransactionStream
      type: object
      x-examples: {}
    TransactionStreamAmount:
      additionalProperties: true
      description: Object with data pertaining to an amount on the transaction stream.
      properties:
        amount:
          description: Represents the numerical value of an amount.
          format: double
          type: number
        iso_currency_code:
          description: |-
            The ISO-4217 currency code of the amount. Always `null` if `unofficial_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 `iso_currency_code`s.
          nullable: true
          type: string
        unofficial_currency_code:
          description: The unofficial currency code of the amount. 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.
          nullable: true
          type: string
      title: TransactionStreamAmount
      type: object
    TransactionStreamStatus:
      description: |-
        The current status of the transaction stream.

        `MATURE`: A `MATURE` recurring stream should have at least 3 transactions and happen on a regular cadence (For Annual recurring stream, we will mark it `MATURE` after 2 instances).

        `EARLY_DETECTION`: When a recurring transaction first appears in the transaction history and before it fulfills the requirement of a mature stream, the status will be `EARLY_DETECTION`.

        `TOMBSTONED`: A stream that was previously in the `EARLY_DETECTION` status will move to the `TOMBSTONED` status when no further transactions were found at the next expected date.

        `UNKNOWN`: A stream is assigned an `UNKNOWN` status when none of the other statuses are applicable.
      enum:
        - UNKNOWN
        - MATURE
        - EARLY_DETECTION
        - TOMBSTONED
      title: TransactionStreamStatus
      type: string
    TransactionsCategoryRule:
      description: A representation of a transactions category rule.
      properties:
        created_at:
          description: |
            Date and time when a rule was created in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ).
          format: date-time
          type: string
        id:
          description: A unique identifier of the rule created
          type: string
        item_id:
          description: A unique identifier of the Item the rule was created for.
          type: string
        personal_finance_category:
          description: |
            Personal finance category unique identifier.

            In the personal finance category taxonomy, this field is represented by the detailed category field.
          type: string
        rule_details:
          $ref: "#/components/schemas/TransactionsRuleDetails"
      title: TransactionsCategoryRule
      type: object
      x-examples: {}
    TransactionsEnhanceGetRequest:
      description: TransactionsEnhanceGetRequest defines the request schema for `/transactions/enhance`.
      properties:
        account_type:
          description: The type of account for the requested transactions (`depository` or `credit`).
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        transactions:
          description: An array of raw transactions to be enhanced.
          items:
            $ref: "#/components/schemas/ClientProvidedRawTransaction"
          type: array
      required:
        - account_type
        - transactions
      type: object
    TransactionsEnhanceGetResponse:
      additionalProperties: true
      description: TransactionsEnhanceGetResponse defines the response schema for `/beta/transactions/v1/enhance`.
      properties:
        enhanced_transactions:
          description: An array of enhanced transactions.
          items:
            $ref: "#/components/schemas/ClientProvidedEnhancedTransaction"
          type: array
      required:
        - enhanced_transactions
      type: object
      x-examples: {}
    TransactionsEnrichGetRequest:
      description: TransactionsEnrichGetRequest defines the request schema for `/transactions/enrich`.
      properties:
        account_type:
          description: The account type for the requested transactions (either `depository` or `credit`).
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/TransactionsEnrichRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        transactions:
          description: An array of transaction objects to be enriched by Plaid. Maximum of 100 transactions per request.
          items:
            $ref: "#/components/schemas/ClientProvidedTransaction"
          type: array
      required:
        - account_type
        - transactions
      type: object
    TransactionsEnrichGetResponse:
      additionalProperties: true
      description: TransactionsEnrichGetResponse defines the response schema for `/transactions/enrich`.
      properties:
        enriched_transactions:
          description: A list of enriched transactions.
          items:
            $ref: "#/components/schemas/ClientProvidedEnrichedTransaction"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - enriched_transactions
      type: object
      x-examples: {}
    TransactionsEnrichRequestOptions:
      description: An optional object to be used with the request.
      properties:
        include_legacy_category:
          default: false
          description: |-
            Include `legacy_category` and `legacy_category_id` in the response (in addition to the default `personal_finance_category`).

            Categories are based on Plaid's legacy taxonomy. For a full list of legacy categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget).
          type: boolean
      type: object
    TransactionsGetRequest:
      description: TransactionsGetRequest defines the request schema for `/transactions/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        end_date:
          description: The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.
          format: date
          type: string
        options:
          $ref: "#/components/schemas/TransactionsGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        start_date:
          description: The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.
          format: date
          type: string
      required:
        - access_token
        - start_date
        - end_date
      type: object
    TransactionsGetRequestOptions:
      description: An optional object to be used with the request. If specified, `options` must not be `null`.
      properties:
        account_ids:
          description: |-
            A list of `account_ids` to retrieve for the Item

            Note: An error will be returned if a provided `account_id` is not associated with the Item.
          items:
            type: string
          type: array
        count:
          default: 100
          description: The number of transactions to fetch.
          exclusiveMinimum: false
          maximum: 500
          minimum: 1
          type: integer
        include_logo_and_counterparty_beta:
          default: false
          description: Include counterparties and extran merchant fields in the transaction. This field is disabled by default. If you need this information in addition to the parsed data provided, contact your Plaid Account Manager.
          type: boolean
          x-hidden-from-docs: true
        include_original_description:
          default: false
          description: Include the raw unparsed transaction description from the financial institution. This field is disabled by default. If you need this information in addition to the parsed data provided, contact your Plaid Account Manager, or submit a [Support request](https://dashboard.plaid.com/support/new/product-and-development/product-troubleshooting/product-functionality) .
          nullable: true
          type: boolean
        include_personal_finance_category:
          default: false
          description: |-
            Include the [`personal_finance_category`](https://plaid.com/docs/api/products/transactions/#transactions-get-response-transactions-personal-finance-category) object in the response.

            See the [`taxonomy csv file`](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) for a full list of personal finance categories.

            We’re introducing Category Rules - a new beta endpoint that will enable you to change the `personal_finance_category` for a transaction based on your users’ needs. When rules are set, the selected category will override the Plaid provided category. To learn more, send a note to transactions-feedback@plaid.com.
          type: boolean
        include_personal_finance_category_beta:
          default: false
          deprecated: true
          description: Please use [`include_personal_finance_category`](https://plaid.com/docs/api/products/transactions/#transactions-get-request-options-include-personal-finance-category) instead.
          type: boolean
        offset:
          default: 0
          description: The number of transactions to skip. The default value is 0.
          minimum: 0
          type: integer
      type: object
    TransactionsGetResponse:
      additionalProperties: true
      description: TransactionsGetResponse defines the response schema for `/transactions/get`
      properties:
        accounts:
          description: An array containing the `accounts` associated with the Item for which transactions are being returned. Each transaction can be mapped to its corresponding account via the `account_id` field.
          items:
            $ref: "#/components/schemas/AccountBase"
          type: array
        item:
          $ref: "#/components/schemas/Item"
        request_id:
          $ref: "#/components/schemas/RequestID"
        total_transactions:
          description: The total number of transactions available within the date range specified. If `total_transactions` is larger than the size of the `transactions` array, more transactions are available and can be fetched via manipulating the `offset` parameter.
          type: integer
        transactions:
          description: An array containing transactions from the account. Transactions are returned in reverse chronological order, with the most recent at the beginning of the array. The maximum number of transactions returned is determined by the `count` parameter.
          items:
            $ref: "#/components/schemas/Transaction"
          type: array
      required:
        - accounts
        - transactions
        - total_transactions
        - item
        - request_id
      type: object
    TransactionsRecurringGetRequest:
      description: TransactionsRecurringGetRequest defines the request schema for `/transactions/recurring/get`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        account_ids:
          description: |-
            A list of `account_ids` to retrieve for the Item

            Note: An error will be returned if a provided `account_id` is not associated with the Item.
          items:
            type: string
          type: array
        client_id:
          $ref: "#/components/schemas/APIClientID"
        options:
          $ref: "#/components/schemas/TransactionsRecurringGetRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
        - account_ids
      type: object
    TransactionsRecurringGetRequestOptions:
      description: An optional object to be used with the request. If specified, `options` must not be `null`.
      properties:
        include_personal_finance_category:
          default: false
          description: |-
            Include the [`personal_finance_category`](https://plaid.com/docs/api/products/transactions/#transactions-get-response-transactions-personal-finance-category) object for each transaction stream in the response.

            See the [`taxonomy csv file`](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) for a full list of personal finance categories.
          type: boolean
      type: object
    TransactionsRecurringGetResponse:
      additionalProperties: true
      description: TransactionsRecurringGetResponse defines the response schema for `/transactions/recurring/get`
      properties:
        inflow_streams:
          description: An array of depository transaction streams.
          items:
            $ref: "#/components/schemas/TransactionStream"
          type: array
        outflow_streams:
          description: An array of expense transaction streams.
          items:
            $ref: "#/components/schemas/TransactionStream"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
        updated_datetime:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the last time transaction streams for the given account were updated on
          format: date-time
          type: string
      required:
        - inflow_streams
        - outflow_streams
        - updated_datetime
        - request_id
      type: object
    TransactionsRefreshRequest:
      description: TransactionsRefreshRequest defines the request schema for `/transactions/refresh`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    TransactionsRefreshResponse:
      additionalProperties: true
      description: TransactionsRefreshResponse defines the response schema for `/transactions/refresh`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      type: object
    TransactionsRemovedWebhook:
      additionalProperties: true
      description: |-
        Fired when transaction(s) for an Item are deleted. The deleted transaction IDs are included in the webhook payload. Plaid will typically check for deleted transaction data several times a day.

        This webhook is intended for use with `/transactions/get`; if you are using the newer `/transactions/sync` endpoint, this webhook will still be fired to maintain backwards compatibility, but it is recommended to listen for and respond to the `SYNC_UPDATES_AVAILABLE` webhook instead.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        removed_transactions:
          description: An array of `transaction_ids` corresponding to the removed transactions
          items:
            type: string
          type: array
        webhook_code:
          description: "`TRANSACTIONS_REMOVED`"
          type: string
        webhook_type:
          description: "`TRANSACTIONS`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - removed_transactions
        - item_id
        - environment
      title: TransactionsRemovedWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          removed_transactions:
            - yBVBEwrPyJs8GvR77N7QTxnGg6wG74H7dEDN6
            - kgygNvAVPzSX9KkddNdWHaVGRVex1MHm3k9no
          webhook_code: TRANSACTIONS_REMOVED
          webhook_type: TRANSACTIONS
    TransactionsRuleDetails:
      description: A representation of transactions rule details.
      properties:
        field:
          $ref: "#/components/schemas/TransactionsRuleField"
        query:
          description: |
            For TRANSACTION_ID field, provide transaction_id. For NAME field, provide a string pattern.
          type: string
        type:
          $ref: "#/components/schemas/TransactionsRuleType"
      required:
        - field
        - type
        - query
      title: TransactionsRuleDetails
      type: object
      x-examples: {}
    TransactionsRuleField:
      description: Transaction field for which the rule is defined.
      enum:
        - TRANSACTION_ID
        - NAME
      title: TransactionsRuleField
      type: string
    TransactionsRuleType:
      description: |
        Transaction rule's match type. For TRANSACTION_ID field, EXACT_MATCH is available.
        Matches are case sensitive.
      enum:
        - EXACT_MATCH
        - SUBSTRING_MATCH
      title: TransactionsRuleType
      type: string
    TransactionsRulesCreateRequest:
      description: TransactionsRulesCreateRequest defines the request schema for `beta/transactions/rules/v1/create`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        personal_finance_category:
          description: |
            Personal finance detailed category.

            See the [`taxonomy csv file`](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) for a full list of personal finance categories.
          type: string
        rule_details:
          $ref: "#/components/schemas/TransactionsRuleDetails"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
        - personal_finance_category
        - rule_details
      type: object
    TransactionsRulesCreateResponse:
      additionalProperties: true
      description: TransactionsRulesCreateResponse defines the response schema for `/beta/transactions/rules/v1/create`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        rule:
          $ref: "#/components/schemas/TransactionsCategoryRule"
      required:
        - rule
        - request_id
      type: object
    TransactionsRulesListRequest:
      description: TransactionsRulesListRequest defines the request schema for `/beta/transactions/rules/v1/list`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    TransactionsRulesListResponse:
      additionalProperties: true
      description: TransactionsRulesListResponse defines the response schema for `/beta/transactions/rules/v1/list`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        rules:
          description: A list of the Item's transaction rules
          items:
            $ref: "#/components/schemas/TransactionsCategoryRule"
          type: array
      required:
        - rules
        - request_id
      type: object
    TransactionsRulesRemoveRequest:
      description: TransactionsRulesRemoveRequest defines the request schema for `/beta/transactions/rules/v1/remove`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        rule_id:
          description: A rule's unique identifier
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
        - rule_id
      type: object
    TransactionsRulesRemoveResponse:
      additionalProperties: true
      description: TransactionsRulesRemoveResponse defines the response schema for `/beta/transactions/rules/v1/remove`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      type: object
    TransactionsSyncRequest:
      description: TransactionsSyncRequest defines the request schema for `/transactions/sync`
      properties:
        access_token:
          $ref: "#/components/schemas/AccessToken"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 100
          description: The number of transaction updates to fetch.
          exclusiveMinimum: false
          maximum: 500
          minimum: 1
          type: integer
        cursor:
          description: |-
            The cursor value represents the last update requested. Providing it will cause the response to only return changes after this update.
            If omitted, the entire history of updates will be returned, starting with the first-added transactions on the item.
            Note: The upper-bound length of this cursor is 256 characters of base64.
          type: string
        options:
          $ref: "#/components/schemas/TransactionsSyncRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - access_token
      type: object
    TransactionsSyncRequestOptions:
      description: An optional object to be used with the request. If specified, `options` must not be `null`.
      properties:
        include_logo_and_counterparty_beta:
          default: false
          description: Include counterparties and extra merchant fields in the transaction. This field is disabled by default. If you need this information in addition to the parsed data provided, contact your Plaid Account Manager.
          type: boolean
          x-hidden-from-docs: true
        include_original_description:
          default: false
          description: Include the raw unparsed transaction description from the financial institution. This field is disabled by default. If you need this information in addition to the parsed data provided, contact your Plaid Account Manager or submit a [Support request](https://dashboard.plaid.com/support/new/product-and-development/product-troubleshooting/product-functionality).
          nullable: true
          type: boolean
        include_personal_finance_category:
          default: false
          description: |-
            Include the [`personal_finance_category`](https://plaid.com/docs/api/products/transactions/#transactions-sync-response-added-personal-finance-category) object in the response.

            See the [`taxonomy csv file`](https://plaid.com/documents/transactions-personal-finance-category-taxonomy.csv) for a full list of personal finance categories.

            We’re introducing Category Rules - a new beta endpoint that will enable you to change the `personal_finance_category` for a transaction based on your users’ needs. When rules are set, the selected category will override the Plaid provided category. To learn more, send a note to transactions-feedback@plaid.com.
          type: boolean
      type: object
    TransactionsSyncResponse:
      additionalProperties: true
      description: TransactionsSyncResponse defines the response schema for `/transactions/sync`
      properties:
        added:
          description: Transactions that have been added to the Item since `cursor` ordered by ascending last modified time.
          items:
            $ref: "#/components/schemas/Transaction"
          type: array
        has_more:
          description: Represents if more than requested count of transaction updates exist. If true, the additional updates can be fetched by making an additional request with `cursor` set to `next_cursor`. If `has_more` is true, it’s important to pull all available pages, to make it less likely for underlying data changes to conflict with pagination.
          type: boolean
        modified:
          description: Transactions that have been modified on the Item since `cursor` ordered by ascending last modified time.
          items:
            $ref: "#/components/schemas/Transaction"
          type: array
        next_cursor:
          description: Cursor used for fetching any future updates after the latest update provided in this response. The cursor obtained after all pages have been pulled (indicated by `has_more` being `false`) will be valid for at least 1 year. This cursor should be persisted for later calls. If transactions are not yet available, this will be an empty string.
          type: string
        removed:
          description: Transactions that have been removed from the Item since `cursor` ordered by ascending last modified time.
          items:
            $ref: "#/components/schemas/RemovedTransaction"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - added
        - modified
        - removed
        - next_cursor
        - has_more
        - request_id
      type: object
    Transfer:
      additionalProperties: true
      description: Represents a transfer within the Transfers API.
      properties:
        account_id:
          description: The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
          type: string
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/TransferAmount"
        cancellable:
          description: When `true`, you can still cancel this transfer.
          type: boolean
        created:
          description: The datetime when this transfer was created. This will be of the form `2006-01-02T15:04:05Z`
          format: date-time
          type: string
        description:
          description: The description of the transfer.
          type: string
        expected_settlement_date:
          description: The expected date when the full amount of the transfer settles at the consumers’ account, if the transfer is credit; or at the customer's business checking account, if the transfer is debit. Only set for ACH transfers and is null for non-ACH transfers. Only set for ACH transfers. This will be of the form YYYY-MM-DD.
          format: date
          nullable: true
          type: string
        expected_settlement_schedule:
          description: The expected settlement schedule of this transfer, if posted. Only applies to ACH debit transfers.
          items:
            $ref: "#/components/schemas/TransferExpectedSettlementScheduleItem"
          type: array
        failure_reason:
          $ref: "#/components/schemas/TransferFailure"
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDResponse"
        guarantee_decision:
          $ref: "#/components/schemas/TransferAuthorizationGuaranteeDecision"
        guarantee_decision_rationale:
          $ref: "#/components/schemas/TransferAuthorizationGuaranteeDecisionRationale"
        id:
          $ref: "#/components/schemas/TransferID"
        iso_currency_code:
          description: The currency of the transfer amount, e.g. "USD"
          type: string
        metadata:
          $ref: "#/components/schemas/TransferMetadata"
        network:
          $ref: "#/components/schemas/TransferNetwork"
        origination_account_id:
          deprecated: true
          description: Plaid’s unique identifier for the origination account that was used for this transfer.
          type: string
          x-hidden-from-docs: true
        originator_client_id:
          description: The Plaid client ID that is the originator of this transfer. Only present if created on behalf of another client as a third-party sender (TPS).
          nullable: true
          type: string
        recurring_transfer_id:
          description: The id of the recurring transfer if this transfer belongs to a recurring transfer.
          nullable: true
          type: string
        refunds:
          description: A list of refunds associated with this transfer.
          items:
            $ref: "#/components/schemas/TransferRefund"
          type: array
        settled_amount:
          description: The accumulated amount that have been swept to date. This number does not reflect `return_swept` amount if the transfer is returned. Only applies to ACH debit transfers.
          nullable: true
          type: string
        standard_return_window:
          description: "The date 3 business days from settlement date indicating the following ACH returns can no longer happen: R01, R02, R03, R29. This will be of the form YYYY-MM-DD."
          format: date
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/TransferStatus"
        sweep_status:
          $ref: "#/components/schemas/TransferSweepStatus"
        type:
          $ref: "#/components/schemas/TransferType"
        unauthorized_return_window:
          description: "The date 61 business days from settlement date indicating the following ACH returns can no longer happen: R05, R07, R10, R11, R51, R33, R37, R38, R51, R52, R53. This will be of the form YYYY-MM-DD."
          format: date
          nullable: true
          type: string
        user:
          $ref: "#/components/schemas/TransferUserInResponse"
      required:
        - id
        - type
        - user
        - amount
        - description
        - created
        - status
        - network
        - cancellable
        - failure_reason
        - metadata
        - origination_account_id
        - guarantee_decision
        - guarantee_decision_rationale
        - iso_currency_code
        - standard_return_window
        - unauthorized_return_window
        - expected_settlement_date
        - originator_client_id
        - refunds
        - recurring_transfer_id
        - funding_account_id
      title: Transfer
      type: object
    TransferAccessToken:
      description: The Plaid `access_token` for the account that will be debited or credited. Required if not using `payment_profile_token`.
      type: string
    TransferAccountID:
      description: The Plaid `account_id` corresponding to the end-user account that will be debited or credited. Returned only if `account_id` was set on intent creation.
      type: string
    TransferAmount:
      description: The amount of the transfer (decimal string with two digits of precision e.g. "10.00").
      title: TransferAmount
      type: string
    TransferAuthorization:
      additionalProperties: true
      description: Contains the authorization decision for a proposed transfer.
      properties:
        created:
          description: The datetime representing when the authorization was created, in the format `2006-01-02T15:04:05Z`.
          format: date-time
          type: string
        decision:
          $ref: "#/components/schemas/TransferAuthorizationDecision"
        decision_rationale:
          $ref: "#/components/schemas/TransferAuthorizationDecisionRationale"
        guarantee_decision:
          $ref: "#/components/schemas/TransferAuthorizationGuaranteeDecision"
        guarantee_decision_rationale:
          $ref: "#/components/schemas/TransferAuthorizationGuaranteeDecisionRationale"
        id:
          $ref: "#/components/schemas/TransferAuthorizationID"
        proposed_transfer:
          $ref: "#/components/schemas/TransferAuthorizationProposedTransfer"
      required:
        - id
        - created
        - decision
        - decision_rationale
        - guarantee_decision
        - guarantee_decision_rationale
        - proposed_transfer
      title: TransferAuthorization
      type: object
    TransferAuthorizationCreateRequest:
      description: Defines the request schema for `/transfer/authorization/create`
      properties:
        access_token:
          $ref: "#/components/schemas/TransferAccessToken"
        account_id:
          $ref: "#/components/schemas/TransferAccountID"
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/TransferAmount"
        beacon_session_id:
          description: The unique identifier returned by Plaid's [beacon](https://plaid.com/docs/transfer/guarantee/#using-a-beacon) when it is run on your webpage. Required for Guarantee customers who are not using [Transfer UI](https://plaid.com/docs/transfer/using-transfer-ui/) and have a web checkout experience.
          nullable: true
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        device:
          $ref: "#/components/schemas/TransferAuthorizationDevice"
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDRequest"
        idempotency_key:
          $ref: "#/components/schemas/TransferAuthorizationIdempotencyKey"
        iso_currency_code:
          description: The currency of the transfer amount. The default value is "USD".
          type: string
        network:
          $ref: "#/components/schemas/TransferNetwork"
        origination_account_id:
          deprecated: true
          description: Plaid's unique identifier for the origination account for this authorization. If not specified, the default account will be used.
          type: string
          x-hidden-from-docs: true
        originator_client_id:
          description: The Plaid client ID that is the originator of this transfer. Only needed if creating transfers on behalf of another client as a third-party sender (TPS).
          nullable: true
          type: string
        payment_profile_token:
          $ref: "#/components/schemas/TransferPaymentProfileToken"
        secret:
          $ref: "#/components/schemas/APISecret"
        type:
          $ref: "#/components/schemas/TransferType"
        user:
          $ref: "#/components/schemas/TransferAuthorizationUserInRequest"
        user_present:
          description: Required for Guarantee. If the end user is initiating the specific transfer themselves via an interactive UI, this should be `true`; for automatic recurring payments where the end user is not actually initiating each individual transfer, it should be `false`.
          nullable: true
          type: boolean
        with_guarantee:
          default: true
          description: If set to `false`, Plaid will not offer a `guarantee_decision` for this request(Guarantee customers only).
          nullable: true
          type: boolean
      required:
        - type
        - network
        - amount
        - user
      title: TransferAuthorizationCreateRequest
      type: object
    TransferAuthorizationCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/authorization/create`
      properties:
        authorization:
          $ref: "#/components/schemas/TransferAuthorization"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - authorization
        - request_id
      title: TransferAuthorizationCreateResponse
      type: object
    TransferAuthorizationDecision:
      description: |-
        
        A decision regarding the proposed transfer.

        `approved` – The proposed transfer has received the end user's consent and has been approved for processing by Plaid. The `decision_rationale` field is set if Plaid was unable to fetch the account information. You may proceed with the transfer, but further review is recommended (i.e., use Link in update to re-authenticate your user when `decision_rationale.code` is `ITEM_LOGIN_REQUIRED`). Refer to the `code` field in the `decision_rationale` object for details.

        `declined` – Plaid reviewed the proposed transfer and declined processing. Refer to the `code` field in the `decision_rationale` object for details.
      enum:
        - approved
        - declined
      type: string
    TransferAuthorizationDecisionRationale:
      additionalProperties: true
      description: The rationale for Plaid's decision regarding a proposed transfer. It is always set for `declined` decisions, and may or may not be null for `approved` decisions.
      nullable: true
      properties:
        code:
          $ref: "#/components/schemas/TransferAuthorizationDecisionRationaleCode"
        description:
          description: A human-readable description of the code associated with a transfer approval or transfer decline.
          type: string
      required:
        - code
        - description
      title: TransferAuthorizationDecisionRationale
      type: object
    TransferAuthorizationDecisionRationaleCode:
      description: |-
        A code representing the rationale for approving or declining the proposed transfer. Possible values are:

        `MANUALLY_VERIFIED_ITEM` – Item created via same-day micro deposits, limited information available. Plaid will offer `approved` as a transaction decision.

        `ITEM_LOGIN_REQUIRED` – Unable to collect the account information due to Item staleness. Can be rectified using Link in update mode. Plaid will offer `approved` as a transaction decision.

        `PAYMENT_PROFILE_LOGIN_REQUIRED` - Unable to collect the account information due to invalid login when using Payment Profiles. Can be rectified using update mode for Payment Profile. Plaid will offer `approved` as a transaction decision.

        `ERROR` – Unable to collect the account information due to an error. Plaid will offer `approved` as a transaction decision.

        `NSF` – Transaction likely to result in a return due to insufficient funds. Plaid will offer `declined` as a transaction decision.

        `RISK` - Transaction is high-risk. Plaid will offer `declined` as a transaction decision.

        `TRANSFER_LIMIT_REACHED` - One or several transfer limits are reached, e.g. monthly transfer limit. Plaid will offer `declined` as a transaction decision.

        `MIGRATED_ACCOUNT_ITEM` - Item created via `/transfer/account_migration` endpoint, limited information available. Plaid will offer `approved` as a transaction decision.
      enum:
        - NSF
        - RISK
        - TRANSFER_LIMIT_REACHED
        - MANUALLY_VERIFIED_ITEM
        - ITEM_LOGIN_REQUIRED
        - PAYMENT_PROFILE_LOGIN_REQUIRED
        - ERROR
        - MIGRATED_ACCOUNT_ITEM
      type: string
    TransferAuthorizationDevice:
      additionalProperties: true
      description: Information about the device being used to initiate the authorization.
      properties:
        ip_address:
          description: The IP address of the device being used to initiate the authorization. Required for Guarantee.
          type: string
        user_agent:
          description: The user agent of the device being used to initiate the authorization. Required for Guarantee.
          type: string
      title: TransferAuthorizationDevice
      type: object
    TransferAuthorizationGuaranteeDecision:
      description: Indicates whether the transfer is guaranteed by Plaid (Guarantee customers only). This field will contain either `GUARANTEED` or `NOT_GUARANTEED` indicating whether Plaid will guarantee the transfer. If the transfer is not guaranteed, additional information will be provided in the `guarantee_decision_rationale` field. Refer to the `code` field in `guarantee_decision_rationale` for details.
      enum:
        - GUARANTEED
        - NOT_GUARANTEED
        - null
      nullable: true
      type: string
    TransferAuthorizationGuaranteeDecisionRationale:
      additionalProperties: true
      description: The rationale for Plaid's decision to not guarantee a transfer. Will be `null` unless `guarantee_decision` is `NOT_GUARANTEED`.
      nullable: true
      properties:
        code:
          $ref: "#/components/schemas/TransferAuthorizationGuaranteeDecisionRationaleCode"
        description:
          description: A human-readable description of why the transfer cannot be guaranteed.
          type: string
      required:
        - code
        - description
      title: TransferAuthorizationGuaranteeDecisionRationale
      type: object
    TransferAuthorizationGuaranteeDecisionRationaleCode:
      description: |-
        A code representing the reason Plaid declined to guarantee this transfer:

        `RETURN_BANK`: The risk of a bank-initiated return (for example, an R01/NSF) is too high to guarantee this transfer.

        `RETURN_CUSTOMER`: The risk of a customer-initiated return (for example, a R10/Unauthorized) is too high to guarantee this transfer.

        `GUARANTEE_LIMIT_REACHED`: This transfer is low-risk, but Guarantee has exhausted an internal limit on the number or rate of guarantees that applies to this transfer.

        `RISK_ESTIMATE_UNAVAILABLE`: A risk estimate is unavailable for this Item.

        `REQUIRED_PARAM_MISSING`: Required fields are missing.
      enum:
        - RETURN_BANK
        - RETURN_CUSTOMER
        - GUARANTEE_LIMIT_REACHED
        - RISK_ESTIMATE_UNAVAILABLE
        - REQUIRED_PARAM_MISSING
      type: string
    TransferAuthorizationID:
      description: Plaid’s unique identifier for a transfer authorization.
      title: TransferAuthorizationID
      type: string
    TransferAuthorizationIdempotencyKey:
      description: |-
        A random key provided by the client, per unique authorization. Maximum of 50 characters.

        The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create an authorization fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single authorization is created.

        Failure to provide this key may result in duplicate charges.

        Required for guaranteed ACH customers.
      maxLength: 50
      nullable: true
      title: TransferAuthorizationIdempotencyKey
      type: string
    TransferAuthorizationProposedTransfer:
      additionalProperties: true
      description: Details regarding the proposed transfer.
      properties:
        account_id:
          description: The Plaid `account_id` for the account that will be debited or credited.
          type: string
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/TransferAmount"
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDResponse"
        iso_currency_code:
          description: The currency of the transfer amount. The default value is "USD".
          type: string
        network:
          description: The network or rails used for the transfer.
          type: string
        origination_account_id:
          deprecated: true
          description: Plaid's unique identifier for the origination account that was used for this transfer.
          type: string
          x-hidden-from-docs: true
        originator_client_id:
          description: The Plaid client ID that is the originator of this transfer. Only present if created on behalf of another client as a third-party sender (TPS).
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/TransferType"
        user:
          $ref: "#/components/schemas/TransferUserInResponse"
      required:
        - type
        - user
        - amount
        - network
        - origination_account_id
        - iso_currency_code
        - originator_client_id
        - funding_account_id
      title: TransferAuthorizationProposedTransfer
      type: object
    TransferAuthorizationUserInRequest:
      additionalProperties: true
      description: The legal name and other information for the account holder.
      properties:
        address:
          $ref: "#/components/schemas/TransferUserAddressInRequest"
        email_address:
          description: The user's email address. In order to qualify for a guaranteed transfer, at least one of `phone_number` or `email_address` must be provided.
          type: string
        legal_name:
          description: The user's legal name.
          type: string
        phone_number:
          description: The user's phone number. In order to qualify for a guaranteed transfer, at least one of `phone_number` or `email_address` must be provided.
          type: string
      required:
        - legal_name
      title: TransferAuthorizationUserInRequest
      type: object
    TransferCancelRequest:
      description: Defines the request schema for `/transfer/cancel`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        originator_client_id:
          description: The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS).
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        transfer_id:
          $ref: "#/components/schemas/TransferID"
      required:
        - transfer_id
      title: TransferCancelRequest
      type: object
    TransferCancelResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/cancel`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: TransferCancelResponse
      type: object
    TransferCapabilitiesGetRTP:
      additionalProperties: true
      description: Contains the supported service types in RTP
      properties:
        credit:
          default: false
          description: When `true`, the linked Item's institution supports RTP credit transfer.
          nullable: false
          type: boolean
      title: TransferCapabilitiesGetRTP
      type: object
    TransferCapabilitiesGetRequest:
      description: Defines the request schema for `/transfer/capabilities/get`
      properties:
        access_token:
          $ref: "#/components/schemas/TransferAccessToken"
        account_id:
          $ref: "#/components/schemas/TransferAccountID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        payment_profile_token:
          $ref: "#/components/schemas/PaymentProfileToken"
        secret:
          $ref: "#/components/schemas/APISecret"
      title: TransferCapabilitiesGetRequest
      type: object
    TransferCapabilitiesGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/capabilities/get`
      properties:
        institution_supported_networks:
          $ref: "#/components/schemas/InstitutionSupportedNetworks"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - institution_supported_networks
        - request_id
      title: TransferCapabilitiesGetResponse
      type: object
    TransferConfigurationGetRequest:
      description: Defines the request schema for `/transfer/configuration/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        originator_client_id:
          description: The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS).
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      title: TransferConfigurationGetRequest
      type: object
    TransferConfigurationGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/configuration/get`
      properties:
        iso_currency_code:
          description: The currency of the dollar amount, e.g. "USD".
          type: string
        max_daily_credit_amount:
          description: The max limit of sum of dollar amount of credit transfers in last 24 hours (decimal string with two digits of precision e.g. "10.00").
          type: string
        max_daily_debit_amount:
          description: The max limit of sum of dollar amount of debit transfers in last 24 hours (decimal string with two digits of precision e.g. "10.00").
          type: string
        max_monthly_amount:
          description: The max limit of sum of dollar amount of credit and debit transfers in one calendar month (decimal string with two digits of precision e.g. "10.00").
          type: string
        max_single_transfer_amount:
          description: The max limit of dollar amount of a single transfer (decimal string with two digits of precision e.g. "10.00").
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
        - max_single_transfer_amount
        - max_daily_credit_amount
        - max_daily_debit_amount
        - max_monthly_amount
        - iso_currency_code
      title: TransferConfigurationGetResponse
      type: object
    TransferCreateIdempotencyKey:
      deprecated: true
      description: |-
        Deprecated. `authorization_id` is now used as idempotency instead.

        A random key provided by the client, per unique transfer. Maximum of 50 characters.

        The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a transfer fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single transfer is created.
      maxLength: 50
      title: TransferCreateIdempotencyKey
      type: string
      x-hidden-from-docs: true
    TransferCreateRequest:
      description: Defines the request schema for `/transfer/create`
      properties:
        access_token:
          $ref: "#/components/schemas/TransferAccessToken"
        account_id:
          $ref: "#/components/schemas/TransferAccountID"
        ach_class:
          allOf:
            - $ref: "#/components/schemas/ACHClass"
          deprecated: true
          x-hidden-from-docs: true
        amount:
          $ref: "#/components/schemas/TransferAmount"
        authorization_id:
          description: Plaid’s unique identifier for a transfer authorization. This parameter also serves the purpose of acting as an idempotency identifier.
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        description:
          description: The transfer description. Maximum of 10 characters. If reprocessing a returned transfer, please note that the `description` field must be `"Retry"` to indicate that it's a retry of a previously returned transfer. You may retry a transfer up to 2 times, within 180 days of creating the original transfer. Only transfers that were returned with code `R01` or `R09` may be retried. For a full listing of ACH return codes, see [Transfer errors](https://plaid.com/docs/errors/transfer/#ach-return-codes).
          maxLength: 10
          type: string
        idempotency_key:
          $ref: "#/components/schemas/TransferCreateIdempotencyKey"
        iso_currency_code:
          deprecated: true
          description: The currency of the transfer amount. The default value is "USD".
          type: string
          x-hidden-from-docs: true
        metadata:
          $ref: "#/components/schemas/TransferMetadata"
        network:
          allOf:
            - $ref: "#/components/schemas/TransferNetwork"
          deprecated: true
          x-hidden-from-docs: true
        origination_account_id:
          deprecated: true
          description: Plaid’s unique identifier for the origination account for this transfer. If you have more than one origination account, this value must be specified. Otherwise, this field should be left blank.
          nullable: true
          type: string
          x-hidden-from-docs: true
        payment_profile_token:
          $ref: "#/components/schemas/TransferPaymentProfileToken"
        secret:
          $ref: "#/components/schemas/APISecret"
        type:
          allOf:
            - $ref: "#/components/schemas/TransferType"
          deprecated: true
          x-hidden-from-docs: true
        user:
          $ref: "#/components/schemas/TransferUserInRequestDeprecated"
      required:
        - authorization_id
        - description
      title: TransferCreateRequest
      type: object
    TransferCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/create`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        transfer:
          $ref: "#/components/schemas/Transfer"
      required:
        - transfer
        - request_id
      title: TransferCreateResponse
      type: object
    TransferDevice:
      additionalProperties: true
      description: Information about the device being used to initiate the authorization.
      properties:
        ip_address:
          description: The IP address of the device being used to initiate the authorization.
          type: string
        user_agent:
          description: The user agent of the device being used to initiate the authorization.
          type: string
      required:
        - ip_address
        - user_agent
      title: TransferDevice
      type: object
    TransferDiligenceStatus:
      description: Originator’s diligence status.
      enum:
        - under_review
        - approved
        - denied
      title: TransferDiligenceStatus
      type: string
    TransferEvent:
      additionalProperties: true
      description: Represents an event in the Transfers API.
      properties:
        account_id:
          description: The account ID associated with the transfer.
          type: string
        event_id:
          description: Plaid’s unique identifier for this event. IDs are sequential unsigned 64-bit integers.
          minimum: 0
          type: integer
        event_type:
          $ref: "#/components/schemas/TransferEventType"
        failure_reason:
          $ref: "#/components/schemas/TransferFailure"
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDResponse"
        origination_account_id:
          deprecated: true
          description: The ID of the origination account that this balance belongs to.
          nullable: true
          type: string
          x-hidden-from-docs: true
        originator_client_id:
          description: The Plaid client ID that is the originator of the transfer that this event applies to. Only present if the transfer was created on behalf of another client as a third-party sender (TPS).
          nullable: true
          type: string
        refund_id:
          description: Plaid’s unique identifier for a refund. A non-null value indicates the event is for the associated refund of the transfer.
          nullable: true
          type: string
        sweep_amount:
          $ref: "#/components/schemas/TransferSweepAmount"
        sweep_id:
          $ref: "#/components/schemas/TransferSweepID"
        timestamp:
          description: The datetime when this event occurred. This will be of the form `2006-01-02T15:04:05Z`.
          format: date-time
          type: string
        transfer_amount:
          $ref: "#/components/schemas/TransferAmount"
        transfer_id:
          $ref: "#/components/schemas/TransferID"
        transfer_type:
          $ref: "#/components/schemas/TransferType"
      required:
        - event_id
        - timestamp
        - event_type
        - account_id
        - transfer_id
        - origination_account_id
        - transfer_type
        - transfer_amount
        - failure_reason
        - sweep_id
        - sweep_amount
        - refund_id
        - originator_client_id
        - funding_account_id
      title: TransferEvent
      type: object
    TransferEventListRequest:
      description: Defines the request schema for `/transfer/event/list`
      properties:
        account_id:
          description: The account ID to get events for all transactions to/from an account.
          nullable: true
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of transfer events to return. If the number of events matching the above parameters is greater than `count`, the most recent events will be returned.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        end_date:
          description: The end datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
        event_types:
          description: Filter events by event type.
          items:
            $ref: "#/components/schemas/TransferEventType"
          type: array
        funding_account_id:
          description: Filter transfer events to only those with the specified `funding_account_id`.
          nullable: true
          type: string
        offset:
          default: 0
          description: The offset into the list of transfer events. When `count`=25 and `offset`=0, the first 25 events will be returned. When `count`=25 and `offset`=25, the next 25 events will be returned.
          minimum: 0
          nullable: true
          type: integer
        origination_account_id:
          deprecated: true
          description: The origination account ID to get events for transfers from a specific origination account.
          nullable: true
          type: string
          x-hidden-from-docs: true
        originator_client_id:
          description: Filter transfer events to only those with the specified originator client.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        start_date:
          description: The start datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
        sweep_id:
          description: Plaid’s unique identifier for a sweep.
          type: string
        transfer_id:
          description: Plaid’s unique identifier for a transfer.
          nullable: true
          title: TransferID
          type: string
        transfer_type:
          $ref: "#/components/schemas/TransferEventListTransferType"
      title: TransferEventListRequest
      type: object
    TransferEventListResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/event/list`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        transfer_events:
          items:
            $ref: "#/components/schemas/TransferEvent"
          type: array
      required:
        - transfer_events
        - request_id
      title: TransferEventListResponse
      type: object
    TransferEventListTransferType:
      description: The type of transfer. This will be either `debit` or `credit`.  A `debit` indicates a transfer of money into your origination account; a `credit` indicates a transfer of money out of your origination account.
      enum:
        - debit
        - credit
        - null
      nullable: true
      title: TransferType
      type: string
    TransferEventSyncRequest:
      description: Defines the request schema for `/transfer/event/sync`
      properties:
        after_id:
          description: The latest (largest) `event_id` fetched via the sync endpoint, or 0 initially.
          minimum: 0
          type: integer
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of transfer events to return.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - after_id
      title: TransferEventSyncRequest
      type: object
    TransferEventSyncResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/event/sync`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        transfer_events:
          items:
            $ref: "#/components/schemas/TransferEvent"
          type: array
      required:
        - transfer_events
        - request_id
      title: TransferEventSyncResponse
      type: object
    TransferEventType:
      description: |-
        The type of event that this transfer represents.

        `pending`: A new transfer was created; it is in the pending state.

        `cancelled`: The transfer was cancelled by the client.

        `failed`: The transfer failed, no funds were moved.

        `posted`: The transfer has been successfully submitted to the payment network.

        `settled`: Credits are available to be withdrawn or debits have been deducted from the Plaid linked account.

        `returned`: A posted transfer was returned.

        `swept`: The transfer was swept to / from the sweep account.

        `swept_settled`: Credits are available to be withdrawn or debits have been deducted from the customer’s business checking account.

        `return_swept`: Due to the transfer being returned, funds were pulled from or pushed back to the sweep account.
      enum:
        - pending
        - cancelled
        - failed
        - posted
        - settled
        - returned
        - swept
        - swept_settled
        - return_swept
      title: TransferEventType
      type: string
    TransferEventsUpdateWebhook:
      additionalProperties: true
      description: Fired when new transfer events are available. Receiving this webhook indicates you should fetch the new events from `/transfer/event/sync`.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        webhook_code:
          description: "`TRANSFER_EVENTS_UPDATE`"
          type: string
        webhook_type:
          description: "`TRANSFER`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - environment
      title: TransferEventsUpdateWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          webhook_code: TRANSFER_EVENTS_UPDATE
          webhook_type: TRANSFER
    TransferExpectedSettlementScheduleItem:
      additionalProperties: true
      description: Defines an expected sweep date and amount.
      properties:
        settled_amount:
          description: The accumulated amount that have been swept by `settlement_date`.
          type: string
        settlement_date:
          description: The settlement date of a sweep for this transfer.
          format: date
          type: string
      required:
        - settlement_date
        - settled_amount
      title: TransferExpectedSettlementScheduleItem
      type: object
    TransferFailure:
      additionalProperties: true
      description: The failure reason if the event type for a transfer is `"failed"` or `"returned"`. Null value otherwise.
      nullable: true
      properties:
        ach_return_code:
          description: The ACH return code, e.g. `R01`.  A return code will be provided if and only if the transfer status is `returned`. For a full listing of ACH return codes, see [Transfer errors](https://plaid.com/docs/errors/transfer/#ach-return-codes).
          nullable: true
          type: string
        description:
          description: A human-readable description of the reason for the failure or reversal.
          type: string
      title: TransferFailure
      type: object
    TransferFundingAccountIDRequest:
      description: The id of the funding account to use, available in the Plaid Dashboard. This determines which of your business checking accounts will be credited or debited. Defaults to the account configured during onboarding.
      nullable: true
      type: string
    TransferFundingAccountIDResponse:
      description: The id of the funding account to use, available in the Plaid Dashboard. This determines which of your business checking accounts will be credited or debited.
      type: string
    TransferGetRequest:
      description: Defines the request schema for `/transfer/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        originator_client_id:
          description: The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS).
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        transfer_id:
          $ref: "#/components/schemas/TransferID"
      required:
        - transfer_id
      title: TransferGetRequest
      type: object
    TransferGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/get`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        transfer:
          $ref: "#/components/schemas/Transfer"
      required:
        - transfer
        - request_id
      title: TransferGetResponse
      type: object
    TransferID:
      description: Plaid’s unique identifier for a transfer.
      title: TransferID
      type: string
    TransferIDForRefund:
      description: The ID of the transfer to refund.
      title: TransferID
      type: string
    TransferIntentAuthorizationDecision:
      description: |-
        
        A decision regarding the proposed transfer.

        `APPROVED` – The proposed transfer has received the end user's consent and has been approved for processing by Plaid. The `decision_rationale` field is set if Plaid was unable to fetch the account information. You may proceed with the transfer, but further review is recommended (i.e., use Link in update to re-authenticate your user when `decision_rationale.code` is `ITEM_LOGIN_REQUIRED`). Refer to the `code` field in the `decision_rationale` object for details.

        `DECLINED` – Plaid reviewed the proposed transfer and declined processing. Refer to the `code` field in the `decision_rationale` object for details.
      enum:
        - APPROVED
        - DECLINED
      nullable: true
      type: string
    TransferIntentCreate:
      additionalProperties: true
      description: Represents a transfer intent within Transfer UI.
      properties:
        account_id:
          description: The Plaid `account_id` corresponding to the end-user account that will be debited or credited. Returned only if `account_id` was set on intent creation.
          nullable: true
          type: string
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/TransferAmount"
        created:
          description: The datetime the transfer was created. This will be of the form `2006-01-02T15:04:05Z`.
          format: date-time
          type: string
        description:
          description: A description for the underlying transfer. Maximum of 8 characters.
          type: string
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDResponse"
        id:
          description: Plaid's unique identifier for the transfer intent object.
          type: string
        iso_currency_code:
          description: The currency of the transfer amount, e.g. "USD"
          type: string
        metadata:
          $ref: "#/components/schemas/TransferMetadata"
        mode:
          $ref: "#/components/schemas/TransferIntentCreateMode"
        network:
          $ref: "#/components/schemas/TransferIntentCreateNetwork"
        origination_account_id:
          deprecated: true
          description: Plaid’s unique identifier for the origination account for the intent. If not provided, the default account will be used.
          type: string
          x-hidden-from-docs: true
        require_guarantee:
          description: When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only).
          nullable: true
          type: boolean
        status:
          $ref: "#/components/schemas/TransferIntentStatus"
        user:
          $ref: "#/components/schemas/TransferUserInResponse"
      required:
        - id
        - created
        - status
        - origination_account_id
        - funding_account_id
        - amount
        - mode
        - user
        - description
        - iso_currency_code
      title: TransferIntentCreate
      type: object
    TransferIntentCreateMode:
      description: |-
        The direction of the flow of transfer funds.

        `PAYMENT`: Transfers funds from an end user's account to your business account.

        `DISBURSEMENT`: Transfers funds from your business account to an end user's account.
      enum:
        - PAYMENT
        - DISBURSEMENT
      title: TransferIntentCreateMode
      type: string
    TransferIntentCreateNetwork:
      default: same-day-ach
      description: |-
        The network or rails used for the transfer. Defaults to `same-day-ach`.

        For transfers submitted as either `ach` or `same-day-ach` the cutoff for same-day is 9:30 AM Pacific Time and the cutoff for next-day transfers is 5:30 PM Pacific Time. It is recommended to submit a transfer at least 15 minutes before the cutoff time in order to ensure that it will be processed before the cutoff. Any transfer that is indicated as `same-day-ach` and that misses the same-day cutoff, but is submitted in time for the next-day cutoff, will be sent over next-day rails and will not incur same-day charges. Note that both legs of the transfer will be downgraded if applicable.
      enum:
        - ach
        - same-day-ach
      title: TransferIntentCreateNetwork
      type: string
    TransferIntentCreateRequest:
      description: Defines the request schema for `/transfer/intent/create`
      properties:
        account_id:
          description: The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
          nullable: true
          type: string
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/TransferAmount"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        description:
          description: A description for the underlying transfer. Maximum of 8 characters.
          maxLength: 8
          minLength: 1
          type: string
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDRequest"
        iso_currency_code:
          description: The currency of the transfer amount, e.g. "USD"
          type: string
        metadata:
          $ref: "#/components/schemas/TransferMetadata"
        mode:
          $ref: "#/components/schemas/TransferIntentCreateMode"
        network:
          $ref: "#/components/schemas/TransferIntentCreateNetwork"
        origination_account_id:
          deprecated: true
          description: Plaid’s unique identifier for the origination account for the intent. If not provided, the default account will be used.
          nullable: true
          type: string
          x-hidden-from-docs: true
        require_guarantee:
          default: false
          description: When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only).
          nullable: true
          type: boolean
        secret:
          $ref: "#/components/schemas/APISecret"
        user:
          $ref: "#/components/schemas/TransferUserInRequest"
      required:
        - mode
        - amount
        - description
        - user
      title: TransferIntentCreateRequest
      type: object
    TransferIntentCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/intent/create`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        transfer_intent:
          $ref: "#/components/schemas/TransferIntentCreate"
      required:
        - transfer_intent
        - request_id
      title: TransferIntentCreateResponse
      type: object
    TransferIntentGet:
      additionalProperties: true
      description: Represents a transfer intent within Transfer UI.
      properties:
        account_id:
          description: The Plaid `account_id` for the account that will be debited or credited. Returned only if `account_id` was set on intent creation.
          nullable: true
          type: string
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/TransferAmount"
        authorization_decision:
          $ref: "#/components/schemas/TransferIntentAuthorizationDecision"
        authorization_decision_rationale:
          $ref: "#/components/schemas/TransferAuthorizationDecisionRationale"
        created:
          description: The datetime the transfer was created. This will be of the form `2006-01-02T15:04:05Z`.
          format: date-time
          type: string
        description:
          description: A description for the underlying transfer. Maximum of 8 characters.
          type: string
        failure_reason:
          $ref: "#/components/schemas/TransferIntentGetFailureReason"
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDResponse"
        guarantee_decision:
          $ref: "#/components/schemas/TransferAuthorizationGuaranteeDecision"
        guarantee_decision_rationale:
          $ref: "#/components/schemas/TransferAuthorizationGuaranteeDecisionRationale"
        id:
          description: Plaid's unique identifier for a transfer intent object.
          type: string
        iso_currency_code:
          description: The currency of the transfer amount, e.g. "USD"
          type: string
        metadata:
          $ref: "#/components/schemas/TransferMetadata"
        mode:
          $ref: "#/components/schemas/TransferIntentCreateMode"
        network:
          $ref: "#/components/schemas/TransferIntentCreateNetwork"
        origination_account_id:
          deprecated: true
          description: Plaid’s unique identifier for the origination account used for the transfer.
          type: string
          x-hidden-from-docs: true
        require_guarantee:
          description: When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only).
          nullable: true
          type: boolean
        status:
          $ref: "#/components/schemas/TransferIntentStatus"
        transfer_id:
          description: Plaid's unique identifier for the transfer created through the UI. Returned only if the transfer was successfully created. Null value otherwise.
          nullable: true
          type: string
        user:
          $ref: "#/components/schemas/TransferUserInResponse"
      required:
        - id
        - created
        - status
        - transfer_id
        - failure_reason
        - authorization_decision
        - authorization_decision_rationale
        - origination_account_id
        - funding_account_id
        - amount
        - mode
        - user
        - description
        - iso_currency_code
        - guarantee_decision
        - guarantee_decision_rationale
      title: TransferIntentGet
      type: object
    TransferIntentGetFailureReason:
      additionalProperties: true
      description: The reason for a failed transfer intent. Returned only if the transfer intent status is `failed`. Null otherwise.
      nullable: true
      properties:
        error_code:
          description: A code representing the reason for a failed transfer intent (i.e., an API error or the authorization being declined).
          type: string
        error_message:
          description: A human-readable description of the code associated with a failed transfer intent.
          type: string
        error_type:
          description: A broad categorization of the error.
          type: string
      title: TransferIntentGetFailureReason
      type: object
    TransferIntentGetRequest:
      additionalProperties: true
      description: Defines the request schema for `/transfer/intent/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        transfer_intent_id:
          description: Plaid's unique identifier for a transfer intent object.
          type: string
      required:
        - transfer_intent_id
      title: TransferIntentGetRequest
      type: object
    TransferIntentGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/intent/get`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        transfer_intent:
          $ref: "#/components/schemas/TransferIntentGet"
      required:
        - transfer_intent
        - request_id
      title: TransferIntentGetResponse
      type: object
    TransferIntentStatus:
      description: |-
        The status of the transfer intent.

        `PENDING`: The transfer intent is pending.
        `SUCCEEDED`: The transfer intent was successfully created.
        `FAILED`: The transfer intent was unable to be created.
      enum:
        - PENDING
        - SUCCEEDED
        - FAILED
      type: string
    TransferListRequest:
      description: Defines the request schema for `/transfer/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of transfers to return.
          maximum: 25
          minimum: 1
          type: integer
        end_date:
          description: The end datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
        funding_account_id:
          description: Filter transfers to only those with the specified `funding_account_id`.
          nullable: true
          type: string
        offset:
          default: 0
          description: The number of transfers to skip before returning results.
          minimum: 0
          type: integer
        origination_account_id:
          deprecated: true
          description: Filter transfers to only those originated through the specified origination account.
          nullable: true
          type: string
          x-hidden-from-docs: true
        originator_client_id:
          description: Filter transfers to only those with the specified originator client.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        start_date:
          description: The start datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
      title: TransferListRequest
      type: object
    TransferListResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/list`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        transfers:
          items:
            $ref: "#/components/schemas/Transfer"
          type: array
      required:
        - transfers
        - request_id
      title: TransferListResponse
      type: object
    TransferMetadata:
      additionalProperties:
        type: string
      description: |
        The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply:
        The JSON values must be Strings (no nested JSON objects allowed)
        Only ASCII characters may be used
        Maximum of 50 key/value pairs
        Maximum key length of 40 characters
        Maximum value length of 500 characters
      maxProperties: 50
      nullable: true
      title: TransferMetadata
      type: object
    TransferMetricsGetRequest:
      description: Defines the request schema for `/transfer/metrics/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        originator_client_id:
          description: The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS).
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      title: TransferMetricsGetRequest
      type: object
    TransferMetricsGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/metrics/get`
      properties:
        daily_credit_transfer_volume:
          description: Sum of dollar amount of credit transfers in last 24 hours (decimal string with two digits of precision e.g. "10.00").
          type: string
        daily_debit_transfer_volume:
          description: Sum of dollar amount of debit transfers in last 24 hours (decimal string with two digits of precision e.g. "10.00").
          type: string
        iso_currency_code:
          description: The currency of the dollar amount, e.g. "USD".
          type: string
        monthly_transfer_volume:
          description: Sum of dollar amount of credit and debit transfers in current calendar month (decimal string with two digits of precision e.g. "10.00").
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
        - daily_debit_transfer_volume
        - daily_credit_transfer_volume
        - monthly_transfer_volume
        - iso_currency_code
      title: TransferMetricsGetResponse
      type: object
    TransferMigrateAccountRequest:
      description: Defines the request schema for `/transfer/migrate_account`
      properties:
        account_number:
          description: The user's account number.
          type: string
        account_type:
          description: The type of the bank account (`checking` or `savings`).
          type: string
        client_id:
          $ref: "#/components/schemas/APIClientID"
        routing_number:
          description: The user's routing number.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        wire_routing_number:
          description: The user's wire transfer routing number. This is the ABA number; for some institutions, this may differ from the ACH number used in `routing_number`.
          type: string
      required:
        - account_number
        - routing_number
        - account_type
      title: TransferMigrateAccountRequest
      type: object
    TransferMigrateAccountResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/migrate_account`
      properties:
        access_token:
          description: The Plaid `access_token` for the newly created Item.
          type: string
        account_id:
          description: The Plaid `account_id` for the newly created Item.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - access_token
        - account_id
        - request_id
      title: TransferMigrateAccountResponse
      type: object
    TransferNetwork:
      description: |-
        The network or rails used for the transfer.

        For transfers submitted as either `ach` or `same-day-ach` the cutoff for same-day is 9:30 AM Pacific Time and the cutoff for next-day transfers is 5:30 PM Pacific Time. It is recommended to submit a transfer at least 15 minutes before the cutoff time in order to ensure that it will be processed before the cutoff. Any transfer that is indicated as `same-day-ach` and that misses the same-day cutoff, but is submitted in time for the next-day cutoff, will be sent over next-day rails and will not incur same-day charges. Note that both legs of the transfer will be downgraded if applicable.
      enum:
        - ach
        - same-day-ach
        - rtp
      title: TransferNetwork
      type: string
    TransferOriginatorCreateRequest:
      description: Defines the request schema for `/transfer/originator/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        company_name:
          description: The company name of the end customer being created. This will be displayed in public-facing surfaces, e.g. Plaid Dashboard.
          minLength: 1
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - company_name
      title: TransferOriginatorCreateRequest
      type: object
    TransferOriginatorCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/originator/create`
      properties:
        company_name:
          description: The company name of the end customer.
          type: string
        originator_client_id:
          description: Client ID of the originator. This identifier will be used when creating transfers and should be stored associated with end user information.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - originator_client_id
        - company_name
        - request_id
      title: TransferOriginatorCreateResponse
      type: object
    TransferOriginatorGetRequest:
      description: Defines the request schema for `/transfer/originator/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        originator_client_id:
          description: Client ID of the end customer (i.e. the originator).
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - originator_client_id
      title: TransferOriginatorGetRequest
      type: object
    TransferOriginatorGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/originator/get`
      properties:
        originator:
          $ref: "#/components/schemas/DetailedOriginator"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - originator
        - request_id
      title: TransferOriginatorGetResponse
      type: object
    TransferOriginatorListRequest:
      description: Defines the request schema for `/transfer/originator/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of originators to return.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        offset:
          default: 0
          description: The number of originators to skip before returning results.
          minimum: 0
          nullable: true
          type: integer
        secret:
          $ref: "#/components/schemas/APISecret"
      title: TransferOriginatorListRequest
      type: object
    TransferOriginatorListResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/originator/list`
      properties:
        originators:
          items:
            $ref: "#/components/schemas/Originator"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - originators
        - request_id
      title: TransferOriginatorListResponse
      type: object
    TransferPaymentProfileToken:
      description: The payment profile token associated with the Payment Profile that will be debited or credited. Required if not using `access_token`.
      type: string
    TransferQuestionnaireCreateRequest:
      description: Defines the request schema for `/transfer/questionnaire/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        originator_client_id:
          description: Client ID of the end customer.
          type: string
        redirect_uri:
          description: URL the end customer will be redirected to after completing questions in Plaid-hosted onboarding flow.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - originator_client_id
        - redirect_uri
        - disbursement_limits
        - payment_limits
        - transaction_frequency
      title: TransferQuestionnaireCreateRequest
      type: object
    TransferQuestionnaireCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/questionnaire/create`
      properties:
        onboarding_url:
          description: Plaid-hosted onboarding URL that you will redirect the end customer to.
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - onboarding_url
        - request_id
      title: TransferQuestionnaireCreateResponse
      type: object
    TransferRecurringCancelRequest:
      description: Defines the request schema for `/transfer/recurring/cancel`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        recurring_transfer_id:
          $ref: "#/components/schemas/RecurringTransferID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - recurring_transfer_id
      title: TransferRecurringCancelRequest
      type: object
    TransferRecurringCancelResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/recurring/cancel`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: TransferRecurringCancelResponse
      type: object
    TransferRecurringCreateRequest:
      description: Defines the request schema for `/transfer/recurring/create`
      properties:
        access_token:
          $ref: "#/components/schemas/TransferAccessToken"
        account_id:
          $ref: "#/components/schemas/TransferAccountID"
        ach_class:
          $ref: "#/components/schemas/ACHClass"
        amount:
          $ref: "#/components/schemas/TransferAmount"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        description:
          description: The description of the recurring transfer.
          type: string
        device:
          $ref: "#/components/schemas/TransferDevice"
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDRequest"
        idempotency_key:
          $ref: "#/components/schemas/TransferRecurringIdempotencyKey"
        iso_currency_code:
          deprecated: true
          description: The currency of the transfer amount. The default value is "USD".
          type: string
          x-hidden-from-docs: true
        network:
          $ref: "#/components/schemas/TransferNetwork"
        schedule:
          $ref: "#/components/schemas/TransferRecurringSchedule"
        secret:
          $ref: "#/components/schemas/APISecret"
        test_clock_id:
          description: Plaid’s unique identifier for a test clock.
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/TransferType"
        user:
          $ref: "#/components/schemas/TransferUserInRequest"
        user_present:
          description: If the end user is initiating the specific transfer themselves via an interactive UI, this should be `true`; for automatic recurring payments where the end user is not actually initiating each individual transfer, it should be `false`.
          nullable: true
          type: boolean
      required:
        - access_token
        - idempotency_key
        - account_id
        - type
        - network
        - amount
        - user_present
        - schedule
        - user
        - device
        - description
      title: TransferRecurringCreateRequest
      type: object
    TransferRecurringCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/recurring/create`
      properties:
        decision:
          $ref: "#/components/schemas/TransferAuthorizationDecision"
        decision_rationale:
          $ref: "#/components/schemas/TransferAuthorizationDecisionRationale"
        recurring_transfer:
          $ref: "#/components/schemas/RecurringTransferNullable"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - decision
        - request_id
      title: TransferRecurringCreateResponse
      type: object
    TransferRecurringGetRequest:
      description: Defines the request schema for `/transfer/recurring/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        recurring_transfer_id:
          $ref: "#/components/schemas/RecurringTransferID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - recurring_transfer_id
      title: TransferRecurringGetRequest
      type: object
    TransferRecurringGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/recurring/get`
      properties:
        recurring_transfer:
          $ref: "#/components/schemas/RecurringTransfer"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - recurring_transfer
        - request_id
      title: TransferRecurringGetResponse
      type: object
    TransferRecurringIdempotencyKey:
      description: |-
        A random key provided by the client, per unique recurring transfer. Maximum of 50 characters.

        The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a recurring fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single recurring transfer is created.
      maxLength: 50
      title: TransferRecurringIdempotencyKey
      type: string
    TransferRecurringListRequest:
      description: Defines the request schema for `/transfer/recurring/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of recurring transfers to return.
          maximum: 25
          minimum: 1
          type: integer
        end_time:
          description: The end datetime of recurring transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
        funding_account_id:
          description: Filter recurring transfers to only those with the specified `funding_account_id`.
          nullable: true
          type: string
        offset:
          default: 0
          description: The number of recurring transfers to skip before returning results.
          minimum: 0
          type: integer
        secret:
          $ref: "#/components/schemas/APISecret"
        start_time:
          description: The start datetime of recurring transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)
          format: date-time
          nullable: true
          type: string
      title: TransferRecurringListRequest
      type: object
    TransferRecurringListResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/recurring/list`
      properties:
        recurring_transfers:
          items:
            $ref: "#/components/schemas/RecurringTransfer"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - recurring_transfers
        - request_id
      title: TransferRecurringListResponse
      type: object
    TransferRecurringSchedule:
      description: The schedule that the recurring transfer will be executed on.
      properties:
        end_date:
          description: |-
            A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). The recurring transfer will end on the last `interval_execution_day` on or before the `end_date`.
            If the `interval_execution_day` between the start date and the end date (inclusive) is also the same day that `/transfer/recurring/create` was called, the bank *may* make a payment on that day, but it is not guaranteed to do so.
          format: date
          nullable: true
          type: string
        interval_count:
          $ref: "#/components/schemas/TransferScheduleIntervalCount"
        interval_execution_day:
          description: |-
            The day of the interval on which to schedule the transfer.

            If the `interval_unit` is `week`, `interval_execution_day` should be an integer from 1 (Monday) to 5 (Friday).

            If the `interval_unit` is `month`, `interval_execution_day` should be an integer indicating which day of the month to make the transfer on. Integers from 1 to 28 can be used to make a transfer on that day of the month. Negative integers from -1 to -5 can be used to make a transfer relative to the end of the month. To make a transfer on the last day of the month, use -1; to make the transfer on the second-to-last day, use -2, and so on.

            The transfer will be originated on next available banking day if the designated day is a non banking day.
          type: integer
        interval_unit:
          $ref: "#/components/schemas/TransferScheduleIntervalUnit"
        start_date:
          description: |-
            A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). The recurring transfer will begin on the first `interval_execution_day` on or after the `start_date`.

            If the first `interval_execution_day` on or after the start date is also the same day that `/transfer/recurring/create` was called, the bank *may* make the first payment on that day, but it is not guaranteed to do so.
          format: date
          type: string
      required:
        - interval_unit
        - interval_count
        - interval_execution_day
        - start_date
      title: TransferRecurringSchedule
      type: object
    TransferRecurringStatus:
      description: |-
        The status of the recurring transfer.

        `active`: The recurring transfer is currently active.
        `cancelled`: The recurring transfer was cancelled by the client or Plaid.
        `expired`: The recurring transfer has completed all originations according to its recurring schedule.
      enum:
        - active
        - cancelled
        - expired
      title: TransferRecurringStatus
      type: string
    TransferRefund:
      additionalProperties: true
      description: Represents a refund within the Transfers API.
      properties:
        amount:
          $ref: "#/components/schemas/TransferRefundAmount"
        created:
          description: The datetime when this refund was created. This will be of the form `2006-01-02T15:04:05Z`
          format: date-time
          type: string
        id:
          $ref: "#/components/schemas/TransferRefundID"
        status:
          $ref: "#/components/schemas/TransferRefundStatus"
        transfer_id:
          $ref: "#/components/schemas/TransferIDForRefund"
      required:
        - id
        - transfer_id
        - amount
        - status
        - created
      title: TransferRefund
      type: object
    TransferRefundAmount:
      description: The amount of the refund (decimal string with two digits of precision e.g. "10.00").
      title: TransferRefundAmount
      type: string
    TransferRefundCancelRequest:
      description: Defines the request schema for `/transfer/refund/cancel`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        refund_id:
          $ref: "#/components/schemas/TransferRefundID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - refund_id
      title: TransferRefundCancelRequest
      type: object
    TransferRefundCancelResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/refund/cancel`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - request_id
      title: TransferRefundCancelResponse
      type: object
    TransferRefundCreateRequest:
      description: Defines the request schema for `/transfer/refund/create`
      properties:
        amount:
          $ref: "#/components/schemas/TransferRefundAmount"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        idempotency_key:
          $ref: "#/components/schemas/TransferRefundIdempotencyKey"
        secret:
          $ref: "#/components/schemas/APISecret"
        transfer_id:
          $ref: "#/components/schemas/TransferIDForRefund"
      required:
        - transfer_id
        - idempotency_key
        - amount
      title: TransferRefundCreateRequest
      type: object
    TransferRefundCreateResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/refund/create`
      properties:
        refund:
          $ref: "#/components/schemas/TransferRefund"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - refund
        - request_id
      title: TransferRefundCreateResponse
      type: object
    TransferRefundGetRequest:
      description: Defines the request schema for `/transfer/refund/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        refund_id:
          $ref: "#/components/schemas/TransferRefundID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - refund_id
      title: TransferRefundGetRequest
      type: object
    TransferRefundGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/refund/get`
      properties:
        refund:
          $ref: "#/components/schemas/TransferRefund"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - refund
        - request_id
      title: TransferRefundCreateResponse
      type: object
    TransferRefundID:
      description: Plaid’s unique identifier for a refund.
      title: TransferRefundID
      type: string
    TransferRefundIdempotencyKey:
      description: |-
        A random key provided by the client, per unique refund. Maximum of 50 characters.

        The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a refund fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single refund is created.
      maxLength: 50
      title: TransferRefundIdempotencyKey
      type: string
    TransferRefundStatus:
      description: |-
        The status of the refund.

        `pending`: A new refund was created; it is in the pending state.
        `posted`: The refund has been successfully submitted to the payment network.
        `cancelled`: The refund was cancelled by the client.
        `failed`: The refund failed or was returned.
      enum:
        - pending
        - posted
        - cancelled
        - failed
      title: TransferRefundStatus
      type: string
    TransferRepayment:
      additionalProperties: true
      description: |-
        A repayment is created automatically after one or more guaranteed transactions receive a return. If there are multiple eligible returns in a day, they are batched together into a single repayment.

        Repayments are sent over ACH, with funds typically available on the next banking day.
      properties:
        amount:
          description: Decimal amount of the repayment as it appears on your account ledger.
          type: string
        created:
          description: The datetime when the repayment occurred, in RFC 3339 format.
          format: date-time
          type: string
        iso_currency_code:
          description: The currency of the repayment, e.g. "USD".
          type: string
        repayment_id:
          description: Identifier of the repayment.
          type: string
      required:
        - repayment_id
        - created
        - amount
        - iso_currency_code
      title: TransferRepayment
      type: object
    TransferRepaymentListRequest:
      description: Defines the request schema for `/transfer/repayment/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of repayments to return.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        end_date:
          description: The end datetime of repayments to return (RFC 3339 format).
          format: date-time
          nullable: true
          type: string
        offset:
          default: 0
          description: The number of repayments to skip before returning results.
          minimum: 0
          type: integer
        secret:
          $ref: "#/components/schemas/APISecret"
        start_date:
          description: The start datetime of repayments to return (RFC 3339 format).
          format: date-time
          nullable: true
          type: string
      title: TransferRepaymentListRequest
      type: object
    TransferRepaymentListResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/repayments/list`
      properties:
        repayments:
          items:
            $ref: "#/components/schemas/TransferRepayment"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - repayments
        - request_id
      title: TransferRepaymentListResponse
      type: object
    TransferRepaymentReturn:
      additionalProperties: true
      description: Represents a return on a Guaranteed ACH transfer that is included in the specified repayment.
      properties:
        amount:
          description: The value of the returned transfer.
          type: string
        event_id:
          description: The unique identifier of the corresponding `returned` transfer event.
          minimum: 0
          type: integer
        iso_currency_code:
          description: The currency of the repayment, e.g. "USD".
          type: string
        transfer_id:
          description: The unique identifier of the guaranteed transfer that was returned.
          type: string
      required:
        - transfer_id
        - event_id
        - amount
        - iso_currency_code
      title: TransferRepaymentReturn
      type: object
    TransferRepaymentReturnListRequest:
      description: Defines the request schema for `/transfer/repayment/return/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of repayments to return.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        offset:
          default: 0
          description: The number of repayments to skip before returning results.
          minimum: 0
          type: integer
        repayment_id:
          description: Identifier of the repayment to query.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - repayment_id
      title: TransferRepaymentReturnListRequest
      type: object
    TransferRepaymentReturnListResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/repayments/return/list`
      properties:
        repayment_returns:
          items:
            $ref: "#/components/schemas/TransferRepaymentReturn"
          type: array
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - repayment_returns
        - request_id
      title: TransferRepaymentReturnListResponse
      type: object
    TransferScheduleIntervalCount:
      description: |-
        The number of recurring `interval_units` between originations. The recurring interval(before holiday adjustment) is calculated by multiplying `interval_unit` and `interval_count`.
        For instance, to schedule a recurring transfer which originates once every two weeks, set `interval_unit` = `week` and `interval_count` = 2.
      title: TransferScheduleIntervalCount
      type: integer
    TransferScheduleIntervalUnit:
      description: The unit of the recurring interval.
      enum:
        - week
        - month
      minLength: 1
      title: TransferScheduleIntervalUnit
      type: string
    TransferStatus:
      description: |-
        The status of the transfer.

        `pending`: A new transfer was created; it is in the pending state.
        `posted`: The transfer has been successfully submitted to the payment network.
        `settled`: Credits are available to be withdrawn or debits have been deducted from the Plaid linked account.
        `cancelled`: The transfer was cancelled by the client.
        `failed`: The transfer failed, no funds were moved.
        `returned`: A posted transfer was returned.
      enum:
        - pending
        - posted
        - settled
        - cancelled
        - failed
        - returned
      title: TransferStatus
      type: string
    TransferSweep:
      additionalProperties: true
      description: |-
        Describes a sweep of funds to / from the sweep account.

        A sweep is associated with many sweep events (events of type `swept` or `return_swept`) which can be retrieved by invoking the `/transfer/event/list` endpoint with the corresponding `sweep_id`.

        `swept` events occur when the transfer amount is credited or debited from your sweep account, depending on the `type` of the transfer. `return_swept` events occur when a transfer is returned and Plaid undoes the credit or debit.

        The total sum of the `swept` and `return_swept` events is equal to the `amount` of the sweep Plaid creates and matches the amount of the entry on your sweep account ledger.
      properties:
        amount:
          description: |-
            Signed decimal amount of the sweep as it appears on your sweep account ledger (e.g. "-10.00")

            If amount is not present, the sweep was net-settled to zero and outstanding debits and credits between the sweep account and Plaid are balanced.
          type: string
        created:
          description: The datetime when the sweep occurred, in RFC 3339 format.
          format: date-time
          type: string
        funding_account_id:
          $ref: "#/components/schemas/TransferFundingAccountIDResponse"
        id:
          description: Identifier of the sweep.
          type: string
        iso_currency_code:
          description: The currency of the sweep, e.g. "USD".
          type: string
        settled:
          description: The date when the sweep settled, in the YYYY-MM-DD format.
          format: date
          nullable: true
          type: string
      required:
        - id
        - created
        - amount
        - iso_currency_code
        - settled
        - funding_account_id
      title: TransferSweep
      type: object
    TransferSweepAmount:
      description: A signed amount of how much was `swept` or `return_swept` for this transfer (decimal string with two digits of precision e.g. "-5.50").
      nullable: true
      title: TransferSweepAmount
      type: string
    TransferSweepGetRequest:
      description: Defines the request schema for `/transfer/sweep/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        sweep_id:
          description: Plaid’s unique identifier for a sweep.
          type: string
      required:
        - sweep_id
      title: TransferSweepGetRequest
      type: object
    TransferSweepGetResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/sweep/get`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        sweep:
          $ref: "#/components/schemas/TransferSweep"
      required:
        - sweep
        - request_id
      title: TransferSweepGetResponse
      type: object
    TransferSweepID:
      description: Plaid’s unique identifier for a sweep.
      nullable: true
      title: TransferSweepID
      type: string
    TransferSweepListRequest:
      description: Defines the request schema for `/transfer/sweep/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 25
          description: The maximum number of sweeps to return.
          maximum: 25
          minimum: 1
          nullable: true
          type: integer
        end_date:
          description: The end datetime of sweeps to return (RFC 3339 format).
          format: date-time
          nullable: true
          type: string
        funding_account_id:
          description: Filter sweeps to only those with the specified `funding_account_id`.
          nullable: true
          type: string
        offset:
          default: 0
          description: The number of sweeps to skip before returning results.
          minimum: 0
          type: integer
        originator_client_id:
          description: Filter sweeps to only those with the specified originator client.
          nullable: true
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        start_date:
          description: The start datetime of sweeps to return (RFC 3339 format).
          format: date-time
          nullable: true
          type: string
      title: TransferSweepListRequest
      type: object
    TransferSweepListResponse:
      additionalProperties: true
      description: Defines the response schema for `/transfer/sweep/list`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        sweeps:
          items:
            $ref: "#/components/schemas/TransferSweep"
          type: array
      required:
        - sweeps
        - request_id
      title: TransferSweepListResponse
      type: object
    TransferSweepStatus:
      description: |-
        The status of the sweep for the transfer.

        `unswept`: The transfer hasn't been swept yet.
        `swept`: The transfer was swept to the sweep account.
        `swept_settled`: Credits are available to be withdrawn or debits have been deducted from the customer’s business checking account.
        `return_swept`: The transfer was returned, funds were pulled back or pushed back to the sweep account.
        `null`: The transfer will never be swept (e.g. if the transfer is cancelled or returned before being swept)
      enum:
        - null
        - unswept
        - swept
        - swept_settled
        - return_swept
      nullable: true
      title: TransferSweepStatus
      type: string
    TransferTestClock:
      additionalProperties: true
      description: Defines the test clock for a transfer.
      properties:
        test_clock_id:
          $ref: "#/components/schemas/TransferTestClockID"
        virtual_time:
          $ref: "#/components/schemas/VirtualTime"
      required:
        - test_clock_id
        - virtual_time
      title: TransferTestClock
      type: object
    TransferTestClockID:
      description: Plaid’s unique identifier for a test clock.
      title: TransferTestClockID
      type: string
    TransferType:
      description: The type of transfer. This will be either `debit` or `credit`.  A `debit` indicates a transfer of money into the origination account; a `credit` indicates a transfer of money out of the origination account.
      enum:
        - debit
        - credit
      title: TransferType
      type: string
    TransferUserAddressInRequest:
      additionalProperties: true
      description: The address associated with the account holder. Providing this data will improve the likelihood that Plaid will be able to guarantee the transfer, if applicable.
      properties:
        city:
          description: Ex. "San Francisco"
          type: string
        country:
          description: A two-letter country code (e.g., "US").
          type: string
        postal_code:
          description: The postal code (e.g., "94103").
          type: string
        region:
          description: The state or province (e.g., "CA").
          type: string
        street:
          description: The street number and name (i.e., "100 Market St.").
          type: string
      title: TransferUserAddressInRequest
      type: object
    TransferUserAddressInResponse:
      additionalProperties: true
      description: The address associated with the account holder.
      nullable: true
      properties:
        city:
          description: Ex. "San Francisco"
          nullable: true
          type: string
        country:
          description: A two-letter country code (e.g., "US").
          nullable: true
          type: string
        postal_code:
          description: The postal code (e.g., "94103").
          nullable: true
          type: string
        region:
          description: The state or province (e.g., "CA").
          nullable: true
          type: string
        street:
          description: The street number and name (i.e., "100 Market St.").
          nullable: true
          type: string
      required:
        - street
        - city
        - region
        - postal_code
        - country
      title: TransferUserAddressInResponse
      type: object
    TransferUserInRequest:
      additionalProperties: true
      description: The legal name and other information for the account holder.
      properties:
        address:
          $ref: "#/components/schemas/TransferUserAddressInRequest"
        email_address:
          description: The user's email address.
          type: string
        legal_name:
          description: The user's legal name.
          type: string
        phone_number:
          description: The user's phone number.
          type: string
      required:
        - legal_name
      title: TransferUserInRequest
      type: object
    TransferUserInRequestDeprecated:
      additionalProperties: true
      deprecated: true
      description: The legal name and other information for the account holder.
      nullable: true
      properties:
        address:
          $ref: "#/components/schemas/TransferUserAddressInRequest"
        email_address:
          description: The user's email address.
          type: string
        legal_name:
          description: The user's legal name.
          type: string
        phone_number:
          description: The user's phone number.
          type: string
      title: TransferUserInRequestDeprecated
      type: object
      x-hidden-from-docs: true
    TransferUserInResponse:
      additionalProperties: true
      description: The legal name and other information for the account holder.
      properties:
        address:
          $ref: "#/components/schemas/TransferUserAddressInResponse"
        email_address:
          description: The user's email address.
          nullable: true
          type: string
        legal_name:
          description: The user's legal name.
          type: string
        phone_number:
          description: The user's phone number.
          nullable: true
          type: string
      required:
        - legal_name
        - phone_number
        - email_address
        - address
      title: TransferUserInResponse
      type: object
    URL:
      description: An 'http' or 'https' URL (must begin with either of those).
      example: https://example.com
      format: uri
      title: URL
      type: string
    URLNullable:
      description: An 'http' or 'https' URL (must begin with either of those).
      example: https://example.com
      format: uri
      nullable: true
      title: URL
      type: string
    UTCOffset:
      description: UTC offset of the timezone associated with the IP address.
      example: +06:00:00
      nullable: true
      type: string
    UnofficialCurrencyCodeList:
      description: List of unofficial currency codes
      properties:
        ADA:
          description: Cardano
          type: string
        BAT:
          description: Basic Attention Token
          type: string
        BCH:
          description: Bitcoin Cash
          type: string
        BNB:
          description: Binance Coin
          type: string
        BSV:
          description: Bitcoin Satoshi Vision
          type: string
        BTC:
          description: Bitcoin
          type: string
        BTG:
          description: Bitcoin Gold
          type: string
        CNH:
          description: Chinese Yuan (offshore)
          type: string
        DASH:
          description: Dash
          type: string
        DOGE:
          description: Dogecoin
          type: string
        ETC:
          description: Ethereum Classic
          type: string
        ETH:
          description: Ethereum
          type: string
        GBX:
          description: Pence sterling, i.e. British penny
          type: string
        LSK:
          description: Lisk
          type: string
        NEO:
          description: Neo
          type: string
        OMG:
          description: OmiseGO
          type: string
        QTUM:
          description: Qtum
          type: string
        USDT:
          description: Tether
          type: string
        XLM:
          description: Stellar Lumen
          type: string
        XMR:
          description: Monero
          type: string
        XRP:
          description: Ripple
          type: string
        ZEC:
          description: Zcash
          type: string
        ZRX:
          description: 0x
          type: string
      required:
        - ADA
        - BAT
        - BCH
        - BNB
        - BTC
        - BTG
        - CNH
        - DASH
        - DOGE
        - ETC
        - ETH
        - GBX
        - LSK
        - NEO
        - OMG
        - QTUM
        - USDT
        - XLM
        - XMR
        - XRP
        - ZEC
        - ZRX
      title: UnofficialCurrencyCodeList
      type: string
    UpdateEntityScreeningRequestSearchTerms:
      description: Search terms for editing an entity watchlist screening
      nullable: true
      properties:
        country:
          $ref: "#/components/schemas/GenericCountryCode"
        document_number:
          $ref: "#/components/schemas/WatchlistScreeningDocumentValue"
        email_address:
          $ref: "#/components/schemas/EmailAddress"
        entity_watchlist_program_id:
          $ref: "#/components/schemas/EntityWatchlistProgramID"
        legal_name:
          $ref: "#/components/schemas/EntityWatchlistScreeningName"
        phone_number:
          $ref: "#/components/schemas/WatchlistScreeningPhoneNumber"
        url:
          $ref: "#/components/schemas/URL"
      required:
        - entity_watchlist_program_id
      type: object
    UpdateIndividualScreeningRequestSearchTerms:
      description: Search terms for editing an individual watchlist screening
      nullable: true
      properties:
        country:
          $ref: "#/components/schemas/GenericCountryCode"
        date_of_birth:
          $ref: "#/components/schemas/ISO8601Date"
        document_number:
          $ref: "#/components/schemas/WatchlistScreeningDocumentValue"
        legal_name:
          $ref: "#/components/schemas/WatchlistScreeningIndividualName"
        watchlist_program_id:
          $ref: "#/components/schemas/WatchlistProgramID"
      type: object
    UserAddress:
      additionalProperties: true
      description: Home address for the user.
      nullable: true
      properties:
        city:
          $ref: "#/components/schemas/City"
        country:
          $ref: "#/components/schemas/GenericCountryCode"
        postal_code:
          $ref: "#/components/schemas/PostalCode"
        region:
          $ref: "#/components/schemas/Region"
        street:
          $ref: "#/components/schemas/Street"
        street2:
          $ref: "#/components/schemas/Street2"
      required:
        - street
        - city
        - region
        - postal_code
        - country
      type: object
    UserCreateRequest:
      description: UserCreateRequest defines the request schema for `/user/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_user_id:
          description: A unique ID representing the end user. Maximum of 128 characters. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
          maxLength: 128
          minLength: 1
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - client_user_id
      type: object
    UserCreateResponse:
      additionalProperties: true
      description: UserCreateResponse defines the response schema for `/user/create`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        user_id:
          $ref: "#/components/schemas/UserId"
        user_token:
          $ref: "#/components/schemas/UserToken"
      required:
        - user_token
        - user_id
        - request_id
      type: object
    UserCustomPassword:
      additionalProperties: true
      description: Custom test accounts are configured with a JSON configuration object formulated according to the schema below. All top level fields are optional. Sending an empty object as a configuration will result in an account configured with random balances and transaction history.
      properties:
        force_error:
          description: |-
            An error code to force on Item creation. Possible values are:

            `"INSTITUTION_NOT_RESPONDING"`
            `"INSTITUTION_NO_LONGER_SUPPORTED"`
            `"INVALID_CREDENTIALS"`
            `"INVALID_MFA"`
            `"ITEM_LOCKED"`
            `"ITEM_LOGIN_REQUIRED"`
            `"ITEM_NOT_SUPPORTED"`
            `"INVALID_LINK_TOKEN"`
            `"MFA_NOT_SUPPORTED"`
            `"NO_ACCOUNTS"`
            `"PLAID_ERROR"`
            `"USER_INPUT_TIMEOUT"`
            `"USER_SETUP_REQUIRED"`
          type: string
        mfa:
          $ref: "#/components/schemas/MFA"
        override_accounts:
          description: An array of account overrides to configure the accounts for the Item. By default, if no override is specified, transactions and account data will be randomly generated based on the account type and subtype, and other products will have fixed or empty data.
          items:
            $ref: "#/components/schemas/OverrideAccounts"
          type: array
        recaptcha:
          description: You may trigger a reCAPTCHA in Plaid Link in the Sandbox environment by using the recaptcha field. Possible values are `good` or `bad`. A value of `good` will result in successful Item creation and `bad` will result in a `RECAPTCHA_BAD` error to simulate a failed reCAPTCHA. Both values require the reCAPTCHA to be manually solved within Plaid Link.
          type: string
        seed:
          description: |-
            A seed, in the form of a string, that will be used to randomly generate account and transaction data, if this data is not specified using the `override_accounts` argument. If no seed is specified, the randomly generated data will be different each time.

            Note that transactions data is generated relative to the Item's creation date. Different Items created on different dates with the same seed for transactions data will have different dates for the transactions. The number of days between each transaction and the Item creation will remain constant. For example, an Item created on December 15 might show a transaction on December 14. An Item created on December 20, using the same seed, would show that same transaction occurring on December 19.
          type: string
        version:
          description: The version of the password schema to use, possible values are 1 or 2. The default value is 2. You should only specify 1 if you know it is necessary for your test suite.
          nullable: true
          type: string
      required:
        - seed
        - override_accounts
        - mfa
        - recaptcha
        - force_error
      title: UserCustomPassword
      type: object
      x-examples: {}
    UserIDNumber:
      additionalProperties: true
      description: ID number submitted by the user, currently used only for the Identity Verification product. If the user has not submitted this data yet, this field will be `null`. Otherwise, both fields are guaranteed to be filled.
      nullable: true
      properties:
        type:
          $ref: "#/components/schemas/IDNumberType"
        value:
          $ref: "#/components/schemas/IDNumberValue"
      required:
        - value
        - type
      type: object
    UserId:
      description: The Plaid `user_id` of the User associated with this webhook, warning, or error.
      title: UserId
      type: string
    UserPermissionRevokedWebhook:
      additionalProperties: true
      description: The `USER_PERMISSION_REVOKED` webhook is fired when an end user has used either the [my.plaid.com portal](https://my.plaid.com) or the financial institution’s consent portal to revoke the permission that they previously granted to access an Item. Once access to an Item has been revoked, it cannot be restored. If the user subsequently returns to your application, a new Item must be created for the user.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`USER_PERMISSION_REVOKED`"
          type: string
        webhook_type:
          description: "`ITEM`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - environment
      title: UserPermissionRevokedWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error:
            error_code: USER_PERMISSION_REVOKED
            error_message: the holder of this account has revoked their permission for your application to access it
            error_type: ITEM_ERROR
            status: 400
          item_id: gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ
          webhook_code: USER_PERMISSION_REVOKED
          webhook_type: ITEM
    UserStatedIncomeSourceCategory:
      description: The income category for a specified income source
      enum:
        - OTHER
        - SALARY
        - UNEMPLOYMENT
        - CASH
        - GIG_ECONOMY
        - RENTAL
        - CHILD_SUPPORT
        - MILITARY
        - RETIREMENT
        - LONG_TERM_DISABILITY
        - BANK_INTEREST
      type: string
    UserStatedIncomeSourceFrequency:
      description: The pay frequency of a specified income source
      enum:
        - UNKNOWN
        - WEEKLY
        - BIWEEKLY
        - SEMI_MONTHLY
        - MONTHLY
      type: string
    UserStatedIncomeSourcePayType:
      description: The pay type - `GROSS`, `NET`, or `UNKNOWN` for a specified income source
      enum:
        - UNKNOWN
        - GROSS
        - NET
      type: string
    UserToken:
      description: The user token associated with the User data is being requested for.
      title: UserToken
      type: string
    ValidationSource:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ValidationSourceName:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          nullable: true
          type: string
        ValidationSourceReferenceIdentifier:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          nullable: true
          type: string
      required:
        - ValidationSourceName
        - ValidationSourceReferenceIdentifier
      title: ValidationSource
      type: object
    ValidationSources:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        VALIDATION_SOURCE:
          description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
          items:
            $ref: "#/components/schemas/ValidationSource"
          type: array
      required:
        - VALIDATION_SOURCE
      title: ValidationSources
      type: object
    VerificationExpiredWebhook:
      additionalProperties: true
      description: Fired when an Item was not verified via automated micro-deposits after seven days since the automated micro-deposit was made.
      properties:
        account_id:
          description: The `account_id` of the account associated with the webhook
          type: string
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        item_id:
          $ref: "#/components/schemas/ItemId"
        webhook_code:
          description: "`VERIFICATION_EXPIRED`"
          type: string
        webhook_type:
          description: "`AUTH`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - account_id
        - environment
      title: VerificationExpiredWebhook
      type: object
      x-examples:
        example-1:
          account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
          environment: production
          item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
          webhook_code: VERIFICATION_EXPIRED
          webhook_type: AUTH
    VerificationOfAsset:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        REPORTING_INFORMATION:
          $ref: "#/components/schemas/ReportingInformation"
        SERVICE_PRODUCT_FULFILLMENT:
          $ref: "#/components/schemas/ServiceProductFulfillment"
        VERIFICATION_OF_ASSET_RESPONSE:
          $ref: "#/components/schemas/VerificationOfAssetResponse"
      required:
        - REPORTING_INFORMATION
        - SERVICE_PRODUCT_FULFILLMENT
        - VERIFICATION_OF_ASSET_RESPONSE
      title: VerificationOfAsset
      type: object
    VerificationOfAssetResponse:
      additionalProperties: true
      description: Documentation not found in the MISMO model viewer and not provided by Freddie Mac.
      properties:
        ASSETS:
          $ref: "#/components/schemas/Assets"
      required:
        - ASSETS
      title: VerificationOfAssetResponse
      type: object
    VerificationRefreshStatus:
      description: |-
        The verification refresh status. One of the following:

        `"VERIFICATION_REFRESH_STATUS_USER_PRESENCE_REQUIRED"` User presence is required to refresh an income verification.
        `"VERIFICATION_REFRESH_SUCCESSFUL"` The income verification refresh was successful.
        `"VERIFICATION_REFRESH_NOT_FOUND"` No new data was found after the income verification refresh.
      enum:
        - VERIFICATION_REFRESH_STATUS_USER_PRESENCE_REQUIRED
        - VERIFICATION_REFRESH_SUCCESSFUL
        - VERIFICATION_REFRESH_NOT_FOUND
      title: VerificationRefreshStatus
      type: string
    VerificationStatus:
      description: |-
        The verification status. One of the following:

        `"VERIFIED"`: The information was successfully verified.

        `"UNVERIFIED"`: The verification has not yet been performed.

        `"NEEDS_INFO"`: The verification was attempted but could not be completed due to missing information.

        "`UNABLE_TO_VERIFY`": The verification was performed and the information could not be verified.

        `"UNKNOWN"`: The verification status is unknown.
      enum:
        - VERIFIED
        - UNVERIFIED
        - NEEDS_INFO
        - UNABLE_TO_VERIFY
        - UNKNOWN
      title: VerificationStatus
      type: string
    VirtualTime:
      description: The virtual timestamp on the test clock. This will be of the form `2006-01-02T15:04:05Z`.
      format: date-time
      title: VirtualTime
      type: string
    W2:
      additionalProperties: true
      description: W2 is an object that represents income data taken from a W2 tax document.
      properties:
        allocated_tips:
          description: Allocated tips.
          nullable: true
          type: string
        box_12:
          items:
            $ref: "#/components/schemas/W2Box12"
          type: array
        box_9:
          description: Contents from box 9 on the W2.
          nullable: true
          type: string
        dependent_care_benefits:
          description: Dependent care benefits.
          nullable: true
          type: string
        employee:
          $ref: "#/components/schemas/Employee"
        employer:
          $ref: "#/components/schemas/PaystubEmployer"
        employer_id_number:
          description: An employee identification number or EIN.
          nullable: true
          type: string
        federal_income_tax_withheld:
          description: Federal income tax withheld for the tax year.
          nullable: true
          type: string
        medicare_tax_withheld:
          description: Medicare tax withheld for the tax year.
          nullable: true
          type: string
        medicare_wages_and_tips:
          description: Wages and tips from medicare.
          nullable: true
          type: string
        nonqualified_plans:
          description: Nonqualified plans.
          nullable: true
          type: string
        other:
          description: Other.
          nullable: true
          type: string
        retirement_plan:
          description: Retirement plan.
          nullable: true
          type: string
        social_security_tax_withheld:
          description: Social security tax withheld for the tax year.
          nullable: true
          type: string
        social_security_tips:
          description: Tips from social security.
          nullable: true
          type: string
        social_security_wages:
          description: Wages from social security.
          nullable: true
          type: string
        state_and_local_wages:
          items:
            $ref: "#/components/schemas/W2StateAndLocalWages"
          type: array
        statutory_employee:
          description: Statutory employee.
          nullable: true
          type: string
        tax_year:
          description: The tax year of the W2 document.
          nullable: true
          type: string
        third_party_sick_pay:
          description: Third party sick pay.
          nullable: true
          type: string
        wages_tips_other_comp:
          description: Wages from tips and other compensation.
          nullable: true
          type: string
      title: W2
      type: object
    W2Box12:
      additionalProperties: true
      description: Data on the W2 Box 12
      properties:
        amount:
          description: W2 Box 12 amount.
          nullable: true
          type: string
        code:
          description: W2 Box 12 code.
          nullable: true
          type: string
      title: W2Box12
      type: object
    W2StateAndLocalWages:
      additionalProperties: true
      description: W2 state and local wages
      properties:
        employer_state_id_number:
          description: State identification number of the employer.
          nullable: true
          type: string
        local_income_tax:
          description: Income tax from the locality.
          nullable: true
          type: string
        local_wages_tips:
          description: Wages and tips from the locality.
          nullable: true
          type: string
        locality_name:
          description: Name of the locality.
          nullable: true
          type: string
        state:
          description: State associated with the wage.
          nullable: true
          type: string
        state_income_tax:
          description: Income tax from the specified state.
          nullable: true
          type: string
        state_wages_tips:
          description: Wages and tips from the specified state.
          nullable: true
          type: string
      title: W2StateAndLocalWages
      type: object
    Wallet:
      additionalProperties: true
      description: An object representing the e-wallet
      properties:
        balance:
          $ref: "#/components/schemas/WalletBalance"
        numbers:
          $ref: "#/components/schemas/WalletNumbers"
        recipient_id:
          description: The ID of the recipient that corresponds to the e-wallet account numbers
          type: string
        status:
          $ref: "#/components/schemas/WalletStatus"
        wallet_id:
          description: A unique ID identifying the e-wallet
          type: string
      required:
        - wallet_id
        - balance
        - numbers
        - status
      title: Wallet
      type: object
    WalletBalance:
      additionalProperties: true
      description: An object representing the e-wallet balance
      properties:
        current:
          description: The total amount of funds in the account
          format: double
          type: number
        iso_currency_code:
          description: The ISO-4217 currency code of the balance
          type: string
      required:
        - iso_currency_code
        - current
      title: WalletBalance
      type: object
    WalletCreateRequest:
      description: WalletCreateRequest defines the request schema for `/wallet/create`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        iso_currency_code:
          $ref: "#/components/schemas/WalletISOCurrencyCode"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - iso_currency_code
      type: object
    WalletCreateResponse:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/Wallet"
        - properties:
            request_id:
              $ref: "#/components/schemas/RequestID"
          type: object
      description: WalletCreateResponse defines the response schema for `/wallet/create`
      required:
        - wallet_id
        - balance
        - request_id
      type: object
    WalletGetRequest:
      description: WalletGetRequest defines the request schema for `/wallet/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        wallet_id:
          description: The ID of the e-wallet
          minLength: 1
          type: string
      required:
        - wallet_id
      type: object
    WalletGetResponse:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/Wallet"
        - properties:
            request_id:
              $ref: "#/components/schemas/RequestID"
          type: object
      description: WalletGetResponse defines the response schema for `/wallet/get`
      required:
        - wallet_id
        - balance
        - request_id
      type: object
    WalletISOCurrencyCode:
      description: An ISO-4217 currency code, used with e-wallets and transactions.
      enum:
        - GBP
        - EUR
      maxLength: 3
      minLength: 3
      title: ISO Currency Code
      type: string
    WalletListRequest:
      description: WalletListRequest defines the request schema for `/wallet/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 10
          description: The number of e-wallets to fetch
          maximum: 20
          minimum: 1
          type: integer
        cursor:
          description: A base64 value representing the latest e-wallet that has already been requested. Set this to `next_cursor` received from the previous `/wallet/list` request. If provided, the response will only contain e-wallets created before that e-wallet. If omitted, the response will contain e-wallets starting from the most recent, and in descending order.
          maxLength: 256
          type: string
        iso_currency_code:
          $ref: "#/components/schemas/WalletISOCurrencyCode"
        secret:
          $ref: "#/components/schemas/APISecret"
      type: object
    WalletListResponse:
      additionalProperties: true
      description: WalletListResponse defines the response schema for `/wallet/list`
      properties:
        next_cursor:
          description: Cursor used for fetching e-wallets created before the latest e-wallet provided in this response
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
        wallets:
          description: An array of e-wallets
          items:
            $ref: "#/components/schemas/Wallet"
          type: array
      required:
        - wallets
        - request_id
      type: object
    WalletNumbers:
      additionalProperties: true
      description: An object representing the e-wallet account numbers
      properties:
        bacs:
          $ref: "#/components/schemas/RecipientBACS"
        international:
          $ref: "#/components/schemas/NumbersInternationalIBAN"
      title: WalletNumbers
      type: object
    WalletStatus:
      description: |-
        The status of the wallet.

        `UNKNOWN`: The wallet status is unknown.

        `ACTIVE`: The wallet is active and ready to send money to and receive money from.

        `CLOSED`: The wallet is closed. Any transactions made to or from this wallet will error.
      enum:
        - UNKNOWN
        - ACTIVE
        - CLOSED
      type: string
    WalletTransaction:
      additionalProperties: true
      description: The transaction details
      properties:
        amount:
          $ref: "#/components/schemas/WalletTransactionAmount"
        counterparty:
          $ref: "#/components/schemas/WalletTransactionCounterparty"
        created_at:
          description: Timestamp when the transaction was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
          format: date-time
          type: string
        last_status_update:
          description: The date and time of the last time the `status` was updated, in IS0 8601 format
          format: date-time
          type: string
        payment_id:
          description: The payment id that this transaction is associated with, if any. This is present only for transaction types `PIS_PAY_IN` and `REFUND`.
          nullable: true
          type: string
        reference:
          description: A reference for the transaction
          type: string
        status:
          $ref: "#/components/schemas/WalletTransactionStatus"
        transaction_id:
          description: A unique ID identifying the transaction
          type: string
        type:
          description: |-
            The type of the transaction. The supported transaction types that are returned are:
            `BANK_TRANSFER:` a transaction which credits an e-wallet through an external bank transfer.

            `PAYOUT:` a transaction which debits an e-wallet by disbursing funds to a counterparty.

            `PIS_PAY_IN:` a payment which credits an e-wallet through Plaid's Payment Initiation Services (PIS) APIs. For more information see the [Payment Initiation endpoints](https://plaid.com/docs/api/products/payment-initiation/).

            `REFUND:` a transaction which debits an e-wallet by refunding a previously initiated payment made through Plaid's [PIS APIs](https://plaid.com/docs/api/products/payment-initiation/).

            `FUNDS_SWEEP`: an automated transaction which debits funds from an e-wallet to a designated client-owned account.
          enum:
            - BANK_TRANSFER
            - PAYOUT
            - PIS_PAY_IN
            - REFUND
            - FUNDS_SWEEP
          type: string
        wallet_id:
          description: The EMI (E-Money Institution) wallet that this payment is associated with, if any. This wallet is used as an intermediary account to enable Plaid to reconcile the settlement of funds for Payment Initiation requests.
          type: string
      required:
        - transaction_id
        - wallet_id
        - reference
        - type
        - amount
        - counterparty
        - status
        - created_at
        - last_status_update
      title: WalletTransaction
      type: object
    WalletTransactionAmount:
      additionalProperties: true
      description: The amount and currency of a transaction
      properties:
        iso_currency_code:
          $ref: "#/components/schemas/WalletISOCurrencyCode"
        value:
          description: The amount of the transaction. Must contain at most two digits of precision e.g. `1.23`.
          format: double
          minimum: 0.01
          type: number
      required:
        - iso_currency_code
        - value
      title: WalletTransactionAmount
      type: object
    WalletTransactionCounterparty:
      additionalProperties: true
      description: An object representing the e-wallet transaction's counterparty
      properties:
        name:
          description: The name of the counterparty
          minLength: 1
          type: string
        numbers:
          $ref: "#/components/schemas/WalletTransactionCounterpartyNumbers"
      required:
        - name
        - numbers
      title: WalletTransactionCounterparty
      type: object
    WalletTransactionCounterpartyBACS:
      allOf:
        - $ref: "#/components/schemas/RecipientBACS"
        - additionalProperties: true
          type: object
      description: The account number and sort code of the counterparty's account
    WalletTransactionCounterpartyInternational:
      additionalProperties: true
      description: International Bank Account Number for a Wallet Transaction
      nullable: true
      properties:
        iban:
          $ref: "#/components/schemas/NumbersIBAN"
      type: object
    WalletTransactionCounterpartyNumbers:
      additionalProperties: true
      description: The counterparty's bank account numbers. Exactly one of IBAN or BACS data is required.
      properties:
        bacs:
          $ref: "#/components/schemas/WalletTransactionCounterpartyBACS"
        international:
          $ref: "#/components/schemas/WalletTransactionCounterpartyInternational"
      title: WalletTransactionCounterpartyNumbers
      type: object
    WalletTransactionExecuteRequest:
      description: WalletTransactionExecuteRequest defines the request schema for `/wallet/transaction/execute`
      properties:
        amount:
          $ref: "#/components/schemas/WalletTransactionAmount"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        counterparty:
          $ref: "#/components/schemas/WalletTransactionCounterparty"
        idempotency_key:
          $ref: "#/components/schemas/WalletTransactionIdempotencyKey"
        reference:
          description: |-
            A reference for the transaction. This must be an alphanumeric string with 6 to 18 characters and must not contain any special characters or spaces.
            Ensure that the `reference` field is unique for each transaction.
          maxLength: 18
          minLength: 6
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
        wallet_id:
          description: The ID of the e-wallet to debit from
          minLength: 1
          type: string
      required:
        - idempotency_key
        - wallet_id
        - counterparty
        - amount
        - reference
      type: object
    WalletTransactionExecuteResponse:
      additionalProperties: true
      description: WalletTransactionExecuteResponse defines the response schema for `/wallet/transaction/execute`
      properties:
        request_id:
          $ref: "#/components/schemas/RequestID"
        status:
          $ref: "#/components/schemas/WalletTransactionStatus"
        transaction_id:
          description: A unique ID identifying the transaction
          type: string
      required:
        - transaction_id
        - status
        - request_id
      type: object
    WalletTransactionGetRequest:
      description: WalletTransactionGetRequest defines the request schema for `/wallet/transaction/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        transaction_id:
          description: The ID of the transaction to fetch
          minLength: 1
          type: string
      required:
        - transaction_id
      type: object
    WalletTransactionGetResponse:
      additionalProperties: true
      allOf:
        - $ref: "#/components/schemas/WalletTransaction"
        - properties:
            request_id:
              $ref: "#/components/schemas/RequestID"
          type: object
      description: WalletTransactionGetResponse defines the response schema for `/wallet/transaction/get`
      required:
        - transaction_id
        - reference
        - type
        - amount
        - counterparty
        - status
        - created_at
        - request_id
      title: WalletTransactionGetResponse
      type: object
    WalletTransactionIdempotencyKey:
      description: |-
        A random key provided by the client, per unique wallet transaction. Maximum of 128 characters.

        The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. If a request to execute a wallet transaction fails due to a network connection error, then after a minimum delay of one minute, you can retry the request with the same idempotency key to guarantee that only a single wallet transaction is created. If the request was successfully processed, it will prevent any transaction that uses the same idempotency key, and was received within 24 hours of the first request, from being processed.
      maxLength: 128
      minLength: 1
      title: WalletTransactionIdempotencyKey
      type: string
    WalletTransactionListRequest:
      description: WalletTransactionListRequest defines the request schema for `/wallet/transaction/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 10
          description: The number of transactions to fetch
          maximum: 200
          minimum: 1
          type: integer
        cursor:
          description: A base64 value representing the latest transaction that has already been requested. Set this to `next_cursor` received from the previous `/wallet/transaction/list` request. If provided, the response will only contain transactions created before that transaction. If omitted, the response will contain transactions starting from the most recent, and in descending order by the `created_at` time.
          maxLength: 256
          type: string
        options:
          $ref: "#/components/schemas/WalletTransactionListRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        wallet_id:
          description: The ID of the e-wallet to fetch transactions from
          minLength: 1
          type: string
      required:
        - wallet_id
      type: object
    WalletTransactionListRequestOptions:
      description: Additional wallet transaction options
      nullable: true
      properties:
        end_time:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDThh:mm:ssZ) for filtering transactions, inclusive of the provided date.
          format: date-time
          type: string
        start_time:
          description: Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDThh:mm:ssZ) for filtering transactions, inclusive of the provided date.
          format: date-time
          type: string
      type: object
    WalletTransactionListResponse:
      additionalProperties: true
      description: WalletTransactionListResponse defines the response schema for `/wallet/transaction/list`
      properties:
        next_cursor:
          description: Cursor used for fetching transactions created before the latest transaction provided in this response
          type: string
        request_id:
          $ref: "#/components/schemas/RequestID"
        transactions:
          description: An array of transactions of an e-wallet, associated with the given `wallet_id`
          items:
            $ref: "#/components/schemas/WalletTransaction"
          type: array
      required:
        - transactions
        - request_id
      type: object
    WalletTransactionStatus:
      description: |-
        The status of the transaction.

        `AUTHORISING`: The transaction is being processed for validation and compliance.

        `INITIATED`: The transaction has been initiated and is currently being processed.

        `EXECUTED`: The transaction has been successfully executed and is considered complete. This is only applicable for debit transactions.

        `SETTLED`: The transaction has settled and funds are available for use. This is only applicable for credit transactions. A transaction will typically settle within seconds to several days, depending on which payment rail is used.

        `FAILED`: The transaction failed to process successfully. This is a terminal status.

        `BLOCKED`: The transaction has been blocked for violating compliance rules. This is a terminal status.
      enum:
        - AUTHORISING
        - INITIATED
        - EXECUTED
        - SETTLED
        - BLOCKED
        - FAILED
      type: string
    WalletTransactionStatusUpdateWebhook:
      additionalProperties: true
      description: Fired when the status of a wallet transaction has changed.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        new_status:
          $ref: "#/components/schemas/WalletTransactionStatus"
        old_status:
          $ref: "#/components/schemas/WalletTransactionStatus"
        payment_id:
          description: The `payment_id` associated with the transaction. This will be present in case of `REFUND` and `PIS_PAY_IN`
          nullable: true
          type: string
        timestamp:
          description: The timestamp of the update, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `"2017-09-14T14:42:19.350Z"`
          format: date-time
          type: string
        transaction_id:
          description: The `transaction_id` for the wallet transaction being updated
          type: string
        wallet_id:
          description: The EMI (E-Money Institution) wallet that this payment is associated with. This wallet is used as an intermediary account to enable Plaid to reconcile the settlement of funds for Payment Initiation requests.
          type: string
        webhook_code:
          description: "`WALLET_TRANSACTION_STATUS_UPDATE`"
          type: string
        webhook_type:
          description: "`WALLET`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - transaction_id
        - new_status
        - old_status
        - timestamp
        - environment
      title: WalletTransactionStatusUpdateWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          new_status: SETTLED
          old_status: INITIATED
          payment_id: payment-id-production-feca8a7a-5591-4aef-9297-f3062bb735d3
          timestamp: 2017-09-14T14:42:19.350Z
          transaction_id: wallet-transaction-id-production-2ba30780-d549-4335-b1fe-c2a938aa39d2
          wallet_id: wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88
          webhook_code: WALLET_TRANSACTION_STATUS_UPDATE
          webhook_type: WALLET
    WalletTransactionsListRequest:
      description: WalletTransactionListRequest defines the request schema for `/wallet/transaction/list`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        count:
          default: 10
          description: The number of transactions to fetch
          maximum: 200
          minimum: 1
          type: integer
        cursor:
          description: A base64 value representing the latest transaction that has already been requested. Set this to `next_cursor` received from the previous `/wallet/transaction/list` request. If provided, the response will only contain transactions created before that transaction. If omitted, the response will contain transactions starting from the most recent, and in descending order by the `created_at` time.
          maxLength: 256
          type: string
        options:
          $ref: "#/components/schemas/WalletTransactionListRequestOptions"
        secret:
          $ref: "#/components/schemas/APISecret"
        wallet_id:
          description: The ID of the e-wallet to fetch transactions from
          minLength: 1
          type: string
      required:
        - wallet_id
      type: object
    Warning:
      additionalProperties: true
      description: It is possible for an Asset Report to be returned with missing account owner information. In such cases, the Asset Report will contain warning data in the response, indicating why obtaining the owner information failed.
      properties:
        cause:
          $ref: "#/components/schemas/Cause"
        warning_code:
          description: 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.
          enum:
            - OWNERS_UNAVAILABLE
            - INVESTMENTS_UNAVAILABLE
            - TRANSACTIONS_UNAVAILABLE
          type: string
        warning_type:
          description: The warning type, which will always be `ASSET_REPORT_WARNING`
          type: string
      required:
        - warning_type
        - warning_code
        - cause
      title: Warning
      type: object
      x-examples:
        example-1:
          cause:
            display_message: null
            error_code: PRODUCTS_NOT_SUPPORTED
            error_message: "The following products are not supported by this institution: Identity"
            error_type: ITEM_ERROR
            http_code: 400
            request_id: s32PXYOyplhGTHd
          warning_code: OWNERS_UNAVAILABLE
          warning_type: ASSET_REPORT_WARNING
    WatchlistProgramID:
      description: ID of the associated program.
      example: prg_2eRPsDnL66rZ7H
      title: WatchlistProgramID
      type: string
    WatchlistScreeningAuditTrail:
      additionalProperties: true
      description: Information about the last change made to the parent object specifying what caused the change as well as when it occurred.
      properties:
        dashboard_user_id:
          $ref: "#/components/schemas/DashboardUserIDNullable"
        source:
          $ref: "#/components/schemas/Source"
        timestamp:
          $ref: "#/components/schemas/Timestamp"
      required:
        - source
        - dashboard_user_id
        - timestamp
      title: WatchlistScreeningAuditTrail
      type: object
    WatchlistScreeningDocument:
      additionalProperties: true
      description: An official document, usually issued by a governing body or institution, with an associated identifier.
      properties:
        number:
          $ref: "#/components/schemas/WatchlistScreeningDocumentValue"
        type:
          $ref: "#/components/schemas/WatchlistScreeningDocumentType"
      required:
        - type
        - number
      title: WatchlistScreeningDocument
      type: object
    WatchlistScreeningDocumentType:
      description: |-
        The kind of official document represented by this object.

        `birth_certificate` - A certificate of birth

        `drivers_license` - A license to operate a motor vehicle

        `immigration_number` - Immigration or residence documents

        `military_id` - Identification issued by a military group

        `other` - Any document not covered by other categories

        `passport` - An official passport issue by a government

        `personal_identification` - Any generic personal identification that is not covered by other categories

        `ration_card` - Identification that entitles the holder to rations

        `ssn` - United States Social Security Number

        `student_id` - Identification issued by an educational institution

        `tax_id` - Identification issued for the purpose of collecting taxes

        `travel_document` - Visas, entry permits, refugee documents, etc.

        `voter_id` - Identification issued for the purpose of voting
      enum:
        - birth_certificate
        - drivers_license
        - immigration_number
        - military_id
        - other
        - passport
        - personal_identification
        - ration_card
        - ssn
        - student_id
        - tax_id
        - travel_document
        - voter_id
      example: passport
      title: WatchlistScreeningDocumentType
      type: string
    WatchlistScreeningDocumentValue:
      description: The numeric or alphanumeric identifier associated with this document.
      example: C31195855
      minLength: 4
      title: WatchlistScreeningDocumentValue
      type: string
    WatchlistScreeningDocumentValueNullable:
      description: The numeric or alphanumeric identifier associated with this document.
      example: C31195855
      minLength: 4
      nullable: true
      title: WatchlistScreeningDocumentValue
      type: string
    WatchlistScreeningEntityCreateRequest:
      description: Request input for creating an entity screening review
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        search_terms:
          $ref: "#/components/schemas/EntityWatchlistSearchTerms"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - search_terms
      type: object
    WatchlistScreeningEntityCreateResponse:
      additionalProperties: true
      description: "The entity screening object allows you to represent an entity in your system, update its profile, and search for it on various watchlists. Note: Rejected entity screenings will not receive new hits, regardless of entity program configuration."
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserIDNullable"
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        client_user_id:
          $ref: "#/components/schemas/ClientUserIDNullable"
        id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        request_id:
          $ref: "#/components/schemas/RequestID"
        search_terms:
          $ref: "#/components/schemas/EntityWatchlistScreeningSearchTerms"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - id
        - search_terms
        - assignee
        - status
        - client_user_id
        - audit_trail
        - request_id
      type: object
    WatchlistScreeningEntityGetRequest:
      description: Request input for fetching an entity watchlist screening
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        entity_watchlist_screening_id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - entity_watchlist_screening_id
      type: object
    WatchlistScreeningEntityGetResponse:
      additionalProperties: true
      description: "The entity screening object allows you to represent an entity in your system, update its profile, and search for it on various watchlists. Note: Rejected entity screenings will not receive new hits, regardless of entity program configuration."
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserIDNullable"
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        client_user_id:
          $ref: "#/components/schemas/ClientUserIDNullable"
        id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        request_id:
          $ref: "#/components/schemas/RequestID"
        search_terms:
          $ref: "#/components/schemas/EntityWatchlistScreeningSearchTerms"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - id
        - search_terms
        - assignee
        - status
        - client_user_id
        - audit_trail
        - request_id
      type: object
    WatchlistScreeningEntityHistoryListRequest:
      description: Request input for listing changes to entity watchlist screenings
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        entity_watchlist_screening_id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - entity_watchlist_screening_id
      type: object
    WatchlistScreeningEntityHistoryListResponse:
      additionalProperties: true
      description: Paginated list of entity watchlist screenings
      properties:
        entity_watchlist_screenings:
          description: List of entity watchlist screening
          items:
            $ref: "#/components/schemas/EntityWatchlistScreening"
          type: array
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - entity_watchlist_screenings
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningEntityHitListRequest:
      description: Request input for listing hits for an entity watchlist screening
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        entity_watchlist_screening_id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - entity_watchlist_screening_id
      type: object
    WatchlistScreeningEntityHitListResponse:
      additionalProperties: true
      description: Paginated list of entity watchlist screening hits
      properties:
        entity_watchlist_screening_hits:
          description: List of entity watchlist screening hits
          items:
            $ref: "#/components/schemas/EntityWatchlistScreeningHit"
          type: array
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - entity_watchlist_screening_hits
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningEntityListRequest:
      description: Request input for listing entity watchlist screenings
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        entity_watchlist_program_id:
          $ref: "#/components/schemas/EntityWatchlistProgramID"
        secret:
          $ref: "#/components/schemas/APISecret"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - entity_watchlist_program_id
      type: object
    WatchlistScreeningEntityListResponse:
      additionalProperties: true
      description: Paginated list of entity watchlist screenings
      properties:
        entity_watchlist_screenings:
          description: List of entity watchlist screening
          items:
            $ref: "#/components/schemas/EntityWatchlistScreening"
          type: array
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - entity_watchlist_screenings
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningEntityProgramGetRequest:
      description: Request input for fetching an entity watchlist program
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        entity_watchlist_program_id:
          $ref: "#/components/schemas/EntityWatchlistProgramID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - entity_watchlist_program_id
      type: object
    WatchlistScreeningEntityProgramGetResponse:
      additionalProperties: true
      description: A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of entities.
      properties:
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        created_at:
          $ref: "#/components/schemas/Timestamp"
        id:
          $ref: "#/components/schemas/EntityWatchlistProgramID"
        is_archived:
          $ref: "#/components/schemas/ProgramArchived"
        is_rescanning_enabled:
          description: Indicator specifying whether the program is enabled and will perform daily rescans.
          example: true
          type: boolean
        lists_enabled:
          description: Watchlists enabled for the associated program
          example:
            - EU_CON
          items:
            $ref: "#/components/schemas/EntityWatchlistCode"
          type: array
          uniqueItems: true
        name:
          $ref: "#/components/schemas/EntityWatchlistScreeningProgramName"
        name_sensitivity:
          $ref: "#/components/schemas/ProgramNameSensitivity"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - id
        - created_at
        - is_rescanning_enabled
        - lists_enabled
        - name
        - name_sensitivity
        - audit_trail
        - is_archived
        - request_id
      type: object
    WatchlistScreeningEntityProgramListRequest:
      description: Request input for listing entity watchlist screening programs
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        secret:
          $ref: "#/components/schemas/APISecret"
      type: object
    WatchlistScreeningEntityProgramListResponse:
      additionalProperties: true
      description: Paginated list of entity watchlist screening programs
      properties:
        entity_watchlist_programs:
          description: List of entity watchlist screening programs
          items:
            $ref: "#/components/schemas/EntityWatchlistProgram"
          type: array
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - entity_watchlist_programs
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningEntityReviewCreateRequest:
      description: Request input for creating a review for an entity screening
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        comment:
          $ref: "#/components/schemas/ReviewComment"
        confirmed_hits:
          description: Hits to mark as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
          items:
            $ref: "#/components/schemas/EntityWatchlistScreeningHitID"
          type: array
        dismissed_hits:
          description: Hits to mark as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
          items:
            $ref: "#/components/schemas/EntityWatchlistScreeningHitID"
          type: array
        entity_watchlist_screening_id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - confirmed_hits
        - dismissed_hits
        - entity_watchlist_screening_id
      type: object
    WatchlistScreeningEntityReviewCreateResponse:
      additionalProperties: true
      description: |-
        A review submitted by a team member for an entity watchlist screening. A review can be either a comment on the current screening state, actions taken
        against hits attached to the watchlist screening, or both.
      properties:
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        comment:
          $ref: "#/components/schemas/ReviewComment"
        confirmed_hits:
          description: Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
          items:
            $ref: "#/components/schemas/EntityWatchlistScreeningHitID"
          type: array
        dismissed_hits:
          description: Hits marked as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
          items:
            $ref: "#/components/schemas/EntityWatchlistScreeningHitID"
          type: array
        id:
          $ref: "#/components/schemas/EntityWatchlistScreeningReviewID"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - id
        - confirmed_hits
        - dismissed_hits
        - comment
        - audit_trail
        - request_id
      type: object
    WatchlistScreeningEntityReviewListRequest:
      description: Request input for listing reviews for an entity watchlist screening
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        entity_watchlist_screening_id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - entity_watchlist_screening_id
      type: object
    WatchlistScreeningEntityReviewListResponse:
      additionalProperties: true
      description: Paginated list of entity watchlist screening reviews
      properties:
        entity_watchlist_screening_reviews:
          description: List of entity watchlist screening reviews
          items:
            $ref: "#/components/schemas/EntityWatchlistScreeningReview"
          type: array
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - entity_watchlist_screening_reviews
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningEntityUpdateRequest:
      description: Request input for editing an entity watchlist screening
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        entity_watchlist_screening_id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        reset_fields:
          $ref: "#/components/schemas/WatchlistScreeningEntityUpdateRequestResettableFieldList"
        search_terms:
          $ref: "#/components/schemas/UpdateEntityScreeningRequestSearchTerms"
        secret:
          $ref: "#/components/schemas/APISecret"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - entity_watchlist_screening_id
      type: object
    WatchlistScreeningEntityUpdateRequestResettableField:
      description: The name of a field that can be reset back to null
      enum:
        - assignee
      type: string
    WatchlistScreeningEntityUpdateRequestResettableFieldList:
      description: A list of fields to reset back to null
      items:
        $ref: "#/components/schemas/WatchlistScreeningEntityUpdateRequestResettableField"
      nullable: true
      type: array
    WatchlistScreeningEntityUpdateResponse:
      additionalProperties: true
      description: "The entity screening object allows you to represent an entity in your system, update its profile, and search for it on various watchlists. Note: Rejected entity screenings will not receive new hits, regardless of entity program configuration."
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserIDNullable"
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        client_user_id:
          $ref: "#/components/schemas/ClientUserIDNullable"
        id:
          $ref: "#/components/schemas/EntityWatchlistScreeningID"
        request_id:
          $ref: "#/components/schemas/RequestID"
        search_terms:
          $ref: "#/components/schemas/EntityWatchlistScreeningSearchTerms"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - id
        - search_terms
        - assignee
        - status
        - client_user_id
        - audit_trail
        - request_id
      type: object
    WatchlistScreeningHit:
      additionalProperties: true
      description: Data from a government watchlist or PEP list that has been attached to the screening.
      properties:
        analysis:
          $ref: "#/components/schemas/ScreeningHitAnalysis"
        data:
          $ref: "#/components/schemas/ScreeningHitData"
        first_active:
          $ref: "#/components/schemas/Timestamp"
        historical_since:
          $ref: "#/components/schemas/TimestampNullable"
        id:
          $ref: "#/components/schemas/WatchlistScreeningHitID"
        inactive_since:
          $ref: "#/components/schemas/TimestampNullable"
        list_code:
          $ref: "#/components/schemas/IndividualWatchlistCode"
        plaid_uid:
          $ref: "#/components/schemas/InternalUID"
        review_status:
          $ref: "#/components/schemas/WatchlistScreeningHitStatus"
        source_uid:
          $ref: "#/components/schemas/SourceUID"
      required:
        - id
        - review_status
        - first_active
        - inactive_since
        - historical_since
        - list_code
        - plaid_uid
        - source_uid
      title: WatchlistScreeningHit
      type: object
    WatchlistScreeningHitID:
      description: ID of the associated screening hit.
      example: scrhit_52xR9LKo77r1Np
      title: WatchlistScreeningHitID
      type: string
    WatchlistScreeningHitLocations:
      additionalProperties: true
      description: Location information for the associated individual watchlist hit
      properties:
        country:
          $ref: "#/components/schemas/GenericCountryCode"
        full:
          description: The full location string, potentially including elements like street, city, postal codes and country codes. Note that this is not necessarily a complete or well-formatted address.
          example: Florida, US
          type: string
      required:
        - full
        - country
      type: object
    WatchlistScreeningHitStatus:
      description: The current state of review. All watchlist screening hits begin in a `pending_review` state but can be changed by creating a review. When a hit is in the `pending_review` state, it will always show the latest version of the watchlist data Plaid has available and be compared against the latest customer information saved in the watchlist screening. Once a hit has been marked as `confirmed` or `dismissed` it will no longer be updated so that the state is as it was when the review was first conducted.
      enum:
        - confirmed
        - pending_review
        - dismissed
      example: pending_review
      title: WatchlistScreeningHitStatus
      type: string
    WatchlistScreeningIndividual:
      additionalProperties: true
      description: "The screening object allows you to represent a customer in your system, update their profile, and search for them on various watchlists. Note: Rejected customers will not receive new hits, regardless of program configuration."
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserIDNullable"
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        client_user_id:
          $ref: "#/components/schemas/ClientUserIDNullable"
        id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
        search_terms:
          $ref: "#/components/schemas/WatchlistScreeningSearchTerms"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - id
        - search_terms
        - assignee
        - status
        - client_user_id
        - audit_trail
      title: WatchlistScreeningIndividual
      type: object
    WatchlistScreeningIndividualCreateRequest:
      description: Request input for creating an individual watchlist screening
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        search_terms:
          $ref: "#/components/schemas/WatchlistScreeningRequestSearchTerms"
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - search_terms
      type: object
    WatchlistScreeningIndividualCreateResponse:
      additionalProperties: true
      description: "The screening object allows you to represent a customer in your system, update their profile, and search for them on various watchlists. Note: Rejected customers will not receive new hits, regardless of program configuration."
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserIDNullable"
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        client_user_id:
          $ref: "#/components/schemas/ClientUserIDNullable"
        id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
        request_id:
          $ref: "#/components/schemas/RequestID"
        search_terms:
          $ref: "#/components/schemas/WatchlistScreeningSearchTerms"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - id
        - search_terms
        - assignee
        - status
        - client_user_id
        - audit_trail
        - request_id
      type: object
    WatchlistScreeningIndividualGetRequest:
      description: Request input for fetching an individual watchlist screening
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
      required:
        - watchlist_screening_id
      type: object
    WatchlistScreeningIndividualGetResponse:
      additionalProperties: true
      description: "The screening object allows you to represent a customer in your system, update their profile, and search for them on various watchlists. Note: Rejected customers will not receive new hits, regardless of program configuration."
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserIDNullable"
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        client_user_id:
          $ref: "#/components/schemas/ClientUserIDNullable"
        id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
        request_id:
          $ref: "#/components/schemas/RequestID"
        search_terms:
          $ref: "#/components/schemas/WatchlistScreeningSearchTerms"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - id
        - search_terms
        - assignee
        - status
        - client_user_id
        - audit_trail
        - request_id
      type: object
    WatchlistScreeningIndividualHistoryListRequest:
      description: Request input for listing changes to watchlist screenings for individuals
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        secret:
          $ref: "#/components/schemas/APISecret"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
      required:
        - watchlist_screening_id
      type: object
    WatchlistScreeningIndividualHistoryListResponse:
      additionalProperties: true
      description: Paginated list of individual watchlist screenings.
      properties:
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
        watchlist_screenings:
          description: List of individual watchlist screenings
          items:
            $ref: "#/components/schemas/WatchlistScreeningIndividual"
          type: array
      required:
        - watchlist_screenings
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningIndividualHitListRequest:
      description: Request input for listing hits for an individual watchlist screening
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        secret:
          $ref: "#/components/schemas/APISecret"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
      required:
        - watchlist_screening_id
      type: object
    WatchlistScreeningIndividualHitListResponse:
      additionalProperties: true
      description: Paginated list of individual watchlist screening hits
      properties:
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
        watchlist_screening_hits:
          description: List of individual watchlist screening hits
          items:
            $ref: "#/components/schemas/WatchlistScreeningHit"
          type: array
      required:
        - watchlist_screening_hits
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningIndividualID:
      description: ID of the associated screening.
      example: scr_52xR9LKo77r1Np
      title: WatchlistScreeningIndividualID
      type: string
    WatchlistScreeningIndividualIDNullable:
      description: ID of the associated screening.
      example: scr_52xR9LKo77r1Np
      nullable: true
      title: WatchlistScreeningIndividualID
      type: string
    WatchlistScreeningIndividualListRequest:
      description: Request input for listinging watchlist screenings for individuals
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        secret:
          $ref: "#/components/schemas/APISecret"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
        watchlist_program_id:
          $ref: "#/components/schemas/WatchlistProgramID"
      required:
        - watchlist_program_id
      type: object
    WatchlistScreeningIndividualListResponse:
      additionalProperties: true
      description: Paginated list of individual watchlist screenings.
      properties:
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
        watchlist_screenings:
          description: List of individual watchlist screenings
          items:
            $ref: "#/components/schemas/WatchlistScreeningIndividual"
          type: array
      required:
        - watchlist_screenings
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningIndividualName:
      description: The legal name of the individual being screened.
      example: Aleksey Potemkin
      minLength: 1
      title: WatchlistScreeningIndividualName
      type: string
    WatchlistScreeningIndividualProgramGetRequest:
      description: Request input for fetching an individual watchlist program
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        secret:
          $ref: "#/components/schemas/APISecret"
        watchlist_program_id:
          $ref: "#/components/schemas/WatchlistProgramID"
      required:
        - watchlist_program_id
      type: object
    WatchlistScreeningIndividualProgramGetResponse:
      additionalProperties: true
      description: A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of individuals.
      properties:
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        created_at:
          $ref: "#/components/schemas/Timestamp"
        id:
          $ref: "#/components/schemas/WatchlistProgramID"
        is_archived:
          $ref: "#/components/schemas/ProgramArchived"
        is_rescanning_enabled:
          description: Indicator specifying whether the program is enabled and will perform daily rescans.
          example: true
          type: boolean
        lists_enabled:
          description: Watchlists enabled for the associated program
          example:
            - US_SDN
          items:
            $ref: "#/components/schemas/IndividualWatchlistCode"
          type: array
          uniqueItems: true
        name:
          $ref: "#/components/schemas/IndividualWatchlistScreeningProgramName"
        name_sensitivity:
          $ref: "#/components/schemas/ProgramNameSensitivity"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - id
        - created_at
        - is_rescanning_enabled
        - lists_enabled
        - name
        - name_sensitivity
        - audit_trail
        - is_archived
        - request_id
      type: object
    WatchlistScreeningIndividualProgramListRequest:
      description: Request input for listing watchlist screening programs for individuals
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        secret:
          $ref: "#/components/schemas/APISecret"
      type: object
    WatchlistScreeningIndividualProgramListResponse:
      additionalProperties: true
      description: Paginated list of individual watchlist screening programs
      properties:
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
        watchlist_programs:
          description: List of individual watchlist screening programs
          items:
            $ref: "#/components/schemas/IndividualWatchlistProgram"
          type: array
      required:
        - watchlist_programs
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningIndividualReviewCreateRequest:
      description: Request input for creating a screening review
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        comment:
          $ref: "#/components/schemas/ReviewComment"
        confirmed_hits:
          description: Hits to mark as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
          items:
            $ref: "#/components/schemas/WatchlistScreeningHitID"
          type: array
        dismissed_hits:
          description: Hits to mark as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
          items:
            $ref: "#/components/schemas/WatchlistScreeningHitID"
          type: array
        secret:
          $ref: "#/components/schemas/APISecret"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
      required:
        - confirmed_hits
        - dismissed_hits
        - watchlist_screening_id
      type: object
    WatchlistScreeningIndividualReviewCreateResponse:
      additionalProperties: true
      description: |-
        A review submitted by a team member for an individual watchlist screening. A review can be either a comment on the current screening state, actions taken
        against hits attached to the watchlist screening, or both.
      properties:
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        comment:
          $ref: "#/components/schemas/ReviewComment"
        confirmed_hits:
          description: Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
          items:
            $ref: "#/components/schemas/WatchlistScreeningHitID"
          type: array
        dismissed_hits:
          description: Hits marked as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
          items:
            $ref: "#/components/schemas/WatchlistScreeningHitID"
          type: array
        id:
          $ref: "#/components/schemas/WatchlistScreeningReviewID"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - id
        - confirmed_hits
        - dismissed_hits
        - comment
        - audit_trail
        - request_id
      type: object
    WatchlistScreeningIndividualReviewListRequest:
      description: Request input for listing reviews for an individual watchlist screening
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        cursor:
          $ref: "#/components/schemas/Cursor"
        secret:
          $ref: "#/components/schemas/APISecret"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
      required:
        - watchlist_screening_id
      type: object
    WatchlistScreeningIndividualReviewListResponse:
      additionalProperties: true
      description: Paginated list of screening reviews
      properties:
        next_cursor:
          $ref: "#/components/schemas/Cursor"
        request_id:
          $ref: "#/components/schemas/RequestID"
        watchlist_screening_reviews:
          description: List of screening reviews
          items:
            $ref: "#/components/schemas/WatchlistScreeningReview"
          type: array
      required:
        - watchlist_screening_reviews
        - next_cursor
        - request_id
      type: object
    WatchlistScreeningIndividualUpdateRequest:
      description: Request input for editing an individual watchlist screening
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserID"
        client_id:
          $ref: "#/components/schemas/APIClientID"
        client_user_id:
          $ref: "#/components/schemas/ClientUserID"
        reset_fields:
          $ref: "#/components/schemas/WatchlistScreeningIndividualUpdateRequestResettableFieldList"
        search_terms:
          $ref: "#/components/schemas/UpdateIndividualScreeningRequestSearchTerms"
        secret:
          $ref: "#/components/schemas/APISecret"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
        watchlist_screening_id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
      required:
        - watchlist_screening_id
      type: object
    WatchlistScreeningIndividualUpdateRequestResettableField:
      description: The name of a field that can be reset back to null
      enum:
        - assignee
      type: string
    WatchlistScreeningIndividualUpdateRequestResettableFieldList:
      description: A list of fields to reset back to null
      items:
        $ref: "#/components/schemas/WatchlistScreeningIndividualUpdateRequestResettableField"
      nullable: true
      type: array
    WatchlistScreeningIndividualUpdateResponse:
      additionalProperties: true
      description: "The screening object allows you to represent a customer in your system, update their profile, and search for them on various watchlists. Note: Rejected customers will not receive new hits, regardless of program configuration."
      properties:
        assignee:
          $ref: "#/components/schemas/DashboardUserIDNullable"
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        client_user_id:
          $ref: "#/components/schemas/ClientUserIDNullable"
        id:
          $ref: "#/components/schemas/WatchlistScreeningIndividualID"
        request_id:
          $ref: "#/components/schemas/RequestID"
        search_terms:
          $ref: "#/components/schemas/WatchlistScreeningSearchTerms"
        status:
          $ref: "#/components/schemas/WatchlistScreeningStatus"
      required:
        - id
        - search_terms
        - assignee
        - status
        - client_user_id
        - audit_trail
        - request_id
      type: object
    WatchlistScreeningPhoneNumber:
      description: A phone number in E.164 format.
      example: "+14025671234"
      title: WatchlistScreeningPhoneNumber
      type: string
    WatchlistScreeningPhoneNumberNullable:
      description: A phone number in E.164 format.
      example: "+14025671234"
      nullable: true
      title: WatchlistScreeningPhoneNumber
      type: string
    WatchlistScreeningRequestSearchTerms:
      description: Search inputs for creating a watchlist screening
      properties:
        country:
          $ref: "#/components/schemas/GenericCountryCode"
        date_of_birth:
          $ref: "#/components/schemas/ISO8601Date"
        document_number:
          $ref: "#/components/schemas/WatchlistScreeningDocumentValue"
        legal_name:
          $ref: "#/components/schemas/WatchlistScreeningIndividualName"
        watchlist_program_id:
          $ref: "#/components/schemas/WatchlistProgramID"
      required:
        - watchlist_program_id
        - legal_name
      type: object
    WatchlistScreeningReview:
      additionalProperties: true
      description: |-
        A review submitted by a team member for an individual watchlist screening. A review can be either a comment on the current screening state, actions taken
        against hits attached to the watchlist screening, or both.
      properties:
        audit_trail:
          $ref: "#/components/schemas/WatchlistScreeningAuditTrail"
        comment:
          $ref: "#/components/schemas/ReviewComment"
        confirmed_hits:
          description: Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once dismissed. In most cases, confirmed hits indicate that the customer should be rejected.
          items:
            $ref: "#/components/schemas/WatchlistScreeningHitID"
          type: array
        dismissed_hits:
          description: Hits marked as a false positive after thorough manual review. These hits will never recur or be updated once dismissed.
          items:
            $ref: "#/components/schemas/WatchlistScreeningHitID"
          type: array
        id:
          $ref: "#/components/schemas/WatchlistScreeningReviewID"
      required:
        - id
        - confirmed_hits
        - dismissed_hits
        - comment
        - audit_trail
      title: WatchlistScreeningReview
      type: object
    WatchlistScreeningReviewID:
      description: ID of the associated review.
      example: rev_aCLNRxK3UVzn2r
      title: WatchlistScreeningReviewID
      type: string
    WatchlistScreeningSearchTerms:
      additionalProperties: true
      description: Search terms for creating an individual watchlist screening
      properties:
        country:
          $ref: "#/components/schemas/GenericCountryCodeNullable"
        date_of_birth:
          $ref: "#/components/schemas/ISO8601DateNullable"
        document_number:
          $ref: "#/components/schemas/WatchlistScreeningDocumentValueNullable"
        legal_name:
          $ref: "#/components/schemas/WatchlistScreeningIndividualName"
        version:
          description: The current version of the search terms. Starts at `1` and increments with each edit to `search_terms`.
          example: 1
          type: number
        watchlist_program_id:
          $ref: "#/components/schemas/WatchlistProgramID"
      required:
        - watchlist_program_id
        - legal_name
        - date_of_birth
        - document_number
        - country
        - version
      type: object
    WatchlistScreeningStatus:
      description: A status enum indicating whether a screening is still pending review, has been rejected, or has been cleared.
      enum:
        - rejected
        - pending_review
        - cleared
      example: cleared
      title: WatchlistScreeningStatus
      type: string
    WeakAliasDetermination:
      description: Names that are explicitly marked as low quality either by their `source` list, or by `plaid` by a series of additional checks done by Plaid. Plaid does not ever surface a hit as a result of a weak name alone. If a name has no quality issues, this value will be `none`.
      enum:
        - none
        - source
        - plaid
      example: none
      title: WeakAliasDetermination
      type: string
    WebhookEnvironmentValues:
      description: The Plaid environment the webhook was sent from
      enum:
        - development
        - sandbox
        - production
      nullable: false
      type: string
    WebhookType:
      description: The webhook types that can be fired by this test endpoint.
      enum:
        - AUTH
        - HOLDINGS
        - INVESTMENTS_TRANSACTIONS
        - ITEM
        - LIABILITIES
        - TRANSACTIONS
      type: string
    WebhookUpdateAcknowledgedWebhook:
      additionalProperties: true
      description: Fired when an Item's webhook is updated. This will be sent to the newly specified webhook.
      properties:
        environment:
          $ref: "#/components/schemas/WebhookEnvironmentValues"
        error:
          $ref: "#/components/schemas/PlaidError"
        item_id:
          $ref: "#/components/schemas/ItemId"
        new_webhook_url:
          description: The new webhook URL
          type: string
        webhook_code:
          description: "`WEBHOOK_UPDATE_ACKNOWLEDGED`"
          type: string
        webhook_type:
          description: "`ITEM`"
          type: string
      required:
        - webhook_type
        - webhook_code
        - item_id
        - new_webhook_url
        - environment
      title: WebhookUpdateAcknowledgedWebhook
      type: object
      x-examples:
        example-1:
          environment: production
          error: null
          item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb
          new_webhook_url: https://plaid.com/example/webhook
          webhook_code: WEBHOOK_UPDATE_ACKNOWLEDGED
          webhook_type: ITEM
    WebhookVerificationKeyGetRequest:
      description: WebhookVerificationKeyGetRequest defines the request schema for `/webhook_verification_key/get`
      properties:
        client_id:
          $ref: "#/components/schemas/APIClientID"
        key_id:
          description: The key ID ( `kid` ) from the JWT header.
          type: string
        secret:
          $ref: "#/components/schemas/APISecret"
      required:
        - key_id
      type: object
    WebhookVerificationKeyGetResponse:
      additionalProperties: true
      description: WebhookVerificationKeyGetResponse defines the response schema for `/webhook_verification_key/get`
      properties:
        key:
          $ref: "#/components/schemas/JWKPublicKey"
        request_id:
          $ref: "#/components/schemas/RequestID"
      required:
        - key
        - request_id
      type: object
    YTDGrossIncomeSummaryFieldNumber:
      allOf:
        - $ref: "#/components/schemas/IncomeSummaryFieldNumber"
        - additionalProperties: true
          description: Year-to-date pre-tax earnings, as reported on the paystub.
          type: object
      description: Year-to-date pre-tax earnings, as reported on the paystub.
    YTDNetIncomeSummaryFieldNumber:
      allOf:
        - $ref: "#/components/schemas/IncomeSummaryFieldNumber"
        - additionalProperties: true
          description: Year-to-date earnings after any tax withholdings, benefit payments or deductions, as reported on the paystub.
          type: object
      description: Year-to-date earnings after any tax withholdings, benefit payments or deductions, as reported on the paystub.
  securitySchemes:
    clientId:
      in: header
      name: PLAID-CLIENT-ID
      type: apiKey
    plaidVersion:
      in: header
      name: Plaid-Version
      type: apiKey
    secret:
      in: header
      name: PLAID-SECRET
      type: apiKey
