{"openapi":"3.1.1","servers":[{"description":"Production","url":"https://production.plaid.com"},{"description":"Sandbox","url":"https://sandbox.plaid.com"}],"info":{"title":"The Plaid API","version":"2020-09-14_1.799.0","description":"The Plaid REST API. Please see https://plaid.com/docs/api for more details.","contact":{"name":"Plaid Developer Team","url":"https://plaid.com"},"termsOfService":"https://plaid.com/legal/"},"tags":[{"name":"plaid","description":"The Plaid API"}],"security":[{"clientId":[],"secret":[],"plaidVersion":[]}],"paths":{"/asset_report/create":{"post":{"tags":["plaid"],"summary":"Create an Asset Report","externalDocs":{"url":"/api/products/assets/#asset_reportcreate"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportCreateResponse"},"examples":{"example-1":{"value":{"asset_report_token":"assets-sandbox-6f12f5bb-22dd-4855-b918-f47ec439198a","asset_report_id":"1f414183-220c-44f5-b0c8-bc0e6d4053bb","request_id":"Iam3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"assetReportCreate","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.\n\nThe Asset Report takes some time to be created and is not available immediately after calling `/asset_report/create`. The exact amount of time to create the report will vary depending on how many days of history are requested and will typically range from a few seconds to about one minute. 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).\n\nThe `/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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportCreateRequest"}}}}}},"/asset_report/get":{"post":{"tags":["plaid"],"summary":"Retrieve an Asset Report","externalDocs":{"url":"/api/products/assets/#asset_reportget"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportGetResponse"},"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":90,"items":[{"accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","balances":{"available":43200,"current":43200,"limit":null,"margin_loan_amount":null,"iso_currency_code":"USD","unofficial_currency_code":null},"days_available":90,"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","country":"US","region":"NY","street":"2992 Cameron Road","postal_code":"14236"},"primary":true},{"data":{"city":"San Matias","country":"US","region":"CA","street":"2493 Leisure Lane","postal_code":"93405-2255"},"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":"+1 111-555-3333","primary":false,"type":"home"},{"data":"+1 111-555-4444","primary":false,"type":"work"},{"data":"+1 111-555-5555","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,"limit":null,"margin_loan_amount":null,"iso_currency_code":"USD","unofficial_currency_code":null},"days_available":90,"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","country":"US","region":"NY","street":"2992 Cameron Road","postal_code":"14236"},"primary":true},{"data":{"city":"San Matias","country":"US","region":"CA","street":"2493 Leisure Lane","postal_code":"93405-2255"},"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":"+1 111-555-3333","primary":false,"type":"home"},{"data":"+1 111-555-4444","primary":false,"type":"work"},{"data":"+1 111-555-5555","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":[]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"assetReportGet","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.\n\nBy default, an Asset Report includes transaction descriptions as returned by the bank, as opposed to parsed and categorized by Plaid. You can also receive cleaned and categorized transactions, as well as additional insights like merchant name or location information. We call this an Asset Report with Insights. An Asset Report with Insights provides transaction category, location, and merchant information in addition to the transaction strings provided in a standard Asset Report. To retrieve an Asset Report with Insights, call the `/asset_report/get` endpoint with `include_insights` set to `true`.\n\nFor latency-sensitive applications, you can optionally call `/asset_report/create` with `options.add_ons` set to `[\"fast_assets\"]`. This will cause Plaid to create two versions of the Asset Report: one with only current and available balance and identity information, and then later on the complete Asset Report. You will receive separate webhooks for each version of the Asset Report.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportGetRequest"}}},"description":""}}},"/asset_report/pdf/get":{"post":{"tags":["plaid"],"summary":"Retrieve a PDF Asset Report","externalDocs":{"url":"/api/products/assets/#asset_reportpdfget"},"responses":{"200":{"description":"A PDF of the Asset Report","content":{"application/pdf":{"schema":{"$ref":"#/components/schemas/AssetReportPDFGetResponse"}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"assetReportPdfGet","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.\n\nThe response to `/asset_report/pdf/get` is the PDF binary data. The `request_id`  is returned in the `Plaid-Request-ID` header.\n\n[View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportPDFGetRequest"}}},"description":""}}},"/asset_report/refresh":{"post":{"tags":["plaid"],"summary":"Refresh an Asset Report","externalDocs":{"url":"/api/products/assets/#asset_reportrefresh"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportRefreshResponse"},"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"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"assetReportRefresh","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.\n\nThe 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.\n\nNote: Asset Report refresh is not supported in Canada.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportRefreshRequest"}}},"description":""}}},"/asset_report/filter":{"post":{"tags":["plaid"],"summary":"Filter Asset Report","externalDocs":{"url":"/api/products/assets/#asset_reportfilter"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportFilterResponse"},"examples":{"example-1":{"value":{"asset_report_token":"assets-sandbox-bc410c6a-4653-4c75-985c-e757c3497c5c","asset_report_id":"fdc09207-0cef-4d88-b5eb-0d970758ebd9","request_id":"qEg07"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"assetReportFilter","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.\n\nTo 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.\n\nBecause 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.\n\nPlaid will fire a [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook once generation of the filtered Asset Report has completed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportFilterRequest"}}},"description":""}}},"/asset_report/remove":{"post":{"tags":["plaid"],"summary":"Delete an Asset Report","externalDocs":{"url":"/api/products/assets/#asset_reportremove"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportRemoveResponse"},"examples":{"example-1":{"value":{"removed":true,"request_id":"I6zHN"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"assetReportRemove","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.\n\nThe `/asset_report/remove` endpoint allows you to remove access to 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportRemoveRequest"}}},"description":""}}},"/asset_report/audit_copy/create":{"post":{"tags":["plaid"],"summary":"Create Asset Report Audit Copy","externalDocs":{"url":"/api/products/assets/#asset_reportaudit_copycreate"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportAuditCopyCreateResponse"},"examples":{"example-1":{"value":{"audit_copy_token":"a-sandbox-3tau2cwvybdvrhucaaai27ulu4","request_id":"Iam3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"assetReportAuditCopyCreate","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 the GSEs on your behalf if you participate in Fannie Mae's Day 1 Certainty™ program or utilize Freddie Mac's Loan Product Advisor® (LPA®) Asset and Income Modeler (AIM). An Audit Copy contains the same underlying data as the Asset Report.\n\nTo 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportAuditCopyCreateRequest"}}}}}},"/asset_report/audit_copy/get":{"post":{"summary":"Retrieve an Asset Report Audit Copy","tags":["plaid"],"operationId":"assetReportAuditCopyGet","externalDocs":{"url":"/none/"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportAuditCopyGetRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportGetResponse"}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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/get`."}},"/asset_report/audit_copy/pdf/get":{"post":{"tags":["plaid"],"summary":"Retrieve a PDF Asset Report Audit Copy","externalDocs":{"url":"/none/"},"responses":{"200":{"description":"A PDF of the Asset Report Audit Copy","content":{"application/pdf":{"schema":{"$ref":"#/components/schemas/AssetReportAuditCopyPdfGetResponse"},"examples":{"example-1":{"value":"JVBERi0xLjQKJeLjz9MKMyAwIG9iaiA8PC9MZW5ndGggNDY2MS9GaWx0ZXIvRmxhdGVEZWNvZGU+PnN0cmVhbQp4nF2SyY4cMRBF94VdzI0O..."}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"assetReportAuditCopyPdfGet","description":"The `/asset_report/audit_copy/pdf/get` endpoint retrieves an Asset Report Audit Copy in PDF format. The caller must provide the `audit_copy_token` that was shared via the `/asset_report/audit_copy/create` endpoint.\n\nThe response to `/asset_report/audit_copy/pdf/get` is the PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.\n\n[View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportAuditCopyPdfGetRequest"}}},"description":""}}},"/asset_report/audit_copy/remove":{"post":{"tags":["plaid"],"summary":"Remove Asset Report Audit Copy","externalDocs":{"url":"/api/products/assets/#asset_reportaudit_copyremove"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportAuditCopyRemoveResponse"},"examples":{"example-1":{"value":{"removed":true,"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"assetReportAuditCopyRemove","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportAuditCopyRemoveRequest"}}},"description":""},"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."}},"/cra/monitoring_insights/subscribe":{"post":{"summary":"(Legacy) Subscribe to Cash Flow Updates","deprecated":true,"tags":["plaid"],"operationId":"craMonitoringInsightsSubscribe","externalDocs":{"url":"/api/products/check-legacy/#cramonitoring_insightssubscribe"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraMonitoringInsightsSubscribeRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraMonitoringInsightsSubscribeResponse"},"examples":{"example-1":{"value":{"subscription_id":"f17efbdd-caab-4278-8ece-963511cd3d51","request_id":"GVzMdiDd8DDAQK4"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint allows you to subscribe to insights for a user's linked CRA Item, which are updated between one and four times per day (best-effort). Only one Item per user may be subscribed. This endpoint is part of the legacy Cash Flow Updates product and is available only to integrations already using it; other integrations should use `/cra/servicing/subscription/create` instead."}},"/cra/monitoring_insights/unsubscribe":{"post":{"summary":"(Legacy) Unsubscribe from Cash Flow Updates","deprecated":true,"tags":["plaid"],"operationId":"craMonitoringInsightsUnsubscribe","externalDocs":{"url":"/api/products/check-legacy/#cramonitoring_insightsunsubscribe"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraMonitoringInsightsUnsubscribeRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraMonitoringInsightsUnsubscribeResponse"},"examples":{"example-1":{"value":{"request_id":"GVzMdiDd8DDAQK4"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint allows you to remove a subscription created by `/cra/monitoring_insights/subscribe`. This endpoint is part of the legacy Cash Flow Updates product and is available only to integrations already using it; other integrations should use `/cra/servicing/subscription/delete` instead."}},"/cra/monitoring_insights/get":{"post":{"summary":"(Legacy) Retrieve a Cash Flow Updates report","deprecated":true,"tags":["plaid"],"operationId":"craMonitoringInsightsGet","externalDocs":{"url":"/api/products/check-legacy/#cramonitoring_insightsget"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraMonitoringInsightsGetRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraMonitoringInsightsGetResponse"},"examples":{"example-1":{"value":{"user_insights_id":"028e8404-a013-4a45-ac9e-002482f9cafc","items":[{"date_generated":"2023-03-30T18:27:37Z","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","institution_id":"ins_0","institution_name":"Plaid Bank","status":{"status_code":"AVAILABLE"},"insights":{"income":{"income_sources":[{"income_source_id":"f17efbdd-caab-4278-8ece-963511cd3d51","income_description":"PLAID_INC_DIRECT_DEP_PPD","income_category":"SALARY","last_transaction_date":"2023-03-30"}],"forecasted_monthly_income":{"current_amount":12000},"total_monthly_income":{"current_amount":20000.31},"historical_annual_income":{"current_amount":144000},"income_sources_counts":{"current_count":1}},"loans":{"loan_payments_counts":{"current_count":1},"loan_payment_merchants_counts":{"current_count":1},"loan_disbursements_count":1}},"accounts":[{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","attributes":{"total_inflow_amount":{"amount":-2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_inflow_amount_30d":{"amount":-1000,"iso_currency_code":"USD","unofficial_currency_code":null},"total_inflow_amount_60d":{"amount":-2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_inflow_amount_90d":{"amount":-2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_outflow_amount":{"amount":2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_outflow_amount_30d":{"amount":1000,"iso_currency_code":"USD","unofficial_currency_code":null},"total_outflow_amount_60d":{"amount":2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_outflow_amount_90d":{"amount":2500,"iso_currency_code":"USD","unofficial_currency_code":null}},"balances":{"available":5000,"average_balance":4956.12,"average_monthly_balances":[{"average_balance":{"amount":4956.12,"iso_currency_code":"USD","unofficial_currency_code":null},"end_date":"2024-07-31","start_date":"2024-07-01"}],"current":5000,"iso_currency_code":"USD","limit":null,"most_recent_thirty_day_average_balance":4956.125,"unofficial_currency_code":null},"consumer_disputes":[],"days_available":365,"mask":"1208","metadata":{"start_date":"2024-01-01","end_date":"2024-07-16"},"name":"Checking","official_name":"Plaid 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":"+1 111-555-3333","primary":false,"type":"home"},{"data":"+1 111-555-4444","primary":false,"type":"work"},{"data":"+1 111-555-5555","primary":false,"type":"mobile"}]}],"ownership_type":null,"subtype":"checking","transactions":[{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":37.07,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_ONLINE_MARKETPLACES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Amazon","original_description":"AMZN Mktp US*11111111 Amzn.com/bill WA AM","pending":false,"transaction_id":"XA7ZLy8rXzt7D3j9B6LMIgv5VxyQkAhbKjzmp","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":51.61,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Domino's","original_description":"DOMINO's XXXX 111-222-3333","pending":false,"transaction_id":"VEPeMbWqRluPVZLQX4MDUkKRw41Ljzf9gyLBW","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":7.55,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_FURNITURE_AND_HARDWARE","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":"Chicago","country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"IKEA","original_description":"IKEA CHICAGO","pending":false,"transaction_id":"6GQZARgvroCAE1eW5wpQT7w3oB6nvzi8DKMBa","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":12.87,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_SPORTING_GOODS","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":"Redlands","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Nike","original_description":"NIKE REDLANDS CA","pending":false,"transaction_id":"DkbmlP8BZxibzADqNplKTeL8aZJVQ1c3WR95z","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":44.21,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":null,"original_description":"POKE BROS * POKE BRO IL","pending":false,"transaction_id":"RpdN7W8GmRSdjZB9Jm7ATj4M86vdnktapkrgL","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":36.82,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_DISCOUNT_STORES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Family Dollar","original_description":"FAMILY DOLLAR","pending":false,"transaction_id":"5AeQWvo5KLtAD9wNL68PTdAgPE7VNWf5Kye1G","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":13.27,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Instacart","original_description":"INSTACART HTTPSINSTACAR CA","pending":false,"transaction_id":"Jjlr3MEVg1HlKbdkZj39ij5a7eg9MqtB6MWDo","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":36.03,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":null,"original_description":"POKE BROS * POKE BRO IL","pending":false,"transaction_id":"kN9KV7yAZJUMPn93KDXqsG9MrpjlyLUL6Dgl8","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":54.74,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":null,"city":"Whittier","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Smart & Final","original_description":"POS SMART AND FINAL 111 WHITTIER CA","pending":false,"transaction_id":"lPvrweZAMqHDar43vwWKs547kLZVEzfpogGVJ","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":37.5,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":"1627 N 24th St","city":"Phoenix","country":null,"lat":null,"lon":null,"postal_code":"85008","region":"AZ","state":"AZ","store_number":null,"zip":"85008"},"merchant_name":"Taqueria El Guerrerense","original_description":"TAQUERIA EL GUERRERO PHOENIX AZ","pending":false,"transaction_id":"wka74WKqngiyJ3pj7dl5SbpLGQBZqyCPZRDbP","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":41.42,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_ONLINE_MARKETPLACES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Amazon","original_description":"AMZN Mktp US*11111111 Amzn.com/bill WA AM","pending":false,"transaction_id":"BBGnV4RkerHjn8WVavGyiJbQ95VNDaC4M56bJ","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":-1077.93,"check_number":null,"credit_category":{"detailed":"INCOME_OTHER","primary":"INCOME"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Lyft","original_description":"LYFT TRANSFER","pending":false,"transaction_id":"3Ej78yKJlQu1Abw7xzo4U4JR6pmwzntZlbKDK","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":47.17,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":"Whittier","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Smart & Final","original_description":"POS SMART AND FINAL 111 WHITTIER CA","pending":false,"transaction_id":"rMzaBpJw8jSZRJQBabKdteQBwd5EaWc7J9qem","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":12.37,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":"Whittier","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Smart & Final","original_description":"POS SMART AND FINAL 111 WHITTIER CA","pending":false,"transaction_id":"zWPZjkmzynTyel89ZjExS59DV6WAaZflNBJ56","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":44.18,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":"Portland","country":null,"lat":null,"lon":null,"postal_code":null,"region":"OR","state":"OR","store_number":"1111","zip":null},"merchant_name":"Safeway","original_description":"SAFEWAY #1111 PORTLAND OR            111111","pending":false,"transaction_id":"K7qzx1nP8ptqgwaRMbxyI86XrqADMluRpkWx5","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":45.37,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Uber Eats","original_description":"UBER EATS","pending":false,"transaction_id":"qZrdzLRAgNHo5peMdD9xIzELl3a1NvcgrPAzL","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":15.22,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_ONLINE_MARKETPLACES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Amazon","original_description":"AMZN Mktp US*11111111 Amzn.com/bill WA AM","pending":false,"transaction_id":"NZzx4oRPkAHzyRekpG4PTZkWnBPqEyiy6pB1M","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":26.33,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Domino's","original_description":"DOMINO's XXXX 111-222-3333","pending":false,"transaction_id":"x84eNArKbESz8Woden6LT3nvyogeJXc64Pp35","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":39.8,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_DISCOUNT_STORES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Family Dollar","original_description":"FAMILY DOLLAR","pending":false,"transaction_id":"dzWnyxwZ4GHlZPGgrNyxiMG7qd5jDgCJEz5jL","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":45.06,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Instacart","original_description":"INSTACART HTTPSINSTACAR CA","pending":false,"transaction_id":"4W7eE9rZqMToDArbPeLNIREoKpdgBMcJbVNQD","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":34.91,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":"Whittier","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Smart & Final","original_description":"POS SMART AND FINAL 111 WHITTIER CA","pending":false,"transaction_id":"j4yqDjb7QwS7woGzqrgDIEG1NaQVZwf6Wmz3D","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":49.78,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":"Portland","country":null,"lat":null,"lon":null,"postal_code":null,"region":"OR","state":"OR","store_number":"1111","zip":null},"merchant_name":"Safeway","original_description":"SAFEWAY #1111 PORTLAND OR            111111","pending":false,"transaction_id":"aqgWnze7xoHd6DQwLPnzT5dgPKjB1NfZ5JlBy","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":54.24,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":"Portland","country":null,"lat":null,"lon":null,"postal_code":null,"region":"OR","state":"OR","store_number":"1111","zip":null},"merchant_name":"Safeway","original_description":"SAFEWAY #1111 PORTLAND OR            111111","pending":false,"transaction_id":"P13aP8b7nmS3WQoxg1PMsdvMK679RNfo65B4G","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":41.79,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_ONLINE_MARKETPLACES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Amazon","original_description":"AMZN Mktp US*11111111 Amzn.com/bill WA AM","pending":false,"transaction_id":"7nZMG6pXz8SADylMqzx7TraE4qjJm7udJyAGm","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":33.86,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Instacart","original_description":"INSTACART HTTPSINSTACAR CA","pending":false,"transaction_id":"MQr3ap7PWEIrQG7bLdaNsxyBV7g1KqCL6pwoy","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":27.08,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":null,"original_description":"POKE BROS * POKE BRO IL","pending":false,"transaction_id":"eBAk9dvwNbHPZpr8W69dU3rekJz47Kcr9BRwl","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":25.94,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_FURNITURE_AND_HARDWARE","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"The Home Depot","original_description":"THE HOME DEPOT","pending":false,"transaction_id":"QLx4jEJZb9SxRm7aWbjAio3LrgZ5vPswm64dE","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":27.57,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_OTHER_GENERAL_MERCHANDISE","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":null,"original_description":"The Press Club","pending":false,"transaction_id":"ZnQ1ovqBldSQ6GzRbroAHLdQP68BrKceqmAjX","unofficial_currency_code":null}],"type":"depository"}]}],"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint allows you to retrieve a Cash Flow Updates report by passing in the `user_id` referred to in the webhook you received. This endpoint is part of the legacy Cash Flow Updates product and is available only to integrations already using it. CRA Servicing has no direct equivalent; other integrations should handle the `CRA_REPORT_UPDATED` webhook and pass its `report_id` to the relevant product `/get` endpoint, such as `/cra/check_report/base_report/get`."}},"/credit/audit_copy_token/update":{"post":{"tags":["plaid"],"summary":"Update an Audit Copy Token","externalDocs":{"url":"/none/"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditAuditCopyTokenUpdateResponse"},"examples":{"example-1":{"value":{"request_id":"eYupqX1mZkEuQRx","updated":true}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"creditAuditCopyTokenUpdate","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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditAuditCopyTokenUpdateRequest"}}}}}},"/cra/partner_insights/get":{"post":{"summary":"Retrieve cash flow insights from the bank accounts used for income verification","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraPartnerInsightsGetResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm","report":[{"report_id":"ef41dd05-b91e-45a6-9b2c-6c51d552f8f0","generated_time":"2022-01-31T22:47:53Z","items":[{"institution_id":"ins_0","institution_name":"Plaid Bank","item_id":"mxdmo1gw8DIW8AM1yG6JtRxbVeRkN8cL9PmQE","accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","mask":"8888","metadata":{"start_date":"2024-01-01","end_date":"2024-07-16"},"name":"Plaid Checking Account","official_name":"Plaid Checking Account","type":"depository","subtype":"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":"+1 111-555-3333","primary":false,"type":"home"},{"data":"+1 111-555-4444","primary":false,"type":"work"},{"data":"+1 111-555-5555","primary":false,"type":"mobile"}]}]}]}],"prism":{"insights":{"version":3,"result":{"l6m_cumbal_acc":1}},"cash_score":{"version":3,"model_version":"3","score":900,"reason_codes":["CS03038"],"metadata":{"max_age":20,"min_age":1,"min_age_credit":0,"min_age_debit":1,"max_age_debit":20,"max_age_credit":0,"num_trxn_credit":0,"num_trxn_debit":40,"l1m_credit_value_cnt":0,"l1m_debit_value_cnt":40}},"first_detect":{"version":3,"model_version":"3","score":900,"reason_codes":["CS03038"],"metadata":{"max_age":20,"min_age":1,"min_age_credit":0,"min_age_debit":1,"max_age_debit":20,"max_age_credit":0,"num_trxn_credit":0,"num_trxn_debit":40,"l1m_credit_value_cnt":0,"l1m_debit_value_cnt":40}},"status":"SUCCESS"}}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/income/#crapartner_insightsget"},"operationId":"craPartnerInsightsGet","description":"`/cra/partner_insights/get` returns cash flow insights for a specified user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraPartnerInsightsGetRequest"}}}}}},"/cra/check_report/income_insights/get":{"post":{"summary":"Retrieve income insights from your user's banks","tags":["plaid"],"security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["cra:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportIncomeInsightsGetResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm","report":{"report_id":"bbfc5174-5433-4648-8d93-9fec6a0c0966","generated_time":"2022-01-31T22:47:53Z","days_requested":365,"user_summary":{"income_metrics":[{"current":{"monthly":{"gross_income":390,"net_income":300},"annual":{"gross_income":4680,"net_income":3600}},"projected":{"monthly":{"gross_income":300,"net_income":300},"annual":{"gross_income":3600,"net_income":3600}},"iso_currency_code":"USD","unofficial_currency_code":null}]},"income_streams":[{"income_stream_id":"f17efbdd-caab-4278-8ece-963511cd3d51","start_date":"2021-11-15","end_date":"2022-01-15","description":"PLAID INC DIRECT DEP PPD","insights":{"income_category":{"primary":"EARNED_INCOME","secondary":"SALARY"},"pay_frequency":"MONTHLY","income_provider":{"name":"Plaid Inc","is_normalized":true},"next_payment":{"date":"2022-12-15"},"status":"ACTIVE"},"income_metrics":{"current":{"monthly":{"gross_income":390,"net_income":300},"annual":{"gross_income":4680,"net_income":3600}},"projected":{"monthly":{"gross_income":300,"net_income":300},"annual":{"gross_income":3600,"net_income":3600}},"iso_currency_code":"USD","unofficial_currency_code":null},"transactions":[{"transaction_id":"aH5klwqG3B19OMT7D6F24Syv8pdnJXmtZoKQ5","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":100,"date":"2021-11-15","original_description":"PLAID_INC_DIRECT_DEP_PPD 123A","outlier":{"is_outlier":false},"iso_currency_code":"USD","unofficial_currency_code":null},{"transaction_id":"mN3rQ5iH8BC41T6UjKL9oD2vWJpZqXFomGwY1","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":100,"date":"2021-12-15","original_description":"PLAID_INC_DIRECT_DEP_PPD 123B","outlier":{"is_outlier":false},"iso_currency_code":"USD","unofficial_currency_code":null},{"transaction_id":"zK9lDoR8uBH51PNQ3W4T6Mjy2VFXpGtJwsL4","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":100,"date":"2022-01-31","original_description":"PLAID_INC_DIRECT_DEP_PPD 123C","outlier":{"is_outlier":false},"iso_currency_code":"USD","unofficial_currency_code":null}]}],"items":[{"item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","institution_name":"Plaid Bank","institution_id":"ins_0","last_updated_time":"2022-01-31T22:47:53Z","bank_income_accounts":[],"bank_income_sources":[],"accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","mask":"8888","metadata":{"start_date":"2024-01-01","end_date":"2024-07-16"},"name":"Plaid Checking Account","official_name":"Plaid Checking Account","subtype":"checking","type":"depository","owners":[]}]}]},"warnings":[]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportincome_insightsget"},"operationId":"craCheckReportIncomeInsightsGet","description":"This endpoint allows you to retrieve the Income Insights report for your user. You should call this endpoint after you've received a `CHECK_REPORT_READY` or a `USER_CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn't have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.\n\nNOTE: The following schema was updated in April 2026 to reflect the response when the provided version is \"II2\". Please see [this document](https://docs.google.com/document/d/1kQkQ7FOgFaC4n-sUGUk74hoXZNY_L_nJeCuMe7Keip4/edit?tab=t.0#heading=h.rudamzinus2i) for guidance on migrating to II2 if you are currently using the II1 version, and [this section](https://docs.google.com/document/d/1kQkQ7FOgFaC4n-sUGUk74hoXZNY_L_nJeCuMe7Keip4/edit?tab=t.0#bookmark=id.tdcc2wpk0h60) for an example II1 response along with its [documentation](https://docs.google.com/document/d/1kQkQ7FOgFaC4n-sUGUk74hoXZNY_L_nJeCuMe7Keip4/edit?tab=t.36c85n2ircqk#heading=h.79dwr5c1iszl).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportIncomeInsightsGetRequest"}}}}}},"/cra/check_report/base_report/get":{"post":{"summary":"Retrieve a Base Report","tags":["plaid"],"operationId":"craCheckReportBaseReportGet","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["cra:read"]}],"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportbase_reportget"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportBaseReportGetRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportBaseReportGetResponse"},"examples":{"example-1":{"value":{"report":{"date_generated":"2024-07-16T01:52:42.912331716Z","days_requested":365,"attributes":{"total_inflow_amount":{"amount":-2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_inflow_amount_30d":{"amount":-1000,"iso_currency_code":"USD","unofficial_currency_code":null},"total_inflow_amount_60d":{"amount":-2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_inflow_amount_90d":{"amount":-2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_outflow_amount":{"amount":2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_outflow_amount_30d":{"amount":1000,"iso_currency_code":"USD","unofficial_currency_code":null},"total_outflow_amount_60d":{"amount":2500,"iso_currency_code":"USD","unofficial_currency_code":null},"total_outflow_amount_90d":{"amount":2500,"iso_currency_code":"USD","unofficial_currency_code":null}},"items":[{"accounts":[{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_insights":{"average_days_between_transactions":0.15,"average_inflow_amount":[{"end_date":"2024-07-31","start_date":"2024-07-01","total_amount":{"amount":1077.93,"iso_currency_code":"USD","unofficial_currency_code":null}}],"average_inflow_amounts":[{"end_date":"2024-07-31","start_date":"2024-07-01","total_amount":{"amount":1077.93,"iso_currency_code":"USD","unofficial_currency_code":null}},{"end_date":"2024-08-31","start_date":"2024-08-01","total_amount":{"amount":1076.93,"iso_currency_code":"USD","unofficial_currency_code":null}}],"average_outflow_amount":[{"end_date":"2024-07-31","start_date":"2024-07-01","total_amount":{"amount":34.95,"iso_currency_code":"USD","unofficial_currency_code":null}}],"average_outflow_amounts":[{"end_date":"2024-07-31","start_date":"2024-07-01","total_amount":{"amount":34.95,"iso_currency_code":"USD","unofficial_currency_code":null}},{"end_date":"2024-08-31","start_date":"2024-08-01","total_amount":{"amount":0,"iso_currency_code":"USD","unofficial_currency_code":null}}],"days_available":365,"longest_gap_between_transactions":[{"days":1,"end_date":"2024-07-31","start_date":"2024-07-01"}],"longest_gaps_between_transactions":[{"days":1,"end_date":"2024-07-31","start_date":"2024-07-01"},{"days":2,"end_date":"2024-08-31","start_date":"2024-08-01"}],"most_recent_transaction_date":"2024-07-16","number_of_days_no_transactions":0,"number_of_inflows":[{"count":1,"end_date":"2024-07-31","start_date":"2024-07-01"}],"number_of_outflows":[{"count":27,"end_date":"2024-07-31","start_date":"2024-07-01"}],"oldest_transaction_date":"2024-07-12"},"balances":{"available":5000,"average_balance":4956.12,"average_monthly_balances":[{"average_balance":{"amount":4956.12,"iso_currency_code":"USD","unofficial_currency_code":null},"end_date":"2024-07-31","start_date":"2024-07-01"}],"current":5000,"iso_currency_code":"USD","limit":null,"most_recent_thirty_day_average_balance":4956.125,"unofficial_currency_code":null},"consumer_disputes":[],"days_available":365,"mask":"1208","metadata":{"start_date":"2024-01-01","end_date":"2024-07-16"},"name":"Checking","official_name":"Plaid 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":"+1 111-555-3333","primary":false,"type":"home"},{"data":"+1 111-555-4444","primary":false,"type":"work"},{"data":"+1 111-555-5555","primary":false,"type":"mobile"}]}],"ownership_type":null,"subtype":"checking","transactions":[{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":37.07,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_ONLINE_MARKETPLACES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Amazon","original_description":"AMZN Mktp US*11111111 Amzn.com/bill WA AM","pending":false,"transaction_id":"XA7ZLy8rXzt7D3j9B6LMIgv5VxyQkAhbKjzmp","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":51.61,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Domino's","original_description":"DOMINO's XXXX 111-222-3333","pending":false,"transaction_id":"VEPeMbWqRluPVZLQX4MDUkKRw41Ljzf9gyLBW","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":7.55,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_FURNITURE_AND_HARDWARE","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":"Chicago","country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"IKEA","original_description":"IKEA CHICAGO","pending":false,"transaction_id":"6GQZARgvroCAE1eW5wpQT7w3oB6nvzi8DKMBa","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":12.87,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_SPORTING_GOODS","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":"Redlands","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Nike","original_description":"NIKE REDLANDS CA","pending":false,"transaction_id":"DkbmlP8BZxibzADqNplKTeL8aZJVQ1c3WR95z","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":44.21,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-12","date_posted":"2024-07-12T00:00:00Z","date_transacted":"2024-07-12","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":null,"original_description":"POKE BROS * POKE BRO IL","pending":false,"transaction_id":"RpdN7W8GmRSdjZB9Jm7ATj4M86vdnktapkrgL","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":36.82,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_DISCOUNT_STORES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Family Dollar","original_description":"FAMILY DOLLAR","pending":false,"transaction_id":"5AeQWvo5KLtAD9wNL68PTdAgPE7VNWf5Kye1G","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":13.27,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Instacart","original_description":"INSTACART HTTPSINSTACAR CA","pending":false,"transaction_id":"Jjlr3MEVg1HlKbdkZj39ij5a7eg9MqtB6MWDo","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":36.03,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":null,"original_description":"POKE BROS * POKE BRO IL","pending":false,"transaction_id":"kN9KV7yAZJUMPn93KDXqsG9MrpjlyLUL6Dgl8","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":54.74,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":null,"city":"Whittier","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Smart & Final","original_description":"POS SMART AND FINAL 111 WHITTIER CA","pending":false,"transaction_id":"lPvrweZAMqHDar43vwWKs547kLZVEzfpogGVJ","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":37.5,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-13","date_posted":"2024-07-13T00:00:00Z","date_transacted":"2024-07-13","iso_currency_code":"USD","location":{"address":"1627 N 24th St","city":"Phoenix","country":null,"lat":null,"lon":null,"postal_code":"85008","region":"AZ","state":"AZ","store_number":null,"zip":"85008"},"merchant_name":"Taqueria El Guerrerense","original_description":"TAQUERIA EL GUERRERO PHOENIX AZ","pending":false,"transaction_id":"wka74WKqngiyJ3pj7dl5SbpLGQBZqyCPZRDbP","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":41.42,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_ONLINE_MARKETPLACES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Amazon","original_description":"AMZN Mktp US*11111111 Amzn.com/bill WA AM","pending":false,"transaction_id":"BBGnV4RkerHjn8WVavGyiJbQ95VNDaC4M56bJ","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":-1077.93,"check_number":null,"credit_category":{"detailed":"INCOME_OTHER","primary":"INCOME"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Lyft","original_description":"LYFT TRANSFER","pending":false,"transaction_id":"3Ej78yKJlQu1Abw7xzo4U4JR6pmwzntZlbKDK","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":47.17,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":"Whittier","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Smart & Final","original_description":"POS SMART AND FINAL 111 WHITTIER CA","pending":false,"transaction_id":"rMzaBpJw8jSZRJQBabKdteQBwd5EaWc7J9qem","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":12.37,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":"Whittier","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Smart & Final","original_description":"POS SMART AND FINAL 111 WHITTIER CA","pending":false,"transaction_id":"zWPZjkmzynTyel89ZjExS59DV6WAaZflNBJ56","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":44.18,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":"Portland","country":null,"lat":null,"lon":null,"postal_code":null,"region":"OR","state":"OR","store_number":"1111","zip":null},"merchant_name":"Safeway","original_description":"SAFEWAY #1111 PORTLAND OR            111111","pending":false,"transaction_id":"K7qzx1nP8ptqgwaRMbxyI86XrqADMluRpkWx5","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":45.37,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-14","date_posted":"2024-07-14T00:00:00Z","date_transacted":"2024-07-14","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Uber Eats","original_description":"UBER EATS","pending":false,"transaction_id":"qZrdzLRAgNHo5peMdD9xIzELl3a1NvcgrPAzL","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":15.22,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_ONLINE_MARKETPLACES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Amazon","original_description":"AMZN Mktp US*11111111 Amzn.com/bill WA AM","pending":false,"transaction_id":"NZzx4oRPkAHzyRekpG4PTZkWnBPqEyiy6pB1M","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":26.33,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Domino's","original_description":"DOMINO's XXXX 111-222-3333","pending":false,"transaction_id":"x84eNArKbESz8Woden6LT3nvyogeJXc64Pp35","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":39.8,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_DISCOUNT_STORES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Family Dollar","original_description":"FAMILY DOLLAR","pending":false,"transaction_id":"dzWnyxwZ4GHlZPGgrNyxiMG7qd5jDgCJEz5jL","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":45.06,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Instacart","original_description":"INSTACART HTTPSINSTACAR CA","pending":false,"transaction_id":"4W7eE9rZqMToDArbPeLNIREoKpdgBMcJbVNQD","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":34.91,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":"Whittier","country":null,"lat":null,"lon":null,"postal_code":null,"region":"CA","state":"CA","store_number":null,"zip":null},"merchant_name":"Smart & Final","original_description":"POS SMART AND FINAL 111 WHITTIER CA","pending":false,"transaction_id":"j4yqDjb7QwS7woGzqrgDIEG1NaQVZwf6Wmz3D","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":49.78,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":"Portland","country":null,"lat":null,"lon":null,"postal_code":null,"region":"OR","state":"OR","store_number":"1111","zip":null},"merchant_name":"Safeway","original_description":"SAFEWAY #1111 PORTLAND OR            111111","pending":false,"transaction_id":"aqgWnze7xoHd6DQwLPnzT5dgPKjB1NfZ5JlBy","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":54.24,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-15","date_posted":"2024-07-15T00:00:00Z","date_transacted":"2024-07-15","iso_currency_code":"USD","location":{"address":null,"city":"Portland","country":null,"lat":null,"lon":null,"postal_code":null,"region":"OR","state":"OR","store_number":"1111","zip":null},"merchant_name":"Safeway","original_description":"SAFEWAY #1111 PORTLAND OR            111111","pending":false,"transaction_id":"P13aP8b7nmS3WQoxg1PMsdvMK679RNfo65B4G","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":41.79,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_ONLINE_MARKETPLACES","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Amazon","original_description":"AMZN Mktp US*11111111 Amzn.com/bill WA AM","pending":false,"transaction_id":"7nZMG6pXz8SADylMqzx7TraE4qjJm7udJyAGm","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":33.86,"check_number":null,"credit_category":{"detailed":"FOOD_RETAIL_GROCERIES","primary":"FOOD_RETAIL"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"Instacart","original_description":"INSTACART HTTPSINSTACAR CA","pending":false,"transaction_id":"MQr3ap7PWEIrQG7bLdaNsxyBV7g1KqCL6pwoy","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":27.08,"check_number":null,"credit_category":{"detailed":"DINING_DINING","primary":"DINING"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":null,"original_description":"POKE BROS * POKE BRO IL","pending":false,"transaction_id":"eBAk9dvwNbHPZpr8W69dU3rekJz47Kcr9BRwl","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":25.94,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_FURNITURE_AND_HARDWARE","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":"The Home Depot","original_description":"THE HOME DEPOT","pending":false,"transaction_id":"QLx4jEJZb9SxRm7aWbjAio3LrgZ5vPswm64dE","unofficial_currency_code":null},{"account_id":"NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E","account_owner":null,"amount":27.57,"check_number":null,"credit_category":{"detailed":"GENERAL_MERCHANDISE_OTHER_GENERAL_MERCHANDISE","primary":"GENERAL_MERCHANDISE"},"date":"2024-07-16","date_posted":"2024-07-16T00:00:00Z","date_transacted":"2024-07-16","iso_currency_code":"USD","location":{"address":null,"city":null,"country":null,"lat":null,"lon":null,"postal_code":null,"region":null,"state":null,"store_number":null,"zip":null},"merchant_name":null,"original_description":"The Press Club","pending":false,"transaction_id":"ZnQ1ovqBldSQ6GzRbroAHLdQP68BrKceqmAjX","unofficial_currency_code":null}],"type":"depository"}],"date_last_updated":"2024-07-16T01:52:42.912331716Z","institution_id":"ins_109512","institution_name":"Houndstooth Bank","item_id":"NZzx4oRPkAHzyRekpG4PTZkDNkQW93tWnyGeA"}],"report_id":"f3bb434f-1c9b-4ef2-b76c-3d1fd08156ec"},"warnings":[],"request_id":"FibfL8t3s71KJnj"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint allows you to retrieve the Base Report for your user, allowing you to receive comprehensive bank account and cash flow data. You should call this endpoint after you've received a `CHECK_REPORT_READY` or a `USER_CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn't have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`."}},"/cra/check_report/pdf/get":{"post":{"summary":"Retrieve a Consumer Report as a PDF","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/pdf":{"schema":{"$ref":"#/components/schemas/CraCheckReportPDFGetResponse"},"examples":{"example-1":{"value":"JVBERi0xLjQKJeLjz9MKMyAwIG9iaiA8PC9MZW5ndGggNDY2MS9GaWx0ZXIvRmxhdGVEZWNvZGU+PnN0cmVhbQp4nF2SyY4cMRBF94VdzI0O..."}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportpdfget"},"operationId":"craCheckReportPdfGet","description":"`/cra/check_report/pdf/get` retrieves the most recent Consumer Report in PDF format. The most recent Base Report for the user is always included. Use the `add_ons` field to also include the most recent Income Insights, Partner Insights or LendScore report in the PDF.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportPDFGetRequest"}}}}}},"/cra/check_report/create":{"post":{"summary":"Refresh or create a Consumer Report","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportCreateResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportcreate"},"operationId":"craCheckReportCreate","description":"Use `/cra/check_report/create` to refresh data in an existing report. A Consumer Report will last for 24 hours before expiring; you should call any `/get` endpoints on the report before it expires. If a report expires, you can call `/cra/check_report/create` again to re-generate it and refresh the data in the report. The report is generated from all Items associated with the user, excluding [duplicate Items](https://plaid.com/docs/check/add-to-app/#duplicate-items) and Items that cannot supply data.\n\nEach call to `/cra/check_report/create` creates a new, independent report. `/get` endpoints will retrieve the most recently created report for the requested user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportCreateRequest"}}}}}},"/cra/check_report/partner_insights/get":{"post":{"summary":"Retrieve cash flow insights from partners","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportPartnerInsightsGetResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm","report":{"report_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","client_report_id":"client_report_id_1221","generated_time":"2022-01-31T22:47:53Z","items":[{"institution_id":"ins_109508","institution_name":"Plaid Bank","item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","mask":"8888","metadata":{"start_date":"2022-01-01","end_date":"2022-01-31"},"name":"Plaid Checking Account","official_name":"Plaid Checking Account","type":"depository","subtype":"checking","owners":[]}]}],"prism":{"insights":{"version":3,"result":{"l6m_cumbal_acc":1}},"cash_score":{"version":3,"model_version":"3","score":900,"reason_codes":["CS03038"],"metadata":{"max_age":20,"min_age":1,"min_age_credit":0,"min_age_debit":1,"max_age_debit":20,"max_age_credit":0,"num_trxn_credit":0,"num_trxn_debit":40,"l1m_credit_value_cnt":0,"l1m_debit_value_cnt":40}},"first_detect":{"version":3,"model_version":"3","score":900,"reason_codes":["CS03038"],"metadata":{"max_age":20,"min_age":1,"min_age_credit":0,"min_age_debit":1,"max_age_debit":20,"max_age_credit":0,"num_trxn_credit":0,"num_trxn_debit":40,"l1m_credit_value_cnt":0,"l1m_debit_value_cnt":40}},"status":"SUCCESS"}}}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportpartner_insightsget"},"operationId":"craCheckReportPartnerInsightsGet","description":"This endpoint allows you to retrieve the Partner Insights report for your user. You should call this endpoint after you've received a `CHECK_REPORT_READY` or a `USER_CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn't have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportPartnerInsightsGetRequest"}}}}}},"/cra/check_report/cashflow_insights/get":{"post":{"summary":"Retrieve cash flow insights from your user's banking data","tags":["plaid"],"security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["cra:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportCashflowInsightsGetResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm","report":{"report_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","generated_time":"2022-01-31T22:47:53Z","attributes":{"cash_reliance_atm_withdrawal_amt_cv_90d":180.1}}}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportcashflow_insightsget"},"operationId":"craCheckReportCashflowInsightsGet","description":"This endpoint allows you to retrieve the Cashflow Insights report for your user. You should call this endpoint after you've received a `CHECK_REPORT_READY` or a `USER_CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn't have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportCashflowInsightsGetRequest"}}}}}},"/cra/check_report/lend_score/get":{"post":{"summary":"Retrieve the LendScore from your user's banking data","tags":["plaid"],"security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["cra:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportLendScoreGetResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm","report":{"report_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","generated_time":"2022-01-31T22:47:53Z","lend_score":{"score":80,"reason_codes":["PCS0221","PCS0223"]}}}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportlend_scoreget"},"operationId":"craCheckReportLendScoreGet","description":"This endpoint allows you to retrieve the LendScore report for your user. You should call this endpoint after you've received a `CHECK_REPORT_READY` or a `USER_CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn't have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportLendScoreGetRequest"}}}}}},"/cra/check_report/network_insights/get":{"post":{"summary":"Retrieve network attributes for the user","tags":["plaid"],"security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["cra:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportNetworkInsightsGetResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm","report":{"report_id":"ee093cb0-e3f2-42d1-9dbc-8d8408964194","generated_time":"2022-01-31T22:47:53Z","network_attributes":{"plaid_conn_user_lifetime_lending_count":5,"plaid_conn_user_lifetime_personal_lending_flag":1,"plaid_conn_user_lifetime_cash_advance_primary_count":0},"items":[{"institution_id":"ins_0","institution_name":"Plaid Bank","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7"}]}}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportnetwork_insightsget"},"operationId":"craCheckReportNetworkInsightsGet","description":"This endpoint allows you to retrieve the Network Insights report for your user. You should call this endpoint after you've received a `CHECK_REPORT_READY` or a `USER_CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`. If the most recent consumer report for the user doesn't have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportNetworkInsightsGetRequest"}}}}}},"/cra/check_report/verification/get":{"post":{"summary":"Retrieve various home lending reports for a user","tags":["plaid"],"security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["cra:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportVerificationGetResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm","report":{"report_id":"028e8404-a013-4a45-ac9e-002482f9cafc","client_report_id":"client_report_id_1221","voa":{"generated_time":"2023-03-30T18:27:37Z","days_requested":90,"attributes":{"total_inflow_amount":{"amount":-345.12,"iso_currency_code":"USD","unofficial_currency_code":null},"total_outflow_amount":{"amount":235.12,"iso_currency_code":"USD","unofficial_currency_code":null}},"items":[{"accounts":[{"account_id":"eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v","balances":{"available":100,"current":110,"iso_currency_code":"USD","unofficial_currency_code":null,"historical_balances":[{"current":110,"date":"2023-03-29","iso_currency_code":"USD","unofficial_currency_code":null},{"current":125.55,"date":"2023-03-28","iso_currency_code":"USD","unofficial_currency_code":null},{"current":80.13,"date":"2023-03-27","iso_currency_code":"USD","unofficial_currency_code":null},{"current":246.11,"date":"2023-03-26","iso_currency_code":"USD","unofficial_currency_code":null},{"current":182.71,"date":"2023-03-25","iso_currency_code":"USD","unofficial_currency_code":null}],"average_balance_30_days":200,"average_balance_60_days":150,"nsf_overdraft_transactions_count":0},"consumer_disputes":[],"mask":"0000","name":"Plaid Checking","official_name":"Plaid Gold Standard 0% Interest Checking","type":"depository","subtype":"checking","days_available":90,"transactions_insights":{"all_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}],"end_date":"2024-07-31","start_date":"2024-07-01"},"owners":[{"addresses":[{"data":{"city":"Malakoff","country":"US","region":"NY","street":"2992 Cameron Road","postal_code":"14236"},"primary":true},{"data":{"city":"San Matias","country":"US","region":"CA","street":"2493 Leisure Lane","postal_code":"93405-2255"},"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":"+1 111-555-3333","primary":false,"type":"home"},{"data":"+1 111-555-4444","primary":false,"type":"work"},{"data":"+1 111-555-5555","primary":false,"type":"mobile"}]}],"ownership_type":null}],"institution_name":"First Platypus Bank","institution_id":"ins_109508","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","last_update_time":"2023-03-30T18:25:26Z"}]},"employment_refresh":{"generated_time":"2023-03-30T18:27:37Z","days_requested":60,"items":[{"accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","name":"Plaid Money Market","official_name":"Plaid Platinum Standard 1.85% Interest Money Market","type":"depository","subtype":"money market","transactions":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","original_description":"ACH Electronic CreditGUSTO PAY 123456","date":"2023-03-30","pending":false,"transaction_id":"gGQgjoeyqBF89PND6K14Sow1wddZBmtLomJ78"}]},{"account_id":"eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v","name":"Plaid Checking","official_name":"Plaid Gold Standard 0% Interest Checking","type":"depository","subtype":"checking","transactions":[{"account_id":"eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v","original_description":"United Airlines **** REFUND ****","date":"2023-03-29","pending":false,"transaction_id":"xG9jbv3eMoFWepzB7wQLT3LoLggX5Duy1Gbe5"}]}],"institution_name":"First Platypus Bank","institution_id":"ins_109508","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","last_update_time":"2023-03-30T18:25:26Z"}]}},"warnings":[]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportverificationget"},"operationId":"craCheckReportVerificationGet","description":"This endpoint allows you to retrieve home lending reports for a user. To obtain a VoA or Employment Refresh report, you need to make sure that `cra_base_report` is included in the `products` parameter when calling `/link/token/create` or `/cra/check_report/create`.\n\nYou should call this endpoint after you've received a `CHECK_REPORT_READY` or a `USER_CHECK_REPORT_READY` webhook, either after the Link session for the user or after calling `/cra/check_report/create`.\n\nIf the most recent consumer report for the user doesn't have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling `/cra/check_report/create`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportVerificationGetRequest"}}}}}},"/cra/check_report/verification/pdf/get":{"post":{"summary":"Retrieve a Consumer Report as a Verification PDF","tags":["plaid"],"security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["cra:read"]}],"responses":{"200":{"description":"OK","content":{"application/pdf":{"schema":{"$ref":"#/components/schemas/CraCheckReportVerificationPdfGetResponse"},"examples":{"example-1":{"value":"JVBERi0xLjQKJeLjz9MKMyAwIG9iaiA8PC9MZW5ndGggNDY2MS9GaWx0ZXIvRmxhdGVEZWNvZGU+PnN0cmVhbQp4nF2SyY4cMRBF94VdzI0O..."}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/check-legacy/#cracheck_reportverificationpdfget"},"operationId":"craCheckReportVerificationPdfGet","description":"The `/cra/check_report/verification/pdf/get` endpoint retrieves the most recent Consumer Report in PDF format, specifically formatted for Home Lending verification use cases. Before calling this endpoint, ensure that you've created a VOA report through Link or the `/cra/check_report/create` endpoint, and have received a `CHECK_REPORT_READY` or a `USER_CHECK_REPORT_READY` webhook.\n\nThe response to `/cra/check_report/verification/pdf/get` is the PDF binary data. The `request_id`  is returned in the `Plaid-Request-ID` header.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCheckReportVerificationPdfGetRequest"}}}}}},"/cra/loans/applications/register":{"post":{"tags":["plaid"],"summary":"Register loan applications and decisions","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraLoansApplicationsRegisterResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craLoansApplicationsRegister","externalDocs":{"url":"/none/"},"description":"`/cra/loans/applications/register` registers loan applications and decisions.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraLoansApplicationsRegisterRequest"}}}}}},"/cra/loans/register":{"post":{"tags":["plaid"],"summary":"Register a list of loans to their applicants","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraLoansRegisterResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craLoansRegister","externalDocs":{"url":"/none/"},"description":"`/cra/loans/register` registers a list of loans to their applicants.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CRALoansRegisterRequest"}}}}}},"/cra/loans/update":{"post":{"tags":["plaid"],"summary":"Update loan data","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraLoansUpdateResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craLoansUpdate","externalDocs":{"url":"/none/"},"description":"`/cra/loans/update` updates loan information such as the status and payment history.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraLoansUpdateRequest"}}}}}},"/cra/loans/unregister":{"post":{"tags":["plaid"],"summary":"Unregister a list of loans","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraLoanUnregisterResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craLoansUnregister","externalDocs":{"url":"/none/"},"description":"`/cra/loans/unregister` indicates the loans have reached a final status and no further updates are expected.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraLoansUnregisterRequest"}}}}}},"/cra/servicing/subscription/create":{"post":{"summary":"Create a CRA servicing subscription","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionCreateResponse"},"examples":{"example-1":{"value":{"subscription_id":"cra-sub-production-8f2b1c0a-3d4e-5f60-7a8b-9c0d1e2f3a4b","request_id":"eYupqX1mZkEuQRx"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craServicingSubscriptionCreate","externalDocs":{"url":"/api/products/check-legacy/#craservicingsubscriptioncreate"},"description":"`/cra/servicing/subscription/create` subscribes a user to CRA report-update webhooks for a given scope.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionCreateRequest"}}}}}},"/cra/servicing/subscription/delete":{"post":{"summary":"Delete a CRA servicing subscription","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionDeleteResponse"},"examples":{"example-1":{"value":{"subscription_id":"cra-sub-production-8f2b1c0a-3d4e-5f60-7a8b-9c0d1e2f3a4b","request_id":"eYupqX1mZkEuQRx"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craServicingSubscriptionDelete","externalDocs":{"url":"/api/products/check-legacy/#craservicingsubscriptiondelete"},"description":"`/cra/servicing/subscription/delete` removes the CRA servicing subscription identified by `subscription_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionDeleteRequest"}}}}}},"/cra/servicing/subscription/get":{"post":{"summary":"Get a CRA servicing subscription","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionGetResponse"},"examples":{"example-1":{"value":{"subscription":{"subscription_id":"cra-sub-production-8f2b1c0a-3d4e-5f60-7a8b-9c0d1e2f3a4b","user_id":"usr_123456abcdef","scope":"CLIENT_USER","cadence":"DAILY","webhook":"https://example.com/webhook","products":[{"product":"cra_base_report","version":"V1"},{"product":"cra_income_insights","version":"V1"}]},"request_id":"eYupqX1mZkEuQRx"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craServicingSubscriptionGet","externalDocs":{"url":"/api/products/check-legacy/#craservicingsubscriptionget"},"description":"`/cra/servicing/subscription/get` returns the CRA servicing subscription identified by `subscription_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionGetRequest"}}}}}},"/cra/servicing/subscription/list":{"post":{"summary":"List a user's CRA servicing subscriptions","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionListResponse"},"examples":{"example-1":{"value":{"subscriptions":[{"subscription_id":"cra-sub-production-8f2b1c0a-3d4e-5f60-7a8b-9c0d1e2f3a4b","user_id":"usr_123456abcdef","scope":"CLIENT_USER","cadence":"DAILY","webhook":"https://example.com/webhook","products":[{"product":"cra_base_report","version":"V1"}]}],"request_id":"eYupqX1mZkEuQRx"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craServicingSubscriptionList","externalDocs":{"url":"/api/products/check-legacy/#craservicingsubscriptionlist"},"description":"`/cra/servicing/subscription/list` returns all CRA servicing subscriptions for a user, across scopes.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionListRequest"}}}}}},"/cra/servicing/subscription/update":{"post":{"summary":"Update a CRA servicing subscription","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionUpdateResponse"},"examples":{"example-1":{"value":{"subscription_id":"cra-sub-production-8f2b1c0a-3d4e-5f60-7a8b-9c0d1e2f3a4b","request_id":"eYupqX1mZkEuQRx"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craServicingSubscriptionUpdate","externalDocs":{"url":"/api/products/check-legacy/#craservicingsubscriptionupdate"},"description":"`/cra/servicing/subscription/update` modifies an existing CRA servicing subscription. Fields left blank are unchanged; provided fields overwrite the current value. Use `reset_fields` to clear fields.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraServicingSubscriptionUpdateRequest"}}}}}},"/cra/report/create":{"post":{"summary":"Generate an updated Consumer Report for your user","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraReportCreateResponse"},"examples":{"example-1":{"value":{"request_id":"eYupqX1mZkEuQRx","report_id":"cra-report-production-3c9d2a71-5e4b-4f0a-8b6d-7a1e9f2c4b58"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craReportCreate","externalDocs":{"url":"/api/products/check/#crareportcreate"},"description":"`/cra/report/create` generates a Consumer Report for a user. With `scope` set to `PLAID_NETWORK`, the report is generated from the Plaid Network view of the user's profile. With `CLIENT_USER`, the report is generated from only the Items the user linked to your client.\n\nEach requested product is generated asynchronously. Use the returned `report_id` to retrieve the report once its products are ready.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraReportCreateRequest"}}}}}},"/cra/report/get":{"post":{"summary":"Retrieve a Consumer Report for your user","tags":["plaid"],"security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["cra:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraReportGetResponse"},"examples":{"example-1":{"value":{"request_id":"eYupqX1mZkEuQRx","user_id":"usr_abc123","client_user_id":"your-db-id-3b24110","warnings":[],"report":{"report_id":"cra-report-production-6f8b1e0c-4d2a-4c7e-9a3b-2f1d8e5a7c90","client_report_id":"908en3djkk342","retrieved_time":"2024-01-15T10:30:00Z","scope":"CLIENT_USER","decision_stage":"DECISIONING","consumer_report_permissible_purpose":"EXTENSION_OF_CREDIT","products":[{"product":"cra_lend_score","version":"V2","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":3,"account_count":5,"institution_ids":["ins_56"],"primary_account_count":1,"depository_account_type_count":3,"credit_account_type_count":2,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-15","most_recent_transaction_date":"2024-01-14"},"scores":[{"variant":"GENERALIST","score":1472,"reason_codes":["PCS0220","PCS0216"],"error_code":null}],"errors":[]},{"product":"cra_cashflow_insights","version":"V2","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":3,"account_count":5,"institution_ids":["ins_56"],"primary_account_count":1,"depository_account_type_count":3,"credit_account_type_count":2,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-15","most_recent_transaction_date":"2024-01-14"},"attributes":{"accounts_count":5,"depository_accounts_count":3,"credit_accounts_count":2,"depository_latest_balance_user_sum_1d":4823.56,"net_income_amt_sum_90d":13418.75,"income_sources_count_90d":1,"income_is_salaried_90d":1,"payment_behavior_nsf_late_fees_count_30d":0,"cash_reliance_atm_withdrawal_amt_cv_90d":0.42},"errors":[]},{"product":"cra_income_insights","version":"V2","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":1,"account_count":1,"institution_ids":["ins_56"],"primary_account_count":1,"depository_account_type_count":1,"credit_account_type_count":0,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-15","most_recent_transaction_date":"2024-01-14"},"attributes":{"income_streams":[],"user_summary":null},"items":[{"institution_id":"ins_56","institution_name":"Chase","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","last_updated_time":"2024-01-15T10:28:00Z","accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","name":"Plaid Checking Account","official_name":"Plaid Checking Account","mask":"8888","type":"depository","subtype":"checking"}]}],"errors":[]},{"product":"cra_network_insights","version":"V2","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":3,"account_count":5,"institution_ids":["ins_56"],"primary_account_count":1,"depository_account_type_count":3,"credit_account_type_count":2,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-15","most_recent_transaction_date":"2024-01-14"},"attributes":{"plaid_conn_user_days_since_first_conn_all":412,"plaid_conn_user_lifetime_lending_count":3,"plaid_conn_user_lifetime_personal_lending_flag":1,"plaid_conn_user_active_lending_count_90d":1,"plaid_conn_user_lifetime_cash_advance_primary_count":0,"plaid_conn_user_active_ewa_primary_count_90d":0},"errors":[]}]}}},"example-2":{"value":{"request_id":"Hd9xpT3cWb7qLmN","user_id":"usr_abc123","client_user_id":"your-db-id-3b24110","warnings":[],"report":{"report_id":"cra-report-production-2b7c4e91-8f3a-4d6e-b1c5-7e9a0d2f4c68","client_report_id":"908en3djkk342","retrieved_time":"2024-01-15T10:30:00Z","scope":"CLIENT_USER","decision_stage":"DECISIONING","consumer_report_permissible_purpose":"EXTENSION_OF_CREDIT","products":[{"product":"cra_base_report","version":"V1","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":1,"account_count":1,"institution_ids":["ins_109508"],"days_requested":365,"primary_account_count":1,"depository_account_type_count":1,"credit_account_type_count":0,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-16","most_recent_transaction_date":"2024-01-12"},"items":[{"item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","institution_id":"ins_109508","institution_name":"First Platypus Bank","date_last_updated":"2024-01-15T10:29:41Z","accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","name":"Plaid Checking","official_name":"Plaid Gold Standard 0% Interest Checking","mask":"0000","type":"depository","subtype":"checking","days_available":361,"metadata":{"start_date":"2023-01-16","end_date":"2024-01-12"},"balances":{"available":1203.42,"current":1274.93,"limit":null,"iso_currency_code":"USD","unofficial_currency_code":null,"average_balance":1180.27,"most_recent_thirty_day_average_balance":1251.06,"average_monthly_balances":[{"start_date":"2023-12-01","end_date":"2023-12-31","average_balance":{"amount":1198.5,"iso_currency_code":"USD","unofficial_currency_code":null}}]},"owners":[{"names":["Alberta Bobbeth Charleson"],"phone_numbers":[{"data":"+1 111-555-3333","primary":true,"type":"home"}],"emails":[{"data":"accountholder0@example.com","primary":true,"type":"primary"}],"addresses":[{"data":{"street":"2992 Cameron Road","city":"Malakoff","region":"NY","postal_code":"14236","country":"US"},"primary":true}]}],"ownership_type":"individual","consumer_disputes":[],"transactions":[{"transaction_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-1500,"iso_currency_code":"USD","unofficial_currency_code":null,"original_description":"PLATYPUS PAYROLL PPD ID 1234567890","merchant_name":null,"credit_category":{"primary":"INCOME","detailed":"INCOME_SALARY"},"check_number":null,"date":"2024-01-12","date_transacted":"2024-01-12","pending":false,"account_owner":null,"location":{"address":null,"city":null,"region":null,"postal_code":null,"country":null,"lat":null,"lon":null,"store_number":null}},{"transaction_id":"4zBRq1Qem4uAPnoyKjJNTRQpQddM4ztlo1PLD","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":72.1,"iso_currency_code":"USD","unofficial_currency_code":null,"original_description":"PLATYPUS FRESH MARKET 0233 MALAKOFF NY","merchant_name":"Platypus Fresh Market","credit_category":{"primary":"FOOD_RETAIL","detailed":"FOOD_RETAIL_GROCERIES"},"check_number":null,"date":"2024-01-10","date_transacted":"2024-01-09","pending":false,"account_owner":null,"location":{"address":null,"city":"Malakoff","region":"NY","postal_code":"14236","country":"US","lat":null,"lon":null,"store_number":"0233"}}],"attributes":{"is_primary_account":true,"primary_account_score":0.93},"identity_match":{"legal_name":{"score":90,"is_first_name_or_last_name_match":true,"is_nickname_match":false,"is_business_name_detected":false},"phone_number":{"score":100},"email_address":{"score":100},"address":{"score":100,"is_postal_code_match":true}}}]}],"errors":[]}]}}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craReportGet","externalDocs":{"url":"/api/products/check/#crareportget"},"description":"`/cra/report/get` retrieves a Consumer Report for a user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraReportGetRequest"}}}}}},"/cra/credit_profile/report/get":{"post":{"summary":"Retrieve the credit profile report for a user","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCreditProfileReportGetResponse"},"examples":{"example-1":{"value":{"request_id":"eYupqX1mZkEuQRx","user_id":"usr_123456abcdef","warnings":[],"report":{"date_retrieved":"2024-01-15T10:30:00Z","inquiry_type":"SOFT_INQUIRY","client_report_id":"loan-app-12345","lend_scores":[],"cashflow_insights_attributes":{},"network_insights_attributes":{},"metadata":null}}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"craCreditProfileReportGet","externalDocs":{"url":"/none/"},"description":"`/cra/credit_profile/report/get` retrieves a credit profile report for a user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CraCreditProfileReportGetRequest"}}}}}},"/consumer_report/pdf/get":{"post":{"tags":["plaid"],"summary":"Retrieve PDF Reports","responses":{"200":{"description":"OK","content":{"application/pdf":{"schema":{"$ref":"#/components/schemas/ConsumerReportPDFGetResponse"}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"consumerReportPdfGet","externalDocs":{"url":"/none/"},"description":"Retrieves all existing CRB Bank Income and Base reports for the consumer in PDF format.\n\nResponse is PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerReportPDFGetRequest"}}},"description":""}}},"/oauth/token":{"post":{"tags":["plaid"],"summary":"Create or refresh an OAuth access token","externalDocs":{"url":"/api/oauth/#oauthtoken"},"operationId":"oauthToken","description":"`/oauth/token` issues an access token and refresh token depending on the `grant_type` provided. This endpoint supports `Content-Type: application/x-www-form-urlencoded` as well as JSON. The fields for the form are equivalent to the fields for JSON and conform to the OAuth 2.0 specification.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenResponse"},"examples":{"example-1":{"value":{"access_token":"pda-RDdg0TUCB0FB25_UPIlnhA==","refresh_token":"pdr--viXurkDg88d5zf8m6Wl0g==","expires_in":900,"token_type":"Bearer","request_id":"m8MDqcS6F3lzqvP"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthErrorResponse"}}}}}}},"/oauth/introspect":{"post":{"tags":["plaid"],"summary":"Get metadata about an OAuth token","externalDocs":{"url":"/api/oauth/#oauthintrospect"},"operationId":"oauthIntrospect","description":"`/oauth/introspect` returns metadata about an access token or refresh token.\n\nNote: This endpoint supports `Content-Type: application/x-www-form-urlencoded` as well as JSON. The fields for the form are equivalent to the fields for JSON and conform to the OAuth 2.0 specification.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthIntrospectRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthIntrospectResponse"},"examples":{"example-1":{"value":{"active":true,"scope":"user:read user:write exchange","client_id":"68028ce48d2b0dec68747f6c","exp":1670000000,"iat":1670000000,"sub":"68028ce48d2b0dec68747f6c","aud":"https://production.plaid.com","iss":"https://production.plaid.com","token_type":"Bearer","request_id":"m8MDqcS6F3lzqvP"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthErrorResponse"}}}}}}},"/oauth/revoke":{"post":{"tags":["plaid"],"summary":"Revoke an OAuth token","externalDocs":{"url":"/api/oauth/#oauthrevoke"},"operationId":"oauthRevoke","description":"`/oauth/revoke` revokes an access or refresh token, preventing any further use. If a refresh token is revoked, all access and refresh tokens derived from it are also revoked, including exchanged tokens.\n\nNote: This endpoint supports `Content-Type: application/x-www-form-urlencoded` as well as JSON. The fields for the form are equivalent to the fields for JSON and conform to the OAuth 2.0 specification.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthRevokeRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthRevokeResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDqcS6F3lzqvP"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthErrorResponse"}}}}}}},"/statements/list":{"post":{"tags":["plaid"],"summary":"Retrieve a list of all statements associated with an Item.","externalDocs":{"url":"/api/products/statements#statementslist"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatementsListResponse"},"examples":{"example-1":{"value":{"item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","institution_id":"ins_56","institution_name":"Chase","accounts":[{"account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","account_mask":"0000","account_name":"Plaid Saving","account_official_name":"Plaid Silver Standard 0.1% Interest Saving","account_subtype":"savings","account_type":"depository","statements":[{"statement_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","month":5,"year":2023,"date_posted":"2023-05-01"}]}],"request_id":"eYupqX1mZkEuQRx"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"statementsList","description":"The `/statements/list` endpoint retrieves a list of all statements associated with an Item.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatementsListRequest"}}},"description":""}}},"/statements/download":{"post":{"tags":["plaid"],"summary":"Retrieve a single statement.","externalDocs":{"url":"/api/products/statements#statementsdownload"},"responses":{"200":{"description":"OK","content":{"application/pdf":{"schema":{"$ref":"#/components/schemas/StatementsDownloadResponse"}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"statementsDownload","description":"The `/statements/download` endpoint retrieves a single statement PDF in binary format.  The response will contain a `Plaid-Content-Hash` header containing a SHA 256 checksum of the statement. This can be used to verify that the file being sent by Plaid is the same file that was downloaded to your system.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatementsDownloadRequest"}}},"description":""}}},"/statements/refresh":{"post":{"tags":["plaid"],"externalDocs":{"url":"/api/products/statements#statementsrefresh"},"summary":"Refresh statements data.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatementsRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"eYupqX1mZkEuQRx"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"statementsRefresh","description":"`/statements/refresh` initiates an on-demand extraction to fetch the statements for the provided dates.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatementsRefreshRequest"}}},"description":""}}},"/consent/events/get":{"post":{"tags":["plaid"],"summary":"List a historical log of item consent events","externalDocs":{"url":"/api/consent/#consenteventsget"},"operationId":"consentEventsGet","description":"List a historical log of Item consent events. Consent logs are only available for events occurring on or after November 7, 2024. Extremely recent events (occurring within the past 12 hours) may not be available via this endpoint. Up to three years of consent logs will be available via the endpoint.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentEventsGetResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV","consent_events":[{"item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","event_type":"CONSENT_GRANTED","event_code":"USER_AGREEMENT","institution_id":"ins_123456","institution_name":"Platypus bank","initiator":"END_USER","created_at":"2019-02-15T15:51:39Z"},{"item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","event_type":"CONSENT_GRANTED","event_code":"USE_CASES","institution_id":"ins_123456","institution_name":"Platypus bank","initiator":"END_USER","created_at":"2019-02-15T15:52:39Z","consented_use_cases":["Send and receive money","Track and manage your finances"]},{"item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","event_type":"CONSENT_GRANTED","event_code":"DATA_SCOPES","institution_id":"ins_123456","institution_name":"Platypus bank","initiator":"END_USER","created_at":"2019-02-15T15:52:39Z","consented_data_scopes":["account and balance info","contact details","account and routing number"]},{"item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","event_type":"CONSENT_GRANTED","event_code":"ACCOUNT_SCOPES","institution_id":"ins_123456","institution_name":"Platypus bank","initiator":"END_USER","created_at":"2019-02-15T15:53:39Z","consented_accounts":[{"account_id":"blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo","mask":"0000","name":"Plaid Checking","official_name":"Plaid Gold Standard 0% Interest Checking","type":"depository","subtype":"checking"}]},{"item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","event_type":"CONSENT_REVOKED","event_code":"REVOCATION","institution_id":"ins_123456","institution_name":"Platypus bank","initiator":"END_USER","created_at":"2020-02-20T15:53:39Z"}]}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentEventsGetRequest"}}}}}},"/item/activity/list":{"post":{"tags":["plaid"],"summary":"List a historical log of user consent events","operationId":"itemActivityList","description":"List a historical log of user consent events","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemActivityListResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV","activities":[],"last_data_access_times":[]}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemActivityListRequest"}}}}}},"/item/application/list":{"post":{"tags":["plaid"],"summary":"List a user's connected applications","operationId":"itemApplicationList","description":"List a user's connected applications","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemApplicationListResponse"},"examples":{"example-1":{"value":{"applications":[{"application_id":"c048eab9-a70a-42fe-94e9-35980d0a965c","name":"Big FinTech App","display_name":"Big FinTech","logo_url":"https://plaid.com/images/1","application_url":"https://bigfintechapp.com","reason_for_access":"to display your balances","created_at":"2019-07-16T19:20:00Z","scopes":{"product_access":{"account_balance_info":true,"account_routing_number":true,"transactions":false},"accounts":[{"unique_id":"4a94ed625e7c","authorized":true},{"unique_id":"6068084d3aab","authorized":false}],"new_accounts":true}}],"disconnected_applications":[{"application_id":"d348deb9-a70a-67fe-52b9-35980d0a965c","name":"Another FinTech App","display_name":"Another FinTech","logo_url":"https://plaid.com/images/2","application_url":"https://anotherfintechapp.com","reason_for_access":"to display your balances"}],"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemApplicationListRequest"}}}}}},"/item/application/unlink":{"post":{"tags":["plaid"],"summary":"Unlink a user's connected application","externalDocs":{"url":"none"},"operationId":"itemApplicationUnlink","description":"Unlink a user's connected application. On an unlink request, Plaid will immediately revoke the Application's access to the User's data.  The User will have to redo the OAuth authentication process in order to restore functionality.\n\nThis endpoint only removes ongoing data access permissions, therefore the User will need to reach out to the Application itself in order to disable and delete their account and delete any data that the Application already received (if the Application does not do so by default).\n\nThis endpoint should be called in real time as the User is unlinking an Application, and should not be batched in order to ensure that the change is reflected as soon as possible.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemApplicationUnlinkResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemApplicationUnlinkRequest"}}}}}},"/item/application/scopes/update":{"post":{"tags":["plaid"],"summary":"Update the scopes of access for a particular application","operationId":"itemApplicationScopesUpdate","description":"Enable consumers to update product access on selected accounts for an application.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemApplicationScopesUpdateResponse"}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemApplicationScopesUpdateRequest"}}}}}},"/application/get":{"post":{"tags":["plaid"],"summary":"Retrieve information about a Plaid application","operationId":"applicationGet","description":"Allows financial institutions to retrieve information about Plaid clients for the purpose of building control-tower experiences","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationGetResponse"}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationGetRequest"}}},"description":""}}},"/item/get":{"post":{"tags":["plaid"],"summary":"Retrieve an Item","externalDocs":{"url":"/api/items/#itemget"},"operationId":"itemGet","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["item:read"]}],"description":"Returns information about the status of an Item.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemGetResponse"},"examples":{"example-1":{"value":{"item":{"created_at":"2019-01-22T04:32:00Z","available_products":["balance","auth"],"billed_products":["identity","transactions"],"products":["identity","transactions"],"error":null,"institution_id":"ins_109508","institution_name":"First Platypus Bank","item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","update_type":"background","webhook":"https://plaid.com/example/hook","auth_method":null,"consented_products":["identity","transactions"],"consented_data_scopes":["account_balance_info","contact_info","transactions"],"consented_use_cases":["Verify your account","Track and manage your finances"],"consent_expiration_time":"2024-03-16T15:53:00Z"},"status":{"transactions":{"last_successful_update":"2019-02-15T15:52:39Z","last_failed_update":"2019-01-22T04:32:00Z"},"last_webhook":{"sent_at":"2019-02-15T15:53:00Z","code_sent":"DEFAULT_UPDATE"}},"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemGetRequest"}}},"description":""}}},"/user_account/session/get":{"post":{"tags":["plaid"],"summary":"Retrieve User Account","externalDocs":{"url":"/api/products/layer/#user_accountsessionget"},"operationId":"userAccountSessionGet","description":"This endpoint returns user permissioned account data, including identity and Item access tokens, for use with [Plaid Layer](https://plaid.com/docs/layer). Note that end users are permitted to edit the prefilled identity data in the Link flow before sharing it with you; you should treat any identity data returned by this endpoint as user-submitted, unverified data. For a verification layer, you can add [Identity Verification](https://plaid.com/docs/identity-verification/) to your flow, or check the submitted identity data against bank account data from linked accounts using [Identity Match](https://plaid.com/docs/identity/#identity-match).","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccountSessionGetResponse"},"examples":{"example-1":{"value":{"identity":{"name":{"first_name":"Leslie","last_name":"Knope"},"address":{"street":"123 Main St.","street2":"","city":"Pawnee","region":"IN","postal_code":"41006","country":"US"},"email":"leslie@knope.com","phone_number":"+14157452130","date_of_birth":"1975-01-18","ssn":"987654321","ssn_last_4":"4321"},"identity_edit_history":{"name":{"edits_current":0,"edits_1d":0,"edits_30d":1,"edits_365d":1,"edits_all_time":1},"address":{"edits_current":1,"edits_1d":1,"edits_30d":2,"edits_365d":2,"edits_all_time":2},"email":{"edits_current":0,"edits_1d":0,"edits_30d":0,"edits_365d":0,"edits_all_time":0},"date_of_birth":{"edits_current":0,"edits_1d":0,"edits_30d":0,"edits_365d":0,"edits_all_time":0},"official_document":{"ssn":{"edits_current":0,"edits_1d":0,"edits_30d":0,"edits_365d":0,"edits_all_time":0}}},"items":[{"item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","access_token":"access-sandbox-435beced-94e8-4df3-a181-1dde1cfa19f0"}],"idv_session_status":"success","link_session_id":"00010203-0405-0607-0809-0a0b0c0d0e0f","request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccountSessionGetRequest"}}},"description":""}}},"/user_account/session/event/send":{"post":{"tags":["plaid"],"summary":"Send User Account Session Event","externalDocs":{"url":"/api/products/layer/#user_accountsessioneventsend"},"operationId":"userAccountSessionEventSend","description":"This endpoint allows sending client-specific events related to Layer sessions for analytics and tracking purposes.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccountSessionEventSendResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccountSessionEventSendRequest"}}},"description":""}}},"/profile/network_status/get":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Check a user's Plaid Network status","externalDocs":{"url":"/api/profile/#networkstatusget"},"operationId":"profileNetworkStatusGet","description":"The `/profile/network_status/get` endpoint can be used to check whether Plaid has a matching profile for the user.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileNetworkStatusGetResponse"},"examples":{"example-1":{"value":{"network_status":"RETURNING_USER","request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileNetworkStatusGetRequest"}}},"description":""}}},"/network/status/get":{"post":{"tags":["plaid"],"summary":"Check a user's Plaid Network status","externalDocs":{"url":"/api/network/#networkstatusget"},"operationId":"networkStatusGet","description":"The `/network/status/get` endpoint can be used to check whether Plaid has a matching profile for the user.\nThis is useful for determining if a user is eligible for a streamlined experience, such as Layer. To access this endpoint, contact your Plaid account manager.\n\nNote: it is strongly recommended to check for Layer eligibility in the frontend. `/network/status/get` should only be used for checking Layer eligibility if a frontend check is not possible for your use case.\nFor instructions on performing a frontend eligibility check, see the [Layer documentation](https://plaid.com/docs/layer/#integration-overview).","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkStatusGetResponse"},"examples":{"example-1":{"value":{"network_status":"RETURNING_USER","request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkStatusGetRequest"}}},"description":""}}},"/auth/get":{"post":{"tags":["plaid"],"summary":"Retrieve auth data","externalDocs":{"url":"/api/products/auth/#authget"},"operationId":"authGet","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["auth:read"]}],"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, savings, and cash management accounts, along with high-level account data and balances when available.\n\nVersioning 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).","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","apy":0,"balances":{"available":100,"current":110,"limit":null,"iso_currency_code":"USD","unofficial_currency_code":null},"mask":"9606","name":"Plaid Checking","official_name":"Plaid Gold Checking","subtype":"checking","type":"depository"}],"numbers":{"ach":[{"account":"9900009606","account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","routing":"011401533","wire_routing":"021000021","is_tokenized_account_number":false}],"eft":[{"account":"111122223333","account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","institution":"021","branch":"01140"}],"international":[{"account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","bic":"NWBKGB21","iban":"GB29NWBK60161331926819"}],"bacs":[{"account":"31926819","account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","sort_code":"601613"}]},"item":{"available_products":["balance","identity","payment_initiation","transactions"],"billed_products":["assets","auth"],"consent_expiration_time":null,"error":null,"institution_id":"ins_117650","institution_name":"Royal Bank of Plaid","item_id":"DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Default error"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthGetRequest"},"examples":{}}},"description":""}}},"/auth/verify":{"post":{"tags":["plaid"],"summary":"Verify auth data","externalDocs":{"url":"/api/products/auth/#authverify"},"operationId":"authVerify","description":"The `/auth/verify` endpoint verifies bank account and routing numbers and (optionally) account owner names against Plaid's database via [Database Auth](https://plaid.com/docs/auth/coverage/database-auth/). It can be used to verify account numbers that were not collected via the Plaid Link flow.\n\nThis endpoint is currently in Early Availability; contact sales or your Plaid account manager to request access.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthVerifyResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV","item_id":"DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6","verification_status":"database_insights_pass","verification_insights":{"name_match_score":85,"network_status":{"has_numbers_match":true,"is_numbers_match_verified":true},"previous_returns":{"has_previous_administrative_return":false},"account_number_format":"valid"}}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Default error"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthVerifyRequest"},"examples":{}}},"description":""}}},"/transactions/get":{"post":{"tags":["plaid"],"summary":"Get transaction data","externalDocs":{"url":"/api/products/transactions/#transactionsget"},"operationId":"transactionsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":110.94,"current":110.94,"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"}],"transactions":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":28.34,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"DoorDash","type":"marketplace","logo_url":"https://plaid-counterparty-logos.plaid.com/doordash_1.png","website":"doordash.com","entity_id":"YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm","confidence_level":"HIGH"},{"name":"Burger King","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","confidence_level":"VERY_HIGH"}],"date":"2023-09-28","datetime":"2023-09-28T15:10:09Z","authorized_date":"2023-09-27","authorized_datetime":"2023-09-27T08:01:58Z","location":{"address":null,"city":null,"region":null,"postal_code":null,"country":null,"lat":null,"lon":null,"store_number":null},"name":"Dd Doordash Burgerkin","merchant_name":"Burger King","merchant_entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","merchant_category_code":"5814","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"online","pending":true,"pending_transaction_id":null,"personal_finance_category":{"primary":"FOOD_AND_DRINK","detailed":"FOOD_AND_DRINK_FAST_FOOD","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png","transaction_id":"yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0","transaction_code":null,"transaction_type":"digital"},{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":72.1,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"Walmart","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","confidence_level":"VERY_HIGH"}],"date":"2023-09-24","datetime":"2023-09-24T11:01:01Z","authorized_date":"2023-09-22","authorized_datetime":"2023-09-22T10:34:50Z","location":{"address":"13425 Community Rd","city":"Poway","region":"CA","postal_code":"92064","country":"US","lat":32.959068,"lon":-117.037666,"store_number":"1700"},"name":"PURCHASE WM SUPERCENTER #1700","merchant_name":"Walmart","merchant_entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","merchant_category_code":"5411","running_balance":110.94,"logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"in store","pending":false,"pending_transaction_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc","personal_finance_category":{"primary":"GENERAL_MERCHANDISE","detailed":"GENERAL_MERCHANDISE_SUPERSTORES","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png","transaction_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","transaction_code":null,"transaction_type":"place"}],"item":{"available_products":["balance","identity","investments"],"billed_products":["assets","auth","liabilities","transactions"],"consent_expiration_time":null,"error":null,"institution_id":"ins_56","institution_name":"Chase","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"total_transactions":2,"request_id":"45QSn"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"Note: All new implementations are encouraged to use `/transactions/sync` rather than `/transactions/get`. `/transactions/sync` provides the same functionality as `/transactions/get` and improves developer ease-of-use for handling transactions updates.\nThe `/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and loan-type accounts (coverage may be limited). For transaction history from investment 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.\nTransactions 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).\nDue 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.\nData 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. To find out when the Item was last updated, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.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.\n\n\nNote 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsGetRequest"},"examples":{}}}}}},"/transactions/refresh":{"post":{"tags":["plaid"],"summary":"Refresh transaction data","externalDocs":{"url":"/api/products/transactions/#transactionsrefresh"},"operationId":"transactionsRefresh","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"1vwmF5TBQwiqfwP"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"`/transactions/refresh` is an optional endpoint that initiates an on-demand extraction to fetch the newest transactions for an Item. The on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled Item. The Item must already have Transactions added as a product in order to call `/transactions/refresh`.\n\nIf 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`.\n\nNote that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.\n\nAs this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.\n\n`/transactions/refresh` is offered as an optional add-on to Transactions and has a separate [fee model](https://plaid.com/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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRefreshRequest"}}}}}},"/sandbox/transactions/create":{"post":{"tags":["plaid"],"summary":"Create sandbox transactions","externalDocs":{"url":"/api/sandbox/#sandboxtransactionscreate"},"operationId":"sandboxTransactionsCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransactionsCreateResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV"}}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"},"examples":{"too_many_transactions":{"value":{"error_type":"INVALID_REQUEST","error_code":"INVALID_FIELD","error_message":"Too many transactions. Maximum of 10 transactions allowed.","display_message":null,"status":400,"request_id":"m8MDnv9okwxFNBV"}},"invalid_dates":{"value":{"error_type":"INVALID_REQUEST","error_code":"INVALID_FIELD","error_message":"date_posted must be within the last 730 days","display_message":null,"status":400,"request_id":"m8MDnv9okwxFNBV"}},"invalid_account_id":{"value":{"error_type":"INVALID_INPUT","error_code":"INVALID_ACCOUNT_ID","error_message":"could not find matching account. Verify that you are using a valid account_id","display_message":null,"status":400,"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"Use the `/sandbox/transactions/create` endpoint to create new transactions for an existing Item. This endpoint can be used to add up to 10 transactions to any Item at a time.\n\nThis endpoint can be used with any Item created in the Sandbox environment. Added transactions persist across subsequent calls to `/transactions/get` and `/transactions/sync`.\n\nEach transaction is added to the account named by its `account_id`. When `account_id` is omitted, the transaction is added to the Item's checking account, or, for a custom Sandbox user, to the first depository account listed in its `override_accounts`, or its first account if it has no depository account.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransactionsCreateRequest"}}}}}},"/cashflow_report/refresh":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Refresh transaction data in `cashflow_report`","externalDocs":{"url":"/api/products/transactions/#cashflowReportRefresh"},"operationId":"cashflowReportRefresh","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashflowReportRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"1vwmF5TBQwiqfwP"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"`/cashflow_report/refresh` is an endpoint that initiates an on-demand extraction to fetch the newest transactions for an Item (given an `item_id`). The Item must already have Cashflow Report added as a product in order to call `/cashflow_report/refresh`.\n\nAfter calling `/cashflow_report/refresh`, Plaid will fire a webhook `CASHFLOW_REPORT_READY` alerting clients that new transactions data can then be ingested via `/cashflow_report/get` or the webhook will contain an error code informing there was an error in refreshing transactions data.\n\nNote that the `/cashflow_report/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.\n\nAs this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but up to 30 seconds or more). If you encounter errors, you may find it necessary to adjust your timeout period for requests.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashflowReportRefreshRequest"}}}}}},"/cashflow_report/get":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Gets transaction data in `cashflow_report`","externalDocs":{"url":"/api/products/transactions/#cashflowReportGet"},"operationId":"cashflowReportGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashflowReportGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":110.94,"current":110.94,"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","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":"2025550123","primary":false,"type":"home"},{"data":"3125550123","primary":false,"type":"work"},{"data":"4155550123","primary":false,"type":"mobile"}]}]}],"transactions":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":28.34,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"DoorDash","type":"marketplace","logo_url":"https://plaid-counterparty-logos.plaid.com/doordash_1.png","website":"doordash.com","entity_id":"YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm","confidence_level":"HIGH"},{"name":"Burger King","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","confidence_level":"VERY_HIGH"}],"date":"2023-09-28","datetime":"2023-09-28T15:10:09Z","authorized_date":"2023-09-27","authorized_datetime":"2023-09-27T08:01:58Z","location":{"address":null,"city":null,"region":null,"postal_code":null,"country":null,"lat":null,"lon":null,"store_number":null},"name":"Dd Doordash Burgerkin","merchant_name":"Burger King","merchant_entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","merchant_category_code":"5814","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"online","pending":true,"pending_transaction_id":null,"personal_finance_category":{"primary":"FOOD_AND_DRINK","detailed":"FOOD_AND_DRINK_FAST_FOOD","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png","transaction_id":"yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0","transaction_code":null,"transaction_type":"digital"},{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":72.1,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"Walmart","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","confidence_level":"VERY_HIGH"}],"date":"2023-09-24","datetime":"2023-09-24T11:01:01Z","authorized_date":"2023-09-22","authorized_datetime":"2023-09-22T10:34:50Z","location":{"address":"13425 Community Rd","city":"Poway","region":"CA","postal_code":"92064","country":"US","lat":32.959068,"lon":-117.037666,"store_number":"1700"},"name":"PURCHASE WM SUPERCENTER #1700","merchant_name":"Walmart","merchant_entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","merchant_category_code":"5411","logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"in store","pending":false,"pending_transaction_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc","personal_finance_category":{"primary":"GENERAL_MERCHANDISE","detailed":"GENERAL_MERCHANDISE_SUPERSTORES","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png","transaction_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","transaction_code":null,"transaction_type":"place"}],"total_transactions":2,"item":{"available_products":["balance","identity","investments"],"billed_products":["assets","auth","liabilities","transactions"],"consent_expiration_time":null,"error":null,"institution_id":"ins_56","institution_name":"Chase","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"next_cursor":"eu4rIDi328130dKJEoqieej","has_more":true,"request_id":"45QSn","last_successful_update_time":"2025-07-02T00:00:00Z"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/cashflow_report/get` endpoint retrieves transactions data associated with an Item. Transactions data is standardized across financial institutions.\nTransactions 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 `/cashflow_report/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).\nDue to the potentially large number of transactions associated with an Item, results are paginated. Manipulate the `count` and `cursor` parameters in conjunction with the `has_more` response body field to fetch all available transactions.\nNote that data isn't likely to be immediately available to `/cashflow_report/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `cashflow_report`, or if it wasn't, upon the first call to `/cashflow_report/refresh`. To be alerted when transaction data is ready to be fetched, listen for the `CASHFLOW_REPORT_READY` webhook.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashflowReportGetRequest"},"examples":{}}}}}},"/cashflow_report/transactions/get":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Gets transaction data in `cashflow_report`","externalDocs":{"url":"/api/products/transactions/#cashflowReportTransactionsGet"},"operationId":"cashflowReportTransactionsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashflowReportTransactionsGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":110.94,"current":110.94,"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","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":"2025550123","primary":false,"type":"home"},{"data":"1112224444","primary":false,"type":"work"},{"data":"1112225555","primary":false,"type":"mobile"}]}]}],"transactions":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":28.34,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"DoorDash","type":"marketplace","logo_url":"https://plaid-counterparty-logos.plaid.com/doordash_1.png","website":"doordash.com","entity_id":"YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm","confidence_level":"HIGH"},{"name":"Burger King","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","confidence_level":"VERY_HIGH"}],"date":"2023-09-28","datetime":"2023-09-28T15:10:09Z","authorized_date":"2023-09-27","authorized_datetime":"2023-09-27T08:01:58Z","location":{"address":null,"city":null,"region":null,"postal_code":null,"country":null,"lat":null,"lon":null,"store_number":null},"name":"Dd Doordash Burgerkin","merchant_name":"Burger King","merchant_entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","merchant_category_code":"5814","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"online","pending":true,"pending_transaction_id":null,"personal_finance_category":{"primary":"FOOD_AND_DRINK","detailed":"FOOD_AND_DRINK_FAST_FOOD","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png","transaction_id":"yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0","transaction_code":null,"transaction_type":"digital"},{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":72.1,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"Walmart","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","confidence_level":"VERY_HIGH"}],"date":"2023-09-24","datetime":"2023-09-24T11:01:01Z","authorized_date":"2023-09-22","authorized_datetime":"2023-09-22T10:34:50Z","location":{"address":"13425 Community Rd","city":"Poway","region":"CA","postal_code":"92064","country":"US","lat":32.959068,"lon":-117.037666,"store_number":"1700"},"name":"PURCHASE WM SUPERCENTER #1700","merchant_name":"Walmart","merchant_entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","merchant_category_code":"5411","logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"in store","pending":false,"pending_transaction_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc","personal_finance_category":{"primary":"GENERAL_MERCHANDISE","detailed":"GENERAL_MERCHANDISE_SUPERSTORES","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png","transaction_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","transaction_code":null,"transaction_type":"place"}],"total_transactions":2,"item":{"available_products":["balance","identity","investments"],"billed_products":["assets","auth","liabilities","transactions"],"consent_expiration_time":null,"error":null,"institution_id":"ins_56","institution_name":"Chase","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"next_cursor":"eu4rIDi328130dKJEoqieej","has_more":true,"request_id":"45QSn"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/cashflow_report/transactions/get` endpoint retrieves transactions data associated with an Item. Transactions data is standardized across financial institutions.\nTransactions 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 `/cashflow_report/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).\nDue to the potentially large number of transactions associated with an Item, results are paginated. Manipulate the `count` and `cursor` parameters in conjunction with the `has_more` response body field to fetch all available transactions.\nNote that data isn't likely to be immediately available to `/cashflow_report/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `cashflow_report`, or if it wasn't, upon the first call to `/cashflow_report/refresh`. To be alerted when transaction data is ready to be fetched, listen for the `CASHFLOW_REPORT_READY` webhook.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashflowReportTransactionsGetRequest"},"examples":{}}}}}},"/cashflow_report/insights/get":{"post":{"tags":["plaid"],"summary":"Gets insights data in Cashflow Report","externalDocs":{"url":"/api/products/transactions/#cashflowReportInsightsGet"},"operationId":"cashflowReportInsightsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashflowReportInsightsGetResponse"},"examples":{"example-1":{"value":{"item":{"available_products":["balance","identity","investments"],"billed_products":["assets","auth","liabilities","transactions"],"consent_expiration_time":null,"error":null,"institution_id":"ins_56","institution_name":"Chase","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"accounts":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":110.94,"current":110.94,"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","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":"2025550123","primary":false,"type":"home"},{"data":"1112224444","primary":false,"type":"work"},{"data":"1112225555","primary":false,"type":"mobile"}]}]}],"account_insights":{"historical_balances":[{"amount":48050,"date":"2023-06-04","iso_currency_code":"USD","unofficial_currency_code":null},{"amount":49050,"date":"2023-06-03","iso_currency_code":"USD","unofficial_currency_code":null},{"amount":37050,"date":"2023-06-02","iso_currency_code":"USD","unofficial_currency_code":null},{"amount":35050,"date":"2023-06-01","iso_currency_code":"USD","unofficial_currency_code":null}],"monthly_summaries":[{"start_date":"2023-06-01","end_date":"2023-06-30","starting_balance":null,"ending_balance":null,"average_daily_ending_balance":{"amount":42300,"iso_currency_code":"USD","unofficial_currency_code":null},"average_daily_inflow_amount":{"amount":3050,"iso_currency_code":"USD","unofficial_currency_code":null},"average_daily_outflow_amount":{"amount":250,"iso_currency_code":"USD","unofficial_currency_code":null},"average_daily_net_cashflow_amount":{"amount":2800,"iso_currency_code":"USD","unofficial_currency_code":null},"average_daily_inflow_transaction_count":6,"average_daily_outflow_transaction_count":2,"total_revenue":{"amount":16200,"iso_currency_code":"USD","unofficial_currency_code":null},"total_loan_payment":{"amount":1000,"iso_currency_code":"USD","unofficial_currency_code":null},"total_variable_expense":{"amount":250,"iso_currency_code":"USD","unofficial_currency_code":null},"total_payroll":{"amount":200,"iso_currency_code":"USD","unofficial_currency_code":null},"nsf_transaction_count":0,"overdraft_transaction_count":1,"negative_ending_balance_day_count":0}]},"request_id":"45QSn","last_generated_time":"2023-06-04T10:34:50Z"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/cashflow_report/insights/get` endpoint retrieves insights data associated with an Item. Insights are only calculated on credit and depository accounts.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashflowReportInsightsGetRequest"},"examples":{}}}}}},"/transactions/recurring/get":{"post":{"tags":["plaid"],"summary":"Fetch recurring transaction streams","externalDocs":{"url":"/api/products/transactions/#transactionsrecurringget"},"operationId":"transactionsRecurringGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRecurringGetResponse"},"examples":{"example-1":{"value":{"updated_datetime":"2022-05-01T00:00:00Z","inflow_streams":[{"account_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","stream_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc","category":null,"category_id":null,"description":"Platypus Payroll","merchant_name":null,"personal_finance_category":{"primary":"INCOME","detailed":"INCOME_WAGES","confidence_level":"UNKNOWN"},"first_date":"2022-02-28","last_date":"2022-04-30","predicted_next_date":"2022-05-15","frequency":"SEMI_MONTHLY","transaction_ids":["nkeaNrDGrhdo6c4qZWDA8ekuIPuJ4Avg5nKfw","EfC5ekksdy30KuNzad2tQupW8WIPwvjXGbGHL","ozfvj3FFgp6frbXKJGitsDzck5eWQH7zOJBYd","QvdDE8AqVWo3bkBZ7WvCd7LskxVix8Q74iMoK","uQozFPfMzibBouS9h9tz4CsyvFll17jKLdPAF"],"average_amount":{"amount":-800},"last_amount":{"amount":-1000},"is_active":true,"status":"MATURE","is_user_modified":false}],"outflow_streams":[{"account_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff","stream_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nd","category":null,"category_id":null,"description":"ConEd Bill Payment","merchant_name":"ConEd","personal_finance_category":{"primary":"RENT_AND_UTILITIES","detailed":"RENT_AND_UTILITIES_GAS_AND_ELECTRICITY","confidence_level":"UNKNOWN"},"first_date":"2022-02-04","last_date":"2022-05-02","predicted_next_date":"2022-06-02","frequency":"MONTHLY","transaction_ids":["yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0","HPDnUVgI5Pa0YQSl0rxwYRwVXeLyJXTWDAvpR","jEPoSfF8xzMClE9Ohj1he91QnvYoSdwg7IT8L","CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l"],"average_amount":{"amount":85},"last_amount":{"amount":100},"is_active":true,"status":"MATURE","is_user_modified":false},{"account_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff","stream_id":"SrBNJZDuUMweodmPmSOeOImwsWt53ZXfJQAfC","category":null,"category_id":null,"description":"Costco Annual Membership","merchant_name":"Costco","personal_finance_category":{"primary":"GENERAL_MERCHANDISE","detailed":"GENERAL_MERCHANDISE_SUPERSTORES","confidence_level":"UNKNOWN"},"first_date":"2022-01-23","last_date":"2023-01-22","predicted_next_date":"2024-01-22","frequency":"ANNUALLY","transaction_ids":["yqEBJ72cS4jFwcpxJcDuQr94oAQ1R1lMC33D4","Kz5Hm3cZCgpn4tMEKUGAGD6kAcxMBsEZDSwJJ"],"average_amount":{"amount":120},"last_amount":{"amount":120},"is_active":true,"status":"MATURE","is_user_modified":false}],"request_id":"tbFyCEqkU775ZGG"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"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.\n\nThis 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.\n\nThis 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`).\n\nWhen using Recurring Transactions, for best results, make sure to use the [`days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) parameter to request at least 180 days of history when initializing Items with Transactions. 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.\n\nAfter the initial call, you can call the `/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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRecurringGetRequest"},"examples":{}}}}}},"/transactions/recurring/deactivate":{},"/transactions/sync":{"post":{"tags":["plaid"],"summary":"Get incremental transaction updates on an Item","externalDocs":{"url":"/api/products/transactions/#transactionssync"},"operationId":"transactionsSync","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["transactions:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsSyncResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":110.94,"current":110.94,"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"}],"added":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":72.1,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"Walmart","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","confidence_level":"VERY_HIGH"}],"date":"2023-09-24","datetime":"2023-09-24T11:01:01Z","authorized_date":"2023-09-22","authorized_datetime":"2023-09-22T10:34:50Z","location":{"address":"13425 Community Rd","city":"Poway","region":"CA","postal_code":"92064","country":"US","lat":32.959068,"lon":-117.037666,"store_number":"1700"},"name":"PURCHASE WM SUPERCENTER #1700","merchant_name":"Walmart","merchant_entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","merchant_category_code":"5411","running_balance":110.94,"logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"in store","pending":false,"pending_transaction_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc","personal_finance_category":{"primary":"GENERAL_MERCHANDISE","detailed":"GENERAL_MERCHANDISE_SUPERSTORES","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png","transaction_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","transaction_code":null,"transaction_type":"place"}],"modified":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":28.34,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"DoorDash","type":"marketplace","logo_url":"https://plaid-counterparty-logos.plaid.com/doordash_1.png","website":"doordash.com","entity_id":"YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm","confidence_level":"HIGH"},{"name":"Burger King","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","confidence_level":"VERY_HIGH"}],"date":"2023-09-28","datetime":"2023-09-28T15:10:09Z","authorized_date":"2023-09-27","authorized_datetime":"2023-09-27T08:01:58Z","location":{"address":null,"city":null,"region":null,"postal_code":null,"country":null,"lat":null,"lon":null,"store_number":null},"name":"Dd Doordash Burgerkin","merchant_name":"Burger King","merchant_entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","merchant_category_code":"5814","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"online","pending":true,"pending_transaction_id":null,"personal_finance_category":{"primary":"FOOD_AND_DRINK","detailed":"FOOD_AND_DRINK_FAST_FOOD","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png","transaction_id":"yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0","transaction_code":null,"transaction_type":"digital"}],"removed":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","transaction_id":"CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l"}],"next_cursor":"tVUUL15lYQN5rBnfDIc1I8xudpGdIlw9nsgeXWvhOfkECvUeR663i3Dt1uf/94S8ASkitgLcIiOSqNwzzp+bh89kirazha5vuZHBb2ZA5NtCDkkV","has_more":false,"request_id":"Wvhy9PZHQLV8njG","transactions_update_status":"HISTORICAL_UPDATE_COMPLETE"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.\n\nFor important instructions on integrating with `/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).\n\nThis endpoint supports `credit`, `depository`, and `loan`-type accounts. For `investments` accounts, use `/investments/transactions/get` instead.\n\nWhen 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 (e.g. due to 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.\n\nIf transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/transactions/sync` was called within a few seconds of Item creation, `/transactions/sync` will return empty transactions arrays.\n\nPlaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.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.\n\nTo be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsSyncRequest"},"examples":{}}}}}},"/transactions/enrich":{"post":{"tags":["plaid"],"summary":"Enrich locally-held transaction data","externalDocs":{"url":"/api/products/enrich/#transactionsenrich"},"operationId":"transactionsEnrich","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsEnrichResponse"},"examples":{"example-1":{"value":{"enriched_transactions":[{"id":"6135818adda16500147e7c1d","description":"PURCHASE WM SUPERCENTER #1700","amount":72.1,"direction":"OUTFLOW","iso_currency_code":"USD","enrichments":{"counterparties":[{"name":"Walmart","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","confidence_level":"VERY_HIGH","phone_number":"+18009256278"}],"entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","location":{"address":"13425 Community Rd","city":"Poway","region":"CA","postal_code":"92064","country":"US","store_number":"1700","lat":32.959068,"lon":-117.037666},"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","confidence_level":"VERY_HIGH"},"phone_number":"+18009256278","personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png","website":"walmart.com"}},{"id":"3958434bhde9384bcmeo3401","description":"DD DOORDASH BURGERKIN 855-123-4567 CA","amount":28.34,"direction":"OUTFLOW","iso_currency_code":"USD","enrichments":{"counterparties":[{"name":"DoorDash","type":"marketplace","logo_url":"https://plaid-counterparty-logos.plaid.com/doordash_1.png","website":"doordash.com","entity_id":"YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm","confidence_level":"VERY_HIGH","phone_number":"+18001234567"},{"name":"Burger King","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","confidence_level":"VERY_HIGH","phone_number":null}],"location":{"address":null,"city":null,"region":null,"postal_code":null,"country":null,"store_number":null,"lat":null,"lon":null},"entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","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","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png","phone_number":null,"website":"burgerking.com"}}],"request_id":"Wvhy9PZHQLV8njG"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/transactions/enrich` endpoint enriches raw transaction data generated by your own banking products or retrieved from other non-Plaid sources.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsEnrichRequest"}}}}}},"/user/transactions/refresh":{"post":{"tags":["plaid"],"summary":"Refresh user items for Transactions bundle","externalDocs":{"url":"/api/products/transactions/#usertransactionsrefresh"},"operationId":"userTransactionsRefresh","description":"`/user/transactions/refresh` is an optional endpoint that initiates an on-demand extraction to fetch the newest transactions for a User using the Transactions bundle.\nThis bundle refreshes only the Transactions product data.\nThis endpoint is for clients who use the Transactions Insights bundle and want to proactively update all linked Items under a user.\nThe refresh may succeed or fail on a per-Item basis. Use the `results` array in the response to understand the outcome for each Item.\n\nThis endpoint is distinct from `/transactions/refresh`, which triggers a refresh for a single Item. Use `/user/transactions/refresh` to target all Items for a user instead.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTransactionsRefreshRequest"},"examples":{"example-1":{"value":{"user_id":"usr_8c3ZbDBYjaqUXZ"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTransactionsRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"4zlKapIkTm8p5KM","user_id":"usr_8c3ZbDBYjaqUXZ","results":[{"item_id":"Fd7bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","product":"TRANSACTIONS"},{"item_id":"AbCdEfGhIjKlMnOpQrStUvWxYz1234567890","product":"TRANSACTIONS","error":{"error_type":"ITEM_ERROR","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","display_message":null,"documentation_url":"https://plaid.com/docs/errors/item/#item_login_required"}}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/user/financial_data/refresh":{"post":{"tags":["plaid"],"summary":"Refresh user items for Financial-Insights bundle","externalDocs":{"url":"/api/products/transactions/#userfinancialdatarefresh"},"operationId":"userFinancialDataRefresh","description":"`/user/financial_data/refresh` is an optional endpoint that initiates an on-demand extraction to fetch the newest transactions for a User using the Financial Insights bundle.\nThis bundle refreshes the Transactions and Investments product data.\nThis endpoint is for clients who use the Financial Insights bundle and want to proactively update all linked Items under a user.\nThe refresh may succeed or fail on a per-Item basis. Use the `results` array in the response to understand the outcome for each Item.\n\nThis endpoint is distinct from `/transactions/refresh`, which triggers a refresh for a single Item. Use `/user/financial_data/refresh` to target all Items for a user instead.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFinancialDataRefreshRequest"},"examples":{"example-1":{"value":{"user_id":"usr_8c3ZbDBYjaqUXZ"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFinancialDataRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"4zlKapIkTm8p5KM","user_id":"usr_8c3ZbDBYjaqUXZ","results":[{"item_id":"Fd7bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","product":"TRANSACTIONS"},{"item_id":"AbCdEfGhIjKlMnOpQrStUvWxYz1234567890","product":"TRANSACTIONS","error":{"error_type":"ITEM_ERROR","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","display_message":null,"documentation_url":"https://plaid.com/docs/errors/item/#item_login_required"}}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/institutions/get":{"post":{"tags":["plaid"],"summary":"Get details of all supported institutions","externalDocs":{"url":"/api/institutions/#institutionsget"},"operationId":"institutionsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstitutionsGetResponse"},"examples":{"example-1":{"value":{"institutions":[{"country_codes":["US"],"institution_id":"ins_1","name":"Bank of America","products":["assets","auth","balance","transactions","identity","liabilities"],"routing_numbers":["011000138","011200365","011400495"],"dtc_numbers":["2236","0955","1367"],"oauth":false,"connection_availability":"SUPPORTED"}],"request_id":"tbFyCEqkU774ZGG","total":11384}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"Returns a JSON response containing details on all financial institutions currently supported by Plaid. Because Plaid supports thousands of institutions, results are paginated.\n\nIf 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstitutionsGetRequest"}}},"description":""}}},"/institutions/search":{"post":{"tags":["plaid"],"summary":"Search institutions","externalDocs":{"url":"/api/institutions/#institutionssearch"},"operationId":"institutionsSearch","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstitutionsSearchResponse"},"examples":{"example-1":{"value":{"institutions":[{"country_codes":["US"],"institution_id":"ins_109513","name":"Theoretical Bank","oauth":true,"connection_availability":"SUPPORTED","products":["assets","auth","balance","cra_lend_score","cra_plaid_credit_score","identity","identity_match","income","pay_by_bank","processor_payments","recurring_transactions","transactions","transfer"],"routing_numbers":["031101270","103100194","103112357"]}],"request_id":"QheuqaazREmq9xp"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"Returns a JSON response containing details for institutions that match the query parameters, up to a maximum of ten institutions per query. Institutions that Plaid does not support for new connections are not included in search results, but can still be retrieved by ID with `/institutions/get_by_id`.\n\nVersioning 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.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstitutionsSearchRequest"}}}}}},"/institutions/get_by_id":{"post":{"tags":["plaid"],"summary":"Get details of an institution","externalDocs":{"url":"/api/institutions/#institutionsget_by_id"},"operationId":"institutionsGetById","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstitutionsGetByIdResponse"},"examples":{"example-1":{"value":{"institution":{"country_codes":["US"],"institution_id":"ins_109512","name":"Houndstooth Bank","products":["auth","balance","identity","transactions"],"routing_numbers":["011000138","011200365","011400495"],"dtc_numbers":["2236","0955","1367"],"oauth":false,"connection_availability":"SUPPORTED","status":{"item_logins":{"status":"HEALTHY","last_status_change":"2019-02-15T15:53:00Z","breakdown":{"success":0.9,"error_plaid":0.01,"error_institution":0.09}},"transactions_updates":{"status":"HEALTHY","last_status_change":"2019-02-12T08:22:00Z","breakdown":{"success":0.95,"error_plaid":0.02,"error_institution":0.03,"refresh_interval":"NORMAL"}},"auth":{"status":"HEALTHY","last_status_change":"2019-02-15T15:53:00Z","breakdown":{"success":0.91,"error_plaid":0.01,"error_institution":0.08}},"identity":{"status":"DEGRADED","last_status_change":"2019-02-15T15:50:00Z","breakdown":{"success":0.42,"error_plaid":0.08,"error_institution":0.5}},"investments":{"status":"HEALTHY","last_status_change":"2019-02-15T15:53:00Z","breakdown":{"success":0.89,"error_plaid":0.02,"error_institution":0.09}},"liabilities":{"status":"HEALTHY","last_status_change":"2019-02-15T15:53:00Z","breakdown":{"success":0.89,"error_plaid":0.02,"error_institution":0.09}},"investments_updates":{"status":"HEALTHY","last_status_change":"2019-02-12T08:22:00Z","breakdown":{"success":0.95,"error_plaid":0.02,"error_institution":0.03,"refresh_interval":"NORMAL"}},"liabilities_updates":{"status":"HEALTHY","last_status_change":"2019-02-12T08:22:00Z","breakdown":{"success":0.95,"error_plaid":0.02,"error_institution":0.03,"refresh_interval":"NORMAL"}}},"primary_color":"#004966","url":"https://plaid.com","logo":null},"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"Returns a JSON response containing details on a specified financial institution.\n\nInstitutions that Plaid does not support for new connections are still returned by this endpoint, so that an `institution_id` stored on an existing Item can still be looked up. These institutions are not returned by `/institutions/get` or `/institutions/search`, and attempting to create a new Item for one of them returns an `INSTITUTION_NO_LONGER_SUPPORTED` error. Use `connection_availability` to tell the two cases apart.\n\nVersioning 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.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstitutionsGetByIdRequest"}}},"description":""}}},"/item/remove":{"post":{"tags":["plaid"],"summary":"Remove an Item","externalDocs":{"url":"/api/items/#itemremove"},"operationId":"itemRemove","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.\n\nCalling `/item/remove` is a recommended best practice when offboarding users or if a user chooses to disconnect an account linked via Plaid. For subscription products, such as Transactions, Liabilities, and Investments, calling `/item/remove` is required to end subscription billing for the Item, unless the end user revoked permission (e.g. via [https://my.plaid.com/](https://my.plaid.com/)). For more details, see [Subscription fee model](https://plaid.com/docs/account/billing/#subscription-fee).\n\nOn a Trial plan, calling `/item/remove` does not impact the number of remaining Trial Items (bank connections) you have available.\n\nRemoving an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove access to them specifically using the `/asset_report/remove` endpoint.\n\nAlso 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.\n\nAPI versions 2019-05-29 and earlier return a `removed` boolean as part of the response.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemRemoveResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemRemoveRequest"}}},"description":""}}},"/item/products/terminate":{"post":{"tags":["plaid"],"summary":"Terminate products for an Item","externalDocs":{"url":"/api/items/#itemproductsterminate"},"operationId":"itemProductsTerminate","description":"The `/item/products/terminate` endpoint allows you to terminate an Item. Once terminated, the `access_token` associated with the Item is no longer valid, billing for the Item's products is ended, and relevant webhooks are fired.\n\n`/item/products/terminate` is the recommended way to offboard users or disconnect accounts linked via Plaid.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemProductsTerminateResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemProductsTerminateRequest"}}}}}},"/accounts/get":{"post":{"tags":["plaid"],"summary":"Retrieve accounts","externalDocs":{"url":"/api/accounts/#accountsget"},"operationId":"accountsGet","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.\nTo return new accounts that were created after the user linked their Item, you can listen for 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.\n\n`/accounts/get` is free to use and retrieves cached information, rather than extracting fresh information from the institution. The balance returned will reflect the balance at the time of the last successful Item update. If the Item is enabled for a regularly updating product, such as Transactions, Investments, or Liabilities, the balance will typically update about once a day, as long as the Item is healthy. If the Item is enabled only for products that do not frequently update, such as Auth or Identity, balance data may be much older.\n\nFor real-time balance information, use the paid endpoints `/accounts/balance/get` or `/signal/evaluate` instead.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo","apy":0,"balances":{"available":100,"current":110,"iso_currency_code":"USD","limit":null,"unofficial_currency_code":null},"holder_category":"personal","mask":"0000","name":"Plaid Checking","official_name":"Plaid Gold Standard 0% Interest Checking","subtype":"checking","type":"depository"},{"account_id":"6PdjjRP6LmugpBy5NgQvUqpRXMWxzktg3rwrk","apy":null,"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","apy":null,"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","institution_name":"Royal Bank of Plaid","item_id":"DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"request_id":"bkVE1BHWMAZ9Rnr"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsGetRequest"},"examples":{"example-1":{"value":{"client_id":"string","secret":"string","access_token":"string","options":{"account_ids":["string"]}}}}}}}}},"/categories/get":{"post":{"security":[],"tags":["plaid"],"summary":"(Deprecated) Get legacy categories","deprecated":true,"externalDocs":{"url":"/api/products/transactions/#categoriesget"},"operationId":"categoriesGet","description":"Send a request to the `/categories/get` endpoint to get detailed information on legacy categories returned by Plaid. This endpoint does not require authentication.\n\nAll implementations are recommended to [use the newer `personal_finance_category` taxonomy](https://plaid.com/docs/transactions/pfc-migration/) instead of the legacy `category` taxonomy supported by this endpoint.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoriesGetResponse"},"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"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoriesGetRequest"}}}}}},"/sandbox/processor_token/create":{"post":{"tags":["plaid"],"summary":"Create a test Item and processor token","externalDocs":{"url":"/api/sandbox/#sandboxprocessor_tokencreate"},"operationId":"sandboxProcessorTokenCreate","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.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxProcessorTokenCreateResponse"},"examples":{"example-1":{"value":{"processor_token":"processor-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d","request_id":"Aim3b"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxProcessorTokenCreateRequest"}}}}}},"/sandbox/public_token/create":{"post":{"tags":["plaid"],"summary":"Create a test Item","externalDocs":{"url":"/api/sandbox/#sandboxpublic_tokencreate"},"operationId":"sandboxPublicTokenCreate","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, or with Plaid's [pre-populated Sandbox test accounts](https://plaid.com/docs/sandbox/test-credentials/).","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxPublicTokenCreateResponse"},"examples":{"example-1":{"value":{"public_token":"public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d","request_id":"Aim3b"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxPublicTokenCreateRequest"}}}}}},"/sandbox/item/fire_webhook":{"post":{"tags":["plaid"],"summary":"Fire a test webhook","externalDocs":{"url":"/api/sandbox/#sandboxitemfire_webhook"},"operationId":"sandboxItemFireWebhook","description":"The `/sandbox/item/fire_webhook` endpoint is used to test that code correctly handles webhooks. This endpoint can trigger the following webhooks:\n\n`DEFAULT_UPDATE`: Webhook to be fired for a given Sandbox Item simulating a default update event for the respective product as specified with the `webhook_type` in the request body. Valid Sandbox `DEFAULT_UPDATE` webhook types include: `AUTH`, `IDENTITY`, `TRANSACTIONS`, `INVESTMENTS_TRANSACTIONS`, `LIABILITIES`, `HOLDINGS`. If the Item does not support the product, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.\n\n`NEW_ACCOUNTS_AVAILABLE`: Fired to indicate that a new account is available on the Item and you can launch update mode to request access to it.\n\n`SMS_MICRODEPOSITS_VERIFICATION`: Fired when a given Same-Day Micro-deposit Item is verified via SMS verification.\n\n`LOGIN_REPAIRED`: Fired when an Item recovers from the `ITEM_LOGIN_REQUIRED` without the user going through update mode in your app.\n\n`PENDING_DISCONNECT`: Fired when an Item will stop working in the near future (e.g. due to a planned bank migration) and must be sent through update mode to continue working.\n\n`RECURRING_TRANSACTIONS_UPDATE`: Recurring Transactions webhook to be fired for a given Sandbox Item. If your client is not enabled for Recurring Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.\n\n`SYNC_UPDATES_AVAILABLE`: Transactions webhook to be fired for a given Sandbox Item.  If your client is not enabled for Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.\n\n`PRODUCT_READY`: Assets webhook to be fired when a given asset report has been successfully generated. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.\n\n`ERROR`: Assets webhook to be fired when asset report generation has failed. If the Item does not support Assets, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.\n\n`USER_PERMISSION_REVOKED`: Indicates an end user has revoked the permission that they previously granted to access an Item. May not always fire upon revocation, as some institutions' consent portals do not trigger this webhook. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.\n\n`USER_ACCOUNT_REVOKED`: Fired when an end user has revoked access to their account on the Data Provider's portal. This webhook is currently sent only for Chase, PNC, and Truist Items, but may be sent in the future for other financial institutions. Upon receiving this webhook, it is recommended to delete any stored data from Plaid associated with the account or Item.\n\nNote 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 (except for webhooks of type `TRANSFER`).","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxItemFireWebhookResponse"},"examples":{"example-1":{"value":{"webhook_fired":true,"request_id":"1vwmF5TBQwiqfwP"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxItemFireWebhookRequest"}}}}}},"/sandbox/user/fire_webhook":{"post":{"tags":["plaid"],"summary":"Fire a test user webhook","externalDocs":{"url":"/api/sandbox/#sandboxuserfire_webhook"},"operationId":"sandboxUserFireWebhook","description":"`/sandbox/user/fire_webhook` functions the same as `/sandbox/item/fire_webhook`, but fires webhooks associated with a user rather than an Item. This endpoint can trigger the following webhooks:\n\n`USER_CHECK_REPORT_READY`: Fired when a Check Report is ready to be retrieved.\n\n`USER_CHECK_REPORT_FAILED`: Fired when a Check Report has failed to generate.\n\n`CHECK_REPORT_READY` / `CHECK_REPORT_FAILED`: The equivalents of the above for integrations that predate the [New User APIs](https://plaid.com/docs/api/users/user-apis).\n\nNote 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.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxUserFireWebhookResponse"},"examples":{"example-1":{"value":{"webhook_fired":true,"request_id":"1vwmF5TBQwiqfwP"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxUserFireWebhookRequest"}}}}}},"/accounts/balance/get":{"post":{"tags":["plaid"],"summary":"Retrieve real-time balance data","externalDocs":{"url":"/api/products/signal/#accountsbalanceget"},"operationId":"accountsBalanceGet","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["accounts:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":100,"current":110,"iso_currency_code":"USD","limit":null,"unofficial_currency_code":null},"holder_category":"personal","mask":"0000","name":"Plaid Checking","official_name":"Plaid Gold Standard 0% Interest Checking","subtype":"checking","type":"depository"},{"account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","apy":null,"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","apy":null,"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_56","institution_name":"Chase","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"request_id":"qk5Bxes3gDfv4F2"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/accounts/balance/get` endpoint returns the real-time balance for each of an Item's accounts. While other endpoints, such as `/accounts/get`, return a balance object,  `/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 (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.\n\nNote: If you are getting real-time balance for the purpose of assessing the return risk of a proposed ACH transaction, it is recommended to use `/signal/evaluate` instead of `/accounts/balance/get`. `/signal/evaluate` returns the same real-time balance information and also provides access to Signal Rules, which provides no-code transaction business logic configuration, backtesting and recommendations for tuning your transaction acceptance logic, and the ability to easily switch between Balance and Signal Transaction Scores as needed for ultra-low-latency, ML-powered risk assessments. For more details, see the [Balance documentation](https://plaid.com/docs/balance/#balance-integration-options).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsBalanceGetRequest"},"examples":{"example-1":{"value":{"access_token":"string","secret":"string","client_id":"string","options":{"account_ids":["string"]}}}}}}}}},"/identity/get":{"post":{"tags":["plaid"],"summary":"Retrieve identity data","externalDocs":{"url":"/api/products/identity/#identityget"},"operationId":"identityGet","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["identity:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"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":"2025550123","primary":false,"type":"home"},{"data":"1112224444","primary":false,"type":"work"},{"data":"1112225555","primary":false,"type":"mobile"}]}],"subtype":"checking","type":"depository"},{"account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","apy":0.1,"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":"2025550123","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_56","institution_name":"Chase","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"request_id":"3nARps6TOYtbACO"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nNote: 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).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityGetRequest"}}},"description":""}}},"/identity/documents/uploads/get":{"post":{"tags":["plaid"],"summary":"Returns uploaded document identity","externalDocs":{"url":"/api/products/identity/#identitydocumentsuploadsget"},"operationId":"identityDocumentsUploadsGet","description":"Use `/identity/documents/uploads/get` to retrieve identity details when using [Identity Document Upload](https://plaid.com/docs/identity/identity-document-upload/).","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityDocumentsUploadsGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"ZXEbW7Rkr9iv1qj8abebU1KDMlkexgSgrLAod","apy":null,"balances":{"available":null,"current":null,"iso_currency_code":"USD","limit":null,"unofficial_currency_code":null},"documents":[{"document_id":"9f838fef-b0a5-4ef4-bf73-8e5248d43ad7","metadata":{"document_type":"BANK_STATEMENT","is_account_number_match":true,"last_updated":"2024-09-25T23:57:12Z","page_count":1,"uploaded_at":"2024-09-25T23:57:12Z"},"risk_insights":{"risk_signals":[{"has_fraud_risk":true,"page_number":0,"signal_description":"Creation date and modification date do not match","type":"METADATA_DATES_OUTSIDE_WINDOW"},{"has_fraud_risk":true,"page_number":0,"signal_description":"Adobe Acrobat","type":"SOFTWARE_BLACKLIST"}],"risk_summary":{"risk_score":100}}}],"mask":"0000","name":"Checking ...0000","official_name":null,"owners":[{"addresses":[{"data":{"city":"OAKLAND","country":"US","postal_code":"94103","region":"CA","street":"1234 GRAND AVE"},"primary":true}],"document_id":"9f838fef-b0a5-4ef4-bf73-8e5248d43ad7","emails":[],"names":["JANE DOE"],"phone_numbers":[]}],"subtype":"checking","type":"depository","verification_status":"manually_verified"}],"item":{"available_products":[],"billed_products":["auth"],"consent_expiration_time":null,"error":null,"item_id":"QwpzDByRv8uvdpwKEW3WU4PkGEApajtp3o4NN","products":["auth"],"update_type":"background","webhook":"https://www.example.com/webhook"},"request_id":"b5jvmskusjwX5Gs"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityDocumentsUploadsGetRequest"}}}}}},"/identity/match":{"post":{"tags":["plaid"],"summary":"Retrieve identity match score","externalDocs":{"url":"/api/products/identity/#identitymatch"},"operationId":"identityMatch","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityMatchResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":null,"current":null,"iso_currency_code":null,"limit":null,"unofficial_currency_code":null},"mask":"0000","name":"Plaid Checking","official_name":"Plaid Gold Standard 0% Interest Checking","legal_name":{"score":90,"is_nickname_match":true,"is_first_name_or_last_name_match":true,"is_business_name_detected":false},"phone_number":{"score":100},"email_address":{"score":100},"address":{"score":100,"is_postal_code_match":true},"subtype":"checking","type":"depository"},{"account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","apy":0.1,"balances":{"available":null,"current":null,"iso_currency_code":null,"limit":null,"unofficial_currency_code":null},"mask":"1111","name":"Plaid Saving","official_name":"Plaid Silver Standard 0.1% Interest Saving","legal_name":{"score":30,"is_first_name_or_last_name_match":false,"is_nickname_match":null,"is_business_name_detected":null},"phone_number":{"score":100},"email_address":{"score":null},"address":{"score":100,"is_postal_code_match":true},"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_56","institution_name":"Chase","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"request_id":"3nARps6TOYtbACO"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nFields within the `balances` object will always be null when retrieved by `/identity/match`. Instead, use the free `/accounts/get` endpoint to request balance cached data, or `/accounts/balance/get` or `/signal/evaluate` for real-time data.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityMatchRequest"}}},"description":""}}},"/identity/match/list":{"post":{"tags":["plaid"],"summary":"List Link Identity Match attempts","externalDocs":{"url":"/api/products/identity/#identitymatchlist"},"operationId":"identityMatchList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityMatchListResponse"},"examples":{"example-1":{"value":{"identity_match_attempts":[{"attempt_id":"5f8a4f57c31b4f0012345678","item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","created_at":"2026-07-12T14:07:33Z","link_session_id":"8c8d3f7e-5042-4b18-8c8a-5b12d7f8416c","link_customization_name":"identity_match_customization","ruleset_revision":4,"outcome":"PASS","outcome_account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","scores":[{"account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","legal_name":{"score":90,"is_first_name_or_last_name_match":true,"is_nickname_match":false,"is_business_name_detected":false},"phone_number":{"score":100},"email_address":{"score":100},"address":{"score":80,"is_postal_code_match":true}}]}],"next_cursor":"eyJ2IjoxLCJjbGllbnRfaWQiOiI1MDdmMWY3N2JjZjg2Y2Q3OTk0MzkwMTEiLCJzdGFydF90aW1lX25hbm9zIjoxNzgzODE0NDAwMDAwMDAwMDAwLCJlbmRfdGltZV9uYW5vcyI6MTc4MzkwNjkyMDAwMDAwMDAwMCwiY3JlYXRlZF9hdF9uYW5vcyI6MTc4Mzg2NTI1MzAwMDAwMDAwMCwic2Vzc2lvbl9pZCI6NDJ9","has_more":true,"request_id":"45QSn2S6Kp9ZtYb"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Returns a chronological history of Link-originated Identity Match attempts for a client, ordered by creation time with the oldest attempt first.\n\nThis endpoint requires separate enablement in addition to access to Identity Match. To request endpoint access, 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).\n\nResults are retained for up to one year. Attempts marked as deleted are omitted.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityMatchListRequest"}}}}}},"/identity/refresh":{"post":{"tags":["plaid"],"summary":"Refresh identity data","externalDocs":{"url":"/api/products/identity/#identityrefresh"},"operationId":"identityRefresh","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"1vwmF5TBQwiqfwP"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"`/identity/refresh` is an optional endpoint for users of the Identity product. It initiates an on-demand extraction to fetch the most up to date Identity information from the Financial Institution. This on-demand extraction takes place in addition to the periodic extractions that automatically occur for any Identity-enabled Item. If changes to Identity are discovered after calling `/identity/refresh`, Plaid will fire a webhook [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/identity/#default_update).\n\nAs this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.\n\n`/identity/refresh` is offered as an add-on to Identity and has a separate [fee model](https://plaid.com/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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRefreshRequest"}}}}}},"/dashboard_user/get":{"post":{"summary":"Retrieve a Dashboard user","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUserGetResponse"},"examples":{"example-1":{"value":{"id":"54350110fedcbaf01234ffee","created_at":"2020-07-24T03:26:02Z","email_address":"user@example.com","status":"active","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"dashboardUserGet","description":"The `/dashboard_user/get` endpoint provides details (such as email address) about a specific Dashboard user based on the `dashboard_user_id` field, which is returned in the `audit_trail` object of certain Monitor and Beacon endpoints. This can be used to identify the specific reviewer who performed a Dashboard action.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUserGetRequest"}}},"required":true},"externalDocs":{"url":"/api/kyc-aml-users/#dashboard_userget"}}},"/dashboard_user/list":{"post":{"summary":"List Dashboard users","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUserListResponse"},"examples":{"example-1":{"value":{"dashboard_users":[{"id":"54350110fedcbaf01234ffee","created_at":"2020-07-24T03:26:02Z","email_address":"user@example.com","status":"active"}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"dashboardUserList","description":"The `/dashboard_user/list` endpoint provides details (such as email address) about all Dashboard users associated with your account. This can be used to audit or track the list of reviewers for Monitor, Beacon, and Identity Verification products.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUserListRequest"}}},"required":true},"externalDocs":{"url":"/api/kyc-aml-users/#dashboard_userlist"}}},"/identity_verification/create":{"post":{"summary":"Create a new Identity Verification","description":"Create a new Identity Verification for the user specified by the `client_user_id` and/or `user_id` field. At least one of these two fields must be provided. The requirements and behavior of the verification are determined by the `template_id` provided. If `user_id` is provided, there must be an associated user; otherwise, an error will be returned.\n\n\nIf you don't know whether an active Identity Verification exists for a given `client_user_id` and/or `user_id`, 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/or `user_id`, and `template_id`. If an Identity Verification is found, it will be returned unmodified with a `200 OK` HTTP status code.\n\n\nIf `user_id` is not provided, you can also use this endpoint to supply information you already have collected about the user; if any of these fields are specified, the screens prompting the user to enter them will be skipped during the Link flow. If `user_id` is provided, user information can not be included in the request body. Please use the `/user/update` endpoint to update user data instead.\n","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationCreateResponse"},"examples":{"example-1":{"value":{"id":"idv_52xR9LKo77r1Np","client_user_id":"your-db-id-3b24110","created_at":"2020-07-24T03:26:02Z","completed_at":"2020-07-24T03:26:02Z","previous_attempt_id":"idv_42cF1MNo42r9Xj","shareable_url":"https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f","template":{"id":"idvtmp_4FrXJvfQU3zGUR","version":2},"user":{"phone_number":"+12345678909","date_of_birth":"1990-05-29","ip_address":"192.0.2.42","email_address":"user@example.com","name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"id_number":{"value":"123456789","type":"us_ssn"}},"status":"success","steps":{"accept_tos":"success","verify_sms":"success","kyc_check":"success","documentary_verification":"success","selfie_check":"success","watchlist_screening":"success","risk_check":"success"},"documentary_verification":{"status":"success","documents":[{"status":"success","attempt":1,"images":{"original_front":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg","original_back":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg","cropped_front":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg","cropped_back":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg","face":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg"},"extracted_data":{"id_number":"AB123456","category":"drivers_license","expiration_date":"2030-05-29","issue_date":"2020-05-29","issuing_country":"US","issuing_region":"IN","date_of_birth":"1990-05-29","address":{"street":"123 Main St. Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"name":{"given_name":"Leslie","family_name":"Knope"}},"analysis":{"authenticity":"match","image_quality":"high","extracted_data":{"name":"match","date_of_birth":"match","expiration_date":"not_expired","issuing_country":"match"},"aamva_verification":{"is_verified":true,"id_number":"match","id_issue_date":"match","id_expiration_date":"match","street":"match","city":"match","postal_code":"match","date_of_birth":"match","gender":"match","height":"match","eye_color":"match","first_name":"match","middle_name":"match","last_name":"match"},"fraud_analysis_details":{"type_supported":"success","portrait_presence_check":"success","portrait_details_check":"success","image_composition_check":"success","integrity_check":"success","detail_check":"success","issue_date_check":"success"},"image_quality_details":{"glare_check":"success","blur_check":"success","dimensions_check":"success"}},"redacted_at":"2020-07-24T03:26:02Z"}]},"selfie_check":{"status":"success","selfies":[{"status":"success","attempt":1,"capture":{"image_url":null,"video_url":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/selfie/liveness.webm"},"analysis":{"document_comparison":"match","liveness_check":"success","age_check":{"status":"match","reported_age":36,"age_estimate_lower_bound":32,"age_estimate_upper_bound":38}}}]},"kyc_check":{"status":"success","address":{"summary":"match","po_box":"yes","type":"residential"},"name":{"summary":"match"},"date_of_birth":{"summary":"match"},"id_number":{"summary":"match","ssa_verification":null},"phone_number":{"summary":"match","area_code":"match"}},"risk_check":{"status":"success","behavior":{"user_interactions":"risky","fraud_ring_detected":"yes","bot_detected":"yes"},"email":{"is_deliverable":"yes","breach_count":1,"first_breached_at":"1990-05-29","last_breached_at":"1990-05-29","domain_registered_at":"1990-05-29","domain_is_free_provider":"yes","domain_is_custom":"yes","domain_is_disposable":"yes","top_level_domain_is_suspicious":"yes","is_edu":"yes","includes_date_of_birth":"yes","name":"match","linked_services":["apple"]},"phone":{"linked_services":["apple"]},"devices":[{"ip_proxy_type":"none_detected","ip_spam_list_count":1,"ip_timezone_offset":"+06:00:00"}],"identity_abuse_signals":{"synthetic_identity":{"score":0},"stolen_identity":{"score":0}},"facial_duplicates":[{"id":"idv_52xR9LKo77r1Np","similarity":95,"matched_after_completed":true}],"trust_index_score":86},"verify_sms":{"status":"success","verifications":[{"status":"success","attempt":1,"phone_number":"+12345678909","delivery_attempt_count":1,"solve_attempt_count":1,"initially_sent_at":"2020-07-24T03:26:02Z","last_sent_at":"2020-07-24T03:26:02Z","redacted_at":"2020-07-24T03:26:02Z"}]},"watchlist_screening_id":"scr_52xR9LKo77r1Np","beacon_user_id":null,"user_id":"usr_dddAs9ewdcDQQQ","redacted_at":"2020-07-24T03:26:02Z","latest_scored_protect_event":{"event_id":"ptevt_7AJYTMFxRUgJ","timestamp":"2020-07-24T03:26:02Z","trust_index":{"score":86,"model":"trust_index.2.0.0","subscores":{"device_and_connection":{"score":87},"bank_account_insights":{"score":85}}},"fraud_attributes":{"fraud_attributes":{"link_session.linked_bank_accounts.user_pi_matches_owners":true,"link_session.linked_bank_accounts.connected_apps.days_since_first_connection":582,"session.challenged_with_mfa":false,"user.bank_accounts.num_of_frozen_or_restricted_accounts":0,"user.linked_bank_accounts.num_family_names":1,"user.linked_bank_accounts.num_of_connected_banks":1,"user.link_sessions.days_since_first_link_session":150,"user.pi.email.history_yrs":7.03,"user.pi.email.num_social_networks_linked":12,"user.pi.ssn.user_likely_has_better_ssn":false}}},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"identityVerificationCreate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationCreateRequest"}}},"required":true},"externalDocs":{"url":"/api/products/identity-verification/#identity_verificationcreate"}}},"/identity_verification/get":{"post":{"summary":"Retrieve Identity Verification","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationGetResponse"},"examples":{"example-1":{"value":{"id":"idv_52xR9LKo77r1Np","client_user_id":"your-db-id-3b24110","created_at":"2020-07-24T03:26:02Z","completed_at":"2020-07-24T03:26:02Z","previous_attempt_id":"idv_42cF1MNo42r9Xj","shareable_url":"https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f","template":{"id":"idvtmp_4FrXJvfQU3zGUR","version":2},"user":{"phone_number":"+12345678909","date_of_birth":"1990-05-29","ip_address":"192.0.2.42","email_address":"user@example.com","name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"id_number":{"value":"123456789","type":"us_ssn"}},"status":"success","steps":{"accept_tos":"success","verify_sms":"success","kyc_check":"success","documentary_verification":"success","selfie_check":"success","watchlist_screening":"success","risk_check":"success"},"documentary_verification":{"status":"success","documents":[{"status":"success","attempt":1,"images":{"original_front":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg","original_back":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg","cropped_front":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg","cropped_back":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg","face":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg"},"extracted_data":{"id_number":"AB123456","category":"drivers_license","expiration_date":"2030-05-29","issue_date":"2020-05-29","issuing_country":"US","issuing_region":"IN","date_of_birth":"1990-05-29","address":{"street":"123 Main St. Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"name":{"given_name":"Leslie","family_name":"Knope"}},"analysis":{"authenticity":"match","image_quality":"high","extracted_data":{"name":"match","date_of_birth":"match","expiration_date":"not_expired","issuing_country":"match"},"aamva_verification":{"is_verified":true,"id_number":"match","id_issue_date":"match","id_expiration_date":"match","street":"match","city":"match","postal_code":"match","date_of_birth":"match","gender":"match","height":"match","eye_color":"match","first_name":"match","middle_name":"match","last_name":"match"},"fraud_analysis_details":{"type_supported":"success","portrait_presence_check":"success","portrait_details_check":"success","image_composition_check":"success","integrity_check":"success","detail_check":"success","issue_date_check":"success"},"image_quality_details":{"glare_check":"success","blur_check":"success","dimensions_check":"success"}},"redacted_at":"2020-07-24T03:26:02Z"}]},"selfie_check":{"status":"success","selfies":[{"status":"success","attempt":1,"capture":{"image_url":null,"video_url":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/selfie/liveness.webm"},"analysis":{"document_comparison":"match","liveness_check":"success","age_check":{"status":"match","reported_age":36,"age_estimate_lower_bound":32,"age_estimate_upper_bound":38}}}]},"kyc_check":{"status":"success","address":{"summary":"match","po_box":"yes","type":"residential"},"name":{"summary":"match"},"date_of_birth":{"summary":"match"},"id_number":{"summary":"match","ssa_verification":null},"phone_number":{"summary":"match","area_code":"match"}},"risk_check":{"status":"success","behavior":{"user_interactions":"risky","fraud_ring_detected":"yes","bot_detected":"yes"},"email":{"is_deliverable":"yes","breach_count":1,"first_breached_at":"1990-05-29","last_breached_at":"1990-05-29","domain_registered_at":"1990-05-29","domain_is_free_provider":"yes","domain_is_custom":"yes","domain_is_disposable":"yes","top_level_domain_is_suspicious":"yes","is_edu":"yes","includes_date_of_birth":"yes","name":"match","linked_services":["apple"]},"phone":{"linked_services":["apple"]},"devices":[{"ip_proxy_type":"none_detected","ip_spam_list_count":1,"ip_timezone_offset":"+06:00:00"}],"identity_abuse_signals":{"synthetic_identity":{"score":0},"stolen_identity":{"score":0}},"facial_duplicates":[{"id":"idv_52xR9LKo77r1Np","similarity":95,"matched_after_completed":true}],"trust_index_score":86},"verify_sms":{"status":"success","verifications":[{"status":"success","attempt":1,"phone_number":"+12345678909","delivery_attempt_count":1,"solve_attempt_count":1,"initially_sent_at":"2020-07-24T03:26:02Z","last_sent_at":"2020-07-24T03:26:02Z","redacted_at":"2020-07-24T03:26:02Z"}]},"watchlist_screening_id":"scr_52xR9LKo77r1Np","beacon_user_id":null,"user_id":"usr_dddAs9ewdcDQQQ","redacted_at":"2020-07-24T03:26:02Z","latest_scored_protect_event":{"event_id":"ptevt_7AJYTMFxRUgJ","timestamp":"2020-07-24T03:26:02Z","trust_index":{"score":86,"model":"trust_index.2.0.0","subscores":{"device_and_connection":{"score":87},"bank_account_insights":{"score":85}}},"fraud_attributes":{"fraud_attributes":{"link_session.linked_bank_accounts.user_pi_matches_owners":true,"link_session.linked_bank_accounts.connected_apps.days_since_first_connection":582,"session.challenged_with_mfa":false,"user.bank_accounts.num_of_frozen_or_restricted_accounts":0,"user.linked_bank_accounts.num_family_names":1,"user.linked_bank_accounts.num_of_connected_banks":1,"user.link_sessions.days_since_first_link_session":150,"user.pi.email.history_yrs":7.03,"user.pi.email.num_social_networks_linked":12,"user.pi.ssn.user_likely_has_better_ssn":false}}},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"identityVerificationGet","description":"Retrieve a previously created Identity Verification.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationGetRequest"}}},"required":true},"externalDocs":{"url":"/api/products/identity-verification/#identity_verificationget"}}},"/identity_verification/list":{"post":{"summary":"List Identity Verifications","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationListResponse"},"examples":{"example-1":{"value":{"identity_verifications":[{"id":"idv_52xR9LKo77r1Np","client_user_id":"your-db-id-3b24110","created_at":"2020-07-24T03:26:02Z","completed_at":"2020-07-24T03:26:02Z","previous_attempt_id":"idv_42cF1MNo42r9Xj","shareable_url":"https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f","template":{"id":"idvtmp_4FrXJvfQU3zGUR","version":2},"user":{"phone_number":"+12345678909","date_of_birth":"1990-05-29","ip_address":"192.0.2.42","email_address":"user@example.com","name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"id_number":{"value":"123456789","type":"us_ssn"}},"status":"success","steps":{"accept_tos":"success","verify_sms":"success","kyc_check":"success","documentary_verification":"success","selfie_check":"success","watchlist_screening":"success","risk_check":"success"},"documentary_verification":{"status":"success","documents":[{"status":"success","attempt":1,"images":{"original_front":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg","original_back":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg","cropped_front":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg","cropped_back":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg","face":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg"},"extracted_data":{"id_number":"AB123456","category":"drivers_license","expiration_date":"2030-05-29","issue_date":"2020-05-29","issuing_country":"US","issuing_region":"IN","date_of_birth":"1990-05-29","address":{"street":"123 Main St. Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"name":{"given_name":"Leslie","family_name":"Knope"}},"analysis":{"authenticity":"match","image_quality":"high","extracted_data":{"name":"match","date_of_birth":"match","expiration_date":"not_expired","issuing_country":"match"},"aamva_verification":{"is_verified":true,"id_number":"match","id_issue_date":"match","id_expiration_date":"match","street":"match","city":"match","postal_code":"match","date_of_birth":"match","gender":"match","height":"match","eye_color":"match","first_name":"match","middle_name":"match","last_name":"match"},"fraud_analysis_details":{"type_supported":"success","portrait_presence_check":"success","portrait_details_check":"success","image_composition_check":"success","integrity_check":"success","detail_check":"success","issue_date_check":"success"},"image_quality_details":{"glare_check":"success","blur_check":"success","dimensions_check":"success"}},"redacted_at":"2020-07-24T03:26:02Z"}]},"selfie_check":{"status":"success","selfies":[{"status":"success","attempt":1,"capture":{"image_url":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/selfie/liveness.jpeg","video_url":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/selfie/liveness.webm"},"analysis":{"document_comparison":"match","liveness_check":"success","age_check":{"status":"match","reported_age":36,"age_estimate_lower_bound":32,"age_estimate_upper_bound":38}}}]},"kyc_check":{"status":"success","address":{"summary":"match","po_box":"yes","type":"residential"},"name":{"summary":"match"},"date_of_birth":{"summary":"match"},"id_number":{"summary":"match","ssa_verification":null},"phone_number":{"summary":"match","area_code":"match"}},"risk_check":{"status":"success","behavior":{"user_interactions":"risky","fraud_ring_detected":"yes","bot_detected":"yes"},"email":{"is_deliverable":"yes","breach_count":1,"first_breached_at":"1990-05-29","last_breached_at":"1990-05-29","domain_registered_at":"1990-05-29","domain_is_free_provider":"yes","domain_is_custom":"yes","domain_is_disposable":"yes","top_level_domain_is_suspicious":"yes","is_edu":"yes","includes_date_of_birth":"yes","name":"match","linked_services":["apple"]},"phone":{"linked_services":["apple"]},"devices":[{"ip_proxy_type":"none_detected","ip_spam_list_count":1,"ip_timezone_offset":"+06:00:00"}],"identity_abuse_signals":{"synthetic_identity":{"score":0},"stolen_identity":{"score":0}},"facial_duplicates":[{"id":"idv_52xR9LKo77r1Np","similarity":95,"matched_after_completed":true}],"trust_index_score":86},"verify_sms":{"status":"success","verifications":[{"status":"success","attempt":1,"phone_number":"+12345678909","delivery_attempt_count":1,"solve_attempt_count":1,"initially_sent_at":"2020-07-24T03:26:02Z","last_sent_at":"2020-07-24T03:26:02Z","redacted_at":"2020-07-24T03:26:02Z"}]},"watchlist_screening_id":"scr_52xR9LKo77r1Np","beacon_user_id":null,"user_id":"usr_dddAs9ewdcDQQQ","redacted_at":"2020-07-24T03:26:02Z","latest_scored_protect_event":{"event_id":"ptevt_7AJYTMFxRUgJ","timestamp":"2020-07-24T03:26:02Z","trust_index":{"score":86,"model":"trust_index.2.0.0","subscores":{"device_and_connection":{"score":87},"bank_account_insights":{"score":85}}},"fraud_attributes":{"fraud_attributes":{"link_session.linked_bank_accounts.user_pi_matches_owners":true,"link_session.linked_bank_accounts.connected_apps.days_since_first_connection":582,"session.challenged_with_mfa":false,"user.bank_accounts.num_of_frozen_or_restricted_accounts":0,"user.linked_bank_accounts.num_family_names":1,"user.linked_bank_accounts.num_of_connected_banks":1,"user.link_sessions.days_since_first_link_session":150,"user.pi.email.history_yrs":7.03,"user.pi.email.num_social_networks_linked":12,"user.pi.ssn.user_likely_has_better_ssn":false}}}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"identityVerificationList","description":"Filter and list Identity Verifications created by your account","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/identity-verification/#identity_verificationlist"}}},"/identity_verification/retry":{"post":{"summary":"Retry an Identity Verification","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationRetryRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationRetryResponse"},"examples":{"example-1":{"value":{"id":"idv_52xR9LKo77r1Np","client_user_id":"your-db-id-3b24110","created_at":"2020-07-24T03:26:02Z","completed_at":"2020-07-24T03:26:02Z","previous_attempt_id":"idv_42cF1MNo42r9Xj","shareable_url":"https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f","template":{"id":"idvtmp_4FrXJvfQU3zGUR","version":2},"user":{"phone_number":"+12345678909","date_of_birth":"1990-05-29","ip_address":"192.0.2.42","email_address":"user@example.com","name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"id_number":{"value":"123456789","type":"us_ssn"}},"status":"success","steps":{"accept_tos":"success","verify_sms":"success","kyc_check":"success","documentary_verification":"success","selfie_check":"success","watchlist_screening":"success","risk_check":"success"},"documentary_verification":{"status":"success","documents":[{"status":"success","attempt":1,"images":{"original_front":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg","original_back":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg","cropped_front":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg","cropped_back":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg","face":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg"},"extracted_data":{"id_number":"AB123456","category":"drivers_license","expiration_date":"2030-05-29","issue_date":"2020-05-29","issuing_country":"US","issuing_region":"IN","date_of_birth":"1990-05-29","address":{"street":"123 Main St. Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"name":{"given_name":"Leslie","family_name":"Knope"}},"analysis":{"authenticity":"match","image_quality":"high","extracted_data":{"name":"match","date_of_birth":"match","expiration_date":"not_expired","issuing_country":"match"},"aamva_verification":{"is_verified":true,"id_number":"match","id_issue_date":"match","id_expiration_date":"match","street":"match","city":"match","postal_code":"match","date_of_birth":"match","gender":"match","height":"match","eye_color":"match","first_name":"match","middle_name":"match","last_name":"match"},"fraud_analysis_details":{"type_supported":"success","portrait_presence_check":"success","portrait_details_check":"success","image_composition_check":"success","integrity_check":"success","detail_check":"success","issue_date_check":"success"},"image_quality_details":{"glare_check":"success","blur_check":"success","dimensions_check":"success"}},"redacted_at":"2020-07-24T03:26:02Z"}]},"selfie_check":{"status":"success","selfies":[{"status":"success","attempt":1,"capture":{"image_url":null,"video_url":"https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/selfie/liveness.webm"},"analysis":{"document_comparison":"match","liveness_check":"success","age_check":{"status":"match","reported_age":36,"age_estimate_lower_bound":32,"age_estimate_upper_bound":38}}}]},"kyc_check":{"status":"success","address":{"summary":"match","po_box":"yes","type":"residential"},"name":{"summary":"match"},"date_of_birth":{"summary":"match"},"id_number":{"summary":"match","ssa_verification":null},"phone_number":{"summary":"match","area_code":"match"}},"risk_check":{"status":"success","behavior":{"user_interactions":"risky","fraud_ring_detected":"yes","bot_detected":"yes"},"email":{"is_deliverable":"yes","breach_count":1,"first_breached_at":"1990-05-29","last_breached_at":"1990-05-29","domain_registered_at":"1990-05-29","domain_is_free_provider":"yes","domain_is_custom":"yes","domain_is_disposable":"yes","top_level_domain_is_suspicious":"yes","is_edu":"yes","includes_date_of_birth":"yes","name":"match","linked_services":["apple"]},"phone":{"linked_services":["apple"]},"devices":[{"ip_proxy_type":"none_detected","ip_spam_list_count":1,"ip_timezone_offset":"+06:00:00"}],"identity_abuse_signals":{"synthetic_identity":{"score":0},"stolen_identity":{"score":0}},"facial_duplicates":[{"id":"idv_52xR9LKo77r1Np","similarity":95,"matched_after_completed":true}],"trust_index_score":86},"verify_sms":{"status":"success","verifications":[{"status":"success","attempt":1,"phone_number":"+12345678909","delivery_attempt_count":1,"solve_attempt_count":1,"initially_sent_at":"2020-07-24T03:26:02Z","last_sent_at":"2020-07-24T03:26:02Z","redacted_at":"2020-07-24T03:26:02Z"}]},"watchlist_screening_id":"scr_52xR9LKo77r1Np","beacon_user_id":null,"user_id":"usr_dddAs9ewdcDQQQ","redacted_at":"2020-07-24T03:26:02Z","latest_scored_protect_event":{"event_id":"ptevt_7AJYTMFxRUgJ","timestamp":"2020-07-24T03:26:02Z","trust_index":{"score":86,"model":"trust_index.2.0.0","subscores":{"device_and_connection":{"score":87},"bank_account_insights":{"score":85}}},"fraud_attributes":{"fraud_attributes":{"link_session.linked_bank_accounts.user_pi_matches_owners":true,"link_session.linked_bank_accounts.connected_apps.days_since_first_connection":582,"session.challenged_with_mfa":false,"user.bank_accounts.num_of_frozen_or_restricted_accounts":0,"user.linked_bank_accounts.num_family_names":1,"user.linked_bank_accounts.num_of_connected_banks":1,"user.link_sessions.days_since_first_link_session":150,"user.pi.email.history_yrs":7.03,"user.pi.email.num_social_networks_linked":12,"user.pi.ssn.user_likely_has_better_ssn":false}}},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"identityVerificationRetry","description":"Allow a customer to retry their Identity Verification","externalDocs":{"url":"/api/products/identity-verification/#identity_verificationretry"}}},"/watchlist_screening/entity/create":{"post":{"summary":"Create a watchlist screening for an entity","operationId":"watchlistScreeningEntityCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityCreateResponse"},"examples":{"example-1":{"value":{"id":"entscr_52xR9LKo77r1Np","search_terms":{"entity_watchlist_program_id":"entprg_2eRPsDnL66rZ7H","legal_name":"Al-Qaida","document_number":"C31195855","email_address":"user@example.com","country":"US","phone_number":"+14025671234","url":"https://example.com","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"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.","tags":["plaid"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityCreateRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentitycreate"}}},"/watchlist_screening/entity/get":{"post":{"summary":"Get an entity screening","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityGetResponse"},"examples":{"example-1":{"value":{"id":"entscr_52xR9LKo77r1Np","search_terms":{"entity_watchlist_program_id":"entprg_2eRPsDnL66rZ7H","legal_name":"Al-Qaida","document_number":"C31195855","email_address":"user@example.com","country":"US","phone_number":"+14025671234","url":"https://example.com","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningEntityGet","description":"Retrieve an entity watchlist screening.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityGetRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentityget"}}},"/watchlist_screening/entity/history/list":{"post":{"summary":"List history for entity watchlist screenings","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityHistoryListResponse"},"examples":{"example-1":{"value":{"entity_watchlist_screenings":[{"id":"entscr_52xR9LKo77r1Np","search_terms":{"entity_watchlist_program_id":"entprg_2eRPsDnL66rZ7H","legal_name":"Al-Qaida","document_number":"C31195855","email_address":"user@example.com","country":"US","phone_number":"+14025671234","url":"https://example.com","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningEntityHistoryList","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.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityHistoryListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentityhistorylist"}}},"/watchlist_screening/entity/hit/list":{"post":{"summary":"List hits for entity watchlist screenings","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityHitListResponse"},"examples":{"example-1":{"value":{"entity_watchlist_screening_hits":[{"id":"enthit_52xR9LKo77r1Np","review_status":"pending_review","first_active":"2020-07-24T03:26:02Z","inactive_since":"2020-07-24T03:26:02Z","historical_since":"2020-07-24T03:26:02Z","list_code":"EU_CON","plaid_uid":"uid_3NggckTimGSJHS","source_uid":"26192ABC","sub_programs":[],"analysis":{"documents":"match","email_addresses":"match","locations":"match","names":"match","phone_numbers":"match","urls":"match","search_terms_version":1},"data":{"documents":[{"analysis":{"summary":"match"},"data":{"type":"swift","number":"C31195855"}}],"email_addresses":[{"analysis":{"summary":"match"},"data":{"email_address":"user@example.com"}}],"locations":[{"analysis":{"summary":"match"},"data":{"full":"Florida, US","country":"US"}}],"names":[{"analysis":{"summary":"match"},"data":{"full":"Al Qaida","is_primary":false,"weak_alias_determination":"none"}}],"phone_numbers":[{"analysis":{"summary":"match"},"data":{"type":"phone","phone_number":"+14025671234"}}],"urls":[{"analysis":{"summary":"match"},"data":{"url":"https://example.com"}}]}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningEntityHitList","description":"List all hits for the entity watchlist screening.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityHitListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentityhitlist"}}},"/watchlist_screening/entity/list":{"post":{"summary":"List entity watchlist screenings","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityListResponse"},"examples":{"example-1":{"value":{"entity_watchlist_screenings":[{"id":"entscr_52xR9LKo77r1Np","search_terms":{"entity_watchlist_program_id":"entprg_2eRPsDnL66rZ7H","legal_name":"Al-Qaida","document_number":"C31195855","email_address":"user@example.com","country":"US","phone_number":"+14025671234","url":"https://example.com","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningEntityList","description":"List all entity screenings.","tags":["plaid"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentitylist"}}},"/watchlist_screening/entity/program/get":{"post":{"summary":"Get entity watchlist screening program","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityProgramGetResponse"},"examples":{"example-1":{"value":{"id":"entprg_2eRPsDnL66rZ7H","created_at":"2020-07-24T03:26:02Z","is_rescanning_enabled":true,"lists_enabled":["EU_CON"],"name":"Sample Program","name_sensitivity":"balanced","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"is_archived":false,"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningEntityProgramGet","description":"Get an entity watchlist screening program","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityProgramGetRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentityprogramget"}}},"/watchlist_screening/entity/program/list":{"post":{"summary":"List entity watchlist screening programs","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityProgramListResponse"},"examples":{"example-1":{"value":{"entity_watchlist_programs":[{"id":"entprg_2eRPsDnL66rZ7H","created_at":"2020-07-24T03:26:02Z","is_rescanning_enabled":true,"lists_enabled":["EU_CON"],"name":"Sample Program","name_sensitivity":"balanced","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"is_archived":false}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningEntityProgramList","description":"List all entity watchlist screening programs","tags":["plaid"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityProgramListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentityprogramlist"}}},"/watchlist_screening/entity/review/create":{"post":{"summary":"Create a review for an entity watchlist screening","operationId":"watchlistScreeningEntityReviewCreate","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.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityReviewCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityReviewCreateResponse"},"examples":{"example-1":{"value":{"id":"entrev_aCLNRxK3UVzn2r","confirmed_hits":["enthit_52xR9LKo77r1Np"],"dismissed_hits":["enthit_52xR9LKo77r1Np"],"comment":"These look like legitimate matches, rejecting the customer.","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"tags":["plaid"],"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentityreviewcreate"}}},"/watchlist_screening/entity/review/list":{"post":{"summary":"List reviews for entity watchlist screenings","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityReviewListResponse"},"examples":{"example-1":{"value":{"entity_watchlist_screening_reviews":[{"id":"entrev_aCLNRxK3UVzn2r","confirmed_hits":["enthit_52xR9LKo77r1Np"],"dismissed_hits":["enthit_52xR9LKo77r1Np"],"comment":"These look like legitimate matches, rejecting the customer.","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningEntityReviewList","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.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityReviewListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentityreviewlist"}}},"/watchlist_screening/entity/update":{"post":{"summary":"Update an entity screening","operationId":"watchlistScreeningEntityUpdate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityUpdateResponse"},"examples":{"example-1":{"value":{"id":"entscr_52xR9LKo77r1Np","search_terms":{"entity_watchlist_program_id":"entprg_2eRPsDnL66rZ7H","legal_name":"Al-Qaida","document_number":"C31195855","email_address":"user@example.com","country":"US","phone_number":"+14025671234","url":"https://example.com","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"description":"Update an entity watchlist screening.","tags":["plaid"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningEntityUpdateRequest"}}},"description":"The entity screening was successfully updated.","required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningentityupdate"}}},"/watchlist_screening/individual/create":{"post":{"summary":"Create a watchlist screening for a person","operationId":"watchlistScreeningIndividualCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualCreateResponse"},"examples":{"example-1":{"value":{"id":"scr_52xR9LKo77r1Np","search_terms":{"watchlist_program_id":"prg_2eRPsDnL66rZ7H","legal_name":"Aleksey Potemkin","date_of_birth":"1990-05-29","document_number":"C31195855","country":"US","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"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.","tags":["plaid"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualCreateRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividualcreate"}}},"/watchlist_screening/individual/get":{"post":{"summary":"Retrieve an individual watchlist screening","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualGetResponse"},"examples":{"example-1":{"value":{"id":"scr_52xR9LKo77r1Np","search_terms":{"watchlist_program_id":"prg_2eRPsDnL66rZ7H","legal_name":"Aleksey Potemkin","date_of_birth":"1990-05-29","document_number":"C31195855","country":"US","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningIndividualGet","description":"Retrieve a previously created individual watchlist screening","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualGetRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividualget"}}},"/watchlist_screening/individual/history/list":{"post":{"summary":"List history for individual watchlist screenings","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualHistoryListResponse"},"examples":{"example-1":{"value":{"watchlist_screenings":[{"id":"scr_52xR9LKo77r1Np","search_terms":{"watchlist_program_id":"prg_2eRPsDnL66rZ7H","legal_name":"Aleksey Potemkin","date_of_birth":"1990-05-29","document_number":"C31195855","country":"US","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningIndividualHistoryList","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.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualHistoryListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividualhistorylist"}}},"/watchlist_screening/individual/hit/list":{"post":{"summary":"List hits for individual watchlist screening","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualHitListResponse"},"examples":{"example-1":{"value":{"watchlist_screening_hits":[{"id":"scrhit_52xR9LKo77r1Np","review_status":"pending_review","first_active":"2020-07-24T03:26:02Z","inactive_since":"2020-07-24T03:26:02Z","historical_since":"2020-07-24T03:26:02Z","list_code":"US_SDN","plaid_uid":"uid_3NggckTimGSJHS","source_uid":"26192ABC","sub_programs":["SDGT"],"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":{"type":"passport","number":"C31195855"}}],"locations":[{"analysis":{"summary":"match"},"data":{"full":"Florida, US","country":"US"}}],"names":[{"analysis":{"summary":"match"},"data":{"full":"Aleksey Potemkin","is_primary":false,"weak_alias_determination":"none"}}]}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningIndividualHitList","description":"List all hits found by Plaid for a particular individual watchlist screening.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualHitListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividualhitlist"}}},"/watchlist_screening/individual/list":{"post":{"summary":"List Individual Watchlist Screenings","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualListResponse"},"examples":{"example-1":{"value":{"watchlist_screenings":[{"id":"scr_52xR9LKo77r1Np","search_terms":{"watchlist_program_id":"prg_2eRPsDnL66rZ7H","legal_name":"Aleksey Potemkin","date_of_birth":"1990-05-29","document_number":"C31195855","country":"US","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningIndividualList","description":"List previously created watchlist screenings for individuals","tags":["plaid"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividuallist"}}},"/watchlist_screening/individual/program/get":{"post":{"summary":"Get individual watchlist screening program","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualProgramGetResponse"},"examples":{"example-1":{"value":{"id":"prg_2eRPsDnL66rZ7H","created_at":"2020-07-24T03:26:02Z","is_rescanning_enabled":true,"lists_enabled":["US_SDN"],"name":"Sample Program","name_sensitivity":"balanced","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"is_archived":false,"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningIndividualProgramGet","description":"Get an individual watchlist screening program","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualProgramGetRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividualprogramget"}}},"/watchlist_screening/individual/program/list":{"post":{"summary":"List individual watchlist screening programs","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualProgramListResponse"},"examples":{"example-1":{"value":{"watchlist_programs":[{"id":"prg_2eRPsDnL66rZ7H","created_at":"2020-07-24T03:26:02Z","is_rescanning_enabled":true,"lists_enabled":["US_SDN"],"name":"Sample Program","name_sensitivity":"balanced","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"is_archived":false}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningIndividualProgramList","description":"List all individual watchlist screening programs","tags":["plaid"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualProgramListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividualprogramlist"}}},"/watchlist_screening/individual/review/create":{"post":{"summary":"Create a review for an individual watchlist screening","operationId":"watchlistScreeningIndividualReviewCreate","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.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualReviewCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualReviewCreateResponse"},"examples":{"example-1":{"value":{"id":"rev_aCLNRxK3UVzn2r","confirmed_hits":["scrhit_52xR9LKo77r1Np"],"dismissed_hits":["scrhit_52xR9LKo77r1Np"],"comment":"These look like legitimate matches, rejecting the customer.","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"tags":["plaid"],"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividualreviewcreate"}}},"/watchlist_screening/individual/review/list":{"post":{"summary":"List reviews for individual watchlist screenings","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualReviewListResponse"},"examples":{"example-1":{"value":{"watchlist_screening_reviews":[{"id":"rev_aCLNRxK3UVzn2r","confirmed_hits":["scrhit_52xR9LKo77r1Np"],"dismissed_hits":["scrhit_52xR9LKo77r1Np"],"comment":"These look like legitimate matches, rejecting the customer.","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"watchlistScreeningIndividualReviewList","description":"List all reviews for the individual watchlist screening.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualReviewListRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividualreviewlist"}}},"/watchlist_screening/individual/update":{"post":{"summary":"Update individual watchlist screening","operationId":"watchlistScreeningIndividualUpdate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualUpdateResponse"},"examples":{"example-1":{"value":{"id":"scr_52xR9LKo77r1Np","search_terms":{"watchlist_program_id":"prg_2eRPsDnL66rZ7H","legal_name":"Aleksey Potemkin","date_of_birth":"1990-05-29","document_number":"C31195855","country":"US","version":1},"assignee":"54350110fedcbaf01234ffee","status":"cleared","client_user_id":"your-db-id-3b24110","audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"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.","tags":["plaid"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistScreeningIndividualUpdateRequest"}}},"required":true},"externalDocs":{"url":"/api/products/monitor/#watchlist_screeningindividualupdate"}}},"/beacon/account_risk/v1/evaluate":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"(Deprecated) Evaluate risk of a bank account","deprecated":true,"externalDocs":{"url":"none"},"operationId":"beaconAccountRiskEvaluate","description":"Use `/beacon/account_risk/v1/evaluate` to get risk insights for a linked account.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconAccountRiskEvaluateResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"mbVr0axYMECQ07NJ5gXnHRM9DeD2RJCxm9roR","attributes":{"days_since_first_plaid_connection":510,"plaid_connections_count_7d":6,"plaid_connections_count_30d":7,"total_plaid_connections_count":15},"subtype":"checking","type":"depository"}],"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconAccountRiskEvaluateRequest"}}}}}},"/beacon/user/create":{"post":{"summary":"(Deprecated) Create a Beacon User","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserCreateRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserCreateResponse"},"examples":{"example-1":{"value":{"item_ids":["515cd85321d3649aecddc015"],"id":"becusr_42cF1MNo42r9Xj","version":1,"created_at":"2020-07-24T03:26:02Z","updated_at":"2020-07-24T03:26:02Z","status":"cleared","program_id":"becprg_11111111111111","client_user_id":"your-db-id-3b24110","user":{"date_of_birth":"1990-05-29","name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"email_address":"user@example.com","phone_number":"+19876543212","id_number":{"value":"123456789","type":"us_ssn"},"ip_address":"192.0.2.42","depository_accounts":[{"account_mask":"4000","routing_number":"021000021","added_at":"2020-07-24T03:26:02Z"}]},"audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconUserCreate","description":"Create and scan a Beacon User against your Beacon Program, according to your program's settings.\n\nWhen you submit a new user to `/beacon/user/create`, several checks are performed immediately:\n\n  - The user's PII (provided within the `user` object) is searched against all other users within the Beacon Program you specified. If a match is found that violates your program's \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.\n\n  - The user's PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user's data matches a fraud report that your team created, the user will be returned with a status of `rejected`.\n\n  - Finally, the user's PII is searched against all fraud reports shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.","externalDocs":{"url":"/api/products/beacon/#beaconusercreate"}}},"/beacon/user/get":{"post":{"summary":"(Deprecated) Get a Beacon User","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserGetRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserGetResponse"},"examples":{"example-1":{"value":{"item_ids":["515cd85321d3649aecddc015"],"id":"becusr_42cF1MNo42r9Xj","version":1,"created_at":"2020-07-24T03:26:02Z","updated_at":"2020-07-24T03:26:02Z","status":"cleared","program_id":"becprg_11111111111111","client_user_id":"your-db-id-3b24110","user":{"date_of_birth":"1990-05-29","name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"email_address":"user@example.com","phone_number":"+19876543212","id_number":{"value":"123456789","type":"us_ssn"},"ip_address":"192.0.2.42","depository_accounts":[{"account_mask":"4000","routing_number":"021000021","added_at":"2020-07-24T03:26:02Z"}]},"audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconUserGet","description":"Fetch a Beacon User.\n\nThe Beacon User is returned with all of their associated information and a `status` based on the Beacon Network duplicate record and fraud checks.\n","externalDocs":{"url":"/api/products/beacon/#beaconuserget"}}},"/beacon/user/review":{"post":{"summary":"(Deprecated) Review a Beacon User","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserReviewRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserGetResponse"},"examples":{"example-1":{"value":{"item_ids":["515cd85321d3649aecddc015"],"id":"becusr_42cF1MNo42r9Xj","version":1,"created_at":"2020-07-24T03:26:02Z","updated_at":"2020-07-24T03:26:02Z","status":"cleared","program_id":"becprg_11111111111111","client_user_id":"your-db-id-3b24110","user":{"date_of_birth":"1990-05-29","name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"email_address":"user@example.com","phone_number":"+19876543212","id_number":{"value":"123456789","type":"us_ssn"},"ip_address":"192.0.2.42","depository_accounts":[{"account_mask":"4000","routing_number":"021000021","added_at":"2020-07-24T03:26:02Z"}]},"audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconUserReview","description":"Update the status of a Beacon User.\n\nWhen updating a Beacon User's status via this endpoint, Plaid validates that the status change is consistent with the related state for this Beacon User. Specifically, we will check:\n\n1. Whether there are any associated Beacon Reports connected to the Beacon User, and\n2. Whether there are any confirmed Beacon Report Syndications connected to the Beacon User.\n\nWhen updating a Beacon User's status to `rejected`, we enforce that either a Beacon Report has been created for the Beacon User or a Beacon Report Syndication has been confirmed.\nWhen updating a Beacon User's status to `cleared`, we enforce that there are no active Beacon Reports or confirmed Beacon Report Syndications associated with the user. If you previously created a Beacon Report for this user, you must delete it before updating the Beacon User's status to `cleared`.\nThere are no restrictions on updating a Beacon User's status to `pending_review`.\n\nIf these conditions are not met, the request will be rejected with an error explaining the issue.","externalDocs":{"url":"/api/products/beacon/#beaconuserreview"}}},"/beacon/report/create":{"post":{"summary":"(Deprecated) Create a Beacon Report","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportCreateRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportCreateResponse"},"examples":{"example-1":{"value":{"id":"becrpt_11111111111111","beacon_user_id":"becusr_42cF1MNo42r9Xj","created_at":"2020-07-24T03:26:02Z","type":"first_party","fraud_date":"1990-05-29","event_date":"1990-05-29","fraud_amount":{"iso_currency_code":"USD","value":100},"audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconReportCreate","description":"Create a fraud report for a given Beacon User.","externalDocs":{"url":"/api/products/beacon/#beaconreportcreate"}}},"/beacon/report/list":{"post":{"summary":"(Deprecated) List Beacon Reports for a Beacon User","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportListRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportListResponse"},"examples":{"example-1":{"value":{"beacon_reports":[{"id":"becrpt_11111111111111","beacon_user_id":"becusr_42cF1MNo42r9Xj","created_at":"2020-07-24T03:26:02Z","type":"first_party","fraud_date":"1990-05-29","event_date":"1990-05-29","fraud_amount":{"iso_currency_code":"USD","value":100},"audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconReportList","description":"Use the `/beacon/report/list` endpoint to view all Beacon Reports you created for a specific Beacon User. The reports returned by this endpoint are exclusively reports you created for a specific user. A Beacon User can only have one active report at a time, but a new report can be created if a previous report has been deleted. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.","externalDocs":{"url":"/api/products/beacon/#beaconreportlist"}}},"/beacon/report_syndication/list":{"post":{"summary":"(Deprecated) List Beacon Report Syndications for a Beacon User","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportSyndicationListRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportSyndicationListResponse"},"examples":{"example-1":{"value":{"beacon_report_syndications":[{"id":"becrsn_11111111111111","beacon_user_id":"becusr_42cF1MNo42r9Xj","report":{"id":"becrpt_11111111111111","created_at":"2020-07-24T03:26:02Z","type":"first_party","fraud_date":"1990-05-29","event_date":"1990-05-29"},"analysis":{"address":"match","date_of_birth":"match","email_address":"match","name":"match","id_number":"match","ip_address":"match","phone_number":"match","depository_accounts":[{"account_mask":"4000","routing_number":"021000021","match_status":"match"}]}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconReportSyndicationList","description":"Use the `/beacon/report_syndication/list` endpoint to view all Beacon Reports that have been syndicated to a specific Beacon User. This endpoint returns Beacon Report Syndications which are references to Beacon Reports created either by you, or another Beacon customer, that matched the specified Beacon User. A Beacon User can have multiple active Beacon Report Syndications at once. The results from this endpoint are paginated; the `next_cursor` field will be populated if there is another page of results that can be retrieved. To fetch the next page, pass the `next_cursor` value as the `cursor` parameter in the next request.","externalDocs":{"url":"/api/products/beacon/#beaconreport_syndicationlist"}}},"/beacon/report/get":{"post":{"summary":"(Deprecated) Get a Beacon Report","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportGetRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportGetResponse"},"examples":{"example-1":{"value":{"id":"becrpt_11111111111111","beacon_user_id":"becusr_42cF1MNo42r9Xj","created_at":"2020-07-24T03:26:02Z","type":"first_party","fraud_date":"1990-05-29","event_date":"1990-05-29","fraud_amount":{"iso_currency_code":"USD","value":100},"audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconReportGet","description":"Returns a Beacon Report for a given Beacon Report ID.","externalDocs":{"url":"/api/products/beacon/#beaconreportget"}}},"/beacon/report_syndication/get":{"post":{"summary":"(Deprecated) Get a Beacon Report Syndication","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportSyndicationGetRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconReportSyndicationGetResponse"},"examples":{"example-1":{"value":{"id":"becrsn_11111111111111","beacon_user_id":"becusr_42cF1MNo42r9Xj","report":{"id":"becrpt_11111111111111","created_at":"2020-07-24T03:26:02Z","type":"first_party","fraud_date":"1990-05-29","event_date":"1990-05-29"},"analysis":{"address":"match","date_of_birth":"match","email_address":"match","name":"match","id_number":"match","ip_address":"match","phone_number":"match","depository_accounts":[{"account_mask":"4000","routing_number":"021000021","match_status":"match"}]},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconReportSyndicationGet","description":"Returns a Beacon Report Syndication for a given Beacon Report Syndication id.","externalDocs":{"url":"/api/products/beacon/#beaconreport_syndicationget"}}},"/beacon/user/update":{"post":{"summary":"(Deprecated) Update the identity data of a Beacon User","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserUpdateRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserUpdateResponse"},"examples":{"example-1":{"value":{"item_ids":["515cd85321d3649aecddc015"],"id":"becusr_42cF1MNo42r9Xj","version":1,"created_at":"2020-07-24T03:26:02Z","updated_at":"2020-07-24T03:26:02Z","status":"cleared","program_id":"becprg_11111111111111","client_user_id":"your-db-id-3b24110","user":{"date_of_birth":"1990-05-29","name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"email_address":"user@example.com","phone_number":"+19876543212","id_number":{"value":"123456789","type":"us_ssn"},"ip_address":"192.0.2.42","depository_accounts":[{"account_mask":"4000","routing_number":"021000021","added_at":"2020-07-24T03:26:02Z"}]},"audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconUserUpdate","description":"Update the identity data for a Beacon User in your Beacon Program or add new accounts to the Beacon User.\n\nSimilar to `/beacon/user/create`, several checks are performed immediately when you submit an identity data change to `/beacon/user/update`:\n\n  - The user's updated PII is searched against all other users within the Beacon Program you specified. If a match is found that violates your program's \"Duplicate Information Filtering\" settings, the user will be returned with a status of `pending_review`.\n\n  - The user's updated PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user's data matches a fraud report that your team created, the user will be returned with a status of `rejected`.\n\n  - Finally, the user's PII is searched against all fraud reports shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a `pending_review` status if your program has enabled automatic flagging based on network fraud.\n\nPlaid maintains a version history for each Beacon User, so the Beacon User's identity data before and after the update is retained as separate versions.","externalDocs":{"url":"/api/products/beacon/#beaconuserupdate"}}},"/beacon/duplicate/get":{"post":{"summary":"(Deprecated) Get a Beacon Duplicate","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconDuplicateGetRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconDuplicateGetResponse"},"examples":{"example-1":{"value":{"id":"becdup_11111111111111","beacon_user1":{"id":"becusr_42cF1MNo42r9Xj","version":1},"beacon_user2":{"id":"becusr_42cF1MNo42r9Xj","version":1},"analysis":{"address":"match","date_of_birth":"match","email_address":"match","name":"match","id_number":"match","ip_address":"match","phone_number":"match"},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconDuplicateGet","description":"Returns a Beacon Duplicate for a given Beacon Duplicate id.\n\nA Beacon Duplicate represents a pair of similar Beacon Users within your organization.\n\nTwo Beacon User revisions are returned for each Duplicate record in either the `beacon_user1` or `beacon_user2` response fields.\n\nThe `analysis` field in the response indicates which fields matched between `beacon_user1` and `beacon_user2`.\n","externalDocs":{"url":"/api/products/beacon/#beaconduplicateget"}}},"/identity_verification/autofill/create":{"post":{"x-hidden-from-docs":true,"summary":"Create autofill for an Identity Verification","description":"Try to autofill an Identity Verification based on the provided phone number, date of birth and country of residence.","tags":["plaid"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationAutofillCreateRequest"},"examples":{"default":{"value":{"identity_verification_id":"flwses_42cF1MNo42r9Xj"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityVerificationAutofillCreateResponse"},"examples":{"example-1":{"value":{"status":"success","user":{"name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US","po_box":"yes","type":"residential"},"id_number":{"value":"123456789","type":"us_ssn"}},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"identityVerificationAutofillCreate","externalDocs":{"url":"/api/products/identity-verification/#identity_verificationautofillcreate"}}},"/beacon/user/history/list":{"post":{"summary":"(Deprecated) List a Beacon User's history","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserHistoryListRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserHistoryListResponse"},"examples":{"example-1":{"value":{"beacon_users":[{"item_ids":["515cd85321d3649aecddc015"],"id":"becusr_42cF1MNo42r9Xj","version":1,"created_at":"2020-07-24T03:26:02Z","updated_at":"2020-07-24T03:26:02Z","status":"cleared","program_id":"becprg_11111111111111","client_user_id":"your-db-id-3b24110","user":{"date_of_birth":"1990-05-29","name":{"given_name":"Leslie","family_name":"Knope"},"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"email_address":"user@example.com","phone_number":"+19876543212","id_number":{"value":"123456789","type":"us_ssn"},"ip_address":"192.0.2.42","depository_accounts":[{"account_mask":"4000","routing_number":"021000021","added_at":"2020-07-24T03:26:02Z"}]},"audit_trail":{"source":"dashboard","dashboard_user_id":"54350110fedcbaf01234ffee","timestamp":"2020-07-24T03:26:02Z"}}],"next_cursor":"eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconUserHistoryList","description":"List all changes to the Beacon User in reverse-chronological order.","externalDocs":{"url":"/api/products/beacon/#beaconuserhistorylist"}}},"/beacon/user/account_insights/get":{"post":{"summary":"(Deprecated) Get Account Insights for a Beacon User","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserAccountInsightsGetRequest"}}},"required":true},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeaconUserAccountInsightsGetResponse"},"examples":{"example-1":{"value":{"beacon_user_id":"becusr_42cF1MNo42r9Xj","created_at":"2020-07-24T03:26:02Z","updated_at":"2020-07-24T03:26:02Z","bank_account_insights":{"item_id":"515cd85321d3649aecddc015","accounts":[{"account_id":"blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo","type":"depository","subtype":"checking","attributes":{"days_since_first_plaid_connection":1,"is_account_closed":false,"is_account_frozen_or_restricted":false,"total_plaid_connections_count":1,"plaid_connections_count_7d":1,"plaid_connections_count_30d":1,"failed_plaid_non_oauth_authentication_attempts_count_3d":1,"plaid_non_oauth_authentication_attempts_count_3d":1,"failed_plaid_non_oauth_authentication_attempts_count_7d":1,"plaid_non_oauth_authentication_attempts_count_7d":1,"failed_plaid_non_oauth_authentication_attempts_count_30d":1,"plaid_non_oauth_authentication_attempts_count_30d":1,"distinct_ip_addresses_count_3d":1,"distinct_ip_addresses_count_7d":1,"distinct_ip_addresses_count_30d":1,"distinct_ip_addresses_count_90d":1,"distinct_user_agents_count_3d":1,"distinct_user_agents_count_7d":1,"distinct_user_agents_count_30d":1,"distinct_user_agents_count_90d":1,"address_change_count_28d":1,"email_change_count_28d":2,"phone_change_count_28d":1,"address_change_count_90d":3,"email_change_count_90d":4,"phone_change_count_90d":2,"days_since_account_opening":365,"days_since_first_observed_transaction":180}}]},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"beaconUserAccountInsightsGet","description":"Get Account Insights for all Accounts linked to this Beacon User. The insights for each account are computed based on the information that was last retrieved from the financial institution.","externalDocs":{"url":"/api/products/beacon/#beaconuseraccount_insightsget"}}},"/protect/user/insights/get":{"post":{"tags":["plaid"],"summary":"Get Protect user insights","externalDocs":{"url":"/api/products/protect/#protectuserinsightsget"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectUserInsightsGetResponse"},"examples":{"example-1":{"value":{"user_id":"plaid-user-6009db6e","latest_scored_event":{"event_id":"ptevt_cYNnF8xYE1v1om","timestamp":"2020-07-24T03:26:02Z","event_type":"PROTECT_COMPUTE","trust_index":{"score":86,"model":"trust_index.2.0.0","subscores":{"device_and_connection":{"score":87},"bank_account_insights":{"score":85}}},"fraud_attributes":{"link_session.linked_bank_accounts.user_pi_matches_owners":true,"link_session.linked_bank_accounts.connected_apps.days_since_first_connection":582,"session.challenged_with_mfa":false,"user.bank_accounts.num_of_frozen_or_restricted_accounts":0,"user.linked_bank_accounts.num_family_names":1,"user.linked_bank_accounts.num_of_connected_banks":1,"user.link_sessions.days_since_first_link_session":150,"user.pi.email.history_yrs":7.03,"user.pi.email.num_social_networks_linked":12,"user.pi.ssn.user_likely_has_better_ssn":false}},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"protectUserInsightsGet","description":"Use this endpoint to get basic information about a user as it relates to their fraud profile with Protect.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectUserInsightsGetRequest"}}}}}},"/protect/report/create":{"post":{"tags":["plaid"],"summary":"Create a Protect report","externalDocs":{"url":"/api/products/protect/#protectreportcreate"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectReportCreateResponse"},"examples":{"example-1":{"value":{"report_id":"ptrpt_42cF1MNo42r9Xj","request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"protectReportCreate","description":"Use this endpoint to create a Protect report to document fraud incidents, investigation outcomes, or other risk events. This endpoint allows you to report various types of incidents including account takeovers, identity fraud, unauthorized transactions, and other security events. The reported data helps improve fraud detection models and provides valuable feedback to enhance the overall security of the Plaid network.\n\nReports can be created for confirmed incidents that have been fully investigated, or for suspected incidents that require further review. You can associate reports with specific users, sessions, or transactions to provide comprehensive context about the incident. Each report must include `user_id`, `client_user_id`, or an `incident_event` with at least one supported identifier: `link_session_id`, `idv_session_id`, `protect_event_id`, `signal_client_transaction_id`, or `access_token`. Context fields such as `internal_reference`, `time`, `amount`, and `bank_account` do not satisfy this identifier requirement.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectReportCreateRequest"}}}}}},"/protect/cash_advance/decision/create":{"post":{"tags":["plaid"],"summary":"Record a cash advance decision","externalDocs":{"url":"/api/products/protect/#protectcashadvancedecisioncreate"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectCashAdvanceDecisionCreateResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"protectCashAdvanceDecisionCreate","description":"Use this endpoint to record a cash-advance decision as feedback. A decision is a determination of whether to approve a user's requested advance and on what terms.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectCashAdvanceDecisionCreateRequest"}}}}}},"/protect/cash_advance/repayment/create":{"post":{"tags":["plaid"],"summary":"Record a cash advance repayment","externalDocs":{"url":"/api/products/protect/#protectcashadvancerepaymentcreate"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectCashAdvanceRepaymentCreateResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"protectCashAdvanceRepaymentCreate","description":"Use this endpoint to record a cash-advance repayment as feedback. A repayment is a record paying back all or some of a previously-taken cash-advance.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectCashAdvanceRepaymentCreateRequest"}}}}}},"/protect/cash_advance/feedback/upload":{"post":{"tags":["plaid"],"summary":"Upload a file of cash advance feedback","externalDocs":{"url":"/api/products/protect/#protectcashadvancefeedbackupload"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectCashAdvanceFeedbackUploadResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZng","upload_id":"caifb_7Kx9mQ2vXpLw9R"}}}}}}},"operationId":"protectCashAdvanceFeedbackUpload","description":"Upload a CSV file of cash advance decision or repayment feedback. Each row is equivalent to one call to `/protect/cash_advance/decision/create` or `/protect/cash_advance/repayment/create`. Send the request as `multipart/form-data` with `client_id` and `secret` in the `PLAID-CLIENT-ID` and `PLAID-SECRET` headers. The file is accepted for asynchronous processing; the response contains a `request_id` and an `upload_id` that identifies the upload.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectCashAdvanceFeedbackUploadRequest"}}}}}},"/protect/compute":{"post":{"tags":["plaid"],"summary":"Compute Protect Trust Index scores and subscores","externalDocs":{"url":"/api/products/protect/#protectcompute"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectComputeResponse"},"examples":{"example-1":{"value":{"score":86,"model":"ti-link-session-3.0-<client>","attributes":{"link_session.linked_bank_accounts.user_pi_matches_owners":true,"link_session.linked_bank_accounts.connected_apps.days_since_first_connection":582,"session.challenged_with_mfa":false,"user.bank_accounts.num_of_frozen_or_restricted_accounts":0,"user.linked_bank_accounts.num_family_names":1,"user.linked_bank_accounts.num_of_connected_banks":1,"user.link_sessions.days_since_first_link_session":150,"user.pi.email.history_yrs":7.03,"user.pi.email.num_social_networks_linked":12,"user.pi.ssn.user_likely_has_better_ssn":false},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"protectCompute","description":"Compute a Protect Trust Index score for a user. The model selected determines what is scored and what additional fields the response contains. For example, `ti-link-session-3-<client>` scores a completed Link session for fraud risk; `cash-advance-ongoing-<client>-1.0` scores repayment risk for a cash advance, additionally populating per-amount-bucket subscores. Cash-advance models require that the user have a Plaid Item with Transactions enabled, or an Assets Report, before scoring.\n\nThe endpoint returns HTTP 400 with `error_type` = `INVALID_REQUEST` and `error_code` = `FAILED_PRECONDITION` when a required precondition is not met: for link-session models, when the Link session has not completed; for cash-advance models, when the user has not successfully linked any Item. For device-session models, the endpoint may return retryable `error_code` = `SESSION_NOT_READY` until the Protect SDK has delivered device data for the session.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectComputeRequest"}}}}}},"/protect/event/send":{"post":{"tags":["plaid"],"summary":"Send a new event to enrich user data","deprecated":true,"externalDocs":{"url":"none"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectEventSendResponse"},"examples":{"example-1":{"value":{"event_id":"ptevt_cYNnF8xYE1v1om","trust_index":{"score":86,"model":"trust_index.2.0.0","subscores":{"device_and_connection":{"score":87},"bank_account_insights":{"score":85}}},"fraud_attributes":{"link_session.linked_bank_accounts.user_pi_matches_owners":true,"link_session.linked_bank_accounts.connected_apps.days_since_first_connection":582,"session.challenged_with_mfa":false,"user.bank_accounts.num_of_frozen_or_restricted_accounts":0,"user.linked_bank_accounts.num_family_names":1,"user.linked_bank_accounts.num_of_connected_banks":1,"user.link_sessions.days_since_first_link_session":150,"user.pi.email.history_yrs":7.03,"user.pi.email.num_social_networks_linked":12,"user.pi.ssn.user_likely_has_better_ssn":false},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"protectEventSend","description":"Send a new event to enrich user data and optionally get a Trust Index score for the event.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectEventSendRequest"}}}}}},"/protect/event/get":{"post":{"tags":["plaid"],"summary":"Get information about a user event","deprecated":true,"externalDocs":{"url":"none"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectEventGetResponse"},"examples":{"example-1":{"value":{"event_id":"ptevt_cYNnF8xYE1v1om","timestamp":"2020-07-24T03:26:02Z","event_type":"PROTECT_COMPUTE","trust_index":{"score":86,"model":"trust_index.2.0.0","subscores":{"device_and_connection":{"score":87},"bank_account_insights":{"score":85}}},"fraud_attributes":{"link_session.linked_bank_accounts.user_pi_matches_owners":true,"link_session.linked_bank_accounts.connected_apps.days_since_first_connection":582,"session.challenged_with_mfa":false,"user.bank_accounts.num_of_frozen_or_restricted_accounts":0,"user.linked_bank_accounts.num_family_names":1,"user.linked_bank_accounts.num_of_connected_banks":1,"user.link_sessions.days_since_first_link_session":150,"user.pi.email.history_yrs":7.03,"user.pi.email.num_social_networks_linked":12,"user.pi.ssn.user_likely_has_better_ssn":false},"request_id":"saKrIBuEB9qJZng"}}}}}}},"operationId":"protectEventGet","description":"Get information about a user event including Trust Index score and fraud attributes.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectEventGetRequest"}}}}}},"/idv_classic/identity_assessments":{},"/idv_classic/identity_searches/:id":{},"/idv_classic/identity_searches":{},"/idv_classic/profiles/:id/identity_searches":{},"/idv_classic/profiles/:id":{},"/idv_classic/profiles":{},"/idv_classic/identity_searches/jobs/:id":{},"/idv_classic/identity_assessments/:id":{},"/business_verification/get":{"post":{"x-hidden-from-docs":true,"summary":"Get a Business Verification","operationId":"businessVerificationGet","externalDocs":{"url":"/api/products/business-verification/#businessverificationget"},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessVerificationGetResponse"},"examples":{"example-1":{"value":{"id":"busver_52xR9LKo77r1Np","client_user_id":"your-db-id-3b24110","created_at":"2020-07-24T03:26:02Z","completed_at":"2020-07-24T03:26:02Z","redacted_at":"2020-07-24T03:26:02Z","status":"success","search_terms":{"name":"Acme Corporation","alternative_names":["Acme Widgets"],"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"website":"https://example.com","phone_number":"+14025671234","email_address":"user@example.com","tin":"123456789","officers":[{"name":"Leslie Knope"}]},"business_verification":{"status":"success","score":85,"name":{"summary":"match"},"address":{"summary":"match"},"website":{"summary":"match"},"tin":{"summary":"match","tin_type":"ein"},"officers":{"summary":"match"},"registered_agent":{"summary":"no_match"},"match_details":{"names":[{"is_primary":true,"name":"Acme Corporation"},{"is_primary":false,"name":"Acme Widgets"}],"entity_type":"llc","addresses":[{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US","is_primary":true}],"phone_numbers":[{"number":"+12345678909"}],"email_addresses":[{"email_address":"business@example.com"}],"websites":[{"url":"https://example.com"}],"formation_date":"1990-05-29"}},"risk_check":{"status":"success","score":92,"industry_prediction":{"code":518210,"title":"Data Processing, Hosting, and Related Services"}},"digital_presence_check":{"status":"success","score":55,"address":{"summary":"match"},"phone_number":{"summary":"match"},"email_address":{"summary":"match"},"website":{"summary":"match"},"website_analysis":{"is_parked":"no","email_is_deliverable":"yes","website_build_status":"active","whois_record":{"domain_created_at":"1995-08-16T00:00:00Z","domain_updated_at":"2025-07-11T00:00:00Z","domain_expires_at":"2026-08-15T00:00:00Z","registrar":"GANDI SAS"},"ssl":{"is_valid":"yes"}}},"shareable_url":"https://verify.plaid.com/busver_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f","request_id":"saKrIBuEB9qJZng"}}}}}}},"description":"Retrieve the current state of a specific business verification.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessVerificationGetRequest"}}},"required":true}}},"/business_verification/create":{"post":{"x-hidden-from-docs":true,"summary":"Create a Business Verification","operationId":"businessVerificationCreate","externalDocs":{"url":"/api/products/business-verification/#businessverificationcreate"},"tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessVerificationCreateResponse"},"examples":{"example-1":{"value":{"id":"busver_52xR9LKo77r1Np","client_user_id":"your-db-id-3b24110","created_at":"2020-07-24T03:26:02Z","completed_at":"2020-07-24T03:26:02Z","redacted_at":"2020-07-24T03:26:02Z","status":"success","search_terms":{"name":"Acme Corporation","alternative_names":["Acme Widgets"],"address":{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US"},"website":"https://example.com","phone_number":"+14025671234","email_address":"user@example.com","tin":"123456789","officers":[{"name":"Leslie Knope"}]},"business_verification":{"status":"success","score":85,"name":{"summary":"match"},"address":{"summary":"match"},"website":{"summary":"match"},"tin":{"summary":"match","tin_type":"ein"},"officers":{"summary":"match"},"registered_agent":{"summary":"no_match"},"match_details":{"names":[{"is_primary":true,"name":"Acme Corporation"},{"is_primary":false,"name":"Acme Widgets"}],"entity_type":"llc","addresses":[{"street":"123 Main St.","street2":"Unit 42","city":"Pawnee","region":"IN","postal_code":"46001","country":"US","is_primary":true}],"phone_numbers":[{"number":"+12345678909"}],"email_addresses":[{"email_address":"business@example.com"}],"websites":[{"url":"https://example.com"}],"formation_date":"1990-05-29"}},"risk_check":{"status":"success","score":92,"industry_prediction":{"code":518210,"title":"Data Processing, Hosting, and Related Services"}},"digital_presence_check":{"status":"success","score":55,"address":{"summary":"match"},"phone_number":{"summary":"match"},"email_address":{"summary":"match"},"website":{"summary":"match"},"website_analysis":{"is_parked":"no","email_is_deliverable":"yes","website_build_status":"active","whois_record":{"domain_created_at":"1995-08-16T00:00:00Z","domain_updated_at":"2025-07-11T00:00:00Z","domain_expires_at":"2026-08-15T00:00:00Z","registrar":"GANDI SAS"},"ssl":{"is_valid":"yes"}}},"shareable_url":"https://verify.plaid.com/busver_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f","request_id":"saKrIBuEB9qJZng"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessVerificationCreateRequest"}}},"required":true},"description":"Create a new business verification to check a business's identity and risk profile."}},"/processor/auth/get":{"post":{"tags":["plaid"],"summary":"Retrieve Auth data","externalDocs":{"url":"/api/processor-partners/#processorauthget"},"operationId":"processorAuthGet","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorAuthGetResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","apy":0,"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"},"eft":{"account":"111122223333","account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","institution":"021","branch":"01140"},"international":{"account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","bic":"NWBKGB21","iban":"GB29NWBK60161331926819"},"bacs":{"account":"31926819","account_id":"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D","sort_code":"601613"}},"request_id":"1zlMf"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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, savings, or cash management account that''s associated with a given `processor_token`. The endpoint also returns high-level account data and balances when available.\n\nVersioning 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).\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorAuthGetRequest"}}}}}},"/processor/account/get":{"post":{"tags":["plaid"],"summary":"Retrieve the account associated with a processor token","externalDocs":{"url":"/api/processor-partners/#processoraccountget"},"operationId":"processorAccountGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorAccountGetResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"QKKzevvp33HxPWpoqn6rI13BxW4awNSjnw4xv","apy":0,"balances":{"available":100,"current":110,"limit":null,"iso_currency_code":"USD","unofficial_currency_code":null},"mask":"0000","name":"Plaid Checking","official_name":"Plaid Gold Checking","subtype":"checking","type":"depository"},"institution_id":"ins_109508","request_id":"1zlMf"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint returns the account associated with a given processor token.\n\nThis endpoint retrieves cached information, rather than extracting fresh information from the institution. As a result, the account balance returned may not be up-to-date; for real-time balance information, use `/processor/balance/get` instead. Note that some information is nullable.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorAccountGetRequest"}}}}}},"/processor/investments/holdings/get":{"post":{"tags":["plaid"],"summary":"Retrieve Investment Holdings","externalDocs":{"url":"/api/processor-partners/#processorinvestmentsholdingsget"},"operationId":"processorInvestmentsHoldingsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorInvestmentsHoldingsGetResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"JqMLm4rJwpF6gMPJwBqdh9ZjjPvvpDcb7kDK1","apy":null,"balances":{"available":null,"current":110.01,"iso_currency_code":"USD","limit":null,"margin_loan_amount":null,"unofficial_currency_code":null},"mask":"5555","name":"Plaid IRA","official_name":null,"subtype":"ira","type":"investment"},"holdings":[{"account_id":"JqMLm4rJwpF6gMPJwBqdh9ZjjPvvpDcb7kDK1","cost_basis":0.01,"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,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"account_id":"JqMLm4rJwpF6gMPJwBqdh9ZjjPvvpDcb7kDK1","cost_basis":100,"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,"vested_quantity":null,"vested_value":null,"tax_lots":[]}],"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","subtype":"option","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":"Technology Services","industry":"Internet Software or Services","cfi_code":"OCASPS","figi":null,"option_contract":{"contract_type":"call","expiration_date":"2018-02-01","strike_price":355,"underlying_security_ticker":"NFLX"},"fixed_income":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","subtype":"cash","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":null,"sector":null,"industry":null,"cfi_code":null,"figi":null,"option_contract":null,"fixed_income":null}],"request_id":"24MxmGFZz89Xg2f"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint returns the stock position data of the account associated with a given processor token.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorInvestmentsHoldingsGetRequest"}}}}}},"/processor/investments/auth/get":{"post":{"tags":["plaid"],"summary":"Get investment account authentication data","description":"The `/processor/investments/auth/get` endpoint allows you to retrieve information about the account\nauthorized by a processor token, including account numbers, account owners, holdings, and data provenance information.\n\nTo receive Investments Auth webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.\n","externalDocs":{"url":"/api/processor-partners/#processorinvestmentsauthget"},"operationId":"processorInvestmentsAuthGet","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorInvestmentsAuthGetResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","apy":null,"balances":{"available":null,"current":415.57,"iso_currency_code":"USD","limit":null,"margin_loan_amount":null,"unofficial_currency_code":null},"mask":"5555","name":"Plaid IRA","official_name":null,"subtype":"ira","type":"investment"},"owners":[{"account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","names":["Alberta Bobbeth Charleson"]}],"numbers":{"acats":[{"account":"TR5555","account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","dtc_numbers":["1111","2222","3333"]}]},"holdings":[{"account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","cost_basis":100,"institution_price":0.011,"institution_price_as_of":"2021-05-25","institution_price_datetime":null,"institution_value":110,"iso_currency_code":"USD","quantity":10000,"security_id":"8E4L9XLl6MudjEpwPAAgivmdZRdBPJuvMPlPb","unofficial_currency_code":null,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","cost_basis":200,"institution_price":42.15,"institution_price_as_of":"2021-05-25","institution_price_datetime":null,"institution_value":210.75,"iso_currency_code":"USD","quantity":5,"security_id":"abJamDazkgfvBkVGgnnLUWXoxnomp5up8llg4","unofficial_currency_code":null,"vested_quantity":null,"vested_value":null,"tax_lots":[]}],"securities":[{"close_price":0.011,"close_price_as_of":null,"cusip":null,"cfi_code":"OCASPS","figi":null,"industry":null,"institution_id":null,"institution_security_id":null,"is_cash_equivalent":false,"isin":null,"iso_currency_code":"USD","market_identifier_code":null,"name":"Nflx Feb 01'18 $355 Call","option_contract":null,"fixed_income":null,"proxy_security_id":null,"sector":null,"security_id":"8E4L9XLl6MudjEpwPAAgivmdZRdBPJuvMPlPb","sedol":null,"ticker_symbol":"NFLX180201C00355000","type":"derivative","subtype":"option","unofficial_currency_code":null,"update_datetime":null},{"close_price":42.15,"close_price_as_of":null,"cusip":null,"cfi_code":"CEOIES","figi":null,"fixed_income":null,"industry":null,"institution_id":null,"institution_security_id":null,"is_cash_equivalent":false,"isin":null,"iso_currency_code":"USD","market_identifier_code":null,"name":"iShares Inc MSCI Brazil","option_contract":null,"proxy_security_id":null,"sector":null,"security_id":"abJamDazkgfvBkVGgnnLUWXoxnomp5up8llg4","sedol":null,"ticker_symbol":"EWZ","type":"etf","subtype":"etf","unofficial_currency_code":null,"update_datetime":null}],"data_sources":{"numbers":"INSTITUTION","owners":"INSTITUTION","holdings":"INSTITUTION"},"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorInvestmentsAuthGetRequest"}}}}}},"/processor/investments/transactions/get":{"post":{"tags":["plaid"],"summary":"Get investment transactions data","externalDocs":{"url":"/api/processor-partners/#processorinvestmentstransactionsget"},"operationId":"processorInvestmentsTransactionsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorInvestmentsTransactionsGetResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"rz99ex9ZQotvnjXdgQLEsR81e3ArPgulVWjGj","apy":null,"balances":{"available":null,"current":23631.9805,"iso_currency_code":"USD","limit":null,"margin_loan_amount":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","transaction_datetime":null,"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","transaction_datetime":"2020-05-28T15:10:09Z","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}],"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","subtype":"mutual fund","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":"Miscellaneous","industry":"Investment Trusts or Mutual Funds","cfi_code":"CIOGES","figi":null,"option_contract":null,"fixed_income":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","subtype":"common stock","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":"Finance","industry":"Regional Banks","cfi_code":"ESVUFR","figi":null,"option_contract":null,"fixed_income":null}],"total_investment_transactions":2}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/processor/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for the investment account associated with the processor token.\n\nTransactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.\n\nDue to the potentially large number of investment transactions associated with the account, 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.\n\nNote that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). Instead, if transactions data is not ready when `/processor/investments/transactions/get` is first called, Plaid will wait for the data. For this reason, calling `/processor/investments/transactions/get` immediately after Link may take up to one to two minutes to return.\n\nData returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/processor/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/processor/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.\n\nTo receive Investments Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorInvestmentsTransactionsGetRequest"},"examples":{}}}}}},"/processor/transactions/get":{"post":{"tags":["plaid"],"summary":"Get transaction data","externalDocs":{"url":"/api/processor-partners/#processortransactionsget"},"operationId":"processorTransactionsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTransactionsGetResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":110.94,"current":110.94,"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"},"transactions":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":28.34,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"DoorDash","type":"marketplace","logo_url":"https://plaid-counterparty-logos.plaid.com/doordash_1.png","website":"doordash.com","entity_id":"YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm","confidence_level":"HIGH"},{"name":"Burger King","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","confidence_level":"VERY_HIGH"}],"date":"2023-09-28","datetime":"2023-09-28T15:10:09Z","authorized_date":"2023-09-27","authorized_datetime":"2023-09-27T08:01:58Z","location":{"address":null,"city":null,"region":null,"postal_code":null,"country":null,"lat":null,"lon":null,"store_number":null},"name":"Dd Doordash Burgerkin","merchant_name":"Burger King","merchant_entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","merchant_category_code":"5814","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"online","pending":true,"pending_transaction_id":null,"personal_finance_category":{"primary":"FOOD_AND_DRINK","detailed":"FOOD_AND_DRINK_FAST_FOOD","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png","transaction_id":"yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0","transaction_code":null,"transaction_type":"digital"},{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":72.1,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"Walmart","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","confidence_level":"VERY_HIGH"}],"date":"2023-09-24","datetime":"2023-09-24T11:01:01Z","authorized_date":"2023-09-22","authorized_datetime":"2023-09-22T10:34:50Z","location":{"address":"13425 Community Rd","city":"Poway","region":"CA","postal_code":"92064","country":"US","lat":32.959068,"lon":-117.037666,"store_number":"1700"},"name":"PURCHASE WM SUPERCENTER #1700","merchant_name":"Walmart","merchant_entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","merchant_category_code":"5411","running_balance":110.94,"logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"in store","pending":false,"pending_transaction_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc","personal_finance_category":{"primary":"GENERAL_MERCHANDISE","detailed":"GENERAL_MERCHANDISE_SUPERSTORES","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png","transaction_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","transaction_code":null,"transaction_type":"place"}],"total_transactions":2,"request_id":"Wvhy9PZHQLV8njG"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/processor/transactions/get` endpoint allows developers to receive user-authorized transaction data for credit, depository, and loan-type accounts (coverage may be limited). 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.\n\nTransactions 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 `/processor/transactions/get`.  For more details, see [Pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).\n\nDue to the potentially large number of transactions associated with a processor token, results are paginated. Manipulate the `count` and `offset` parameters in conjunction with the `total_transactions` response body field to fetch all available transactions.\n\nData returned by `/processor/transactions/get` will be the data available for the processor token 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. To force Plaid to check for new transactions, you can use the `/processor/transactions/refresh` endpoint.\n\nNote that data may not be immediately available to `/processor/transactions/get`. Plaid will begin to prepare transactions data upon Item link, if Link was initialized with `transactions`, or upon the first call to `/processor/transactions/get`, if it wasn't. If no transaction history is ready when `/processor/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.\n\nTo receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTransactionsGetRequest"},"examples":{}}}}}},"/processor/transactions/sync":{"post":{"tags":["plaid"],"summary":"Get incremental transaction updates on a processor token","externalDocs":{"url":"/api/processor-partners/#processortransactionssync"},"operationId":"processorTransactionsSync","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTransactionsSyncResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":110.94,"current":110.94,"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"},"added":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":72.1,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"Walmart","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","confidence_level":"VERY_HIGH"}],"date":"2023-09-24","datetime":"2023-09-24T11:01:01Z","authorized_date":"2023-09-22","authorized_datetime":"2023-09-22T10:34:50Z","location":{"address":"13425 Community Rd","city":"Poway","region":"CA","postal_code":"92064","country":"US","lat":32.959068,"lon":-117.037666,"store_number":"1700"},"name":"PURCHASE WM SUPERCENTER #1700","merchant_name":"Walmart","merchant_entity_id":"O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM","merchant_category_code":"5411","running_balance":110.94,"logo_url":"https://plaid-merchant-logos.plaid.com/walmart_1100.png","website":"walmart.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"in store","pending":false,"pending_transaction_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc","personal_finance_category":{"primary":"GENERAL_MERCHANDISE","detailed":"GENERAL_MERCHANDISE_SUPERSTORES","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png","transaction_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","transaction_code":null,"transaction_type":"place"}],"modified":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","account_owner":null,"amount":28.34,"iso_currency_code":"USD","unofficial_currency_code":null,"check_number":null,"counterparties":[{"name":"DoorDash","type":"marketplace","logo_url":"https://plaid-counterparty-logos.plaid.com/doordash_1.png","website":"doordash.com","entity_id":"YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm","confidence_level":"HIGH"},{"name":"Burger King","type":"merchant","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","confidence_level":"VERY_HIGH"}],"date":"2023-09-28","datetime":"2023-09-28T15:10:09Z","authorized_date":"2023-09-27","authorized_datetime":"2023-09-27T08:01:58Z","location":{"address":null,"city":null,"region":null,"postal_code":null,"country":null,"lat":null,"lon":null,"store_number":null},"name":"Dd Doordash Burgerkin","merchant_name":"Burger King","merchant_entity_id":"mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1","merchant_category_code":"5814","logo_url":"https://plaid-merchant-logos.plaid.com/burger_king_155.png","website":"burgerking.com","payment_meta":{"by_order_of":null,"payee":null,"payer":null,"payment_method":null,"payment_processor":null,"ppd_id":null,"reason":null,"reference_number":null},"payment_channel":"online","pending":true,"pending_transaction_id":null,"personal_finance_category":{"primary":"FOOD_AND_DRINK","detailed":"FOOD_AND_DRINK_FAST_FOOD","confidence_level":"VERY_HIGH"},"personal_finance_category_icon_url":"https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png","transaction_id":"yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0","transaction_code":null,"transaction_type":"digital"}],"removed":[{"transaction_id":"CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l","account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"}],"next_cursor":"tVUUL15lYQN5rBnfDIc1I8xudpGdIlw9nsgeXWvhOfkECvUeR663i3Dt1uf/94S8ASkitgLcIiOSqNwzzp+bh89kirazha5vuZHBb2ZA5NtCDkkV","has_more":false,"request_id":"45QSn","transactions_update_status":"HISTORICAL_UPDATE_COMPLETE"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"\nThe `/processor/transactions/sync` endpoint retrieves transactions associated with an Item and can fetch updates using a cursor to track which updates have already been seen.\n\nFor important instructions on integrating with `/processor/transactions/sync`, see the [Transactions integration overview](https://plaid.com/docs/transactions/#integration-overview). If you are migrating from an existing integration using `/processor/transactions/get`, see the [Transactions Sync migration guide](https://plaid.com/docs/transactions/sync-migration/).\n\nThis endpoint supports `credit`, `depository`, and `loan`-type accounts. For `investments` accounts, use `/processor/investments/transactions/get` instead.\n\nWhen 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 `/processor/transactions/sync` fails when retrieving a paginated update (e.g. due to 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.\n\nIf transactions data is not yet available for the Item, which can happen if the Item was not initialized with transactions during the `/link/token/create` call or if `/processor/transactions/sync` was called within a few seconds of Item creation, `/processor/transactions/sync` will return empty transactions arrays.\n\nPlaid typically checks for new transactions data between one and four times per day, depending on the institution. To find out when transactions were last updated for an Item, use the [Item Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger) or call `/item/get`; the `item.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 `/processor/transactions/refresh` endpoint.\n\nTo be alerted when new transactions are available, listen for the [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) webhook.\n\nTo receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTransactionsSyncRequest"},"examples":{}}}}}},"/processor/transactions/refresh":{"post":{"tags":["plaid"],"summary":"Refresh transaction data","externalDocs":{"url":"/api/processor-partners/#processortransactionsrefresh"},"operationId":"processorTransactionsRefresh","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTransactionsRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"1vwmF5TBQwiqfwP"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"`/processor/transactions/refresh` is an optional endpoint for users of the Transactions product. It initiates an on-demand extraction to fetch the newest transactions for a processor token. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Transactions-enabled processor token. If changes to transactions are discovered after calling `/processor/transactions/refresh`, Plaid will fire a webhook: for `/processor/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 `/processor/transactions/sync` and `/processor/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 `/processor/transactions/get` or `/processor/transactions/sync`. Note that the `/processor/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) non-depository accounts and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item that contains only non-depository accounts from that institution.\n\nAs this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.\n\n`/processor/transactions/refresh` is offered as an add-on to Transactions and has a separate [fee model](https://plaid.com/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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTransactionsRefreshRequest"}}}}}},"/processor/transactions/recurring/get":{"post":{"tags":["plaid"],"summary":"Fetch recurring transaction streams","externalDocs":{"url":"/api/processor-partners/#processortransactionsrecurringget"},"operationId":"processorTransactionsRecurringGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTransactionsRecurringGetResponse"},"examples":{"example-1":{"value":{"updated_datetime":"2022-05-01T00:00:00Z","inflow_streams":[{"account_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","stream_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc","category":null,"category_id":null,"description":"Platypus Payroll","merchant_name":null,"personal_finance_category":{"primary":"INCOME","detailed":"INCOME_WAGES","confidence_level":"UNKNOWN"},"first_date":"2022-02-28","last_date":"2022-04-30","predicted_next_date":"2022-05-15","frequency":"SEMI_MONTHLY","transaction_ids":["nkeaNrDGrhdo6c4qZWDA8ekuIPuJ4Avg5nKfw","EfC5ekksdy30KuNzad2tQupW8WIPwvjXGbGHL","ozfvj3FFgp6frbXKJGitsDzck5eWQH7zOJBYd","QvdDE8AqVWo3bkBZ7WvCd7LskxVix8Q74iMoK","uQozFPfMzibBouS9h9tz4CsyvFll17jKLdPAF"],"average_amount":{"amount":-800,"iso_currency_code":"USD","unofficial_currency_code":null},"last_amount":{"amount":-1000,"iso_currency_code":"USD","unofficial_currency_code":null},"is_active":true,"status":"MATURE","is_user_modified":false}],"outflow_streams":[{"account_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff","stream_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nd","category":null,"category_id":null,"description":"ConEd Bill Payment","merchant_name":"ConEd","personal_finance_category":{"primary":"RENT_AND_UTILITIES","detailed":"RENT_AND_UTILITIES_GAS_AND_ELECTRICITY","confidence_level":"UNKNOWN"},"first_date":"2022-02-04","last_date":"2022-05-02","predicted_next_date":"2022-06-02","frequency":"MONTHLY","transaction_ids":["yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0","HPDnUVgI5Pa0YQSl0rxwYRwVXeLyJXTWDAvpR","jEPoSfF8xzMClE9Ohj1he91QnvYoSdwg7IT8L","CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l"],"average_amount":{"amount":85,"iso_currency_code":"USD","unofficial_currency_code":null},"last_amount":{"amount":100,"iso_currency_code":"USD","unofficial_currency_code":null},"is_active":true,"status":"MATURE","is_user_modified":false},{"account_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff","stream_id":"SrBNJZDuUMweodmPmSOeOImwsWt53ZXfJQAfC","category":null,"category_id":null,"description":"Costco Annual Membership","merchant_name":"Costco","personal_finance_category":{"primary":"GENERAL_MERCHANDISE","detailed":"GENERAL_MERCHANDISE_SUPERSTORES","confidence_level":"UNKNOWN"},"first_date":"2022-01-23","last_date":"2023-01-22","predicted_next_date":"2024-01-22","frequency":"ANNUALLY","transaction_ids":["yqEBJ72cS4jFwcpxJcDuQr94oAQ1R1lMC33D4","Kz5Hm3cZCgpn4tMEKUGAGD6kAcxMBsEZDSwJJ"],"average_amount":{"amount":120,"iso_currency_code":"USD","unofficial_currency_code":null},"last_amount":{"amount":120,"iso_currency_code":"USD","unofficial_currency_code":null},"is_active":true,"status":"MATURE","is_user_modified":false}],"request_id":"tbFyCEqkU775ZGG"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/processor/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.\n\nThis 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.\n\nThis endpoint can only be called on a processor token that has already been initialized with Transactions (either during Link, by specifying it in `/link/token/create`; or after Link, by calling `/processor/transactions/get` or `/processor/transactions/sync`). Once all historical transactions have been fetched, call `/processor/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 `/processor/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 `/processor/transactions/get`, listen for the [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update) webhook.\n\nAfter the initial call, you can call the `/processor/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.\n\nTo receive Transactions webhooks for a processor token, set its webhook URL via the [`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate) endpoint.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTransactionsRecurringGetRequest"},"examples":{}}}}}},"/processor/signal/evaluate":{"post":{"tags":["plaid"],"summary":"Evaluate a planned ACH transaction","externalDocs":{"url":"/api/processor-partners/#processorsignalevaluate"},"operationId":"processorSignalEvaluate","description":"Use `/processor/signal/evaluate` to evaluate a planned ACH transaction to get a return risk assessment and additional risk signals.\n\n`/processor/signal/evaluate` uses Rulesets that are configured on the end customer's Dashboard and can be used with either the Signal Transaction Scores product or the Balance product. Which product is used will be determined by the `ruleset_key` that you provide. Note that only customer-configured rulesets work with this endpoint; as a processor partner, you cannot create or configure your own rulesets. For more details, see [Signal Rules](https://plaid.com/docs/signal/signal-rules/).\n\nNote: This request may have higher latency if Signal Transaction Scores is being added to an existing Item for the first time, or when using a Balance-only ruleset. This is because Plaid must communicate directly with the institution to request data.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorSignalEvaluateResponse"},"examples":{"example-1":{"value":{"ruleset":{"result":"ACCEPT","ruleset_key":"primary-ruleset","triggered_rule_details":{}},"scores":{"customer_initiated_return_risk":{"score":9},"bank_initiated_return_risk":{"score":72}},"core_attributes":{"available_balance":2000,"current_balance":2200},"warnings":[],"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorSignalEvaluateRequest"}}}}}},"/processor/signal/decision/report":{"post":{"tags":["plaid"],"summary":"Report whether you initiated an ACH transaction","externalDocs":{"url":"/api/processor-partners/#processorsignaldecisionreport"},"operationId":"processorSignalDecisionReport","description":"After you call `/processor/signal/evaluate`, Plaid will normally infer the outcome from your Signal Rules. However, if you are not using Signal Rules, if the Signal Rules outcome was `REVIEW`, or if you take a different action than the one determined by the Signal Rules, you will need to call `/processor/signal/decision/report`. This helps improve Signal Transaction Score accuracy for your account and is necessary for proper functioning of the rule performance and rule tuning capabilities in the Dashboard. If your effective decision changes after calling `/processor/signal/decision/report` (for example, you indicated that you accepted a transaction, but later on, your payment processor rejected it, so it was never initiated), call `/processor/signal/decision/report` again for the transaction to correct Plaid's records.\n\nIf you are using Plaid Transfer as your payment processor, you also do not need to call `/processor/signal/decision/report`, as Plaid can infer outcomes from your Transfer activity.\n\nIf using a Balance-only ruleset, this endpoint will not impact scores (Balance does not use scores), but is necessary to view accurate transaction outcomes and tune rule logic in the Dashboard.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorSignalDecisionReportResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorSignalDecisionReportRequest"}}}}}},"/processor/signal/return/report":{"post":{"tags":["plaid"],"summary":"Report a return for an ACH transaction","externalDocs":{"url":"/api/processor-partners/#processorsignalreturnreport"},"operationId":"processorSignalReturnReport","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.\n\nIf you are using the [Plaid Transfer product](https://plaid.com/docs/transfer) to create transfers, it is not necessary to use this endpoint, as Plaid already knows whether the transfer was returned.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorSignalReturnReportResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorSignalReturnReportRequest"}}}}}},"/processor/signal/prepare":{"post":{"tags":["plaid"],"summary":"Opt-in a processor token to Signal","externalDocs":{"url":"/api/processor-partners/#processorsignalprepare"},"operationId":"processorSignalPrepare","description":"When a processor token is not initialized with `signal`, call `/processor/signal/prepare` to opt-in that processor token to the data collection process, which will improve the accuracy of the Signal Transaction Score.\n\nIf this endpoint is called with a processor token that is already initialized with `signal`, it will return a 200 response and will not modify the processor token.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorSignalPrepareResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorSignalPrepareRequest"}}}}}},"/processor/bank_transfer/create":{"post":{"tags":["plaid"],"summary":"(Deprecated) Create a bank transfer as a processor","deprecated":true,"externalDocs":{"url":"/api/processor-partners/#bank_transfercreate"},"operationId":"processorBankTransferCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorBankTransferCreateResponse"},"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"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/processor/bank_transfer/create` endpoint to initiate a new bank transfer as a processor","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorBankTransferCreateRequest"}}}}}},"/processor/liabilities/get":{"post":{"tags":["plaid"],"summary":"Retrieve Liabilities data","externalDocs":{"url":"/api/processor-partners/#processorliabilitiesget"},"operationId":"processorLiabilitiesGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorLiabilitiesGetResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","apy":null,"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"},"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_issue_date":"2019-05-28","last_statement_balance":1708.77,"minimum_payment_amount":20,"next_payment_due_date":"2020-05-28","cash_advance_limit":500}],"mortgage":[],"student":[]},"request_id":"dTnnm60WgKGLnKL"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/processor/liabilities/get` endpoint returns various details about a loan or credit account. 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`.\n\nThe 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 `/processor/liabilities/get`.\n\nNote: This request may take some time to complete if `liabilities` was not specified as an initial product when creating the processor token. This is because Plaid must communicate directly with the institution to retrieve the additional data.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorLiabilitiesGetRequest"}}}}}},"/processor/identity/get":{"post":{"tags":["plaid"],"summary":"Retrieve Identity data","externalDocs":{"url":"/api/processor-partners/#processoridentityget"},"operationId":"processorIdentityGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorIdentityGetResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"XMGPJy4q1gsQoKd5z9R3tK8kJ9EWL8SdkgKMq","apy":0,"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":"2025550123","primary":false,"type":"home"},{"data":"1112224444","primary":false,"type":"work"},{"data":"1112225555","primary":false,"type":"mobile1"}]}],"subtype":"checking","type":"depository"},"request_id":"eOPkBl6t33veI2J"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorIdentityGetRequest"}}}}}},"/processor/identity/match":{"post":{"tags":["plaid"],"summary":"Retrieve identity match score","externalDocs":{"url":"/api/processor-partners/#processoridentitymatch"},"operationId":"processorIdentityMatch","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorIdentityMatchResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"balances":{"available":null,"current":null,"iso_currency_code":null,"limit":null,"unofficial_currency_code":null},"mask":"0000","name":"Plaid Checking","official_name":"Plaid Gold Standard 0% Interest Checking","legal_name":{"score":90,"is_nickname_match":true,"is_first_name_or_last_name_match":true,"is_business_name_detected":false},"phone_number":{"score":100},"email_address":{"score":100},"address":{"score":100,"is_postal_code_match":true},"subtype":"checking","type":"depository"},"request_id":"3nARps6TOYtbACO"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/processor/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.\n\nFields within the `balances` object will always be null when retrieved by `/processor/identity/match`. Instead, use the `/processor/balance/get` endpoint to retrieve balance data.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorIdentityMatchRequest"}}},"description":""}}},"/processor/balance/get":{"post":{"tags":["plaid"],"summary":"Retrieve Balance data","externalDocs":{"url":"/api/processor-partners/#processorbalanceget"},"operationId":"processorBalanceGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorBalanceGetResponse"},"examples":{"example-1":{"value":{"account":{"account_id":"QKKzevvp33HxPWpoqn6rI13BxW4awNSjnw4xv","apy":0,"balances":{"available":100,"current":110,"limit":null,"iso_currency_code":"USD","unofficial_currency_code":null},"mask":"0000","name":"Plaid Checking","official_name":"Plaid Gold Checking","subtype":"checking","type":"depository"},"request_id":"1zlMf"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/processor/balance/get` endpoint returns the real-time balance for the account associated with the processor token. 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. ","requestBody":{"required":true,"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`.\n\nThe 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.\n\nNote 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`."}}},"/item/webhook/update":{"post":{"tags":["plaid"],"summary":"Update Webhook URL","externalDocs":{"url":"/api/items/#itemwebhookupdate"},"operationId":"itemWebhookUpdate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemWebhookUpdateResponse"},"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","institution_name":"Royal Bank of Plaid","item_id":"DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"request_id":"vYK11LNTfRoAMbj"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemWebhookUpdateRequest"}}}}}},"/item/access_token/invalidate":{"post":{"tags":["plaid"],"summary":"Invalidate access_token","externalDocs":{"url":"/api/items/#itemaccess_tokeninvalidate"},"operationId":"itemAccessTokenInvalidate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemAccessTokenInvalidateResponse"},"examples":{"example-1":{"value":{"new_access_token":"access-sandbox-8ab976e6-64bc-4b38-98f7-731e7a349970","request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"By default, the `access_token` associated with an Item does not expire and should be stored in a persistent, secure manner.\n\nYou 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`.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemAccessTokenInvalidateRequest"}}}}}},"/beta/webhook_events/list":{"post":{"tags":["plaid"],"summary":"List webhook events","externalDocs":{"url":"/api/webhooks/webhook-events/#betawebhook_eventslist"},"operationId":"betaWebhookEventsList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaWebhookEventsListResponse"},"examples":{"example-1":{"value":{"webhook_events":[{"webhook_message_id":"whmsg_4tQ9pNzL2vBxYK","webhook_type":"ITEM","webhook_code":"PENDING_EXPIRATION","item_id":"abc123","sent_time":"2026-07-21T14:32:00Z","payload":{"webhook_type":"ITEM","webhook_code":"PENDING_EXPIRATION"},"destination_url":"https://client.example.com/webhook","delivery_status":"DELIVERED","last_http_status_code":200,"attempt_count":1,"last_attempt_time":"2026-07-21T14:32:01Z"}],"has_more":true,"next_cursor":"eyJzZW50X3RpbWUiOiIyMDI2LTA3LTIxVDE0OjMyOjAwWiIsIndlYmhvb2tfbWVzc2FnZV9pZCI6IndobXNnXzR0UTlwTnpMMnZCeFlLIn0","request_id":"4zlKapIkTm8p5KM"}},"pending-last-page":{"value":{"webhook_events":[{"webhook_message_id":"whmsg_8kLm2QwR9nCvYD","webhook_type":"ITEM","webhook_code":"ERROR","item_id":"abc123","sent_time":"2026-08-18T09:15:00Z","payload":{"webhook_type":"ITEM","webhook_code":"ERROR"},"destination_url":"https://client.example.com/webhook","delivery_status":"PENDING","last_http_status_code":null,"attempt_count":0,"last_attempt_time":null}],"has_more":false,"next_cursor":"eyJzZW50X3RpbWUiOiIyMDI2LTA4LTE4VDA5OjE1OjAwWiIsIndlYmhvb2tfbWVzc2FnZV9pZCI6IndobXNnXzhrTG0yUXdSOW5DdllEIiwic2Vlbl90aHJvdWdoX3RpbWUiOiIyMDI2LTA4LTE4VDA5OjE1OjAwWiJ9","request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"},"examples":{"cursor_expired":{"value":{"error_type":"INVALID_INPUT","error_code":"WEBHOOK_EVENTS_CURSOR_EXPIRED","error_message":"cursor is older than the 7-day webhook events retention window and can no longer be resolved. Restart pagination with a start_time within the last 7 days. Events sent before that window are no longer retained.","display_message":null,"status":400,"request_id":"4zlKapIkTm8p5KM"}},"start_time_out_of_range":{"value":{"error_type":"INVALID_INPUT","error_code":"WEBHOOK_EVENTS_START_TIME_OUT_OF_RANGE","error_message":"start_time is earlier than the 7-day webhook events retention window. Retry with a start_time within the last 7 days, or omit start_time to begin from the oldest retained event.","display_message":null,"status":400,"request_id":"4zlKapIkTm8p5KM"}},"invalid_field":{"value":{"error_type":"INVALID_REQUEST","error_code":"INVALID_FIELD","error_message":"cursor must be a properly formatted string","display_message":null,"status":400,"request_id":"4zlKapIkTm8p5KM"}}}}}}},"description":"`/beta/webhook_events/list` returns the webhooks Plaid sent to your account in the last 7 days, including webhooks that weren't delivered. Use it to recover webhooks your endpoint missed. Events are returned oldest first.\n\n`TRANSACTIONS` webhooks are not included. To recover Transactions updates, use [`/transactions/sync`](https://plaid.com/docs/api/products/transactions/#transactionssync).\n\nTo page through events, omit `cursor` on your first request, then pass the previous response's `next_cursor` on each later request. Store `next_cursor` even when `has_more` is `false`, so your next poll returns only newer events.\n\nFilters are optional. An event matches a filter if it matches any of the filter's values, and must match every filter you provide.\n\nEvents older than 7 days are not retained. If your cursor or `start_time` is older than that, the request fails with `WEBHOOK_EVENTS_CURSOR_EXPIRED` or `WEBHOOK_EVENTS_START_TIME_OUT_OF_RANGE`.\n\nThis endpoint is in beta and may change in backwards-incompatible ways. Send feedback to building@plaid.com.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaWebhookEventsListRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","count":100}},"filtered":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","webhook_types":["ITEM","AUTH"],"delivery_statuses":["FAILED"],"count":100}},"cursor-continuation":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","cursor":"eyJzZW50X3RpbWUiOiIyMDI2LTA3LTIxVDE0OjMyOjAwWiIsIndlYmhvb2tfbWVzc2FnZV9pZCI6IndobXNnXzR0UTlwTnpMMnZCeFlLIn0"}}}}}}}},"/webhook_verification_key/get":{"post":{"tags":["plaid"],"summary":"Get webhook verification key","externalDocs":{"url":"/api/webhooks/webhook-verification/#get-webhook-verification-key"},"operationId":"webhookVerificationKeyGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookVerificationKeyGetResponse"},"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"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nThe `/webhook_verification_key/get` endpoint provides a JSON Web Key (JWK) that can be used to verify a JWT.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookVerificationKeyGetRequest"}}},"description":""}}},"/liabilities/get":{"post":{"tags":["plaid"],"summary":"Retrieve Liabilities data","externalDocs":{"url":"/api/products/liabilities/#liabilitiesget"},"operationId":"liabilitiesGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiabilitiesGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","apy":0,"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","apy":null,"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","apy":null,"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","apy":null,"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"},{"account_id":"c0cTGbrDXN3xiGLGUNI9LGwxrOGjakxtWTgQV","apy":null,"balances":{"available":null,"current":18250,"iso_currency_code":"USD","limit":null,"unofficial_currency_code":null},"mask":"9999","name":"Plaid Auto Loan","official_name":null,"subtype":"auto","type":"loan"},{"account_id":"ufQuuYHpSjhuk9TKIQTnDWlFVDIR5nWSynuQD","apy":null,"balances":{"available":76000,"current":24000,"iso_currency_code":"USD","limit":100000,"unofficial_currency_code":null},"mask":"1111","name":"Plaid Home Equity Line of Credit","official_name":null,"subtype":"home equity","type":"loan"}],"item":{"available_products":["balance","investments"],"billed_products":["assets","auth","identity","liabilities","transactions"],"consent_expiration_time":null,"error":null,"institution_id":"ins_56","institution_name":"Chase","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"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_issue_date":"2019-05-28","last_statement_balance":1708.77,"minimum_payment_amount":20,"next_payment_due_date":"2020-05-28","cash_advance_limit":500}],"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","last_statement_balance":1708.77,"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":null,"payments_made":null,"payments_remaining":null},"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}],"loan":[{"account_id":"c0cTGbrDXN3xiGLGUNI9LGwxrOGjakxtWTgQV","account_number":"8943210074","interest_rate":{"percentage":6.49,"type":"fixed"},"principal_balance":18250,"origination_principal_amount":32000,"origination_date":"2023-09-01","loan_term_months":72,"maturity_date":"2029-09-01","payment_count":72,"payment_frequency":"monthly","next_payment_amount":525.4,"next_payment_due_date":"2026-07-01","last_payment_amount":525.4,"last_payment_date":"2026-06-01","payoff_amount":18190.25,"ytd_interest_paid":612.18,"compounding_period":"monthly"}],"line_of_credit":[{"account_id":"ufQuuYHpSjhuk9TKIQTnDWlFVDIR5nWSynuQD","interest_rate":{"percentage":8.25,"type":"variable"},"credit_limit":100000,"available_credit":76000,"principal_balance":24000,"minimum_payment_amount":180,"next_payment_amount":180,"next_payment_due_date":"2026-07-05","last_payment_amount":180,"last_payment_date":"2026-06-05","last_statement_balance":24000,"last_statement_issue_date":"2026-06-01","past_due_amount":0,"finance_charges":162.5,"draw_period_end_date":"2032-03-10","aprs":[{"apr_percentage":8.25,"apr_type":"purchase_apr","balance_subject_to_apr":null,"interest_charge_amount":null}]}]},"request_id":"dTnnm60WgKGLnKL"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiabilitiesGetRequest"}}}},"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. Supported account types are account type `credit` with account subtype `credit card` or `paypal`; and account type `loan` with account subtype `auto`, `commercial`, `commercial line of credit`, `consumer`, `home equity`, `home equity loan`, `line of credit`, `loan`, `mortgage`, or `student`. 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/link/#linktokencreate).\n\nTo receive the expanded loan subtype values, use plaid-go 10.1.0 or later, plaid-java 44.0.0 or later, plaid-python 8.3.0 or later, or plaid-ruby 14.4.0 or later. Earlier client library versions may receive `loan` instead of `home equity loan` and `line of credit` instead of `commercial line of credit`.\n\nThe 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`."}},"/payment_initiation/recipient/create":{"post":{"tags":["plaid"],"summary":"Create payment recipient","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationrecipientcreate"},"operationId":"paymentInitiationRecipientCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationRecipientCreateResponse"},"examples":{"example-1":{"value":{"recipient_id":"recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6","request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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 Payments Area (SEPA) or a non-Eurozone country [supported](https://support.plaid.com/hc/en-us/articles/27895826947735-What-Plaid-products-are-supported-in-each-country-and-region) by Plaid. For a standing order (recurring) payment, the recipient must be in the UK.\n\nIt is recommended to use `bacs` in the UK and `iban` in EU.\n\nThe endpoint is idempotent: if a developer has already made a request with the same payment details, Plaid will return the same `recipient_id`.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationRecipientCreateRequest"}}}}}},"/payment_initiation/payment/reverse":{"post":{"tags":["plaid"],"summary":"Reverse an existing payment","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationpaymentreverse"},"operationId":"paymentInitiationPaymentReverse","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentReverseResponse"},"examples":{"example-1":{"value":{"refund_id":"wallet-transaction-id-production-c5f8cd31-6cae-4cad-9b0d-f7c10be9cc4b","request_id":"HtlKzBX0fMeF7mU","status":"INITIATED"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Reverse a settled payment from a Plaid virtual account.\n\nThe original payment must be in a settled state to be refunded.\nTo refund partially, specify the amount as part of the request.\nIf the amount is not specified, the refund amount will be equal to all\nof the remaining payment amount that has not been refunded yet.\n\nThe refund will go back to the source account that initiated the payment.\nThe original payment must have been initiated to a Plaid virtual account\nso that this account can be used to initiate the refund.\n\nProviding counterparty information such as date of birth and address increases\nthe likelihood of refund being successful without human intervention.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentReverseRequest"}}}}}},"/payment_initiation/recipient/get":{"post":{"tags":["plaid"],"summary":"Get payment recipient","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationrecipientget"},"operationId":"paymentInitiationRecipientGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationRecipientGetResponse"},"examples":{"example-1":{"value":{"recipient_id":"recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6","name":"Wonder Wallet","iban":"GB29NWBK60161331926819","address":{"street":["96 Guild Street","9th Floor"],"city":"London","postal_code":"SE14 8JW","country":"GB"},"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Get details about a payment recipient you have previously created.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationRecipientGetRequest"}}}}}},"/payment_initiation/recipient/list":{"post":{"tags":["plaid"],"summary":"List payment recipients","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationrecipientlist"},"operationId":"paymentInitiationRecipientList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationRecipientListResponse"},"examples":{"example-1":{"value":{"recipients":[{"recipient_id":"recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6","name":"Wonder Wallet","iban":"GB29NWBK60161331926819","address":{"street":["96 Guild Street","9th Floor"],"city":"London","postal_code":"SE14 8JW","country":"GB"}}],"next_cursor":"YWJjMTIzIT8kKiYoKSctPUE","request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/payment_initiation/recipient/list` endpoint lists the payment recipients that you have previously created.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationRecipientListRequest"}}}}}},"/payment_initiation/payment/create":{"post":{"tags":["plaid"],"summary":"Create a payment","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationpaymentcreate"},"operationId":"paymentInitiationPaymentCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentCreateResponse"},"examples":{"example-1":{"value":{"payment_id":"payment-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3","status":"PAYMENT_STATUS_INPUT_NEEDED","request_id":"4ciYVmesrySiUAB"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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 EUR, GBP, or another 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.\n\nStanding 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentCreateRequest"}}},"description":""}}},"/payment_initiation/payment/token/create":{"post":{"tags":["plaid"],"deprecated":true,"summary":"Create payment token","externalDocs":{"url":"/link/maintain-legacy-integration/#creating-a-payment-token"},"operationId":"createPaymentToken","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentTokenCreateResponse"},"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"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nThe `/payment_initiation/payment/token/create` endpoint 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentTokenCreateRequest"}}}}}},"/payment_initiation/consent/create":{"post":{"tags":["plaid"],"summary":"Create payment consent","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationconsentcreate"},"operationId":"paymentInitiationConsentCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationConsentCreateResponse"},"examples":{"example-1":{"value":{"consent_id":"payment-consent-id-production-feca8a7a-5491-4444-9999-f3062bb735d3","status":"UNAUTHORISED","request_id":"4ciYmmesdqSiUAB"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nConsents can be limited in time and scope, and have constraints that describe limitations for payments.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationConsentCreateRequest"}}}}}},"/payment_initiation/consent/get":{"post":{"tags":["plaid"],"summary":"Get payment consent","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationconsentget"},"operationId":"paymentInitiationConsentGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationConsentGetResponse"},"examples":{"example-1":{"value":{"request_id":"4ciYuuesdqSiUAB","consent_id":"payment-consent-id-production-feca8a7a-5491-4aef-9298-f3062bb735d3","status":"AUTHORISED","created_at":"2021-10-30T15:26:48Z","recipient_id":"recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6","reference":"ref00001","constraints":{"valid_date_time":{"from":"2021-12-25T11:12:13Z","to":"2022-12-31T15:26:48Z"},"max_payment_amount":{"currency":"GBP","value":100},"periodic_amounts":[{"amount":{"currency":"GBP","value":300},"interval":"WEEK","alignment":"CALENDAR"}]},"type":"SWEEPING"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationConsentGetRequest"}}}}}},"/payment_initiation/consent/revoke":{"post":{"tags":["plaid"],"summary":"Revoke payment consent","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationconsentrevoke"},"operationId":"paymentInitiationConsentRevoke","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationConsentRevokeResponse"},"examples":{"example-1":{"value":{"request_id":"4ciYaaesdqSiUAB"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationConsentRevokeRequest"}}}}}},"/payment_initiation/consent/payment/execute":{"post":{"tags":["plaid"],"summary":"Execute a single payment using consent","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationconsentpaymentexecute"},"operationId":"paymentInitiationConsentPaymentExecute","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationConsentPaymentExecuteResponse"},"examples":{"example-1":{"value":{"payment_id":"payment-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3","request_id":"4ciYccesdqSiUAB","status":"PAYMENT_STATUS_INITIATED"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/payment_initiation/consent/payment/execute` endpoint can be used to execute payments using payment consent.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationConsentPaymentExecuteRequest"}}}}}},"/sandbox/item/reset_login":{"post":{"tags":["plaid"],"summary":"Force a Sandbox Item into an error state","externalDocs":{"url":"/api/sandbox/#sandboxitemreset_login"},"operationId":"sandboxItemResetLogin","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxItemResetLoginResponse"},"examples":{"example-1":{"value":{"reset_login":true,"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\nIn the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxItemResetLoginRequest"}}}}}},"/sandbox/item/application/seed":{"post":{"tags":["plaid"],"summary":"Seed a connected application for a Permissions Manager sandbox item","operationId":"sandboxItemApplicationSeed","description":"`/sandbox/item/application/seed` creates a test connected application on an existing Permissions Manager Item's login. The seeded application will appear in subsequent calls to `/item/application/list`.\n\nThe `access_token` must belong to a Permissions Manager Item created via `/item/import` in Sandbox. The `application_id` identifies the application to seed as a connected app. To disconnect a seeded application, use `/item/application/unlink`.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxItemApplicationSeedResponse"},"examples":{"example-1":{"value":{"item_id":"9xGbdRaG3gianaxoELGpILQ7drV3RnclMGdKJ","request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxItemApplicationSeedRequest"}}}}}},"/sandbox/fdx/consent/seed":{"post":{"tags":["plaid"],"summary":"Seed an FDX consent grant for a sandbox data partner","operationId":"sandboxFdxConsentSeed","description":"`/sandbox/fdx/consent/seed` creates a test FDX consent grant (and a backing Item) for a data provider's customer in Sandbox, so the FDX Consent API endpoints can be exercised end-to-end without a live data provider connection.\n\n`customer_id` is the data provider's identifier for the end user and `application_id` identifies the data recipient application the consent is granted to; both are required. Optionally provide `consent_id` (a UUIDv4) to control the seeded grant's identifier; one is generated when omitted. The seeded grant is returned by `/fdx/consents` and `/fdx/consents/{consentId}`, and can be revoked via `/fdx/consents/{consentId}/revocation`.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxFdxConsentSeedResponse"},"examples":{"example-1":{"value":{"consent_id":"9cfe04b5-6d04-45ce-897e-45f2580bf013","request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxFdxConsentSeedRequest"}}}}}},"/sandbox/item/set_verification_status":{"post":{"tags":["plaid"],"summary":"Set verification status for Sandbox account","externalDocs":{"url":"/api/sandbox/#sandboxitemset_verification_status"},"operationId":"sandboxItemSetVerificationStatus","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxItemSetVerificationStatusResponse"},"examples":{"example-1":{"value":{"request_id":"1vwmF5TBQwiqfwP"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/sandbox/item/set_verification_status` endpoint can be used to change the verification status of an Item in the Sandbox in order to simulate the Automated Micro-deposit flow.\n\nFor more information on testing Automated Micro-deposits in Sandbox, see [Auth full coverage testing](https://plaid.com/docs/auth/coverage/testing#).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxItemSetVerificationStatusRequest"}}}}}},"/sandbox/user/reset_login":{"post":{"tags":["plaid"],"summary":"Force item(s) for a Sandbox User into an error state","externalDocs":{"url":"/api/sandbox/#sandboxuserreset_login"},"operationId":"sandboxUserResetLogin","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxUserResetLoginResponse"},"examples":{"example-1":{"value":{"request_id":"n7XQnv8ozwyFPBC"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"`/sandbox/user/reset_login` functions the same as `/sandbox/item/reset_login`, but will modify Items related to a User. This endpoint forces each 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/user/reset_login`, you can then use Plaid Link update mode to restore Items associated with the User 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.\nIn the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error state automatically after 30 days, even if this endpoint is not called.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxUserResetLoginRequest"}}}}}},"/item/public_token/exchange":{"post":{"tags":["plaid"],"summary":"Exchange public token for an access token","externalDocs":{"url":"/api/items/#itempublic_tokenexchange"},"operationId":"itemPublicTokenExchange","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["item:write"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemPublicTokenExchangeResponse"},"examples":{"example-1":{"value":{"access_token":"access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6","item_id":"M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op","request_id":"Aim3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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`.\n\nThe 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemPublicTokenExchangeRequest"}}}}}},"/item/public_token/create":{"post":{"tags":["plaid"],"summary":"(Deprecated) Create public token","deprecated":true,"externalDocs":{"url":"/api/link/#itempublic_tokencreate"},"operationId":"itemCreatePublicToken","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemPublicTokenCreateResponse"},"examples":{"example-1":{"value":{"public_token":"public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d","request_id":"Aim3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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).\n\nIf 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`.\n\nA `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.\n\nThe `/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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemPublicTokenCreateRequest"}}}}}},"/user/create":{"post":{"tags":["plaid"],"summary":"Create user","externalDocs":{"url":"/api/users/#usercreate"},"operationId":"userCreate","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["user:write"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreateResponse"},"examples":{"example-1":{"value":{"user_id":"usr_9nSp2KuZ2x4JDw","request_id":"Aim3b"}},"example-2":{"value":{"user_token":"user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","request_id":"Aim3b"}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreateResponse"},"examples":{"example-1":{"value":{"user_id":"usr_9nSp2KuZ2x4JDw","request_id":"Aim3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"For Plaid products and flows that use the user object, `/user/create` provides you a single token to access all data associated with the user. You must call this endpoint before calling `/link/token/create` if you are using any of the following: Plaid Check, Income Verification, Multi-Item Link, or Plaid Protect (Identity). If you are using Plaid Protect Link session scoring, you do not need to call `/user/create` first; Plaid will resolve or create the user when `user.client_user_id` is provided in `/link/token/create`.\nFor customers who began using this endpoint on or after December 10, 2025, this endpoint takes a `client_user_id` and an `identity` object and will return a `user_id`. For customers who began using it before that date, the endpoint takes a `client_user_id` and a `consumer_report_user_identity` object and will return a `user_token` and `user_id`. For more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis).\nIn order to create a Plaid Check Consumer Report for a user, or to use Payment Initiation, Variable Recurring Payments, or Virtual Accounts, the `identity` (new) or `consumer_report_user_identity` (legacy) object must be present. If it is not provided during the `/user/create` call, it can be added later by calling `/user/update`.\n\n\nWhen using Payment Initiation, Variable Recurring Payments, or Virtual Accounts, the `identity` object must contain a `name` and either an email address or a phone number.\n\n\nIn order to generate a Plaid Check Consumer Report, the following `identity` fields, at minimum, are required and must be non-empty: `name`, `date_of_birth`, `emails`, `phone_numbers`, and `addresses` (with at least one email, phone number, and address designated as `primary`). Plaid Check Consumer Reports can only be created for US-based users; the user's address country must be `US`. If creating a report for sharing with a GSE such as Fannie or Freddie, the user's full SSN must be provided via the `id_numbers` field. Providing at least a partial SSN is also strongly recommended for all use cases, since it improves the accuracy of matching user records during compliance processes such as file disclosure, dispute, or security freeze requests.\n\n\nWhen using Plaid Protect, it is highly recommended that you provide an `identity` object to better identify and block fraud across your Link sessions.\n\n\nPlaid will normalize identity fields before storing them and utilize the same identity across different user-based products.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreateRequest"}}}},"parameters":[{"$ref":"#/components/parameters/PlaidNewUserApiEnabledHeader"}]}},"/user/get":{"post":{"tags":["plaid"],"summary":"Retrieve user identity and information","externalDocs":{"url":"/api/users/#userget"},"operationId":"userGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGetResponse"},"examples":{"example-1":{"value":{"user_id":"usr_8c6ZbDAYjacUXF","client_user_id":"uid_12345","created_at":"2019-02-15T15:51:39Z","updated_at":"2019-02-15T15:52:39Z","request_id":"m8MDnv9okwxFNBV","identity":{"name":{"given_name":"Alice","family_name":"Johnson"},"date_of_birth":"1988-07-22","emails":[{"data":"alice.johnson@example.com","primary":true},{"data":"alice.j@workmail.com","primary":false}],"phone_numbers":[{"data":"+15551234567","primary":true},{"data":"+15559876543","primary":false}],"addresses":[{"street_1":"123 Main St","street_2":"Apt 4B","city":"Anytown","region":"CA","country":"US","postal_code":"90210","primary":true}],"id_numbers":[{"value":"1234","type":"us_ssn_last_4"}]}}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Get user details using a `user_id`. This endpoint only supports users that were created on the new user API flow, without a `user_token`. For more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGetRequest"}}}},"parameters":[{"$ref":"#/components/parameters/PlaidNewUserApiEnabledHeader"}]}},"/user/identity/remove":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Remove user identity data","externalDocs":{"url":"/api/users/#useridentityremove"},"operationId":"userIdentityRemove","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIdentityRemoveResponse"},"examples":{"example-1":{"value":{"request_id":"Aim3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint allows customers to explicitly purge identity/PII data provided to Plaid for a given user. This is not exposed to customers by default, as it is meant for special scenarios or requests, but Plaid is obligated to enable customers to delete PII provided to us.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIdentityRemoveRequest"}}}},"parameters":[{"$ref":"#/components/parameters/PlaidNewUserApiEnabledHeader"}]}},"/user/update":{"post":{"tags":["plaid"],"summary":"Update user information","externalDocs":{"url":"/api/users/#userupdate"},"operationId":"userUpdate","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["user:write"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateResponse"},"examples":{"example-1":{"value":{"request_id":"Aim3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint updates user information for an existing `user_id` or `user_token`. If an existing `user_id` or `user_token` is missing fields required for a given use case (e.g. creating a Consumer Report) use `/user/update` to add values for those fields.\n\nIdentity updates use merge semantics: provided fields overwrite existing ones; omitted fields remain unchanged.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateRequest"}}}},"parameters":[{"$ref":"#/components/parameters/PlaidNewUserApiEnabledHeader"}]}},"/user/remove":{"post":{"tags":["plaid"],"summary":"Remove user","externalDocs":{"url":"/api/users/#userremove"},"operationId":"userRemove","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRemoveResponse"},"examples":{"example-1":{"value":{"request_id":"Aim3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"`/user/remove` deletes a `user_id` or `user_token` and associated information, including any Items associated with the user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRemoveRequest"}}}},"parameters":[{"$ref":"#/components/parameters/PlaidNewUserApiEnabledHeader"}]}},"/user/products/terminate":{"post":{"tags":["plaid"],"summary":"Terminate products for a user","externalDocs":{"url":"/api/users/#userproductsterminate"},"operationId":"userProductsTerminate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProductsTerminateResponse"},"examples":{"example-1":{"value":{"request_id":"TxlxEcCmP9HTTT"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Terminates Financial Management, Plaid Protect, and Servicing products associated with a `user_id`. Use this endpoint when offboarding a user or ending their subscriptions. Item access tokens are not required.\n\nFor Financial Management products, including Transactions, Liabilities, and Investments, this endpoint removes each associated Item that contains one of these products. Removal makes the Item inaccessible, initiates deletion of its product data, and terminates its per-Item subscription billing. The entire Item is removed, including access to any other products on that Item. To connect the accounts again, the user must complete Link to create a new Item.\n\nIf the user has at least one associated Item and every associated Item contains a Financial Management product, this endpoint also removes the associated Plaid user. The removed `user_id` can no longer be used to access the user.\n\nFor Plaid Protect, this endpoint terminates Protect products. For Servicing, it cancels the subscription and preserves CRA Items and historical data for future report requests.\n\nTo learn how terminating products affects billing, see [Billing](https://plaid.com/docs/account/billing/#subscription-fee).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProductsTerminateRequest"},"examples":{"example-1":{"value":{"user_id":"usr_8c3ZbDBYjaqUXZ","reason_code":"CONSUMER_ACCOUNT_CLOSED","reason_note":"User closed account with client."}},"example-2":{"value":{"user_id":"usr_8c3ZbDBYjaqUXZ","reason_code":"CONSUMER_LOAN_PAID_OFF","reason_note":"Consumer loan has been paid in full."}}}}}}}},"/user/transfer/limits/get":{"post":{"tags":["plaid"],"summary":"Retrieve a user's transfer limits","externalDocs":{"url":"/api/users/#usertransferlimitsget"},"description":"Retrieve the user's current Guaranteed ACH per-transaction limit and configured daily, weekly, and monthly ceilings. Amounts are returned as decimal strings in dollars with two decimal places and an ISO currency code. Access to this endpoint must be enabled for your client.","operationId":"userTransferLimitsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTransferLimitsGetResponse"},"examples":{"example-1":{"value":{"guarantee_limits":{"transaction_limit":{"value":"150.25","iso_currency_code":"USD"},"daily_limit":{"value":"5000.00","iso_currency_code":"USD"},"weekly_limit":{"value":"10000.00","iso_currency_code":"USD"},"monthly_limit":null},"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTransferLimitsGetRequest"}}}}}},"/user/items/get":{"post":{"tags":["plaid"],"summary":"Get Items associated with a User","externalDocs":{"url":"/api/users/#useritemsget"},"operationId":"userItemsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserItemsGetResponse"},"examples":{"example-1":{"value":{"items":[{"available_products":["balance","auth"],"billed_products":["identity","transactions"],"error":null,"institution_id":"ins_109508","institution_name":"First Platypus Bank","item_id":"Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr","update_type":"background","webhook":"https://plaid.com/example/hook","consent_expiration_time":null},{"available_products":["balance","identity","payment_initiation","transactions"],"billed_products":["assets","auth"],"error":null,"institution_id":"ins_109508","institution_name":"First Platypus Bank","item_id":"DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6","update_type":"background","webhook":"https://plaid.com/example/hook","consent_expiration_time":null}],"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Returns Items associated with a `user_id`, along with their corresponding statuses. Plaid associates an Item with a User when it has been successfully connected within a Link session initialized with that `user_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserItemsGetRequest"}}}}}},"/user/items/associate":{"post":{"tags":["plaid"],"summary":"Associate Items to a User","externalDocs":{"url":"/api/users/#useritemsassociate"},"operationId":"userItemsAssociate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserItemsAssociateResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Associates Items with a `user_id`. If an Item is already associated with a different `user_id`, calling this endpoint will disassociate it from that User and reassociate it with the target User instead. A single request can associate up to 100 Items.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserItemsAssociateRequest"}}}}}},"/user/items/remove":{"post":{"tags":["plaid"],"summary":"Remove Items from a User","externalDocs":{"url":"/api/users/#useritemsremove"},"operationId":"userItemsRemove","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserItemsRemoveResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Removes specific Items associated with a user. It is equivalent to calling `/item/remove` on each Item individually, but supports use cases (such as Plaid Check) where access tokens are not available. All specified Items must belong to the user or the entire operation fails. Similar to `/item/remove`, this deletes Item product data and terminates billing on the Item's products. Once removed, Items cannot be reconnected without going through Link again.\nThis endpoint is not intended to remove all data for a user, as it will only remove Items and no other data for the user. If the user has any user-based recurring subscription products (Financial Management, Plaid Protect, or CRA Servicing) and is deleting their account with your product, also call `/user/products/terminate` to end those subscriptions; per-Item billing is already terminated by this endpoint. For a user initiated data deletion request, see the [Consumer Service Center](https://plaid.com/check/consumer-service-center/) to revoke access to data.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserItemsRemoveRequest"}}}}}},"/user/third_party_token/create":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Create a third-party user token","externalDocs":{"url":"/api/users/#userthirdpartytokencreate"},"operationId":"userThirdPartyTokenCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserThirdPartyTokenCreateResponse"},"examples":{"example-1":{"value":{"request_id":"Aim3b","third_party_user_token":"third-party-user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint is used to create a third-party user token. This token can be shared with and used by a specified third-party client to access data associated with the user through supported endpoints.\n\nEnsure you store the `third_party_user_token` along with the `user_token` and `third_party_client_id`, as it is not possible to retrieve a previously created `third_party_user_token`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserThirdPartyTokenCreateRequest"}}}}}},"/user/third_party_token/remove":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Remove a third-party user token","externalDocs":{"url":"/api/users/#userthirdpartytokenremove"},"operationId":"userThirdPartyTokenRemove","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserThirdPartyTokenRemoveResponse"},"examples":{"example-1":{"value":{"request_id":"Aim3b","removed":true}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint is used to delete a third-party user token. Once removed, the token can no longer be used to access data associated with the user.\n\nAny subsequent calls to retrieve information using the same third-party user token will result in an error stating the third-party user token does not exist.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserThirdPartyTokenRemoveRequest"}}}}}},"/credit/sessions/get":{"post":{"tags":["plaid"],"summary":"Retrieve Link sessions for your user","externalDocs":{"url":"/api/products/income/#creditsessionsget"},"operationId":"creditSessionsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditSessionsGetResponse"},"examples":{"example-1":{"value":{"request_id":"Aim3b","sessions":[{"link_session_id":"356dbb28-7f98-44d1-8e6d-0cec580f3171","results":{"item_add_results":[{"public_token":"public-sandbox-5c224a01-8314-4491-a06f-39e193d5cddc","item_id":"M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op","institution_id":"ins_56"}],"bank_income_results":[{"status":"APPROVED","item_id":"M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op","institution_id":"ins_56"}]},"session_start_time":"2022-09-30T23:40:30.946225Z"},{"link_session_id":"f742cae8-31e4-49cc-a621-6cafbdb26fb9","results":{"payroll_income_results":[{"num_paystubs_retrieved":2,"num_w2s_retrieved":1,"institution_id":"ins_92"}]},"session_start_time":"2022-09-26T23:40:30.946225Z"}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nThese 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).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditSessionsGetRequest"}}}}}},"/payment_initiation/payment/get":{"post":{"tags":["plaid"],"summary":"Get payment details","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationpaymentget"},"operationId":"paymentInitiationPaymentGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentGetResponse"},"examples":{"example-1":{"value":{"payment_id":"payment-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3","reference":"Account Funding 99744","amount":{"currency":"GBP","value":100},"status":"PAYMENT_STATUS_INITIATED","last_status_update":"2019-11-06T21:10:52Z","recipient_id":"recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6","bacs":{"account":"31926819","sort_code":"601613"},"end_to_end_id":"sptch8cde8390bfd363888","iban":null,"institution_id":null,"request_id":"aEAQmewMzlVa1k6"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nPolling for status updates in Production is highly discouraged. Repeatedly calling `/payment_initiation/payment/get` to check a payment's status is unreliable and may trigger API rate limits. Only the `PAYMENT_STATUS_UPDATE` webhook should be used to receive real-time status updates in Production.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentGetRequest"}}},"description":""}}},"/payment_initiation/payment/list":{"post":{"tags":["plaid"],"summary":"List payments","externalDocs":{"url":"/api/products/payment-initiation/#payment_initiationpaymentlist"},"operationId":"paymentInitiationPaymentList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentListResponse"},"examples":{"example-1":{"value":{"payments":[{"payment_id":"payment-id-sandbox-feca8a7a-5581-4aef-9297-f3062bb735d3","reference":"Account Funding 99744","amount":{"currency":"GBP","value":100},"status":"PAYMENT_STATUS_EXECUTED","last_status_update":"2019-11-06T21:10:52Z","recipient_id":"recipient-id-sandbox-9b6b4679-914b-445b-9450-efbdb80296f6","bacs":{"account":"31926819","sort_code":"601613"},"iban":null,"end_to_end_id":"sptch8cde8390bfd363888"}],"next_cursor":"2020-01-01T00:00:00Z","request_id":"aEAQmewMzlVa1k6"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiationPaymentListRequest"}}}},"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."}},"/investments/holdings/get":{"post":{"tags":["plaid"],"summary":"Get Investment holdings","externalDocs":{"url":"/api/products/investments/#investmentsholdingsget"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentsHoldingsGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"5Bvpj4QknlhVWk7GygpwfVKdd133GoCxB814g","apy":1.85,"balances":{"available":43200,"current":43200,"iso_currency_code":"USD","limit":null,"margin_loan_amount":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","apy":null,"balances":{"available":null,"current":110.01,"iso_currency_code":"USD","limit":null,"margin_loan_amount":null,"unofficial_currency_code":null},"mask":"5555","name":"Plaid IRA","official_name":null,"subtype":"ira","type":"investment"},{"account_id":"k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm","apy":null,"balances":{"available":null,"current":24580.0605,"iso_currency_code":"USD","limit":null,"margin_loan_amount":null,"unofficial_currency_code":null},"mask":"6666","name":"Plaid 401k","official_name":null,"subtype":"401k","type":"investment"},{"account_id":"ax0xgOBYRAIqOOjeLZr0iZBb8r6K88HZXpvmq","apy":null,"balances":{"available":48200.03,"current":48200.03,"iso_currency_code":"USD","limit":null,"margin_loan_amount":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":0.01,"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,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"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,"vested_quantity":1,"vested_value":2.11,"tax_lots":[]},{"account_id":"k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm","cost_basis":20,"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,"vested_quantity":null,"vested_value":null,"tax_lots":[{"institution_lot_id":"1","original_purchase_datetime":"2021-01-15T00:00:00Z","quantity":1,"purchase_price":9.5,"cost_basis":9.5,"current_value":10.42,"position_type":"LONG"},{"institution_lot_id":"2","original_purchase_datetime":"2021-03-22T00:00:00Z","quantity":1,"purchase_price":10.5,"cost_basis":10.5,"current_value":10.42,"position_type":"LONG"}]},{"account_id":"JqMLm4rJwpF6gMPJwBqdh9ZjjPvvpDcb7kDK1","cost_basis":100,"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,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"account_id":"k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm","cost_basis":542.041,"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,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"account_id":"k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm","cost_basis":1500.75,"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,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"account_id":"k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm","cost_basis":948.08,"institution_price":94.808,"institution_price_as_of":"2021-04-13","institution_price_datetime":null,"institution_value":948.08,"iso_currency_code":"USD","quantity":10,"security_id":"Lxe4yz4XQEtwb2YArO7RFMpPDvPxy7FALRyea","unofficial_currency_code":null,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"account_id":"k67E4xKvMlhmleEa4pg9hlwGGNnnEeixPolGm","cost_basis":12345.67,"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,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"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,"vested_quantity":null,"vested_value":null,"tax_lots":[]}],"item":{"available_products":["balance","identity","liabilities","transactions"],"billed_products":["assets","auth","investments"],"consent_expiration_time":null,"error":null,"institution_id":"ins_56","institution_name":"Chase","item_id":"4z9LPae1nRHWy8pvg9jrsgbRP4ZNQvIdbLq7g","update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook","auth_method":"INSTANT_AUTH"},"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","subtype":"option","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":"Technology Services","industry":"Internet Software or Services","cfi_code":"OCASPS","figi":null,"option_contract":{"contract_type":"call","expiration_date":"2018-02-01","strike_price":355,"underlying_security_ticker":"NFLX"},"fixed_income":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","subtype":"mutual fund","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":"Miscellaneous","industry":"Investment Trusts or Mutual Funds","cfi_code":"CIOGES","figi":null,"option_contract":null,"fixed_income":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","subtype":"common stock","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":"Health Technology","industry":"Major Pharmaceuticals","cfi_code":"ESVUFR","figi":null,"option_contract":null,"fixed_income":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","subtype":"mutual fund","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":null,"industry":null,"cfi_code":"CIOIBS","figi":null,"option_contract":null,"fixed_income":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","subtype":"cash","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":null,"sector":null,"industry":null,"cfi_code":null,"figi":null,"option_contract":null,"fixed_income":null},{"close_price":13.73,"close_price_as_of":null,"cusip":null,"institution_id":"ins_56","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","subtype":"etf","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":null,"industry":null,"cfi_code":null,"figi":null,"option_contract":null,"fixed_income":null},{"close_price":94.808,"close_price_as_of":"2023-11-02","cusip":"912797HE0","institution_id":null,"institution_security_id":null,"is_cash_equivalent":false,"isin":null,"iso_currency_code":"USD","name":"US Treasury Bill - 5.43% 31/10/2024 USD 100","proxy_security_id":null,"security_id":"Lxe4yz4XQEtwb2YArO7RFMpPDvPxy7FALRyea","sedol":null,"ticker_symbol":null,"type":"fixed income","subtype":"bill","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":null,"sector":"Government","industry":"Sovereign Government","cfi_code":"DYZTXR","figi":null,"option_contract":null,"fixed_income":{"face_value":100,"issue_date":"2023-11-02","maturity_date":"2024-10-31","yield_rate":{"percentage":5.43,"type":"coupon_equivalent"}}},{"close_price":0.140034616,"close_price_as_of":"2022-01-24","cusip":null,"institution_id":"ins_56","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","subtype":"cryptocurrency","unofficial_currency_code":null,"update_datetime":"2022-06-07T23:01:00Z","market_identifier_code":"XNAS","sector":null,"industry":null,"cfi_code":null,"figi":null,"option_contract":null,"fixed_income":null}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"investmentsHoldingsGet","description":"The `/investments/holdings/get` endpoint allows developers to receive user-authorized stock position data for `investment`-type accounts.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentsHoldingsGetRequest"}}}}}},"/investments/transactions/get":{"post":{"tags":["plaid"],"summary":"Get investment transactions","externalDocs":{"url":"/api/products/investments/#investmentstransactionsget"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentsTransactionsGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"5e66Dl6jNatx3nXPGwZ7UkJed4z6KBcZA4Rbe","apy":0,"balances":{"available":100,"current":110,"iso_currency_code":"USD","limit":null,"margin_loan_amount":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","apy":null,"balances":{"available":null,"current":320.76,"iso_currency_code":"USD","limit":null,"margin_loan_amount":null,"unofficial_currency_code":null},"mask":"5555","name":"Plaid IRA","official_name":null,"subtype":"ira","type":"investment"},{"account_id":"rz99ex9ZQotvnjXdgQLEsR81e3ArPgulVWjGj","apy":null,"balances":{"available":null,"current":23631.9805,"iso_currency_code":"USD","limit":null,"margin_loan_amount":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","transaction_datetime":null,"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","transaction_datetime":"2020-05-28T15:10:09Z","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","transaction_datetime":"2020-05-27T17:23:22Z","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","subtype":"mutual fund","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":"Miscellaneous","industry":"Investment Trusts or Mutual Funds","cfi_code":"CIOGES","figi":null,"option_contract":null,"fixed_income":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","subtype":"mutual fund","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":null,"industry":null,"cfi_code":"CIOIBS","figi":null,"option_contract":null,"fixed_income":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","subtype":"common stock","unofficial_currency_code":null,"update_datetime":null,"market_identifier_code":"XNAS","sector":"Finance","industry":"Regional Banks","cfi_code":"ESVUFR","figi":null,"option_contract":null,"fixed_income":null}],"total_investment_transactions":3}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"investmentsTransactionsGet","description":"The `/investments/transactions/get` endpoint allows developers to retrieve up to 24 months of user-authorized transaction data for investment accounts.\n\nTransactions are returned in reverse-chronological order, and the sequence of transaction ordering is stable and will not shift.\n\nDue 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.\n\nNote that Investments does not have a webhook to indicate when initial transaction data has loaded (unless you use the `async_update` option). 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.\n\nData returned by the asynchronous investments extraction flow (when `async_update` is set to true) may not be immediately available to `/investments/transactions/get`. To be alerted when the data is ready to be fetched, listen for the `HISTORICAL_UPDATE` webhook. If no investments history is ready when `/investments/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentsTransactionsGetRequest"}}}}}},"/investments/refresh":{"post":{"tags":["plaid"],"summary":"Refresh investment data","externalDocs":{"url":"/api/products/investments/#investmentsrefresh"},"operationId":"investmentsRefresh","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentsRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"1vwmF5TBQwiqfwP"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"`/investments/refresh` is an optional endpoint for users of the Investments product. It initiates an on-demand extraction to fetch the newest investment holdings and transactions for an Item. This on-demand extraction takes place in addition to the periodic extractions that automatically occur one or more times per day for any Investments-enabled Item. If changes to investments are discovered after calling `/investments/refresh`, Plaid will fire webhooks: [`HOLDINGS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#holdings-default_update) if any new holdings are detected, and [`INVESTMENTS_TRANSACTIONS: DEFAULT_UPDATE`](https://plaid.com/docs/api/products/investments/#investments_transactions-default_update) if any new investment transactions are detected. This webhook will typically not fire in the Sandbox environment, due to the lack of dynamic investment transactions and holdings data. To test this webhook in Sandbox, call `/sandbox/item/fire_webhook`. Updated holdings and investment transactions can be fetched by calling `/investments/holdings/get` and `/investments/transactions/get`. Note that the `/investments/refresh` endpoint is not supported by all institutions. If called on an Item from an institution that does not support this functionality, it will return a `PRODUCTS_NOT_SUPPORTED` error.\n\nAs this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.\n\n`/investments/refresh` is offered as an add-on to Investments and has a separate [fee model](https://plaid.com/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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentsRefreshRequest"}}}}}},"/investments/auth/get":{"post":{"tags":["plaid"],"summary":"Get data needed to authorize an investments transfer","externalDocs":{"url":"/api/products/investments-move/#investmentsauthget"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentsAuthGetResponse"},"examples":{"example-1":{"value":{"accounts":[{"account_id":"31qEA6LPwGumkA4Z5mGbfyGwr4mL6nSZlQqpZ","apy":1.85,"balances":{"available":43200,"current":43200,"iso_currency_code":"USD","limit":null,"margin_loan_amount":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":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","apy":null,"balances":{"available":null,"current":415.57,"iso_currency_code":"USD","limit":null,"margin_loan_amount":null,"unofficial_currency_code":null},"mask":"5555","name":"Plaid IRA","official_name":null,"subtype":"ira","type":"investment"}],"holdings":[{"account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","cost_basis":0.01,"institution_price":1,"institution_price_as_of":"2021-05-25","institution_price_datetime":null,"institution_value":0.01,"iso_currency_code":"USD","quantity":0.01,"security_id":"d6ePmbPxgWCWmMVv66q9iPV94n91vMtov5Are","unofficial_currency_code":null,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","cost_basis":100,"institution_price":0.011,"institution_price_as_of":"2021-05-25","institution_price_datetime":null,"institution_value":110,"iso_currency_code":"USD","quantity":10000,"security_id":"8E4L9XLl6MudjEpwPAAgivmdZRdBPJuvMPlPb","unofficial_currency_code":null,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","cost_basis":94.808,"institution_price":94.808,"institution_price_as_of":"2021-04-13","institution_price_datetime":null,"institution_value":94.808,"iso_currency_code":"USD","quantity":1,"security_id":"Lxe4yz4XQEtwb2YArO7RFMpPDvPxy7FALRyea","unofficial_currency_code":null,"vested_quantity":null,"vested_value":null,"tax_lots":[]},{"account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","cost_basis":200,"institution_price":42.15,"institution_price_as_of":"2021-05-25","institution_price_datetime":null,"institution_value":210.75,"iso_currency_code":"USD","quantity":5,"security_id":"abJamDazkgfvBkVGgnnLUWXoxnomp5up8llg4","unofficial_currency_code":null,"vested_quantity":null,"vested_value":null,"tax_lots":[]}],"item":{"available_products":["assets","balance","beacon","cra_base_report","cra_income_insights","signal","identity","identity_match","income","income_verification","investments","processor_identity","recurring_transactions","transactions"],"billed_products":["investments_auth"],"consent_expiration_time":null,"error":null,"institution_id":"ins_115616","institution_name":"Vanguard","item_id":"7qBnDwLP3aIZkD7NKZ5ysk5X9xVxDWHg65oD5","products":["investments_auth"],"update_type":"background","webhook":"https://www.genericwebhookurl.com/webhook"},"numbers":{"acats":[{"account":"TR5555","account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","dtc_numbers":["1111","2222","3333"]}]},"owners":[{"account_id":"31qEA6LPwGumkA4Z5mGbfyGwr4mL6nSZlQqpZ","names":["Alberta Bobbeth Charleson"]},{"account_id":"xlP8npRxwgCj48LQbjxWipkeL3gbyXf64knoy","names":["Alberta Bobbeth Charleson"]}],"request_id":"hPCXou4mm9Qwzzu","securities":[{"close_price":0.011,"close_price_as_of":null,"cusip":null,"cfi_code":"OCASPS","figi":null,"industry":null,"institution_id":null,"institution_security_id":null,"is_cash_equivalent":false,"isin":null,"iso_currency_code":"USD","market_identifier_code":null,"name":"Nflx Feb 01'18 $355 Call","option_contract":null,"fixed_income":null,"proxy_security_id":null,"sector":null,"security_id":"8E4L9XLl6MudjEpwPAAgivmdZRdBPJuvMPlPb","sedol":null,"ticker_symbol":"NFLX180201C00355000","type":"derivative","subtype":"option","unofficial_currency_code":null,"update_datetime":null},{"close_price":94.808,"close_price_as_of":"2023-11-02","cusip":"912797HE0","cfi_code":"DYZTXR","figi":null,"fixed_income":{"face_value":100,"issue_date":"2023-11-02","maturity_date":"2024-10-31","yield_rate":{"percentage":5.43,"type":"coupon_equivalent"}},"industry":"Sovereign Government","institution_id":null,"institution_security_id":null,"is_cash_equivalent":false,"isin":null,"iso_currency_code":"USD","market_identifier_code":null,"name":"US Treasury Bill - 5.43% 31/10/2024 USD 100","option_contract":null,"proxy_security_id":null,"sector":"Government","security_id":"Lxe4yz4XQEtwb2YArO7RFMpPDvPxy7FALRyea","sedol":null,"ticker_symbol":null,"type":"fixed income","subtype":"bill","unofficial_currency_code":null,"update_datetime":null},{"close_price":9.08,"close_price_as_of":"2024-09-09","cusip":null,"cfi_code":"CIOIBS","figi":null,"fixed_income":null,"industry":"Investment Trusts or Mutual Funds","institution_id":null,"institution_security_id":null,"is_cash_equivalent":false,"isin":null,"iso_currency_code":"USD","market_identifier_code":null,"name":"DoubleLine Total Return Bond I","option_contract":null,"proxy_security_id":null,"sector":"Miscellaneous","security_id":"AE5rBXra1AuZLE34rkvvIyG8918m3wtRzElnJ","sedol":null,"ticker_symbol":"DBLTX","type":"mutual fund","subtype":"mutual fund","unofficial_currency_code":null,"update_datetime":null},{"close_price":42.15,"close_price_as_of":null,"cusip":null,"cfi_code":"CEOIES","figi":null,"fixed_income":null,"industry":null,"institution_id":null,"institution_security_id":null,"is_cash_equivalent":false,"isin":null,"iso_currency_code":"USD","market_identifier_code":null,"name":"iShares Inc MSCI Brazil","option_contract":null,"proxy_security_id":null,"sector":null,"security_id":"abJamDazkgfvBkVGgnnLUWXoxnomp5up8llg4","sedol":null,"ticker_symbol":"EWZ","type":"etf","subtype":"etf","unofficial_currency_code":null,"update_datetime":null},{"close_price":1,"close_price_as_of":null,"cusip":null,"cfi_code":null,"figi":null,"fixed_income":null,"industry":null,"institution_id":null,"institution_security_id":null,"is_cash_equivalent":true,"isin":null,"iso_currency_code":"USD","market_identifier_code":null,"name":"U S Dollar","option_contract":null,"proxy_security_id":null,"sector":null,"security_id":"d6ePmbPxgWCWmMVv66q9iPV94n91vMtov5Are","sedol":null,"ticker_symbol":null,"type":"cash","subtype":"cash","unofficial_currency_code":null,"update_datetime":null}],"data_sources":{"numbers":"INSTITUTION","owners":"INSTITUTION","holdings":"INSTITUTION"}}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"investmentsAuthGet","description":"The `/investments/auth/get` endpoint allows developers to receive user-authorized data to facilitate the transfer of holdings","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestmentsAuthGetRequest"}}}}}},"/processor/token/create":{"post":{"tags":["plaid"],"summary":"Create processor token","externalDocs":{"url":"/api/processors/#processortokencreate"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTokenCreateResponse"},"examples":{"example-1":{"value":{"processor_token":"processor-sandbox-0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d","request_id":"xrQNYZ7Zoh6R7gV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"processorTokenCreate","description":"Used to create a token suitable for sending to one of Plaid's partners to enable integrations. To create a Stripe bank account token (`btok_...`), use `/processor/stripe/bank_account_token/create`. If using multiple processors, multiple different processor tokens can be created for a single access token. Once created, a processor token for a given Item can be modified by calling `/processor/token/permissions/set`. To revoke the processor's access, the entire Item must be deleted by calling `/item/remove`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTokenCreateRequest"}}},"description":""}}},"/processor/token/permissions/set":{"post":{"tags":["plaid"],"summary":"Control a processor's access to products","externalDocs":{"url":"/api/processors/#processortokenpermissionsset"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTokenPermissionsSetResponse"},"examples":{"example-1":{"value":{"request_id":"xrQNYZ7Zoh6R7gV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"processorTokenPermissionsSet","description":"Used to control a processor's access to products on the given processor token. By default, a processor will have access to all available products on the corresponding item. To restrict access to a particular set of products, call this endpoint with the desired products. To restore access to all available products, call this endpoint with an empty list. This endpoint can be called multiple times as your needs and your processor's needs change.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTokenPermissionsSetRequest"}}}}}},"/processor/token/permissions/get":{"post":{"tags":["plaid"],"summary":"Get a processor token's product permissions","externalDocs":{"url":"/api/processors/#processortokenpermissionsget"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTokenPermissionsGetResponse"},"examples":{"example-1":{"value":{"request_id":"xrQNYZ7Zoh6R7gV","products":["auth","balance","identity"]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"processorTokenPermissionsGet","description":"Used to get a processor token's product permissions. The `products` field will be an empty list if the processor can access all available products.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTokenPermissionsGetRequest"}}}}}},"/processor/token/webhook/update":{"post":{"tags":["plaid"],"summary":"Update a processor token's webhook URL","externalDocs":{"url":"/api/processor-partners/#processortokenwebhookupdate"},"operationId":"processorTokenWebhookUpdate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTokenWebhookUpdateResponse"},"examples":{"example-1":{"value":{"request_id":"vYK11LNTfRoAMbj"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint allows you, the processor, to update the webhook URL associated with a processor token. This request triggers a `WEBHOOK_UPDATE_ACKNOWLEDGED` webhook to the newly specified webhook URL.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTokenWebhookUpdateRequest"}}}}}},"/processor/stripe/bank_account_token/create":{"post":{"tags":["plaid"],"summary":"Create Stripe bank account token","externalDocs":{"url":"/api/processors/#processorstripebank_account_tokencreate"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorStripeBankAccountTokenCreateResponse"},"examples":{"example-1":{"value":{"stripe_bank_account_token":"btok_5oEetfLzPklE1fwJZ7SG","request_id":"xrQNYZ7Zoh6R7gV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"processorStripeBankAccountTokenCreate","description":"\nUsed 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/).\n\nNote 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`.\n\nTo revoke a bank account token, the entire underlying access token must be revoked using `/item/remove`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorStripeBankAccountTokenCreateRequest"}}},"description":""}}},"/processor/apex/processor_token/create":{"post":{"tags":["plaid"],"summary":"Create Apex processor token","externalDocs":{"url":"/none/"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorTokenCreateResponse"}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"processorApexProcessorTokenCreate","description":"Used to create a token suitable for sending to Apex to enable Plaid-Apex integrations.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessorApexProcessorTokenCreateRequest"}}},"description":""}}},"/items/transactions/notify":{},"/item/import":{"post":{"tags":["plaid"],"summary":"Import Item","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemImportResponse"},"examples":{"example-1":{"value":{"access_token":"access-sandbox-99ace160-3cf7-4e51-a083-403633425815","request_id":"ewIBAn6RZirsk4W"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"itemImport","description":"`/item/import` creates an Item for one of your customers and returns an `access_token`, which the other Permissions Manager endpoints take in place of a customer identifier. You supply your own identifier for the customer as `user_auth.user_id`.\n\nThe endpoint is idempotent and the `access_token` it returns is long-lived: repeated calls for the same `user_auth.user_id` return the same token.\n\nUpon creating an Item via `/item/import`, Plaid will automatically begin an extraction of that Item through the data provider API endpoints you have already integrated.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemImportRequest"}}}}}},"/link/token/create":{"post":{"tags":["plaid"],"summary":"Create Link Token","externalDocs":{"url":"/api/link/#linktokencreate"},"operationId":"linkTokenCreate","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["link:write"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkTokenCreateResponse"},"examples":{"example-1":{"value":{"link_token":"link-sandbox-af1a0311-da53-4636-b754-dd15cc058176","expiration":"2020-03-27T12:56:34Z","request_id":"XQVgFigpGHXkb0b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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`. For most Plaid products, the `public_token` is saved and exchanged for an `access_token` via `/item/public_token/exchange` as part of the main Link flow. For more details, see the [Link flow overview](https://plaid.com/docs/link/#link-flow-overview).\n\nA `link_token` generated by `/link/token/create` is also used to initialize other Link flows, such as the [update mode](https://plaid.com/docs/link/update-mode) flow for tokens with expired credentials, or the Identity Verification flow.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkTokenCreateRequest"}}},"description":""}}},"/link/token/get":{"post":{"tags":["plaid"],"summary":"Get Link Token","externalDocs":{"url":"/api/link/#linktokenget"},"operationId":"linkTokenGet","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["link:read"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkTokenGetResponse"},"examples":{"example-1":{"value":{"created_at":"2024-07-29T20:22:21Z","expiration":"2024-07-29T20:52:22Z","link_sessions":[{"events":[{"event_id":"8b2b5d28-79ec-468b-bbce-f8bd34be635a","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"Nnclj9HntPMu5dm"},"event_name":"HANDOFF","timestamp":"2024-07-29T20:23:59Z"},{"event_id":"12a888e0-da26-4c38-8ded-2992bc78c246","event_metadata":{"request_id":"Nnclj9HntPMu5dm"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:23:59Z"},{"event_id":"6557bdf1-a20a-43b0-8fed-c8b671e2f478","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"sR4EGcU8zniznXi"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:23:56Z"},{"event_id":"c6745f4c-d8fa-4103-8a65-7b995c60809e","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"4LYDWkxfJ0htDA4"},"event_name":"SUBMIT_CREDENTIALS","timestamp":"2024-07-29T20:23:55Z"},{"event_id":"2610fa06-e765-4c9e-8948-63048d451dbf","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"4LYDWkxfJ0htDA4"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:23:23Z"},{"event_id":"54b87deb-60a7-4f50-9326-293840090b72","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"FTEFiPeL9OstwL4"},"event_name":"SELECT_INSTITUTION","timestamp":"2024-07-29T20:23:23Z"},{"event_id":"6b285180-0bac-4ccc-bec0-d4ed75c253d2","event_metadata":{"request_id":"FTEFiPeL9OstwL4"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:23:20Z"},{"event_id":"239a6000-da50-4319-99f7-919378b7db53","event_metadata":{"request_id":"WFgwgGivjBbwOb9"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:23:17Z"},{"event_id":"0a523744-5003-4578-8414-c87e06ef8ca9","event_metadata":{"institution_id":"ins_127989","institution_name":"Bank of America","request_id":"WFgwgGivjBbwOb9"},"event_name":"HANDOFF","timestamp":"2024-07-29T20:23:17Z"},{"event_id":"ff44d52a-51ef-4987-b7d0-b6497dfa93cd","event_metadata":{"institution_id":"ins_127989","institution_name":"Bank of America","request_id":"uqA0Vq8zuKlsB2y"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:23:14Z"},{"event_id":"e0d7c1dc-8e7e-4361-893f-d6c2d2f050ab","event_metadata":{"institution_id":"ins_127989","institution_name":"Bank of America","request_id":"dTGtMHbK21BLrsp"},"event_name":"OPEN_OAUTH","timestamp":"2024-07-29T20:22:49Z"},{"event_id":"de87a1c0-666e-4d95-88d8-1163f6bf20f1","event_metadata":{"institution_id":"ins_127989","institution_name":"Bank of America","request_id":"dTGtMHbK21BLrsp"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:22:47Z"},{"event_id":"6edc2c59-96cd-4dee-a86b-140ddfd3076e","event_metadata":{"institution_id":"ins_127989","institution_name":"Bank of America","request_id":"BxBukZsBEmxZw0I"},"event_name":"SELECT_INSTITUTION","timestamp":"2024-07-29T20:22:46Z"},{"event_id":"d176ab57-26d2-45ee-a0fe-67daf0cf0cb0","event_metadata":{"request_id":"BxBukZsBEmxZw0I"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:22:43Z"},{"event_id":"b8be9c3d-7ac5-4851-bd92-0638cb63bdeb","event_metadata":{"request_id":"UtqR09RKzJ1gcEx"},"event_name":"SKIP_SUBMIT_PHONE","timestamp":"2024-07-29T20:22:42Z"},{"event_id":"7144cca7-533b-4dfc-81ed-f78a750ba95f","event_metadata":{"request_id":"UtqR09RKzJ1gcEx"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:22:40Z"},{"event_id":"e6a6dcc0-6bbf-4871-8d59-0c3a5eccff53","event_metadata":{"request_id":"FTiagIVmxfqbevM"},"event_name":"TRANSITION_VIEW","timestamp":"2024-07-29T20:22:39Z"}],"finished_at":"2024-07-29T20:24:05.330312653Z","link_session_id":"43face8b-a5c2-42a4-adec-4a4ec589eb46","on_success":{"metadata":{"accounts":[{"class_type":null,"id":"DXzZ94ZG9vhaZy8BvyZRSQ4jJwwlkNS3RwoeX","mask":"0000","name":"Plaid Checking","subtype":"checking","type":"depository","verification_status":null},{"class_type":null,"id":"VJyR7wRm79TNGEKxpEG9fjpJ1mmM5Bt9ymVkR","mask":"1111","name":"Plaid Saving","subtype":"savings","type":"depository","verification_status":null},{"class_type":null,"id":"wZXnexn1eoH6LNWmMNL4hqkPB55ndjHPRNp93","mask":"9999","name":"Plaid Business Credit Card","subtype":"credit card","type":"credit","verification_status":null}],"institution":{"institution_id":"ins_127989","name":"Bank of America"},"link_session_id":"43face8b-a5c2-42a4-adec-4a4ec589eb46","transfer_status":null},"public_token":"public-sandbox-3b9687f0-3abd-4913-9889-f0ba816d4a3a"},"results":{"item_add_results":[{"accounts":[{"class_type":null,"id":"DXzZ94ZG9vhaZy8BvyZRSQ4jJwwlkNS3RwoeX","mask":"0000","name":"Plaid Checking","subtype":"checking","type":"depository","verification_status":null},{"class_type":null,"id":"VJyR7wRm79TNGEKxpEG9fjpJ1mmM5Bt9ymVkR","mask":"1111","name":"Plaid Saving","subtype":"savings","type":"depository","verification_status":null},{"class_type":null,"id":"wZXnexn1eoH6LNWmMNL4hqkPB55ndjHPRNp93","mask":"9999","name":"Plaid Business Credit Card","subtype":"credit card","type":"credit","verification_status":null}],"institution":{"institution_id":"ins_127989","name":"Bank of America"},"public_token":"public-sandbox-3b9687f0-3abd-4913-9889-f0ba816d4a3a"},{"accounts":[{"class_type":null,"id":"qvqrX8gDvxCdyvvgGkKzSNPzDwaQGjFgyQk5Z","mask":"4007","name":"Checking","subtype":"checking","type":"depository","verification_status":null}],"institution":{"institution_id":"ins_20","name":"Citizens Bank"},"public_token":"public-sandbox-44ba202e-bf6b-45c6-a5ba-d526765626a9"}],"cra_item_add_results":[],"cra_update_results":[],"bank_income_results":[],"payroll_income_results":[],"document_income_results":null,"cra_report_results":null},"started_at":"2024-07-29T20:22:36.522196741Z"}],"link_token":"link-sandbox-e7b6956c-1522-4823-85d2-c4ca74251949","metadata":{"client_name":"Wonderwallet","country_codes":["US"],"initial_products":["transactions"],"language":"en","redirect_uri":null,"webhook":"https://webhook.site/dc9c138f-75de-4db1-883a-a4add4b7eb7e"},"user_id":"usr_123456abcdef","request_id":"Pxpgzy0Wjvn99mY"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/link/token/get` endpoint gets information about a Link session, including all callbacks fired during the session along with their metadata, including the public token. This endpoint is used with Link flows that don't provide a public token via frontend callbacks, such as the [Hosted Link flow](https://plaid.com/docs/link/hosted-link/) and the [Multi-Item Link flow](https://plaid.com/docs/link/multi-item-link/). It also can be useful for debugging purposes.\n\nBy default, this endpoint will only return complete event data for Hosted Link sessions. To use `/link/token/get` to retrieve event data for non-Hosted-Link sessions, contact your account manager to request that your account be enabled for Link events. If you do not have an account manager, you can submit this request via a support ticket. Enablement for Link events will also cause you to receive additional webhooks related to Link events, such as the `SESSION_FINISHED` and `EVENTS` webhook.\n\nWhen called with a delegated OAuth access token, this endpoint returns a reduced view of the session for the delegate. Only `link_token`, `created_at`, `expiration`, and each session's `link_session_id`, `started_at`, `finished_at`, and `results.item_add_results[].public_token` are populated; `public_token` holds the delegate's own `delegated-public-` token, never the customer's public token. All other fields are withheld and carry no information about the session: arrays such as `metadata.initial_products` and `item_add_results[].accounts` are empty, fields such as `metadata.webhook` and `item_add_results[].institution` are `null`, and `user_id`, `events`, `on_success`, `on_exit`, and `exit` are omitted. A delegated public token can be retrieved for 30 minutes after it is created. Item adds whose delegated public token is no longer available are omitted from `item_add_results`, and if none remain the request fails with `INVALID_LINK_TOKEN`; start a new Link session to continue.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkTokenGetRequest"}}},"description":""}}},"/link/oauth/correlation_id/exchange":{"post":{"tags":["plaid"],"summary":"Exchange the Link Correlation ID for a Link Token","externalDocs":{"url":"/api/oauth/#linkcorrelationid"},"operationId":"linkOauthCorrelationIdExchange","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkOAuthCorrelationIdExchangeResponse"},"examples":{"example-1":{"value":{"link_token":"link-sandbox-33792986-2b9c-4b80-b1f2-518caaac6183","request_id":"u0ydFs493XjyTYn"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\nThe `link_correlation_id` is ephemeral and expires in a brief period, after which it can no longer be exchanged for the `link_token`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkOAuthCorrelationIdExchangeRequest"}}},"description":""}}},"/session/token/create":{"post":{"tags":["plaid"],"summary":"Create a Link token for Layer","externalDocs":{"url":"/api/products/layer/#sessiontokencreate"},"operationId":"sessionTokenCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionTokenCreateResponse"},"examples":{"example-1":{"value":{"link":{"link_token":"link-sandbox-af1a0311-da53-4636-b754-dd15cc058176","expiration":"2020-03-27T12:56:34Z"},"request_id":"XQVgFigpGHXkb0b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"`/session/token/create` is used to create a Link token for Layer. The returned Link token is used as a parameter when initializing the Link SDK. For more details, see the [Link flow overview](https://plaid.com/docs/link/#link-flow-overview).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionTokenCreateRequest"}}},"description":""}}},"/transfer/get":{"post":{"summary":"Retrieve a transfer","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/reading-transfers/#transferget"},"operationId":"transferGet","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferGetResponse"},"examples":{"example-1":{"value":{"transfer":{"account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","ach_class":"ppd","amount":"12.34","cancellable":true,"created":"2020-08-06T17:27:15Z","description":"Desc","guarantee_decision":null,"guarantee_decision_rationale":null,"failure_reason":null,"id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","authorization_id":"c9f90aa1-2949-c799-e2b6-ea05c89bb586","metadata":{"key1":"value1","key2":"value2"},"network":"ach","origination_account_id":"","originator_client_id":null,"refunds":[],"status":"pending","type":"credit","iso_currency_code":"USD","standard_return_window":null,"unauthorized_return_window":null,"expected_settlement_date":"2020-08-04","user":{"email_address":"acharleston@email.com","legal_name":"Anne Charleston","phone_number":"510-555-0128","address":{"street":"123 Main St.","city":"San Francisco","region":"CA","postal_code":"94053","country":"US"}},"recurring_transfer_id":null,"credit_funds_source":"sweep","network_trace_id":null},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/transfer/get` endpoint fetches information about the transfer corresponding to the given `transfer_id` or `authorization_id`. One of `transfer_id` or `authorization_id` must be populated but not both.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferGetRequest"},"examples":{}}}},"parameters":[]}},"/transfer/recurring/get":{"post":{"summary":"Retrieve a recurring transfer","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/recurring-transfers/#transferrecurringget"},"operationId":"transferRecurringGet","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRecurringGetResponse"},"examples":{"example-1":{"value":{"recurring_transfer":{"recurring_transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","created":"2022-07-05T12:48:37Z","next_origination_date":"2022-10-28","test_clock_id":null,"status":"active","amount":"12.34","description":"payment","type":"debit","ach_class":"ppd","network":"ach","origination_account_id":"","account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","iso_currency_code":"USD","transfer_ids":["271ef220-dbf8-caeb-a7dc-a2b3e8a80963","c8dbaf75-2abb-e2dc-4171-12448e13b848"],"user":{"legal_name":"Anne Charleston","phone_number":"510-555-0128","email_address":"acharleston@email.com","address":{"street":"123 Main St.","city":"San Francisco","region":"CA","postal_code":"94053","country":"US"}},"schedule":{"start_date":"2022-10-01","end_date":"2023-10-01","interval_unit":"week","interval_count":1,"interval_execution_day":5}},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/transfer/recurring/get` fetches information about the recurring transfer corresponding to the given `recurring_transfer_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRecurringGetRequest"}}}}}},"/bank_transfer/get":{"post":{"summary":"(Deprecated) Retrieve a bank transfer","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/bank-transfers/reference#bank_transferget"},"operationId":"bankTransferGet","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferGetResponse"},"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"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/bank_transfer/get` fetches information about the bank transfer corresponding to the given `bank_transfer_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferGetRequest"},"examples":{}}}},"parameters":[]}},"/transfer/authorization/create":{"post":{"summary":"Create a transfer authorization","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/initiating-transfers/#transferauthorizationcreate"},"operationId":"transferAuthorizationCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferAuthorizationCreateResponse"},"examples":{"example-1":{"value":{"authorization":{"id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","created":"2020-08-06T17:27:15Z","decision":"approved","decision_rationale":null,"guarantee_decision":null,"guarantee_decision_rationale":null,"payment_risk":null,"proposed_transfer":{"ach_class":"ppd","account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","type":"credit","user":{"legal_name":"Anne Charleston","phone_number":"510-555-0128","email_address":"acharleston@email.com","address":{"street":"123 Main St.","city":"San Francisco","region":"CA","postal_code":"94053","country":"US"}},"amount":"12.34","requested_amount":"12.34","network":"ach","iso_currency_code":"USD","origination_account_id":"","originator_client_id":null,"credit_funds_source":"sweep"}},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/authorization/create` endpoint to authorize a transfer. This endpoint must be called prior to calling `/transfer/create`. The transfer authorization will expire if not used after one hour. (You can contact your account manager to change the default authorization lifetime.)\n\nThere are four possible outcomes to calling this endpoint:\n\n  - If the `authorization.decision` in the response is `declined`, the proposed transfer has failed the risk check and you cannot proceed with the transfer.\n\n  - If the `authorization.decision` is `user_action_required`, additional user input is needed, usually to fix a broken bank connection, before Plaid can properly assess the risk. You need to launch Link in update mode to complete the required user action. When calling `/link/token/create` to get a new Link token, instead of providing `access_token` in the request, you should set [`transfer.authorization_id`](https://plaid.com/docs/api/link/#link-token-create-request-transfer-authorization-id) as the `authorization.id`. After the Link flow is completed, you may re-attempt the authorization.\n\n  - If the `authorization.decision` is `approved`, and the `authorization.decision_rationale.code` is `null`, the transfer has passed the risk check and you can proceed to call `/transfer/create`.\n\n  - If the `authorization.decision` is `approved` and the `authorization.decision_rationale.code` is non-`null`, the risk check could not be run: you may proceed with the transfer, but should perform your own risk evaluation. For more details, see the response schema.\n\nIn Plaid's Sandbox environment the decisions will be returned as follows:\n\n  - To approve a transfer with `null` rationale code, make an authorization request with an `amount` less than the available balance in the account.\n\n  - 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).\n\n  - To get an authorization decision of `user_action_required`, [reset the login for an Item](https://plaid.com/docs/sandbox/#item_login_required).\n\n  - 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.\n\n  - 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferAuthorizationCreateRequest"}}}}}},"/transfer/authorization/cancel":{"post":{"summary":"Cancel a transfer authorization","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/initiating-transfers/#transferauthorizationcancel"},"operationId":"transferAuthorizationCancel","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferAuthorizationCancelResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/authorization/cancel` endpoint to cancel a transfer authorization. A transfer authorization is eligible for cancellation if it has not yet been used to create a transfer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferAuthorizationCancelRequest"}}}}}},"/transfer/balance/get":{"post":{"summary":"(Deprecated) Retrieve a balance held with Plaid","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/none/"},"operationId":"transferBalanceGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferBalanceGetResponse"},"examples":{"example-1":{"value":{"balance":{"available":"1721.70","type":"prefunded_rtp_credits"},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"(Deprecated) Use the `/transfer/ledger/get` endpoint to view a balance held with Plaid.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferBalanceGetRequest"}}}}}},"/transfer/capabilities/get":{"post":{"summary":"Get RTP eligibility information of a transfer","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/account-linking/#transfercapabilitiesget"},"operationId":"transferCapabilitiesGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferCapabilitiesGetResponse"},"examples":{"example-1":{"value":{"institution_supported_networks":{"rtp":{"credit":true},"rfp":{"debit":true}},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/capabilities/get` endpoint to determine the RTP eligibility information of an account to be used with Transfer. This endpoint works on all Transfer-capable Items, including those created by `/transfer/migrate_account`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferCapabilitiesGetRequest"}}}}}},"/transfer/configuration/get":{"post":{"summary":"Get transfer product configuration","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/metrics/#transferconfigurationget"},"operationId":"transferConfigurationGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferConfigurationGetResponse"},"examples":{"example-1":{"value":{"max_single_transfer_amount":"","max_single_transfer_credit_amount":"1000.00","max_single_transfer_debit_amount":"1000.00","max_daily_credit_amount":"50000.00","max_daily_debit_amount":"50000.00","max_monthly_amount":"","max_monthly_credit_amount":"500000.00","max_monthly_debit_amount":"500000.00","iso_currency_code":"USD","request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/configuration/get` endpoint to view your transfer product configurations.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferConfigurationGetRequest"}}}}}},"/transfer/ledger/get":{"post":{"summary":"Retrieve Plaid Ledger balance","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/ledger/#transferledgerget"},"operationId":"transferLedgerGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerGetResponse"},"examples":{"example-1":{"value":{"ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","name":"Default","is_default":true,"balance":{"available":"1721.70","pending":"123.45"},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/ledger/get` endpoint to view a balance on the ledger held with Plaid.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerGetRequest"}}}}}},"/transfer/ledger/distribute":{"post":{"summary":"Move available balance between ledgers","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/ledger/#transferledgerdistribute"},"operationId":"transferLedgerDistribute","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerDistributeResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/ledger/distribute` endpoint to move available balance between ledgers, if you have multiple. If you're a platform, you can move funds between one of your ledgers and one of your customer's ledgers.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerDistributeRequest"}}}}}},"/transfer/ledger/deposit":{"post":{"summary":"Deposit funds into a Plaid Ledger balance","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/ledger/#transferledgerdeposit"},"operationId":"transferLedgerDeposit","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerDepositResponse"},"examples":{"example-1":{"value":{"sweep":{"id":"8c2fda9a-aa2f-4735-a00f-f4e0d2d2faee","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","created":"2020-08-06T17:27:15Z","amount":"-12.34","iso_currency_code":"USD","settled":null,"status":"pending","trigger":"manual","description":"deposit","network_trace_id":null},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/ledger/deposit` endpoint to deposit funds into Plaid Ledger.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerDepositRequest"}}}}}},"/transfer/ledger/withdraw":{"post":{"summary":"Withdraw funds from a Plaid Ledger balance","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/ledger/#transferledgerwithdraw"},"operationId":"transferLedgerWithdraw","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerWithdrawResponse"},"examples":{"example-1":{"value":{"sweep":{"id":"8c2fda9a-aa2f-4735-a00f-f4e0d2d2faee","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","created":"2020-08-06T17:27:15Z","amount":"12.34","iso_currency_code":"USD","settled":null,"status":"pending","trigger":"manual","description":"withdraw","network_trace_id":null},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/ledger/withdraw` endpoint to withdraw funds from a Plaid Ledger balance.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerWithdrawRequest"}}}}}},"/transfer/originator/funding_account/update":{"post":{"summary":"Update the funding account associated with the originator","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferoriginatorfunding_accountupdate"},"operationId":"transferOriginatorFundingAccountUpdate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorFundingAccountUpdateResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/originator/funding_account/update` endpoint to update the funding account associated with the originator.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorFundingAccountUpdateRequest"}}}}}},"/transfer/originator/funding_account/create":{"post":{"summary":"Create a new funding account for an originator","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferoriginatorfunding_accountcreate"},"operationId":"transferOriginatorFundingAccountCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorFundingAccountCreateResponse"},"examples":{"example-1":{"value":{"funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/originator/funding_account/create` endpoint to create a new funding account for the originator.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorFundingAccountCreateRequest"}}}}}},"/transfer/metrics/get":{"post":{"summary":"Get transfer product usage metrics","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/metrics/#transfermetricsget"},"operationId":"transferMetricsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferMetricsGetResponse"},"examples":{"example-1":{"value":{"daily_debit_transfer_volume":"1234.56","daily_credit_transfer_volume":"567.89","monthly_transfer_volume":"","monthly_debit_transfer_volume":"10000.00","monthly_credit_transfer_volume":"2345.67","iso_currency_code":"USD","request_id":"saKrIBuEB9qJZno","return_rates":{"last_60d":{"overall_return_rate":"0.1023","administrative_return_rate":"0.0160","unauthorized_return_rate":"0.0028"}},"authorization_usage":{"daily_credit_utilization":"0.2300","daily_debit_utilization":"0.3401","monthly_credit_utilization":"0.9843","monthly_debit_utilization":"0.3220"}}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/metrics/get` endpoint to view your transfer product usage metrics.\n\nIn the Sandbox environment, this endpoint returns static placeholder values rather than metrics computed from your Sandbox transfer activity.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferMetricsGetRequest"}}}}}},"/transfer/create":{"post":{"summary":"Create a transfer","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/initiating-transfers/#transfercreate"},"operationId":"transferCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferCreateResponse"},"examples":{"example-1":{"value":{"transfer":{"id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","authorization_id":"c9f90aa1-2949-c799-e2b6-ea05c89bb586","ach_class":"ppd","account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","type":"credit","user":{"legal_name":"Anne Charleston","phone_number":"510-555-0128","email_address":"acharleston@email.com","address":{"street":"123 Main St.","city":"San Francisco","region":"CA","postal_code":"94053","country":"US"}},"amount":"12.34","description":"payment","created":"2020-08-06T17:27:15Z","refunds":[],"status":"pending","network":"ach","cancellable":true,"guarantee_decision":null,"guarantee_decision_rationale":null,"failure_reason":null,"metadata":{"key1":"value1","key2":"value2"},"origination_account_id":"","iso_currency_code":"USD","standard_return_window":null,"unauthorized_return_window":null,"expected_settlement_date":"2023-08-04","originator_client_id":"569ed2f36b3a3a021713abc1","recurring_transfer_id":null,"credit_funds_source":"sweep","network_trace_id":null},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/create` endpoint to initiate a new transfer. This endpoint is retryable and idempotent; if a transfer with the provided `authorization_id` has already been created, it will return the transfer details without creating a new transfer. A transfer may still be created if a 500 error is returned; to detect this scenario, use [Transfer events](https://plaid.com/docs/transfer/reconciling-transfers/).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferCreateRequest"}}}}}},"/transfer/recurring/create":{"post":{"summary":"Create a recurring transfer","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/recurring-transfers/#transferrecurringcreate"},"operationId":"transferRecurringCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRecurringCreateResponse"},"examples":{"example-1":{"value":{"recurring_transfer":{"recurring_transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","created":"2022-07-05T12:48:37Z","next_origination_date":"2022-10-28","test_clock_id":"b33a6eda-5e97-5d64-244a-a9274110151c","status":"active","amount":"12.34","description":"payment","type":"debit","ach_class":"ppd","network":"ach","origination_account_id":"","account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","iso_currency_code":"USD","transfer_ids":[],"user":{"legal_name":"Anne Charleston","phone_number":"510-555-0128","email_address":"acharleston@email.com","address":{"street":"123 Main St.","city":"San Francisco","region":"CA","postal_code":"94053","country":"US"}},"schedule":{"start_date":"2022-10-01","end_date":"2023-10-01","interval_unit":"week","interval_count":1,"interval_execution_day":5}},"decision":"approved","decision_rationale":null,"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/recurring/create` endpoint to initiate a new recurring transfer. This capability is not currently supported for Transfer UI or Transfer for Platforms (beta) customers.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRecurringCreateRequest"}}}}}},"/bank_transfer/create":{"post":{"summary":"(Deprecated) Create a bank transfer","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/bank-transfers/reference#bank_transfercreate"},"operationId":"bankTransferCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferCreateResponse"},"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"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/bank_transfer/create` endpoint to initiate a new bank transfer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferCreateRequest"}}}}}},"/transfer/list":{"post":{"summary":"List transfers","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/reading-transfers/#transferlist"},"operationId":"transferList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferListResponse"},"examples":{"example-1":{"value":{"transfers":[{"account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","ach_class":"ppd","amount":"12.34","cancellable":true,"created":"2019-12-09T17:27:15Z","description":"Desc","guarantee_decision":null,"guarantee_decision_rationale":null,"failure_reason":null,"id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","authorization_id":"c9f90aa1-2949-c799-e2b6-ea05c89bb586","metadata":{"key1":"value1","key2":"value2"},"network":"ach","origination_account_id":"","originator_client_id":null,"refunds":[],"status":"pending","type":"credit","iso_currency_code":"USD","standard_return_window":null,"unauthorized_return_window":null,"expected_settlement_date":"2020-08-04","user":{"email_address":"acharleston@email.com","legal_name":"Anne Charleston","phone_number":"510-555-0128","address":{"street":"123 Main St.","city":"San Francisco","region":"CA","postal_code":"94053","country":"US"}},"recurring_transfer_id":null,"credit_funds_source":"sweep","network_trace_id":null}],"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferListRequest"}}}}}},"/transfer/recurring/list":{"post":{"summary":"List recurring transfers","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/recurring-transfers/#transferrecurringlist"},"operationId":"transferRecurringList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRecurringListResponse"},"examples":{"example-1":{"value":{"recurring_transfers":[{"recurring_transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","created":"2022-07-05T12:48:37Z","next_origination_date":"2022-10-28","test_clock_id":null,"status":"active","amount":"12.34","description":"payment","type":"debit","ach_class":"ppd","network":"ach","origination_account_id":"","account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","iso_currency_code":"USD","transfer_ids":["4242fc8d-3ec6-fb38-fa0c-a8e37d03cd57"],"user":{"legal_name":"Anne Charleston","phone_number":"510-555-0128","email_address":"acharleston@email.com","address":{"street":"123 Main St.","city":"San Francisco","region":"CA","postal_code":"94053","country":"US"}},"schedule":{"start_date":"2022-10-01","end_date":"2023-10-01","interval_unit":"week","interval_count":1,"interval_execution_day":5}}],"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRecurringListRequest"}}}}}},"/bank_transfer/list":{"post":{"summary":"(Deprecated) List bank transfers","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/bank-transfers/reference#bank_transferlist"},"operationId":"bankTransferList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferListResponse"},"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":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"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferListRequest"}}}}}},"/transfer/cancel":{"post":{"summary":"Cancel a transfer","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/initiating-transfers/#transfercancel"},"operationId":"transferCancel","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferCancelResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferCancelRequest"}}}}}},"/transfer/recurring/cancel":{"post":{"summary":"Cancel a recurring transfer.","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/recurring-transfers/#transferrecurringcancel"},"operationId":"transferRecurringCancel","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRecurringCancelResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/recurring/cancel` endpoint to cancel a recurring transfer.  A scheduled transfer that hasn't been submitted to the bank will be cancelled.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRecurringCancelRequest"}}}}}},"/bank_transfer/cancel":{"post":{"summary":"(Deprecated) Cancel a bank transfer","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/bank-transfers/reference#bank_transfercancel"},"operationId":"bankTransferCancel","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferCancelResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferCancelRequest"}}}}}},"/transfer/event/list":{"post":{"summary":"List transfer events","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/reading-transfers/#transfereventlist"},"operationId":"transferEventList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferEventListResponse"},"examples":{"example-1":{"value":{"transfer_events":[{"account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","transfer_amount":"12.34","transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","transfer_type":"credit","event_id":1,"event_type":"posted","failure_reason":null,"origination_account_id":"","originator_client_id":"569ed2f36b3a3a021713abc1","refund_id":null,"sweep_amount":null,"sweep_id":null,"timestamp":"2019-12-09T17:27:15Z"}],"has_more":true,"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/event/list` endpoint to get a list of transfer events based on specified filter criteria.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferEventListRequest"}}}}}},"/transfer/ledger/event/list":{"post":{"summary":"List transfer ledger events","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/ledger/#transferledgereventlist"},"operationId":"transferLedgerEventList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerEventListResponse"},"examples":{"example-1":{"value":{"ledger_events":[{"ledger_event_id":"1234","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","amount":"100.00","type":"deposit","sweep_id":"8c2fda9a-aa2f-4735-a00f-f4e0d2d2faee","description":"Converted to available","pending_balance":"100.00","available_balance":"100.00","timestamp":"2023-12-01T10:00:00Z"}],"has_more":false,"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/ledger/event/list` endpoint to get a list of ledger events for a specific ledger based on specified filter criteria.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferLedgerEventListRequest"}}}}}},"/bank_transfer/event/list":{"post":{"summary":"List bank transfer events","tags":["plaid"],"externalDocs":{"url":"/api/products/auth#bank_transfereventlist"},"operationId":"bankTransferEventList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferEventListResponse"},"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":null,"receiver_details":null,"timestamp":"2020-08-06T17:27:15Z"}],"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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/).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferEventListRequest"}}}}}},"/transfer/event/sync":{"post":{"summary":"Sync transfer events","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/reading-transfers/#transfereventsync"},"operationId":"transferEventSync","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferEventSyncResponse"},"examples":{"example-1":{"value":{"transfer_events":[{"account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","transfer_amount":"12.34","transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","transfer_type":"credit","event_id":1,"event_type":"pending","failure_reason":null,"origination_account_id":"","originator_client_id":null,"refund_id":null,"sweep_amount":null,"sweep_id":null,"timestamp":"2019-12-09T17:27:15Z"}],"has_more":true,"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferEventSyncRequest"}}}},"description":"`/transfer/event/sync` allows you to request up to the next 500 transfer events that happened after a specific `event_id`. Use the `/transfer/event/sync` endpoint to guarantee you have seen all transfer events."}},"/bank_transfer/event/sync":{"post":{"summary":"Sync bank transfer events","tags":["plaid"],"externalDocs":{"url":"/api/products/auth/#bank_transfereventsync"},"operationId":"bankTransferEventSync","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferEventSyncResponse"},"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":null,"receiver_details":null,"timestamp":"2020-08-06T17:27:15Z"}],"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferEventSyncRequest"}}}},"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://plaid.com/docs/auth/coverage/microdeposit-events/)."}},"/transfer/sweep/get":{"post":{"summary":"Retrieve a sweep","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/reading-transfers/#transfersweepget"},"operationId":"transferSweepGet","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferSweepGetResponse"},"examples":{"example-1":{"value":{"sweep":{"id":"8c2fda9a-aa2f-4735-a00f-f4e0d2d2faee","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","created":"2020-08-06T17:27:15Z","amount":"12.34","iso_currency_code":"USD","settled":"2020-08-07","status":"settled","network_trace_id":"123456789012345"},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/transfer/sweep/get` endpoint fetches a sweep corresponding to the given `sweep_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferSweepGetRequest"},"examples":{}}}},"parameters":[]}},"/bank_transfer/sweep/get":{"post":{"summary":"(Deprecated) Retrieve a sweep","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/#bank_transfersweepget"},"operationId":"bankTransferSweepGet","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferSweepGetResponse"},"examples":{"example-1":{"value":{"sweep":{"id":"d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d","created_at":"2020-08-06T17:27:15Z","amount":"12.34","iso_currency_code":"USD"},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/bank_transfer/sweep/get` endpoint fetches information about the sweep corresponding to the given `sweep_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferSweepGetRequest"},"examples":{}}}},"parameters":[]}},"/transfer/sweep/list":{"post":{"summary":"List sweeps","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/reading-transfers/#transfersweeplist"},"operationId":"transferSweepList","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferSweepListResponse"},"examples":{"example-1":{"value":{"sweeps":[{"id":"d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","ledger_id":"563db5f8-4c95-4e17-8c3e-cb988fb9cf1a","created":"2019-12-09T17:27:15Z","amount":"-12.34","iso_currency_code":"USD","settled":"2019-12-10","status":"settled"}],"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/transfer/sweep/list` endpoint fetches sweeps matching the given filters.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferSweepListRequest"},"examples":{}}}},"parameters":[]}},"/bank_transfer/sweep/list":{"post":{"summary":"(Deprecated) List sweeps","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/#bank_transfersweeplist"},"operationId":"bankTransferSweepList","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferSweepListResponse"},"examples":{"example-1":{"value":{"sweeps":[{"id":"d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d","created_at":"2020-08-06T17:27:15Z","amount":"12.34","iso_currency_code":"USD"}],"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/bank_transfer/sweep/list` endpoint fetches information about the sweeps matching the given filters.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferSweepListRequest"},"examples":{}}}},"parameters":[]}},"/bank_transfer/balance/get":{"post":{"summary":"(Deprecated) Get balance of your Bank Transfer account","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/bank-transfers/reference#bank_transferbalanceget"},"operationId":"bankTransferBalanceGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferBalanceGetResponse"},"examples":{"example-1":{"value":{"balance":{"available":"1721.70","transactable":"721.70"},"origination_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nThe 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.\n\nNote 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferBalanceGetRequest"}}}}}},"/bank_transfer/migrate_account":{"post":{"summary":"(Deprecated) Migrate account into Bank Transfers","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/bank-transfers/reference#bank_transfermigrate_account"},"operationId":"bankTransferMigrateAccount","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferMigrateAccountResponse"},"examples":{"example-1":{"value":{"access_token":"access-sandbox-435beced-94e8-4df3-a181-1dde1cfa19f0","account_id":"zvyDgbeeDluZ43AJP6m5fAxDlgoZXDuoy5gjN","request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankTransferMigrateAccountRequest"}}}}}},"/transfer/migrate_account":{"post":{"summary":"Migrate account into Transfers","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/account-linking/#transfermigrate_account"},"operationId":"transferMigrateAccount","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferMigrateAccountResponse"},"examples":{"example-1":{"value":{"access_token":"access-sandbox-435beced-94e8-4df3-a181-1dde1cfa19f0","account_id":"zvyDgbeeDluZ43AJP6m5fAxDlgoZXDuoy5gjN","request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"As an alternative to adding Items via Link, you can also use the `/transfer/migrate_account` endpoint to migrate previously-verified account and routing numbers to Plaid Items. This endpoint is also required when adding an Item for use with wire transfers; if you intend to create wire transfers on this account, you must provide `wire_routing_number`. 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 or [support](https://dashboard.plaid.com/support).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferMigrateAccountRequest"}}}}}},"/transfer/intent/create":{"post":{"summary":"Create a transfer intent object to invoke the Transfer UI","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/account-linking/#transferintentcreate"},"operationId":"transferIntentCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferIntentCreateResponse"},"examples":{"example-1":{"value":{"transfer_intent":{"account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"9853defc-e703-463d-86b1-dc0607a45359","ach_class":"ppd","amount":"12.34","iso_currency_code":"USD","created":"2020-08-06T17:27:15Z","description":"Desc","id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","metadata":{"key1":"value1","key2":"value2"},"mode":"PAYMENT","origination_account_id":"9853defc-e703-463d-86b1-dc0607a45359","status":"PENDING","user":{"address":{"street":"100 Market Street","city":"San Francisco","region":"CA","postal_code":"94103","country":"US"},"email_address":"acharleston@email.com","legal_name":"Anne Charleston","phone_number":"123-456-7890"}},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/intent/create` endpoint to generate a transfer intent object and invoke the Transfer UI.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferIntentCreateRequest"}}}}}},"/transfer/intent/get":{"post":{"summary":"Retrieve more information about a transfer intent","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/account-linking/#transferintentget"},"operationId":"transferIntentGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferIntentGetResponse"},"examples":{"example-1":{"value":{"transfer_intent":{"account_id":"3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr","funding_account_id":"9853defc-e703-463d-86b1-dc0607a45359","ach_class":"ppd","amount":"12.34","iso_currency_code":"USD","authorization_decision":"APPROVED","authorization_decision_rationale":null,"created":"2019-12-09T17:27:15Z","description":"Desc","failure_reason":null,"guarantee_decision":null,"guarantee_decision_rationale":null,"id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","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":{"street":"123 Main St.","city":"San Francisco","region":"California","postal_code":"94053","country":"US"},"email_address":"acharleston@email.com","legal_name":"Anne Charleston","phone_number":"510-555-0128"}},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/intent/get` endpoint to retrieve more information about a transfer intent.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferIntentGetRequest"}}}}}},"/transfer/repayment/list":{"post":{"summary":"Lists historical repayments","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/#transferrepaymentlist"},"operationId":"transferRepaymentList","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRepaymentListResponse"},"examples":{"example-1":{"value":{"repayments":[{"repayment_id":"d4bfce70-2470-4298-ae87-5e9b3e18bfaf","created":"2019-12-09T12:34:56Z","amount":"12.34","iso_currency_code":"USD"}],"request_id":"h0dvmW8g4r2Z0KX"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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_date`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRepaymentListRequest"},"examples":{"example-1":{"value":{"start_date":"2022-01-10T12:34:56Z","count":1}}}}}},"parameters":[]}},"/transfer/repayment/return/list":{"post":{"summary":"List the returns included in a repayment","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/#transferrepaymentreturnlist"},"operationId":"transferRepaymentReturnList","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRepaymentReturnListResponse"},"examples":{"example-1":{"value":{"repayment_returns":[{"transfer_id":"d4bfce70-2470-4298-ae87-5e9b3e18bfaf","event_id":5,"amount":"12.34","iso_currency_code":"USD"}],"request_id":"Ay70UHyBmbY0wUf"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRepaymentReturnListRequest"},"examples":{"example-1":{"value":{"count":1,"repayment_id":"d4bfce70-2470-4298-ae87-5e9b3e18bfaf"}}}}}},"parameters":[]}},"/transfer/platform/requirement/submit":{"post":{"summary":"Submit additional onboarding information on behalf of an originator","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferplatformrequirementsubmit"},"operationId":"transferPlatformRequirementSubmit","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferPlatformRequirementSubmitResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/platform/requirement/submit` endpoint to submit additional onboarding information that is needed by Plaid to approve or decline the originator. See [Requirement type schema documentation](https://docs.google.com/document/d/1NEQkTD0sVK50iAQi6xHigrexDUxZ4QxXqSEfV_FFTiU/) for a list of requirement types and possible values.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferPlatformRequirementSubmitRequest"}}}},"parameters":[]}},"/transfer/originator/create":{"post":{"summary":"Create a new originator","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferoriginatorcreate"},"operationId":"transferOriginatorCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorCreateResponse"},"examples":{"example-1":{"value":{"originator_client_id":"6a65dh3d1h0d1027121ak184","company_name":"Marketplace of Shannon","request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/originator/create` endpoint to create a new originator and return an `originator_client_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorCreateRequest"},"examples":{}}}},"parameters":[]}},"/transfer/questionnaire/create":{"post":{"summary":"Generate a Plaid-hosted onboarding UI URL.","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferquestionnairecreate"},"operationId":"transferQuestionnaireCreate","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferQuestionnaireCreateResponse"},"examples":{"example-1":{"value":{"onboarding_url":"https://plaid.com/originator/hIFGXx1zM5pFerygu7lw","request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferQuestionnaireCreateRequest"},"examples":{}}}},"parameters":[]}},"/transfer/diligence/submit":{"post":{"summary":"Submit transfer diligence on behalf of the originator","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferdiligencesubmit"},"operationId":"transferDiligenceSubmit","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDiligenceSubmitResponse"},"examples":{"example-1":{"value":{"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/diligence/submit` endpoint to submit transfer diligence on behalf of the originator (i.e., the end customer).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDiligenceSubmitRequest"},"examples":{}}}},"parameters":[]}},"/transfer/diligence/document/upload":{"post":{"summary":"Upload transfer diligence document on behalf of the originator","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferdiligencedocumentupload"},"operationId":"transferDiligenceDocumentUpload","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDiligenceDocumentUploadResponse"},"examples":{"example-1":{"value":{"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Third-party sender customers can use the `/transfer/diligence/document/upload` endpoint to upload a document on behalf of their end customer (i.e. originator) to Plaid. You'll need to send a request of type `multipart/form-data`.\nYou must provide the `client_id` in the `PLAID-CLIENT-ID` header and `secret` in the `PLAID-SECRET` header.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDiligenceDocumentUploadRequest"},"examples":{}}}},"parameters":[]}},"/transfer/originator/get":{"post":{"summary":"Get status of an originator's onboarding","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferoriginatorget"},"operationId":"transferOriginatorGet","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorGetResponse"},"examples":{"example-1":{"value":{"originator":{"client_id":"6a65dh3d1h0d1027121ak184","transfer_diligence_status":"approved","company_name":"Plaid"},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorGetRequest"}},"examples":{}}},"parameters":[]}},"/transfer/originator/list":{"post":{"summary":"Get status of all originators' onboarding","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferoriginatorlist"},"operationId":"transferOriginatorList","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorListResponse"},"examples":{"example-1":{"value":{"originators":[{"client_id":"6a65dh3d1h0d1027121ak184","transfer_diligence_status":"approved"},{"client_id":"8g89as4d2k1d9852938ba019","transfer_diligence_status":"denied"}],"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/transfer/originator/list` endpoint gets status updates for all of your originators' onboarding. This information is also available via the Plaid dashboard.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOriginatorListRequest"},"examples":{}}}},"parameters":[]}},"/transfer/refund/create":{"post":{"summary":"Create a refund","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/refunds/#transferrefundcreate"},"operationId":"transferRefundCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRefundCreateResponse"},"examples":{"example-1":{"value":{"refund":{"id":"667af684-9ee1-4f5f-862a-633ec4c545cc","transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","amount":"12.34","status":"pending","created":"2020-08-06T17:27:15Z","failure_reason":null,"network_trace_id":null},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nRefunds come out of the available balance of the ledger used for the original debit transfer. If there are not enough funds in the available balance to cover the refund amount, the refund will be rejected. Plaid does not impose a hold time before a refund can be created; you do not need to wait for the original transfer to settle.\n\nA refund can still be issued even if the Item's `access_token` is no longer valid (e.g. if the user revoked OAuth consent or the Item was deleted via `/item/remove`), as long as the account and routing number pair used to make the original transaction is still valid. A refund cannot be issued if the Item has an [invalidated TAN](https://plaid.com/docs/auth/#tokenized-account-numbers), which can occur at Chase or PNC.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRefundCreateRequest"}}}},"parameters":[]}},"/transfer/return/recover":{"x-hidden-from-docs":true,"post":{"summary":"Report a return recovery","tags":["plaid"],"externalDocs":{"url":"none"},"operationId":"transferReturnRecover","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferReturnRecoverResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/return/recover` endpoint to notify Plaid that you have recovered some or all of the loss on a returned guaranteed transfer.\n\nRecovery can be reported in full or in parts; the sum of recovered amounts across calls cannot exceed the guaranteed amount of the original transfer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferReturnRecoverRequest"}}}},"parameters":[]}},"/transfer/refund/get":{"post":{"summary":"Retrieve a refund","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/refunds/#transferrefundget"},"operationId":"transferRefundGet","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRefundGetResponse"},"examples":{"example-1":{"value":{"refund":{"id":"667af684-9ee1-4f5f-862a-633ec4c545cc","transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","amount":"12.34","status":"pending","created":"2020-08-06T17:27:15Z","failure_reason":null,"network_trace_id":null},"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"The `/transfer/refund/get` endpoint fetches information about the refund corresponding to the given `refund_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRefundGetRequest"},"examples":{}}}},"parameters":[]}},"/transfer/refund/cancel":{"post":{"summary":"Cancel a refund","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/refunds/#transferrefundcancel"},"operationId":"transferRefundCancel","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRefundCancelResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRefundCancelRequest"}}}}}},"/transfer/platform/originator/create":{"post":{"summary":"Create an originator for Transfer for Platforms customers","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferplatformoriginatorcreate"},"operationId":"transferPlatformOriginatorCreate","responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferPlatformOriginatorCreateResponse"},"examples":{"example-1":{"value":{"request_id":"saKrIBuEB9qJZno"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/platform/originator/create` endpoint to submit information about the originator you are onboarding, including the originator's agreement to the required legal terms.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferPlatformOriginatorCreateRequest"}}}},"parameters":[]}},"/transfer/platform/person/create":{"post":{"summary":"Create a person associated with an originator","tags":["plaid"],"externalDocs":{"url":"/api/products/transfer/platform-payments/#transferplatformpersoncreate"},"operationId":"transferPlatformPersonCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferPlatformPersonCreateResponse"},"examples":{"example-1":{"value":{"person_id":"4aa32e78-0cb3-4c13-b45e-7f9f2fc709d1","request_id":"qpCtcJz6g3fhMdJ"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/transfer/platform/person/create` endpoint to create a person associated with an originator (e.g. beneficial owner or control person) and optionally submit personal identification information for them.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferPlatformPersonCreateRequest"}}}}}},"/sandbox/bank_transfer/simulate":{"post":{"summary":"(Deprecated) Simulate a bank transfer event in Sandbox","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/bank-transfers/reference/#sandboxbank_transfersimulate"},"operationId":"sandboxBankTransferSimulate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxBankTransferSimulateResponse"},"examples":{"example-1":{"value":{"request_id":"LmHYMwBhZUvsM03"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxBankTransferSimulateRequest"}}}}}},"/sandbox/transfer/sweep/simulate":{"post":{"summary":"Simulate creating a sweep","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransfersweepsimulate"},"operationId":"sandboxTransferSweepSimulate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferSweepSimulateResponse"},"examples":{"example-1":{"value":{"sweep":{"id":"d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d","funding_account_id":"8945fedc-e703-463d-86b1-dc0607b55460","created":"2020-08-06T17:27:15Z","amount":"12.34","iso_currency_code":"USD","settled":null,"network_trace_id":null},"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/sweep/simulate` endpoint to create a sweep and associated events in the Sandbox environment. Upon calling this endpoint, all transfers with a sweep status of `swept` will become `swept_settled`, 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`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferSweepSimulateRequest"}}}}}},"/sandbox/transfer/simulate":{"post":{"summary":"Simulate a transfer event in Sandbox","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransfersimulate"},"operationId":"sandboxTransferSimulate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferSimulateResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferSimulateRequest"}}}}}},"/sandbox/transfer/refund/simulate":{"post":{"summary":"Simulate a refund event in Sandbox","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransferrefundsimulate"},"operationId":"sandboxTransferRefundSimulate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferRefundSimulateResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/refund/simulate` endpoint to simulate a refund 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferRefundSimulateRequest"}}}}}},"/sandbox/transfer/ledger/simulate_available":{"post":{"summary":"Simulate converting pending balance to available balance","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransferledgersimulate_available"},"operationId":"sandboxTransferLedgerSimulateAvailable","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferLedgerSimulateAvailableResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/ledger/simulate_available` endpoint to simulate converting pending balance to available balance for all originators in the Sandbox environment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferLedgerSimulateAvailableRequest"}}}}}},"/sandbox/transfer/ledger/deposit/simulate":{"post":{"summary":"Simulate a ledger deposit event in Sandbox","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransferledgerdepositsimulate"},"operationId":"sandboxTransferLedgerDepositSimulate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferLedgerDepositSimulateResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/ledger/deposit/simulate` endpoint to simulate a ledger deposit event in the Sandbox environment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferLedgerDepositSimulateRequest"}}}}}},"/sandbox/transfer/ledger/withdraw/simulate":{"post":{"summary":"Simulate a ledger withdraw event in Sandbox","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransferledgerwithdrawsimulate"},"operationId":"sandboxTransferLedgerWithdrawSimulate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferLedgerWithdrawSimulateResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/ledger/withdraw/simulate` endpoint to simulate a ledger withdraw event in the Sandbox environment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferLedgerWithdrawSimulateRequest"}}}}}},"/sandbox/transfer/fire_webhook":{"post":{"summary":"Manually fire a Transfer webhook","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransferfire_webhook"},"operationId":"sandboxTransferFireWebhook","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferFireWebhookResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/fire_webhook` endpoint to manually trigger a `TRANSFER_EVENTS_UPDATE` webhook in the Sandbox environment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferFireWebhookRequest"}}}}}},"/sandbox/transfer/test_clock/create":{"post":{"summary":"Create a test clock","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransfertest_clockcreate"},"operationId":"sandboxTransferTestClockCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferTestClockCreateResponse"},"examples":{"example-1":{"value":{"test_clock":{"test_clock_id":"b33a6eda-5e97-5d64-244a-a9274110151c","virtual_time":"2006-01-02T15:04:05Z"},"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/test_clock/create` endpoint to create a `test_clock` in the Sandbox environment.\n\nA 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.\n\nA test clock can be associated with up to 5 recurring transfers.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferTestClockCreateRequest"}}}}}},"/sandbox/transfer/test_clock/advance":{"post":{"summary":"Advance a test clock","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransfertest_clockadvance"},"operationId":"sandboxTransferTestClockAdvance","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferTestClockAdvanceResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/test_clock/advance` endpoint to advance a `test_clock` in the Sandbox environment.\n\nA 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`.\n\nIf a test clock is advanced, we will simulate the changes that ought to occur during the time that elapsed.\n\nFor example, 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.\n\nThe 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`.\n\nFor example, 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferTestClockAdvanceRequest"}}}}}},"/sandbox/transfer/test_clock/get":{"post":{"summary":"Get a test clock","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransfertest_clockget"},"operationId":"sandboxTransferTestClockGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferTestClockGetResponse"},"examples":{"example-1":{"value":{"test_clock":{"test_clock_id":"b33a6eda-5e97-5d64-244a-a9274110151c","virtual_time":"2006-01-02T15:04:05Z"},"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/test_clock/get` endpoint to get a `test_clock` in the Sandbox environment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferTestClockGetRequest"}}}}}},"/sandbox/transfer/test_clock/list":{"post":{"summary":"List test clocks","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxtransfertest_clocklist"},"operationId":"sandboxTransferTestClockList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferTestClockListResponse"},"examples":{"example-1":{"value":{"test_clocks":[{"test_clock_id":"a33a6eda-5e97-5d64-244a-a9274110152d","virtual_time":"2006-02-02T15:04:05Z"},{"test_clock_id":"b33a6eda-5e97-5d64-244a-a9274110151c","virtual_time":"2006-01-02T15:04:05Z"}],"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/transfer/test_clock/list` endpoint to see a list of all your test clocks in the Sandbox environment, by descending `virtual_time`. Results are paginated; use the `count` and `offset` query parameters to retrieve the desired test clocks.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTransferTestClockListRequest"}}}}}},"/sandbox/payment_profile/reset_login":{"post":{"deprecated":true,"tags":["plaid"],"summary":"Reset the login of a Payment Profile","externalDocs":{"url":"/api/sandbox/#sandboxpayment_profilereset_login"},"operationId":"sandboxPaymentProfileResetLogin","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxPaymentProfileResetLoginResponse"},"examples":{"example-1":{"value":{"reset_login":true,"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\n 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.\n\n 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).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxPaymentProfileResetLoginRequest"}}}}}},"/sandbox/payment/simulate":{"post":{"tags":["plaid"],"summary":"Simulate a payment event in Sandbox","externalDocs":{"url":"/api/sandbox/#sandboxpaymentsimulate"},"operationId":"sandboxPaymentSimulate","description":"Use the `/sandbox/payment/simulate` endpoint to simulate various payment events in the Sandbox environment. This endpoint will trigger the corresponding payment status webhook.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxPaymentSimulateResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV","old_status":"PAYMENT_STATUS_INPUT_NEEDED","new_status":"PAYMENT_STATUS_INITIATED"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxPaymentSimulateRequest"}}}}}},"/employers/search":{"post":{"tags":["plaid"],"externalDocs":{"url":"/api/employers/#employerssearch"},"operationId":"employersSearch","summary":"(Deprecated) Search employer database","deprecated":true,"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployersSearchResponse"},"examples":{"example-1":{"value":{"employers":[{"name":"Plaid Inc.","address":{"city":"San Francisco","country":"US","postal_code":"94103","region":"CA","street":"1098 Harrison St"},"confidence_score":1,"employer_id":"emp_1"}],"request_id":"ixTBLZGvhD4NnmB"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nThe 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployersSearchRequest"}}}}}},"/income/verification/create":{"post":{"summary":"(Deprecated) Create an income verification instance","tags":["plaid"],"deprecated":true,"externalDocs":{"url":"/api/products/income/#incomeverificationcreate"},"operationId":"incomeVerificationCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncomeVerificationCreateResponse"},"examples":{"example-1":{"value":{"income_verification_id":"f2a826d7-25cf-483b-a124-c40beb64b732","request_id":"lMjeOeu9X1VUh1F"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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. ","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncomeVerificationCreateRequest"}}}}}},"/income/verification/paystubs/get":{"post":{"summary":"(Deprecated) Retrieve information from the paystubs used for income verification","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/api/products/income/#incomeverificationpaystubsget"},"operationId":"incomeVerificationPaystubsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncomeVerificationPaystubsGetResponse"},"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_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"},"name":"ANNA CHARLESTON","marital_status":"single","taxpayer_id":{"id_type":"SSN","id_mask":"3333"}},"employer":{"name":"PLAID INC","address":{"city":"SAN FRANCISCO","country":"US","postal_code":"94111","region":"CA","street":"1098 HARRISON ST"}},"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","start_date":"2020-12-01","pay_frequency":"PAY_FREQUENCY_BIWEEKLY"}}],"request_id":"2pxQ59buGdsHRef"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncomeVerificationPaystubsGetRequest"}}},"description":""},"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.\n\nThis endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead."}},"/income/verification/documents/download":{"post":{"deprecated":true,"summary":"(Deprecated) Download the original documents used for income verification","tags":["plaid"],"externalDocs":{"url":"/api/products/income/#incomeverificationdocumentsdownload"},"operationId":"incomeVerificationDocumentsDownload","responses":{"200":{"description":"A ZIP file containing source documents(s) used as the basis for income verification.","content":{"application/zip":{"schema":{}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"`/income/verification/documents/download` provides the ability to download the source documents associated with the verification.\n\nIf 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.\n\nThe 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.\nIf not, the response will contain all documents associated with the verification.\n\nThe `request_id` is returned in the `Plaid-Request-ID` header.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncomeVerificationDocumentsDownloadRequest"}}}},"parameters":[]}},"/income/verification/taxforms/get":{"post":{"deprecated":true,"tags":["plaid"],"summary":"(Deprecated) Retrieve information from the tax documents used for income verification","externalDocs":{"url":"/api/products/income/#incomeverificationtaxformsget"},"operationId":"incomeVerificationTaxformsGet","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.\n\nThis endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncomeVerificationTaxformsGetResponse"},"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"},"name":"Josie Georgia Harrison","marital_status":"single","taxpayer_id":{"id_type":"SSN","id_mask":"1234"}},"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_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"}}]}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncomeVerificationTaxformsGetRequest"}}},"description":""}}},"/income/verification/precheck":{"post":{"deprecated":true,"summary":"(Deprecated) Check digital income verification eligibility and optimize conversion","tags":["plaid"],"operationId":"incomeVerificationPrecheck","externalDocs":{"url":"/api/products/income/#incomeverificationprecheck"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncomeVerificationPrecheckResponse"},"examples":{"example-1":{"value":{"request_id":"lMjeOeu9X1VUh1F","precheck_id":"n9elqYlvYm","confidence":"HIGH"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nWhile all request fields are optional, providing either `employer` or `transactions_access_tokens` data will increase the chance of receiving a useful result.\n\nThis endpoint has been deprecated; new integrations should use `/credit/payroll_income/precheck` instead.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncomeVerificationPrecheckRequest"}}}}}},"/employment/verification/get":{"post":{"deprecated":true,"summary":"(Deprecated) Retrieve a summary of an individual's employment information","tags":["plaid"],"operationId":"employmentVerificationGet","externalDocs":{"url":"/api/products/income/#employmentverificationget"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmploymentVerificationGetResponse"},"examples":{"example-1":{"value":{"employments":[{"status":"EMPLOYMENT_STATUS_ACTIVE","start_date":"2020-01-01","end_date":null,"employer":{"name":"Plaid Inc"},"title":"Software Engineer","platform_ids":{"employee_id":"1234567","position_id":"8888","payroll_id":"1234567"}}],"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"`/employment/verification/get` returns a list of employments through a user payroll that was verified by an end user.\n\nThis endpoint has been deprecated; new integrations should use `/credit/employment/get` instead.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmploymentVerificationGetRequest"}}}}}},"/credit/audit_copy_token/create":{"post":{"tags":["plaid"],"summary":"Create Asset or Income Report Audit Copy Token","externalDocs":{"url":"/api/products/income/#creditaudit_copy_tokencreate"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditAuditCopyTokenCreateResponse"},"examples":{"example-1":{"value":{"audit_copy_token":"a-production-3tau2cwvybdvrhucaaai27ulu4","request_id":"Iam3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"creditAuditCopyTokenCreate","description":"Plaid can create an Audit Copy token of an Asset Report and/or Income Report to share with a participating Government-Sponsored Enterprise (GSE) if you participate in Fannie Mae's Day 1 Certainty™ program or utilize Freddie Mac's Loan Product Advisor® (LPA®) Asset and Income Modeler (AIM). An Audit Copy token contains the same underlying data as the Asset Report and/or Income Report (result of `/credit/payroll_income/get`).\n\nUse the `/credit/audit_copy_token/create` endpoint to create an `audit_copy_token` and then pass that token to the GSE who needs access.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditAuditCopyTokenCreateRequest"}}}}}},"/credit/audit_copy_token/remove":{"post":{"tags":["plaid"],"summary":"Remove an Audit Copy token","externalDocs":{"url":"/api/products/income/#creditaudit_copy_tokenremove"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditAuditCopyTokenRemoveResponse"},"examples":{"example-1":{"value":{"removed":true,"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"creditReportAuditCopyRemove","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditAuditCopyTokenRemoveRequest"}}},"description":""},"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."}},"/credit/asset_report/freddie_mac/get":{"post":{"tags":["plaid"],"summary":"Retrieve an Asset Report with Freddie Mac format. Only Freddie Mac can use this endpoint.","externalDocs":{"url":"/none/"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportFreddieGetResponse"},"examples":{"example-1":{"value":{"SchemaVersion":1,"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":{"VERIFICATION_OF_ASSET":{"REPORTING_INFORMATION":{"ReportingInformationIdentifier":"a-prod-kol4xb5y4nf2zecqalb2d55mze"},"SERVICE_PRODUCT_FULFILLMENT":{"SERVICE_PRODUCT_FULFILLMENT_DETAIL":{"VendorOrderIdentifier":"PLAID","ServiceProductFulfillmentIdentifier":"VOA"}},"VERIFICATION_OF_ASSET_RESPONSE":{"ASSETS":{"ASSET":[{"ASSET_DETAIL":{"AssetAccountIdentifier":"3847","AssetUniqueIdentifier":"c251a55e-c503-471b-a3b1-11a9243bc189","AssetAsOfDate":"2022-07-27","AssetDescription":"Unlimited Cash Rewards Visa Signature","AssetAvailableBalanceAmount":2073.99,"AssetCurrentBalanceAmount":2007.09,"AssetType":"Other","AssetTypeAdditionalDescription":"credit card","AssetDaysRequestedCount":61,"AssetOwnershipType":null},"ASSET_OWNERS":{"ASSET_OWNER":[{"AssetOwnerText":"Alberta Bobbeth Charleson"}]},"ASSET_HOLDER":{"NAME":{"FullName":"Wells Fargo"}},"ASSET_TRANSACTIONS":{"ASSET_TRANSACTION":[{"ASSET_TRANSACTION_DETAIL":{"AssetTransactionUniqueIdentifier":"7jagxo9Eq6cXPKM8eMNJUgeeNnbgQdSDw6zgN","AssetTransactionAmount":34.43,"AssetTransactionDate":"2022-07-19","AssetTransactionPostDate":"2022-07-19","AssetTransactionType":"Debit","AssetInvestmentTransactionTypeDescription":null,"AssetTransactionPaidByName":null,"AssetTransactionTypeAdditionalDescription":null,"AssetTransactionCategoryType":"FoodDining","FinancialInstitutionTransactionIdentifier":null},"ASSET_TRANSACTION_DESCRIPTON":[{"AssetTransactionDescription":"TONYS PIZZA NAPOLETANA SAN FRANCISCOCA"}]}]},"VALIDATION_SOURCES":{"VALIDATION_SOURCE":[{"ValidationSourceName":"","ValidationSourceReferenceIdentifier":""}]}}]}}},"STATUSES":{"STATUS":{"StatusCode":"success","StatusDescription":null}}}}},"request_id":"eYupqX1mZkEuQRx"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"creditAssetReportFreddieMacGet","description":"The `/credit/asset_report/freddie_mac/get` endpoint retrieves the Asset Report in Freddie Mac's JSON format.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportFreddieGetRequest"}}},"description":""}}},"/credit/freddie_mac/reports/get":{"post":{"tags":["plaid"],"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.","externalDocs":{"url":"/none/"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditFreddieMacReportsGetResponse"},"examples":{"example-1":{"value":{"SchemaVersion":2.4,"DEAL":{"LOANS":{"LOAN":{"LoanRoleType":"SubjectLoan","LOAN_IDENTIFIERS":{"LOAN_IDENTIFIER":[{"LoanIdentifier":"100016746","LoanIdentifierType":"LenderLoan"}]}}},"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":{"VERIFICATION_OF_ASSET":[{"REPORTING_INFORMATION":{"ReportIdentifierType":"ReportID","ReportDateTime":"","ReportingInformationParentIdentifier":"a-prod-kol4xb5y4nf2zecqalb2d55mze","ReportingInformationIdentifier":"assets-prod-20746587-2ad7-407f-a201-0669e1368cf7"},"SERVICE_PRODUCT_FULFILLMENT":{"SERVICE_PRODUCT_FULFILLMENT_DETAIL":{"VendorOrderIdentifier":"PLAID","ServiceProductFulfillmentIdentifier":"VOE"}},"VERIFICATION_OF_ASSET_RESPONSE":{"ASSETS":{"ASSET":[{"ASSET_DETAIL":{"AssetAccountIdentifier":"3847","AssetUniqueIdentifier":"c251a55e-c503-471b-a3b1-11a9243bc189","AssetAsOfDate":"2022-07-27","AssetDescription":"Unlimited Cash Rewards Visa Signature","AssetAvailableBalanceAmount":0,"AssetCurrentBalanceAmount":0,"AssetType":"Other","AssetTypeAdditionalDescription":"credit card","AssetDaysRequestedCount":61,"AssetOwnershipType":null},"ASSET_OWNERS":{"ASSET_OWNER":[{"AssetOwnerText":"Alberta Bobbeth Charleson"}]},"ASSET_HOLDER":{"NAME":{"FullName":"Wells Fargo"}},"ASSET_TRANSACTIONS":{"ASSET_TRANSACTION":[{"ASSET_TRANSACTION_DETAIL":{"AssetTransactionCategoryType":"Reimbursement","AssetTransactionAmount":0,"AssetTransactionDate":"2022-07-28","AssetTransactionPostDate":"2022-07-28","AssetTransactionType":"Credit","AssetInvestmentTransactionTypeDescription":null,"AssetTransactionPaidByName":null,"AssetTransactionPaidToName":null,"AssetTransactionTypeAdditionalDescription":null,"AssetTransactionUniqueIdentifier":"8XQ2rJzjagxp87SJLNPKM8eMNJUgeeNnbg","FinancialInstitutionTransactionIdentifier":null},"ASSET_TRANSACTION_DESCRIPTION":[{"AssetTransactionDescription":"UNITED AIRLINES SAN FRANCISCOCA"}]}]},"VALIDATION_SOURCES":{"VALIDATION_SOURCE":[{"ValidationSourceName":"","ValidationSourceReferenceIdentifier":""}]}}]}}},{"REPORTING_INFORMATION":{"ReportDateTime":"","ReportingInformationParentIdentifier":"a-prod-kol4xb5y4nf2zecqalb2d55mze","ReportingInformationIdentifier":"assets-prod-20746587-2ad7-407f-a201-0669e1368cf7","ReportIdentifierType":"ReportID"},"SERVICE_PRODUCT_FULFILLMENT":{"SERVICE_PRODUCT_FULFILLMENT_DETAIL":{"VendorOrderIdentifier":"PLAID","ServiceProductFulfillmentIdentifier":"VOA"}},"VERIFICATION_OF_ASSET_RESPONSE":{"ASSETS":{"ASSET":[{"ASSET_DETAIL":{"AssetAccountIdentifier":"3847","AssetUniqueIdentifier":"c251a55e-c503-471b-a3b1-11a9243bc189","AssetAsOfDate":"2022-07-27","AssetDescription":"Unlimited Cash Rewards Visa Signature","AssetAvailableBalanceAmount":2073.99,"AssetCurrentBalanceAmount":2007.09,"AssetType":"Other","AssetTypeAdditionalDescription":"credit card","AssetDaysRequestedCount":61,"AssetOwnershipType":null},"ASSET_OWNERS":{"ASSET_OWNER":[{"AssetOwnerText":"Alberta Bobbeth Charleson"}]},"ASSET_HOLDER":{"NAME":{"FullName":"Wells Fargo"}},"ASSET_TRANSACTIONS":{"ASSET_TRANSACTION":[{"ASSET_TRANSACTION_DETAIL":{"AssetTransactionUniqueIdentifier":"7jagxo9Eq6cXPKM8eMNJUgeeNnbgQdSDw6zgN","AssetTransactionAmount":34.43,"AssetTransactionDate":"2022-07-19","AssetTransactionPostDate":"2022-07-19","AssetTransactionType":"Debit","AssetInvestmentTransactionTypeDescription":null,"AssetTransactionPaidByName":null,"AssetTransactionTypeAdditionalDescription":null,"AssetTransactionCategoryType":"FoodDining","FinancialInstitutionTransactionIdentifier":null},"ASSET_TRANSACTION_DESCRIPTION":[{"AssetTransactionDescription":"TONYS PIZZA NAPOLETANA SAN FRANCISCOCA"}]}]},"VALIDATION_SOURCES":{"VALIDATION_SOURCE":[{"ValidationSourceName":"","ValidationSourceReferenceIdentifier":""}]}}]}}}],"STATUSES":{"STATUS":{"StatusCode":"success","StatusDescription":null}}}}},"request_id":"eYupqX1mZkEuQRx"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"creditFreddieMacReportsGet","description":"The `/credit/freddie_mac/reports/get` endpoint retrieves the Verification of Assets and Verification of Employment reports.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditFreddieMacReportsGetRequest"}}},"description":""}}},"/beta/credit/v1/bank_employment/get":{"post":{"summary":"Retrieve information from the bank accounts used for employment verification","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankEmploymentGetResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm","bank_employment_reports":[{"bank_employment_report_id":"0a7eaed6-5da7-4846-baaf-ad787306575e","generated_time":"2023-01-23T22:47:53Z","days_requested":120,"items":[{"item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","last_updated_time":"2023-01-23T22:47:53Z","institution_id":"ins_0","institution_name":"Plaid Bank","bank_employments":[{"bank_employment_id":"f17efbdd-caab-4278-8ece-963511cd3d51","account_id":"GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9","employer":{"name":"Plaid Inc."},"latest_deposit_date":"2023-01-15","earliest_deposit_date":"2022-01-15"}],"bank_employment_accounts":[{"account_id":"GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9","mask":"8888","name":"Plaid Checking Account","official_name":"Plaid Checking Account","type":"depository","subtype":"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":"+1 111-555-3333","primary":false,"type":"home"},{"data":"+1 111-555-4444","primary":false,"type":"work"},{"data":"+1 111-555-5555","primary":false,"type":"mobile"}]}]}]}],"warnings":[]}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/income/#creditbank_employmentget"},"operationId":"creditBankEmploymentGet","description":"`/beta/credit/v1/bank_employment/get` returns the employment report(s) derived from bank transaction data for a specified user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankEmploymentGetRequest"}}}}}},"/credit/bank_income/get":{"post":{"summary":"Retrieve information from the bank accounts used for income verification","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankIncomeGetResponse"},"examples":{"example-1":{"value":{"bank_income":[{"bank_income_id":"dacc92a0-cb59-43a5-ba24-1b1c07a03f28","bank_income_summary":{"end_date":"2024-08-21","historical_summary":[{"end_date":"2024-08-21","iso_currency_code":"USD","start_date":"2024-08-06","total_amount":4090.14,"total_amounts":[{"amount":4090.14,"iso_currency_code":"USD","unofficial_currency_code":null}],"transactions":[{"amount":120.12,"check_number":null,"date":"2024-08-07","iso_currency_code":"USD","name":"TEXAS OAG CHILD SUPPORT","original_description":"TEXAS OAG CHILD SUPPORT","transaction_id":"EZMmvwREqlSGmlRam7bzFKyBll3kJjU4xKm1w","unofficial_currency_code":null},{"amount":1525,"check_number":null,"date":"2024-08-08","iso_currency_code":"USD","name":"AIRBNB PAYMENTS PPD ID: 1234567890","original_description":"AIRBNB PAYMENTS PPD ID: 1234567890","transaction_id":"Wr6jzLwg1qs6ag9Xa8BrCpBAPPxnEXF6ZmjDR","unofficial_currency_code":null},{"amount":500,"check_number":null,"date":"2024-08-12","iso_currency_code":"USD","name":"TWC-BENEFITS/UI BENEFIT","original_description":"TWC-BENEFITS/UI BENEFIT","transaction_id":"Aj7Apx5bDyIA3VRl35yqC18wXXorBgI9rX5dp","unofficial_currency_code":null},{"amount":1000.7,"check_number":null,"date":"2024-08-15","iso_currency_code":"USD","name":"PLAID PAYROLL","original_description":"PLAID PAYROLL","transaction_id":"G1L9oybBrKSMPmBdPzXoFN8aGGE7gXC6MeoQB","unofficial_currency_code":null},{"amount":824.2,"check_number":null,"date":"2024-08-15","iso_currency_code":"USD","name":"SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890","original_description":"SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890","transaction_id":"nWLlwMm1qxi8DomvDXP3FaGjXX5bm9TAlyQnk","unofficial_currency_code":null},{"amount":120.12,"check_number":null,"date":"2024-08-21","iso_currency_code":"USD","name":"TEXAS OAG CHILD SUPPORT","original_description":"TEXAS OAG CHILD SUPPORT","transaction_id":"b7dkg6eQbPFQeRvVeZlxcqxZooa7nWSmb47dj","unofficial_currency_code":null}],"unofficial_currency_code":null}],"income_categories_count":5,"income_sources_count":5,"income_transactions_count":6,"iso_currency_code":"USD","start_date":"2024-08-07","total_amount":4090.14,"total_amounts":[{"amount":4090.14,"iso_currency_code":"USD","unofficial_currency_code":null}],"unofficial_currency_code":null},"days_requested":15,"generated_time":"2024-08-21T18:10:46.293199Z","items":[{"bank_income_accounts":[{"account_id":"G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5","mask":"9217","name":"Checking","official_name":"Plaid checking","owners":[{"addresses":[],"emails":[],"names":["Jane Doe"],"phone_numbers":[]}],"subtype":"checking","type":"depository"}],"bank_income_sources":[{"account_id":"G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5","end_date":"2024-08-15","historical_summary":[{"end_date":"2024-08-21","iso_currency_code":"USD","start_date":"2024-08-06","total_amount":1000.7,"total_amounts":[{"amount":1000.7,"iso_currency_code":"USD","unofficial_currency_code":null}],"transactions":[{"amount":1000.7,"check_number":null,"date":"2024-08-15","iso_currency_code":"USD","name":"PLAID PAYROLL","original_description":"PLAID PAYROLL","transaction_id":"G1L9oybBrKSMPmBdPzXoFN8aGGE7gXC6MeoQB","unofficial_currency_code":null}],"unofficial_currency_code":null}],"income_category":"SALARY","income_description":"PLAID PAYROLL","income_source_id":"0e9d6fbc-29de-4225-9843-2f71e02a54d1","pay_frequency":"UNKNOWN","start_date":"2024-08-15","total_amount":1000.7,"transaction_count":1},{"account_id":"G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5","end_date":"2024-08-15","historical_summary":[{"end_date":"2024-08-21","iso_currency_code":"USD","start_date":"2024-08-06","total_amount":824.2,"total_amounts":[{"amount":824.2,"iso_currency_code":"USD","unofficial_currency_code":null}],"transactions":[{"amount":824.2,"check_number":null,"date":"2024-08-15","iso_currency_code":"USD","name":"SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890","original_description":"SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890","transaction_id":"nWLlwMm1qxi8DomvDXP3FaGjXX5bm9TAlyQnk","unofficial_currency_code":null}],"unofficial_currency_code":null}],"income_category":"LONG_TERM_DISABILITY","income_description":"SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890","income_source_id":"88bc00d8-2bb1-42d0-a054-db3f20948283","pay_frequency":"UNKNOWN","start_date":"2024-08-15","total_amount":824.2,"transaction_count":1},{"account_id":"G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5","end_date":"2024-08-08","historical_summary":[{"end_date":"2024-08-21","iso_currency_code":"USD","start_date":"2024-08-06","total_amount":1525,"total_amounts":[{"amount":1525,"iso_currency_code":"USD","unofficial_currency_code":null}],"transactions":[{"amount":1525,"check_number":null,"date":"2024-08-08","iso_currency_code":"USD","name":"AIRBNB PAYMENTS PPD ID: 1234567890","original_description":"AIRBNB PAYMENTS PPD ID: 1234567890","transaction_id":"Wr6jzLwg1qs6ag9Xa8BrCpBAPPxnEXF6ZmjDR","unofficial_currency_code":null}],"unofficial_currency_code":null}],"income_category":"RENTAL","income_description":"AIRBNB PAYMENTS PPD ID: 1234567890","income_source_id":"063689af-7299-4327-b71f-9d8849a40c0e","pay_frequency":"UNKNOWN","start_date":"2024-08-08","total_amount":1525,"transaction_count":1},{"account_id":"G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5","end_date":"2024-08-12","historical_summary":[{"end_date":"2024-08-21","iso_currency_code":"USD","start_date":"2024-08-06","total_amount":500,"total_amounts":[{"amount":500,"iso_currency_code":"USD","unofficial_currency_code":null}],"transactions":[{"amount":500,"check_number":null,"date":"2024-08-12","iso_currency_code":"USD","name":"TWC-BENEFITS/UI BENEFIT","original_description":"TWC-BENEFITS/UI BENEFIT","transaction_id":"Aj7Apx5bDyIA3VRl35yqC18wXXorBgI9rX5dp","unofficial_currency_code":null}],"unofficial_currency_code":null}],"income_category":"UNEMPLOYMENT","income_description":"TWC-BENEFITS/UI BENEFIT","income_source_id":"ce160170-49d0-4811-b58e-cb4878d05f83","pay_frequency":"UNKNOWN","start_date":"2024-08-12","total_amount":500,"transaction_count":1},{"account_id":"G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5","end_date":"2024-08-21","historical_summary":[{"end_date":"2024-08-21","iso_currency_code":"USD","start_date":"2024-08-06","total_amount":240.24,"total_amounts":[{"amount":240.24,"iso_currency_code":"USD","unofficial_currency_code":null}],"transactions":[{"amount":120.12,"check_number":null,"date":"2024-08-07","iso_currency_code":"USD","name":"TEXAS OAG CHILD SUPPORT","original_description":"TEXAS OAG CHILD SUPPORT","transaction_id":"EZMmvwREqlSGmlRam7bzFKyBll3kJjU4xKm1w","unofficial_currency_code":null},{"amount":120.12,"check_number":null,"date":"2024-08-21","iso_currency_code":"USD","name":"TEXAS OAG CHILD SUPPORT","original_description":"TEXAS OAG CHILD SUPPORT","transaction_id":"b7dkg6eQbPFQeRvVeZlxcqxZooa7nWSmb47dj","unofficial_currency_code":null}],"unofficial_currency_code":null}],"income_category":"CHILD_SUPPORT","income_description":"TEXAS OAG CHILD SUPPORT","income_source_id":"c8e1576e-9de4-47b4-ad55-3f7b068cc863","pay_frequency":"UNKNOWN","start_date":"2024-08-07","total_amount":240.24,"transaction_count":2}],"institution_id":"ins_20","institution_name":"Citizens Bank","item_id":"L8EKo4GydxSKmJQGmXyPuDkeNn4rg9fP3MKLv","last_updated_time":"2024-08-21T18:10:47.367335Z"}]}],"request_id":"MLM1fFu4fbVg7KR"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/income/#creditbank_incomeget"},"operationId":"creditBankIncomeGet","description":"`/credit/bank_income/get` returns the bank income report(s) for a specified user. A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link). To return older reports, use the `options.count` field.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankIncomeGetRequest"}}}}}},"/credit/bank_income/pdf/get":{"post":{"summary":"Retrieve information from the bank accounts used for income verification in PDF format","tags":["plaid"],"responses":{"200":{"description":"A PDF of the Bank Income Report","content":{"application/pdf":{"schema":{"$ref":"#/components/schemas/CreditBankIncomePDFGetResponse"}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/income/#creditbank_incomepdfget"},"operationId":"creditBankIncomePdfGet","description":"`/credit/bank_income/pdf/get` returns the most recent bank income report for a specified user in PDF format.  A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use [Multi-Item Link](https://plaid.com/docs/link/multi-item-link).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankIncomePDFGetRequest"}}}}}},"/credit/bank_income/refresh":{"post":{"summary":"Refresh a user's bank income information","tags":["plaid"],"externalDocs":{"url":"/api/products/income/#creditbank_incomerefresh"},"operationId":"creditBankIncomeRefresh","deprecated":true,"description":"`/credit/bank_income/refresh` is deprecated. The backend implementation was removed (returns an `Unimplemented` error at runtime), and the endpoint is no longer part of the documented API surface. To refresh Bank Income data for an existing user, send the user through Link's update mode so they can confirm their income sources. For a fully backend refresh, migrate to CRA Income Insights and call `/cra/check_report/create`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankIncomeRefreshRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankIncomeRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/credit/bank_income/webhook/update":{"post":{"summary":"Subscribe and unsubscribe to proactive notifications for a user's income profile","tags":["plaid"],"externalDocs":{"url":"/api/products/income/#creditbank_incomewebhookupdate"},"operationId":"creditBankIncomeWebhookUpdate","deprecated":true,"description":"`/credit/bank_income/webhook/update` is deprecated and no longer available; requests return an `INVALID_REQUEST` error with code `NOT_FOUND`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankIncomeWebhookUpdateRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankIncomeWebhookUpdateResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/credit/payroll_income/parsing_config/update":{"post":{"summary":"Update the parsing configuration for a document income verification","tags":["plaid"],"externalDocs":{"url":"/api/products/income/#creditpayroll_incomeparsing_configupdate"},"operationId":"creditPayrollIncomeParsingConfigUpdate","description":"`/credit/payroll_income/parsing_config/update` updates the parsing configuration for a document income verification.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomeParsingConfigUpdateRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomeParsingConfigUpdateResponse"},"examples":{"example-1":{"value":{"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/credit/bank_statements/uploads/get":{"post":{"summary":"Retrieve data for a user's uploaded bank statements","tags":["plaid"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankStatementsUploadsGetResponse"},"examples":{"example-1":{"value":{"items":[{"item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","bank_statements":[{"transactions":[{"amount":-1000,"date":"2023-01-01","original_description":"PAYCHECK","account_id":"c6778d3f-e44c-4348-874e-71507c1ac12d"}],"document_metadata":{"document_type":"BANK_STATEMENT","name":"statement_01.pdf","status":"PROCESSING_COMPLETE","download_url":null,"page_count":2},"document_id":"2jkflanbd","bank_accounts":[{"name":"CHASE CHECKING","bank_name":"CHASE","account_type":"CHECKING","account_number":"000009752","account_id":"c6778d3f-e44c-4348-874e-71507c1ac12d","owner":{"name":"JANE DOE","address":{"postal_code":"94133","country":"US","region":"CA","city":"SAN FRANCISCO","street":"2140 TAYLOR ST"}},"periods":[{"start_date":"2023-01-01","end_date":"2023-02-01","starting_balance":2500,"ending_balance":3500}]}]}],"status":{"processing_status":"PROCESSING_COMPLETE"},"updated_at":"2023-02-01T21:14:54Z"}],"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"externalDocs":{"url":"/api/products/income/#creditbank_statementsuploadsget"},"operationId":"creditBankStatementsUploadsGet","description":"`/credit/bank_statements/uploads/get` returns parsed data from bank statements uploaded by users as part of the Document Income flow. If your account is not enabled for Document Parsing, contact your account manager to request access.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBankStatementsUploadsGetRequest"}}}}}},"/credit/payroll_income/get":{"post":{"summary":"Retrieve a user's payroll information","tags":["plaid"],"externalDocs":{"url":"/api/products/income/#creditpayroll_incomeget"},"operationId":"creditPayrollIncomeGet","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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomeGetRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomeGetResponse"},"examples":{"example-1":{"value":{"items":[{"item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","institution_id":"ins_92","institution_name":"ADP","accounts":[{"account_id":"GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9","rate_of_pay":{"pay_amount":100000,"pay_rate":"ANNUAL"},"pay_frequency":"BIWEEKLY"}],"payroll_income":[{"account_id":"GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9","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_metadata":{"document_type":"PAYSTUB","name":"paystub.pdf","status":"PROCESSING_COMPLETE","download_url":null},"document_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_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"},"name":"ANNA CHARLESTON","marital_status":"SINGLE","taxpayer_id":{"id_type":"SSN","id_mask":"3333"}},"employer":{"name":"PLAID INC","address":{"city":"SAN FRANCISCO","country":"US","postal_code":"94111","region":"CA","street":"1098 HARRISON ST"}},"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_metadata":{"document_type":"US_TAX_W2","download_url":null,"name":"w_2.pdf","status":"PROCESSING_COMPLETE"},"document_id":"1pkflebk4","employee":{"address":{"city":"San Francisco","country":"US","postal_code":"94103","region":"CA","street":"1234 Grand St"},"name":"Josie Georgia Harrison","marital_status":"SINGLE","taxpayer_id":{"id_type":"SSN","id_mask":"1234"}},"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_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"}],"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,"february_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_5000_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}],"i20s":[{"student":{"given_name":"Josie","surname_primary_name":"Harrison","passport_name":"Josie Georgia Harrison","preferred_name":"Josie","school_name":"Plaid University","program_start_date":"2022-08-22","program_end_date":"2024-05-15"},"personal_funds":10000,"on_campus_employment":5000,"funds_from_this_school":15000,"students_funding_total":30000,"funds_from_another_source":0,"estimated_average_costs_total":28000,"estimated_average_living_expenses":12000,"students_funding_period_months":9,"estimated_average_costs_period_months":9}]}],"status":{"processing_status":"PROCESSING_COMPLETE"},"updated_at":"2022-08-02T21:14:54Z"}],"request_id":"2pxQ59buGdsHRef"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/credit/payroll_income/risk_signals/get":{"post":{"summary":"Retrieve fraud insights for a user's manually uploaded document(s).","tags":["plaid"],"externalDocs":{"url":"/api/products/income/#creditpayroll_incomerisk_signalsget"},"operationId":"creditPayrollIncomeRiskSignalsGet","description":"`/credit/payroll_income/risk_signals/get` can be used as part of the Document Income flow to assess a user-uploaded document for signs of potential fraud or tampering. It returns a risk score for each uploaded document that indicates the likelihood of the document being fraudulent, in addition to details on the individual risk signals contributing to the score.\n\nTo trigger risk signal generation for an Item, call `/link/token/create` with `parsing_config` set to include `risk_signals`, or call `/credit/payroll_income/parsing_config/update`. Once risk signal generation has been triggered, `/credit/payroll_income/risk_signals/get` can be called at any time after the `INCOME_VERIFICATION_RISK_SIGNALS` webhook has been fired.\n\n`/credit/payroll_income/risk_signals/get` is offered as an add-on to Document Income and is billed separately. To request access to this endpoint, submit a product access request or contact your Plaid account manager.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomeRiskSignalsGetRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomeRiskSignalsGetResponse"},"examples":{"example-1":{"value":{"items":[{"item_id":"testItemID","verification_risk_signals":[{"account_id":null,"multi_document_risk_signals":[],"single_document_risk_signals":[{"document_reference":{"document_id":"lRepoQjxlJ1nz","document_name":"Paystub.pdf","file_type":"TRUE_PDF"},"risk_summary":{"risk_score":70},"risk_signals":[{"actual_value":"0.00","expected_value":"25.09","field":null,"signal_description":null,"has_fraud_risk":true,"type":"MASKING","page_number":1,"institution_metadata":{"item_id":"testItemID"}},{"actual_value":null,"expected_value":null,"field":null,"signal_description":"Creation date and modification date do not match","has_fraud_risk":true,"institution_metadata":null,"type":"METADATA_DATES_OUTSIDE_WINDOW","page_number":0}]}]}]}],"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/credit/payroll_income/precheck":{"post":{"deprecated":true,"summary":"Check income verification eligibility and optimize conversion","tags":["plaid"],"operationId":"creditPayrollIncomePrecheck","externalDocs":{"url":"/api/products/income/#creditpayroll_incomeprecheck"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomePrecheckResponse"},"examples":{"example-1":{"value":{"request_id":"lMjeOeu9X1VUh1F","confidence":"HIGH"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.\n\nWhile all request fields are optional, providing `employer` data will increase the chance of receiving a useful result.\n\nWhen testing in Sandbox, you can control the results by providing special test values in the `access_tokens` field. `access_good` and `access_bad` will result in `HIGH` and `LOW` confidence values, respectively. Any other valid Sandbox access token will result in `UNKNOWN` confidence; other strings return an `INVALID_ACCESS_TOKEN` error.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomePrecheckRequest"}}}}}},"/credit/employment/get":{"post":{"summary":"Retrieve a summary of an individual's employment information","tags":["plaid"],"operationId":"creditEmploymentGet","externalDocs":{"url":"/api/products/income/#creditemploymentget"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditEmploymentGetResponse"},"examples":{"example-1":{"value":{"items":[{"item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","employments":[{"account_id":"GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9","status":"ACTIVE","start_date":"2020-01-01","end_date":null,"employer":{"name":"Plaid Inc"},"title":"Software Engineer","platform_ids":{"employee_id":"1234567","position_id":"8888","payroll_id":"1234567"},"employee_type":"FULL_TIME","last_paystub_date":"2022-01-15"}]}],"request_id":"LhQf0THi8SH1yJm"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditEmploymentGetRequest"}}}}}},"/credit/payroll_income/refresh":{"post":{"tags":["plaid"],"summary":"Refresh a digital payroll income verification","externalDocs":{"url":"/api/products/income/#creditpayroll_incomerefresh"},"operationId":"creditPayrollIncomeRefresh","description":"`/credit/payroll_income/refresh` refreshes a given digital payroll income verification.","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomeRefreshResponse"},"examples":{"example-1":{"value":{"request_id":"nTkbCH41HYmpbm5","verification_refresh_status":"VERIFICATION_REFRESH_SUCCESSFUL"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPayrollIncomeRefreshRequest"}}}}}},"/credit/relay/create":{"post":{"summary":"Create a relay token to share an Asset Report with a partner client","tags":["plaid"],"operationId":"creditRelayCreate","externalDocs":{"url":"/api/products/assets/#creditrelaycreate"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditRelayCreateRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditRelayCreateResponse"},"examples":{"example-1":{"value":{"relay_token":"credit-relay-production-8218d5f8-6d6d-403d-92f5-13a9afaa4398","request_id":"Iam3b"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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`.\n\nTo 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."}},"/credit/relay/get":{"post":{"summary":"Retrieve the reports associated with a relay token that was shared with you","tags":["plaid"],"operationId":"creditRelayGet","externalDocs":{"url":"/api/products/assets/#creditrelayget"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditRelayGetRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetReportGetResponse"},"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":90,"items":[{"accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","balances":{"available":43200,"current":43200,"limit":null,"margin_loan_amount":null,"iso_currency_code":"USD","unofficial_currency_code":null},"days_available":90,"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","country":"US","region":"NY","street":"2992 Cameron Road","postal_code":"14236"},"primary":true},{"data":{"city":"San Matias","country":"US","region":"CA","street":"2493 Leisure Lane","postal_code":"93405-2255"},"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":"+1 111-555-3333","primary":false,"type":"home"},{"data":"+1 111-555-4444","primary":false,"type":"work"},{"data":"+1 111-555-5555","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,"limit":null,"margin_loan_amount":null,"iso_currency_code":"USD","unofficial_currency_code":null},"days_available":90,"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","country":"US","region":"NY","street":"2992 Cameron Road","postal_code":"14236"},"primary":true},{"data":{"city":"San Matias","country":"US","region":"CA","street":"2493 Leisure Lane","postal_code":"93405-2255"},"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":"+1 111-555-3333","primary":false,"type":"home"},{"data":"+1 111-555-4444","primary":false,"type":"work"},{"data":"+1 111-555-5555","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":[]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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."}},"/credit/relay/pdf/get":{"post":{"summary":"Retrieve the PDF reports associated with a relay token that was shared with you (beta)","tags":["plaid"],"responses":{"200":{"description":"A PDF of the Asset Report","content":{"application/pdf":{"schema":{"$ref":"#/components/schemas/CreditRelayPDFGetResponse"}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"creditRelayPdfGet","externalDocs":{"url":"/api/products/assets/#creditrelaypdfget"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditRelayPDFGetRequest"}}}},"description":"`/credit/relay/pdf/get` allows third parties to receive a PDF report that was shared with them, using a `relay_token` that was created by the report owner.\n\nThe `/credit/relay/pdf/get` endpoint retrieves the Asset Report in PDF format. Before calling `/credit/relay/pdf/get`, you must first create the Asset Report using `/credit/relay/create` 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.\n\nThe response to `/credit/relay/pdf/get` is the PDF binary data. The `request_id` is returned in the `Plaid-Request-ID` header.\n\n[View a sample PDF Asset Report](https://plaid.com/documents/sample-asset-report.pdf)."}},"/credit/relay/refresh":{"post":{"tags":["plaid"],"summary":"Refresh a report of a relay token","externalDocs":{"url":"/api/products/assets/#creditrelayrefresh"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditRelayRefreshResponse"},"examples":{"example-1":{"value":{"relay_token":"credit-relay-sandbox-8218d5f8-6d6d-403d-92f5-13a9afaa4398","request_id":"NBZaq","asset_report_id":"bf3a0490-344c-4620-a219-2693162e4b1d"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"creditRelayRefresh","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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditRelayRefreshRequest"}}},"description":""}}},"/credit/relay/remove":{"post":{"tags":["plaid"],"summary":"Remove relay token","externalDocs":{"url":"/api/products/assets/#creditrelayremove"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditRelayRemoveResponse"},"examples":{"example-1":{"value":{"removed":true,"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"operationId":"creditRelayRemove","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditRelayRemoveRequest"}}},"description":""},"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`."}},"/sandbox/bank_transfer/fire_webhook":{"post":{"summary":"(Deprecated) Manually fire a Bank Transfer webhook","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/bank-transfers/reference/#sandboxbank_transferfire_webhook"},"operationId":"sandboxBankTransferFireWebhook","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxBankTransferFireWebhookResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/bank_transfer/fire_webhook` endpoint to manually trigger a Bank Transfers webhook in the Sandbox environment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxBankTransferFireWebhookRequest"}}}}}},"/sandbox/income/fire_webhook":{"post":{"summary":"Manually fire an Income webhook","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxincomefire_webhook"},"operationId":"sandboxIncomeFireWebhook","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxIncomeFireWebhookResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/income/fire_webhook` endpoint to manually trigger a Payroll or Document Income webhook in the Sandbox environment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxIncomeFireWebhookRequest"}}}}}},"/sandbox/bank_income/fire_webhook":{"post":{"summary":"(Deprecated) Manually fire a Bank Income webhook in Sandbox","deprecated":true,"tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxbankincomefire_webhook"},"operationId":"sandboxBankIncomeFireWebhook","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxBankIncomeFireWebhookResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/bank_income/fire_webhook` endpoint to manually trigger a Bank Income webhook in the Sandbox environment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxBankIncomeFireWebhookRequest"}}}}}},"/sandbox/cra/cashflow_updates/update":{"post":{"summary":"Trigger an update for Cash Flow Updates","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxcracashflow_updatesupdate"},"operationId":"sandboxCraCashflowUpdatesUpdate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxCraCashflowUpdatesUpdateResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/cra/cashflow_updates/update` endpoint to manually trigger an update for the legacy Cash Flow Updates product in the Sandbox environment. To simulate a report generation for a CRA Servicing subscription, use `/sandbox/cra/servicing/simulate`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxCraCashflowUpdatesUpdateRequest"}}}}}},"/sandbox/cra/servicing/simulate":{"post":{"summary":"Simulate a CRA Servicing report","tags":["plaid"],"externalDocs":{"url":"/api/sandbox/#sandboxcraservicingsimulate"},"operationId":"sandboxCraServicingSimulate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxCraServicingSimulateResponse"},"examples":{"example-1":{"value":{"report_id":"cra-report-sandbox-5f8e1c2a-2b3c-4d5e-6f70-8a9b0c1d2e3f","request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use the `/sandbox/cra/servicing/simulate` endpoint to synchronously seed a CRA Servicing report in the Sandbox environment and return a `report_id` that can be fetched via `/cra/check_report/base_report/get` or `/cra/check_report/income_insights/get`. This endpoint also fires a `CRA_REPORT_UPDATED` webhook, mirroring the notification a live subscription would emit.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxCraServicingSimulateRequest"}}}}}},"/sandbox/oauth/select_accounts":{"post":{"summary":"Save the selected accounts when connecting to the Platypus OAuth institution","description":"Save the selected accounts when connecting to the Platypus OAuth institution","tags":["plaid"],"operationId":"sandboxOauthSelectAccounts","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxOauthSelectAccountsResponse"}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxOauthSelectAccountsRequest"}}}}}},"/signal/evaluate":{"post":{"tags":["plaid"],"summary":"Evaluate a planned ACH transaction","externalDocs":{"url":"/api/products/signal#signalevaluate"},"operationId":"signalEvaluate","description":"Use `/signal/evaluate` to evaluate a planned ACH transaction to get a return risk assessment and additional risk signals.\n\nBefore using `/signal/evaluate`, you must first [create a ruleset](https://plaid.com/docs/signal/signal-rules/) in the Dashboard under [**Signal->Rules**](https://dashboard.plaid.com/signal/risk-profiles).\n\n`/signal/evaluate` can be used with either Signal Transaction Scores or the Balance product. Which product is used will be determined by the `ruleset_key` that you provide. For more details, see [Signal Rules](https://plaid.com/docs/signal/signal-rules/).\n\nNote: This request may have higher latency when using a Balance-only ruleset. This is because Plaid must communicate directly with the institution to request data. Balance-only rulesets may have latency of up to 30 seconds or more; if you encounter errors, you may find it necessary to adjust your timeout period when making requests.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalEvaluateResponse"},"examples":{"example-1":{"value":{"scores":{"customer_initiated_return_risk":{"score":9},"bank_initiated_return_risk":{"score":82}},"core_attributes":{"available_balance":2200,"current_balance":2000},"ruleset":{"ruleset_key":"onboarding_flow","result":"REROUTE","triggered_rule_details":{"internal_note":"Rerouting customer to different payment method, since bank risk score is too high"}},"warnings":[],"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalEvaluateRequest"}}}}}},"/signal/schedule":{"post":{"tags":["plaid"],"summary":"Schedule a planned ACH transaction","externalDocs":{"url":"none"},"operationId":"signalSchedule","description":"Use `/signal/schedule` to schedule a planned ACH transaction.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalScheduleResponse"},"examples":{"example-1":{"value":{"optimal_date":"2025-01-17","recommendations":[{"date":"2025-01-15","recommendation":"RECOMMENDED","rank":2},{"date":"2025-01-16","recommendation":"NOT_RECOMMENDED","rank":null},{"date":"2025-01-17","recommendation":"RECOMMENDED","rank":1},{"date":"2025-01-20","recommendation":"NOT_RECOMMENDED","rank":null},{"date":"2025-01-21","recommendation":"UNKNOWN","rank":null}],"warnings":[],"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalScheduleRequest"}}}}}},"/signal/decision/report":{"post":{"tags":["plaid"],"summary":"Report whether you initiated an ACH transaction","externalDocs":{"url":"/api/products/signal#signaldecisionreport"},"operationId":"signalDecisionReport","description":"After you call `/signal/evaluate`, Plaid will normally infer the outcome from your Signal Rules. However, if you are not using Signal Rules, if the Signal Rules outcome was `REVIEW`, or if you take a different action than the one determined by the Signal Rules, you will need to call `/signal/decision/report`. This helps improve Signal Transaction Score accuracy for your account and is necessary for proper functioning of the rule performance and rule tuning capabilities in the Dashboard. If your effective decision changes after calling `/signal/decision/report` (for example, you indicated that you accepted a transaction, but later on, your payment processor rejected it, so it was never initiated), call `/signal/decision/report` again for the transaction to correct Plaid's records.\n\nIf you are using Plaid Transfer as your payment processor, you also do not need to call `/signal/decision/report`, as Plaid can infer outcomes from your Transfer activity.\n\nIf using a Balance-only ruleset, this endpoint will not impact scores (Balance does not use scores), but is necessary to view accurate transaction outcomes and tune rule logic in the Dashboard.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalDecisionReportResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalDecisionReportRequest"}}}}}},"/signal/return/report":{"post":{"tags":["plaid"],"summary":"Report a return for an ACH transaction","externalDocs":{"url":"/api/products/signal#signalreturnreport"},"operationId":"signalReturnReport","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 trends into your scores and tune rule logic. If using a Balance-only ruleset, this endpoint will not impact scores (as Balance does not use scores), but is necessary to view accurate transaction outcomes and tune rule logic in the Dashboard.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalReturnReportResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalReturnReportRequest"}}}}}},"/signal/prepare":{"post":{"tags":["plaid"],"summary":"Opt-in an Item to Signal Transaction Scores","externalDocs":{"url":"/api/products/signal#signalprepare"},"operationId":"signalPrepare","description":"When an Item is not initialized with `signal`, call `/signal/prepare` to opt-in that Item to the data collection process used to develop a Signal Transaction Score. This should be done on Items where `signal` was added in the `additional_consented_products` array but not in the `products`, `optional_products`, or `required_if_supported_products` array. If `/signal/prepare` is skipped on an Item that is not initialized with `signal`, the initial call to `/signal/evaluate` on that Item will be less accurate, because Plaid will have access to less data for computing the Signal Transaction Score.\n\nIf your integration is purely Balance-only, this endpoint will have no effect, as Balance-only rulesets do not calculate a Signal Transaction Score.\n\nIf run on an Item that is already initialized with `signal`, this endpoint will return a 200 response and will not modify the Item.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalPrepareResponse"},"examples":{"example-1":{"value":{"request_id":"mdqfuVxeoza6mhu"}}}}}},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalPrepareRequest"}}}}}},"/wallet/create":{"post":{"tags":["plaid"],"summary":"Create an e-wallet","externalDocs":{"url":"/api/products/virtual-accounts/#walletcreate"},"operationId":"walletCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCreateResponse"},"examples":{"example-1":{"value":{"wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","recipient_id":"recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6","balance":{"iso_currency_code":"GBP","current":123.12,"available":100.96},"request_id":"4zlKapIkTm8p5KM","numbers":{"bacs":{"account":"12345678","sort_code":"123456"}},"status":"ACTIVE"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Create an e-wallet. The response is the newly created e-wallet object.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCreateRequest"}}}}}},"/wallet/get":{"post":{"tags":["plaid"],"summary":"Fetch an e-wallet","externalDocs":{"url":"/api/products/virtual-accounts/#walletget"},"operationId":"walletGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletGetResponse"},"examples":{"example-1":{"value":{"wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","recipient_id":"recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6","balance":{"iso_currency_code":"GBP","current":123.12,"available":100.96},"request_id":"4zlKapIkTm8p5KM","numbers":{"bacs":{"account":"12345678","sort_code":"123456"},"international":{"iban":"GB33BUKB20201555555555","bic":"BUKBGB22"}},"status":"ACTIVE"}},"example-2":{"value":{"wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","recipient_id":"recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6","balance":{"iso_currency_code":"EUR","current":123.12,"available":100.96},"request_id":"4zlKapIkTm8p5KM","numbers":{"international":{"iban":"NL91ABNA0417164300","bic":"ABNANL2A"}},"status":"ACTIVE"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Fetch an e-wallet. The response includes the current balance.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletGetRequest"}}}}}},"/wallet/list":{"post":{"tags":["plaid"],"summary":"Fetch a list of e-wallets","externalDocs":{"url":"/api/products/virtual-accounts/#walletlist"},"operationId":"walletList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletListResponse"},"examples":{"example-1":{"value":{"wallets":[{"wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","recipient_id":"recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f6","balance":{"iso_currency_code":"GBP","current":123.12,"available":100.96},"numbers":{"bacs":{"account":"12345678","sort_code":"123456"}},"status":"ACTIVE"},{"wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a999","recipient_id":"recipient-id-production-9b6b4679-914b-445b-9450-efbdb80296f7","balance":{"iso_currency_code":"EUR","current":456.78,"available":100.96},"numbers":{"international":{"iban":"GB22HBUK40221241555626","bic":"HBUKGB4B"}},"status":"ACTIVE"}],"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint lists all e-wallets in descending order of creation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletListRequest"}}}}}},"/wallet/transaction/execute":{"post":{"tags":["plaid"],"summary":"Execute a transaction using an e-wallet","externalDocs":{"url":"/api/products/virtual-accounts/#wallettransactionexecute"},"operationId":"walletTransactionExecute","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTransactionExecuteResponse"},"examples":{"example-1":{"value":{"transaction_id":"wallet-transaction-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","status":"EXECUTED","request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Execute a transaction using the specified e-wallet.\nSpecify 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.\nTransactions will settle in seconds to several days, depending on the underlying payment rail.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTransactionExecuteRequest"}}}}}},"/wallet/transaction/get":{"post":{"tags":["plaid"],"summary":"Fetch an e-wallet transaction","externalDocs":{"url":"/api/products/virtual-accounts/#wallettransactionget"},"operationId":"walletTransactionGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTransactionGetResponse"},"examples":{"example-1":{"value":{"transaction_id":"wallet-transaction-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3","wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","type":"PAYOUT","reference":"Payout 99744","amount":{"iso_currency_code":"GBP","value":123.12},"status":"EXECUTED","created_at":"2020-12-02T21:14:54Z","last_status_update":"2020-12-02T21:15:01Z","counterparty":{"numbers":{"bacs":{"account":"31926819","sort_code":"601613"}},"name":"John Smith"},"request_id":"4zlKapIkTm8p5KM","related_transactions":[{"id":"wallet-transaction-id-sandbox-2ba30780-d549-4335-b1fe-c2a938aa39d2","type":"RETURN"}]}},"example-2":{"value":{"transaction_id":"wallet-transaction-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3","wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","type":"PAYOUT","reference":"Payout 99744","amount":{"iso_currency_code":"EUR","value":456.78},"status":"EXECUTED","created_at":"2020-12-02T21:14:54Z","last_status_update":"2020-12-02T21:15:01Z","counterparty":{"numbers":{"international":{"iban":"GB33BUKB20201555555555"}},"name":"John Smith"},"request_id":"4zlKapIkTm8p5KM","related_transactions":[]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Fetch a specific e-wallet transaction","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTransactionGetRequest"}}}}}},"/wallet/transaction/list":{"post":{"tags":["plaid"],"summary":"List e-wallet transactions","externalDocs":{"url":"/api/products/virtual-accounts/#wallettransactionlist"},"operationId":"walletTransactionList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTransactionListResponse"},"examples":{"example-1":{"value":{"next_cursor":"YWJjMTIzIT8kKiYoKSctPUB","transactions":[{"transaction_id":"wallet-transaction-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3","wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","type":"PAYOUT","reference":"Payout 99744","amount":{"iso_currency_code":"GBP","value":123.12},"status":"EXECUTED","created_at":"2020-12-02T21:14:54Z","last_status_update":"2020-12-02T21:15:01Z","counterparty":{"numbers":{"bacs":{"account":"31926819","sort_code":"601613"}},"name":"John Smith"},"related_transactions":[{"id":"wallet-transaction-id-sandbox-2ba30780-d549-4335-b1fe-c2a938aa39d2","type":"RETURN"}]},{"transaction_id":"wallet-transaction-id-sandbox-feca8a7a-5591-4aef-9297-f3062bb735d3","wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","type":"PAYOUT","reference":"Payout 99744","amount":{"iso_currency_code":"EUR","value":456.78},"status":"EXECUTED","created_at":"2020-12-02T21:14:54Z","last_status_update":"2020-12-02T21:15:01Z","counterparty":{"numbers":{"international":{"iban":"GB33BUKB20201555555555"}},"name":"John Smith"},"related_transactions":[]}],"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"This endpoint lists the latest transactions of the specified e-wallet. Transactions are returned in descending order by the `created_at` time.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTransactionListRequest"}}}}}},"/beta/transactions/rules/v1/create":{"post":{"tags":["plaid"],"summary":"Create transaction category rule","operationId":"transactionsRulesCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRulesCreateResponse"},"examples":{"example-1":{"value":{"rule":{"id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNo","user_id":"usr_9nSp2KuZ2x4JDw","created_at":"2022-02-28T11:00:00Z","updated_at":"2022-02-28T11:00:00Z","pfc_primary_category":"FOOD_AND_DRINK","pfc_detailed_category":"FOOD_AND_DRINK_FAST_FOOD","rule_details":{"field":"MERCHANT_NAME","type":"SUBSTRING_MATCH","query":"Burger Shack"}},"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/beta/transactions/rules/v1/create` endpoint creates transaction categorization rules.\n\nRules will be applied on the Item's transactions returned in `/transactions/get` response.\n\nThe product is currently in beta. To request access, contact transactions-feedback@plaid.com.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRulesCreateRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","client_user_id":"your-client-user-id","pfc_primary_category":"FOOD_AND_DRINK","pfc_detailed_category":"FOOD_AND_DRINK_FAST_FOOD","rule_details":{"field":"MERCHANT_NAME","type":"SUBSTRING_MATCH","query":"Burger Shack"}}}}}}}}},"/beta/transactions/rules/v1/list":{"post":{"tags":["plaid"],"summary":"Return a list of rules created for the end user.","operationId":"transactionsRulesList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRulesListResponse"},"examples":{"example-1":{"value":{"rules":[{"id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNo","user_id":"usr_9nSp2KuZ2x4JDw","created_at":"2022-02-28T11:00:00Z","updated_at":"2022-02-28T11:00:00Z","pfc_primary_category":"FOOD_AND_DRINK","pfc_detailed_category":"FOOD_AND_DRINK_FAST_FOOD","rule_details":{"field":"MERCHANT_NAME","type":"SUBSTRING_MATCH","query":"Burger Shack"}},{"id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBF","user_id":"usr_9nSp2KuZ2x4JDw","created_at":"2022-02-27T14:50:00Z","updated_at":"2022-02-27T14:50:00Z","pfc_primary_category":"TRANSFER_IN","pfc_detailed_category":"TRANSFER_IN_ACCOUNT_TRANSFER","rule_details":{"field":"TRANSACTION_ID","type":"EXACT_MATCH","query":"kgygNvAVPzSX9KkddNdWHaVGRVex1MHm3k9no"}}],"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/beta/transactions/rules/v1/list` returns a list of transaction rules created for the end user specified by `client_user_id`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRulesListRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","client_user_id":"your-client-user-id"}}}}}}}},"/beta/transactions/rules/v1/remove":{"post":{"tags":["plaid"],"summary":"Remove transaction rule","operationId":"transactionsRulesRemove","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRulesRemoveResponse"},"examples":{"example-1":{"value":{"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/beta/transactions/rules/v1/remove` endpoint is used to remove a transaction rule.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsRulesRemoveRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","client_user_id":"your-client-user-id","rule_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBF"}}}}}}}},"/beta/transactions/user_insights/v1/get":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Obtain user insights based on transactions sent through /transactions/enrich","x-hidden-from-docs":true,"externalDocs":{"url":"/api/products/enrich/#userinsightsget"},"operationId":"transactionsUserInsightsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsUserInsightsGetResponse"},"examples":{"example-1":{"value":{"user_data_overview":{"transaction_count":21,"oldest_transaction_date":"2023-01-01","newest_transaction_date":"2023-01-31","days_available":31,"total_outflows":1245.11,"total_inflows":2300.12},"counterparty_insights":{"financial_institution_insights":[{"name":"Chase","entity_id":"o2Ry34bq605MvmEed3yjqjkYWwqRQYpnkjd0O","website":"chase.com","detected_accounts":[{"account_type":"depository","account_subtype":null,"transaction_count":1,"oldest_transaction_date":"2022-01-24","newest_transaction_date":"2023-01-05","newest_transaction_amount":500,"total_outflows":503,"total_inflows":0}]}],"merchant_insights":[{"name":"Costco","entity_id":"pBowAoZJMM9DKR37jvNmzM4yWBBXyMzV2rM3A","website":"costco.com","personal_finance_category_primary":"GENERAL_MERCHANDISE","personal_finance_category_detailed":"GENERAL_MERCHANDISE_SUPERSTORES","transaction_count":2,"total_outflows":953.46,"total_inflows":24.99},{"name":"PG&E","entity_id":"6gEJJBrw8daLroaYgBAkpa65v9jVby69vejY0","website":"pge.com","personal_finance_category_primary":"RENT_AND_UTILITIES","personal_finance_category_detailed":"RENT_AND_UTILITIES_GAS_AND_ELECTRICITY","transaction_count":1,"total_outflows":123.01,"total_inflows":0}]},"category_insights":{"primary_category_insights":[{"name":"GENERAL_MERCHANDISE","transaction_count":7,"total_outflows":1025.23,"total_inflows":24.99,"top_counterparties":["Costco"]},{"name":"RENT_AND_UTILITIES","transaction_count":1,"total_outflows":123.01,"total_inflows":0,"top_counterparties":["PG&E"]}],"detailed_category_insights":[{"name":"GENERAL_MERCHANDISE_SUPERSTORES","transaction_count":3,"total_outflows":997.11,"total_inflows":24.99,"top_counterparties":["Costco"]}]},"recurring_transactions":{"inflow_streams":[{"stream_id":"yhnUVSIfe7SfeU0bcz8PDQr5ZUxUXebUvbKC0","description":"Payroll * Plaid","merchant_name":"Plaid","oldest_transaction_date":"2020-02-04","newest_transaction_date":"2023-08-02","average_days_apart":7,"frequency":"WEEKLY","transaction_count":5,"transaction_ids":["nkeaNrDGrhdo6c4qZWDA8ekuIPuJ4Avg5nKfw","EfC5ekksdy30KuNzad2tQupW8WIPwvjXGbGHL","ozfvj3FFgp6frbXKJGitsDzck5eWQH7zOJBYd","QvdDE8AqVWo3bkBZ7WvCd7LskxVix8Q74iMoK","uQozFPfMzibBouS9h9tz4CsyvFll17jKLdPAF"],"average_amount":{"amount":1000.91,"iso_currency_code":"USD","unofficial_currency_code":null},"last_amount":{"amount":1000,"iso_currency_code":"USD","unofficial_currency_code":null},"is_active":true,"status":"MATURE","personal_finance_category_primary":"INCOME","personal_finance_category_detailed":"INCOME_WAGES"}],"outflow_streams":[{"stream_id":"no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nd","description":"ConEd Bill Payment","merchant_name":"ConEd","oldest_transaction_date":"2022-02-04","newest_transaction_date":"2022-05-02","average_days_apart":29,"frequency":"MONTHLY","transaction_count":4,"transaction_ids":["yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0","HPDnUVgI5Pa0YQSl0rxwYRwVXeLyJXTWDAvpR","jEPoSfF8xzMClE9Ohj1he91QnvYoSdwg7IT8L","CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l"],"average_amount":{"amount":85,"iso_currency_code":"USD","unofficial_currency_code":null},"last_amount":{"amount":100,"iso_currency_code":"USD","unofficial_currency_code":null},"is_active":true,"status":"MATURE","personal_finance_category_primary":"RENT_AND_UTILITIES","personal_finance_category_detailed":"RENT_AND_UTILITIES_GAS_AND_ELECTRICITY"}]}}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"The `/beta/transactions/user_insights/v1/get` gets user insights for clients who have enriched data with `/transactions/enrich`.\n\nThe product is currently in beta.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsUserInsightsGetRequest"}}}}}},"/beta/ewa_report/v1/get":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Get EWA Score Report","externalDocs":{"url":"/api/products/beta/#betaewareportv1get"},"operationId":"betaEwaReportV1Get","description":"The `/beta/ewa_report/v1/get` endpoint provides an Earned Wage Access (EWA) score that quantifies the delinquency risk associated with a given item. The score is derived from a combination of cashflow patterns and network-based behavioral features.\n\nThe response returns a list of EWA scores, where each score corresponds to a potential advance amount range. These scores estimate the likelihood of repayment for advances within that range.\n\nScore range: 1-99\n\nInterpretation: Higher scores indicate a greater likelihood of repayment.\n\nThis endpoint enables clients to assess repayment risk and make data-driven decisions when determining eligibility or limits for earned wage advances.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaEwaReportV1GetRequest"},"examples":{"example-1":{"value":{"access_token":"access-sandbox-71e02f71-0960-4a27-abd2-5631e04f2175"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaEwaReportV1GetResponse"},"examples":{"example-1":{"value":{"request_id":"4zlKapIkTm8p5KM","ewa_report_id":"bbfc5174-5433-4648-8d93-9fec6a0c0966","generation_time":"2025-10-29T03:32:11Z","ewa_scores":[{"lowest_amount":0,"highest_amount":25,"score":75},{"lowest_amount":25,"highest_amount":50,"score":72},{"lowest_amount":50,"highest_amount":100,"score":68},{"lowest_amount":100,"highest_amount":200,"score":65},{"lowest_amount":200,"highest_amount":300,"score":60},{"lowest_amount":300,"highest_amount":400,"score":55},{"lowest_amount":400,"highest_amount":500,"score":50}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/beta/cash_advance/income_insights/v1/get":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Get Cash Advance income insights","externalDocs":{"url":"/api/products/beta/#betacashadvanceincomeinsightsv1get"},"operationId":"betaCashAdvanceIncomeInsightsV1Get","description":"The `/beta/cash_advance/income_insights/v1/get` endpoint returns a user's top income streams across all of the user's active Items, ranked by historical net monthly income and capped at three, along with the next payment date and amount of the highest-ranked stream.\n\nOnly USD income streams are returned. If some, but not all, of the user's Items could not be evaluated, the response is based on the remaining Items.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaCashAdvanceIncomeInsightsV1GetRequest"},"examples":{"example-1":{"value":{"client_id":"${PLAID_CLIENT_ID}","secret":"${PLAID_SECRET}","user_id":"usr_9nSp2KuZ2x4JDw"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaCashAdvanceIncomeInsightsV1GetResponse"},"examples":{"example-1":{"value":{"request_id":"kL9mNpQrS2tUvWx","next_payment_date":"2026-09-22","next_payment_amount":1450.37,"iso_currency_code":"USD","income_streams":[{"provider_name":"The Salvation Army Arc","category":{"primary":"EARNED_INCOME"},"pay_frequency":"BIWEEKLY","iso_currency_code":"USD"},{"provider_name":"Social Security Administration","category":{"primary":"BENEFITS"},"pay_frequency":"MONTHLY","iso_currency_code":"USD"}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/beta/issues/v1/get":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Get an issue","externalDocs":{"url":"/api/products/beta/#betaissuesv1get"},"operationId":"betaIssuesV1Get","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["issues:read"]}],"description":"Retrieve the latest public details for a specific institution issue.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1GetRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1GetResponse"},"examples":{"example-1":{"value":{"issue_id":"KI-12345","issue_type":"ERROR","severity":"HIGH","institution_id":"ins_109508","institution_name":"First Platypus Bank","behaviors":["NEW_CONNECTIONS_CANNOT_BE_ESTABLISHED"],"issue_error_type":"INSTITUTION_ERROR","issue_error_code":"INSTITUTION_NOT_RESPONDING","description":"New connections are temporarily unavailable.","attribution":"DATA_PARTNER","status":"IN_PROGRESS","user_guidance":null,"estimated_resolution_time":"2026-07-30T00:00:00Z","start_time":null,"end_time":null,"impact":{"affected_new_item_count":12,"affected_existing_item_count":0},"affected_products":["transactions"],"resolution_log":[],"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/beta/issues/v1/list":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"List institution issues","externalDocs":{"url":"/api/products/beta/#betaissuesv1list"},"operationId":"betaIssuesV1List","description":"Retrieve high-severity issues for an institution.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1ListRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1ListResponse"},"examples":{"example-1":{"value":{"issues":[{"issue_id":"KI-12345","issue_type":"ERROR","severity":"HIGH","institution_id":"ins_109508","institution_name":"First Platypus Bank","behaviors":["NEW_CONNECTIONS_CANNOT_BE_ESTABLISHED"],"issue_error_type":"INSTITUTION_ERROR","issue_error_code":"INSTITUTION_NOT_RESPONDING","description":"New connections are temporarily unavailable.","attribution":"DATA_PARTNER","status":"IN_PROGRESS","user_guidance":null,"estimated_resolution_time":"2026-07-30T00:00:00Z","start_time":null,"end_time":null,"impact":{"affected_new_item_count":12,"affected_existing_item_count":0},"affected_products":["transactions"],"resolution_log":[]}],"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/beta/issues/v1/match":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Match an Item to issues","externalDocs":{"url":"/api/products/beta/#betaissuesv1match"},"operationId":"betaIssuesV1Match","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["issues:read"]}],"description":"Match a Plaid identifier to institution issues that affect it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1MatchRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1MatchResponse"},"examples":{"example-1":{"value":{"item_id":"L5RRPmxBvPfrPGEGAD1DuNEl1NqpnduPklge9","issues":[{"issue_id":"KI-12345","issue_type":"ERROR","severity":"HIGH","institution_id":"ins_109508","institution_name":"First Platypus Bank","behaviors":["NEW_CONNECTIONS_CANNOT_BE_ESTABLISHED"],"issue_error_type":"INSTITUTION_ERROR","issue_error_code":"INSTITUTION_NOT_RESPONDING","description":"New connections are temporarily unavailable.","attribution":"DATA_PARTNER","status":"IN_PROGRESS","user_guidance":null,"estimated_resolution_time":"2026-07-30T00:00:00Z","start_time":null,"end_time":null,"impact":{"affected_new_item_count":12,"affected_existing_item_count":0},"affected_products":["transactions"],"resolution_log":[]}],"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/beta/issues/v1/subscribe":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Subscribe to an issue","externalDocs":{"url":"/api/products/beta/#betaissuesv1subscribe"},"operationId":"betaIssuesV1Subscribe","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["issues:write"]}],"description":"Subscribe a webhook URL to resolution notifications for an institution issue. A client has a single subscription per issue, so subscribing again for the same issue overwrites the previously registered webhook URL.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1SubscribeRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1SubscribeResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/beta/issues/v1/unsubscribe":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Unsubscribe from an issue","externalDocs":{"url":"/api/products/beta/#betaissuesv1unsubscribe"},"operationId":"betaIssuesV1Unsubscribe","security":[{"clientId":[],"secret":[],"plaidVersion":[]},{"oauth2":["issues:write"]}],"description":"Remove the client's subscription to resolution notifications for an institution issue. This removes the client's single subscription for that issue, identified by the issue alone.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1UnsubscribeRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaIssuesV1UnsubscribeResponse"},"examples":{"example-1":{"value":{"request_id":"m8MDnv9okwxFNBV"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/issues/search":{"post":{"tags":["plaid"],"summary":"Search for an Issue","externalDocs":{"url":"/none/"},"operationId":"issuesSearch","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuesSearchResponse"},"examples":{"example-1":{"value":{"issues":[{"issue_id":"1","institution_ids":["ins_1","ins_2"],"created_at":"2023-09-01T14:35:00Z","summary":"Link session failed to complete","detailed_description":"The Link session was unable to retrieve account information due to a network timeout.","status":"FIX_IN_PROGRESS"}],"request_id":"123456"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"Search for an issue associated with one of the following identifiers:  `item_id`, `link_session_id` or Link session `request_id`. This endpoint returns a list containing at most one issue. If no issues are associated with the provided identifier, `issues` is omitted. At least one of the identifiers must be provided to perform the search.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuesSearchRequest"}}}}}},"/issues/get":{"post":{"tags":["plaid"],"summary":"Get an Issue","externalDocs":{"url":"/none/"},"operationId":"issuesGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuesGetResponse"},"examples":{"example-1":{"value":{"issue":{"issue_id":"1","institution_ids":["ins_1","ins_2"],"created_at":"2023-09-01T14:35:00Z","summary":"Link session failed to complete","detailed_description":"The Link session was unable to retrieve account information due to a network timeout.","status":"FIX_IN_PROGRESS"},"request_id":"123456"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"Retrieve detailed information about a specific `Issue`. This endpoint returns a single `Issue` object.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuesGetRequest"}}}}}},"/issues/subscribe":{"post":{"tags":["plaid"],"summary":"Subscribe to an Issue","externalDocs":{"url":"/none/"},"operationId":"issuesSubscribe","responses":{"200":{"description":"Subscription was successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuesSubscribeResponse"},"examples":{"example-1":{"value":{"request_id":"123456"}}}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}},"description":"Error response"}},"description":"Allows a user to subscribe to updates on a specific `Issue` using a POST method. Subscribers will receive webhook notifications when the issue status changes, particularly when resolved.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuesSubscribeRequest"}}}}}},"/payment_profile/create":{"post":{"deprecated":true,"tags":["plaid"],"summary":"Create payment profile","externalDocs":{"url":"/api/products/transfer/#payment_profilecreate"},"operationId":"paymentProfileCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentProfileCreateResponse"},"examples":{"example-1":{"value":{"payment_profile_token":"payment-profile-sandbox-eda0b25e-8ef3-4ebb-9ef7-1ef3db3c5ee8","request_id":"4ciYmmesdqSiUAB"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use `/payment_profile/create` endpoint to create a new payment profile.\nTo initiate the account linking experience, call `/link/token/create` and provide the `payment_profile_token` in the `transfer.payment_profile_token` field.\nYou can then use the `payment_profile_token` when creating transfers using `/transfer/authorization/create` and `/transfer/create`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentProfileCreateRequest"}}}}}},"/payment_profile/get":{"post":{"deprecated":true,"tags":["plaid"],"summary":"Get payment profile","externalDocs":{"url":"/api/products/transfer/#payment_profileget"},"operationId":"paymentProfileGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentProfileGetResponse"},"examples":{"example-1":{"value":{"status":"READY","updated_at":"2022-07-07T12:48:37Z","created_at":"2022-07-05T12:48:37Z","deleted_at":null,"request_id":"4ciYmmesdqSiUAB"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"description":"Use `/payment_profile/get` endpoint to get the status of a given Payment Profile.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentProfileGetRequest"}}}}}},"/payment_profile/remove":{"post":{"deprecated":true,"tags":["plaid"],"summary":"Remove payment profile","externalDocs":{"url":"/api/products/transfer/#payment_profileremove"},"operationId":"paymentProfileRemove","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentProfileRemoveResponse"},"examples":{"example-1":{"value":{"request_id":"4ciYmmesdqSiUAB"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentProfileRemoveRequest"}}}}}},"/partner/customer/create":{"post":{"tags":["plaid"],"summary":"Creates a new end customer for a Plaid reseller.","externalDocs":{"url":"/api/partner/#partnercustomercreate"},"description":"The `/partner/customer/create` endpoint is used by reseller partners to create end customers. To create end customers, it should be called in the Production environment only, even when creating Sandbox API keys. If called in the Sandbox environment, it will return a sample response, but no customer will be created and the API keys will not be valid.","operationId":"partnerCustomerCreate","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerCreateResponse"},"examples":{"example-1":{"value":{"end_customer":{"client_id":"7f57eb3d2a9j6480121fx361","company_name":"Plaid","status":"ACTIVE","secrets":{"sandbox":"b60b5201d006ca5a7081d27c824d77","production":"79g03eoofwl8240v776r2h667442119"}},"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerCreateRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","company_name":"Plaid","is_diligence_attested":true,"products":["auth","identity"],"create_link_customization":true,"legal_entity_name":"Plaid","website":"plaid.com","application_name":"Plaid","technical_contact":{"given_name":"Alice","family_name":"Smith","email":"alice.smith@example.com"},"billing_contact":{"given_name":"Bob","family_name":"Jones","email":"bob.jones@example.com"},"address":{"city":"New York","street":"123 Main St","region":"NY","postal_code":"12345","country_code":"US"},"is_bank_addendum_completed":true,"customer_support_info":{"email":"support@example.com","phone_number":"1234567890","contact_url":"example.com/contact","link_update_url":"example.com/update"},"redirect_uris":["http://localhost/oauth.html","https://www.example.com/oauth.html"]}}}}}}}},"/partner/customer/get":{"post":{"tags":["plaid"],"summary":"Returns a Plaid reseller's end customer.","externalDocs":{"url":"/api/partner/#partnercustomerget"},"description":"The `/partner/customer/get` endpoint is used by reseller partners to retrieve data about a single end customer.","operationId":"partnerCustomerGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerGetResponse"},"examples":{"example-1":{"value":{"end_customer":{"client_id":"7f57eb3d2a9j6480121fx361","company_name":"Plaid","status":"ACTIVE"},"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerGetRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","end_customer_client_id":"7f57eb3d2a9j6480121fx361"}}}}}}}},"/partner/customer/enable":{"post":{"tags":["plaid"],"summary":"Enables a Plaid reseller's end customer in the Production environment.","externalDocs":{"url":"/api/partner/#partnercustomerenable"},"description":"The `/partner/customer/enable` endpoint is used by reseller partners to enable an end customer in the full Production environment.","operationId":"partnerCustomerEnable","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerEnableResponse"},"examples":{"example-1":{"value":{"production_secret":"79g03eoofwl8240v776r2h667442119","request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerEnableRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","end_customer_client_id":"7f57eb3d2a9j6480121fx361"}}}}}}}},"/partner/customer/remove":{"post":{"tags":["plaid"],"summary":"Removes a Plaid reseller's end customer.","externalDocs":{"url":"/api/partner/#partnercustomerremove"},"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 full Production.","operationId":"partnerCustomerRemove","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerRemoveResponse"},"examples":{"example-1":{"value":{"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerRemoveRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","end_customer_client_id":"7f57eb3d2a9j6480121fx361"}}}}}}}},"/partner/customer/oauth_institutions/get":{"post":{"tags":["plaid"],"summary":"Returns OAuth-institution registration information for a given end customer.","externalDocs":{"url":"/api/partner/#partnercustomeroauth_institutionsget"},"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).","operationId":"partnerCustomerOauthInstitutionsGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerOAuthInstitutionsGetResponse"},"examples":{"example-1":{"value":{"flowdown_status":"COMPLETE","questionnaire_status":"COMPLETE","institutions":[{"name":"Chase","institution_id":"ins_56","environments":{"production":"PROCESSING"},"production_enablement_date":null,"classic_disablement_date":"2022-06-30"},{"name":"Capital One","institution_id":"ins_128026","environments":{"production":"ENABLED"},"production_enablement_date":"2022-12-19","classic_disablement_date":null},{"name":"Bank of America","institution_id":"ins_1","environments":{"production":"ATTENTION_REQUIRED"},"production_enablement_date":null,"classic_disablement_date":null,"errors":[{"error_type":"PARTNER_ERROR","error_code":"OAUTH_REGISTRATION_ERROR","error_message":"Application logo is required","display_message":null,"request_id":"4zlKapIkTm8p5KM"}]}],"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCustomerOAuthInstitutionsGetRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","end_customer_client_id":"7f57eb3d2a9j6480121fx361"}}}}}}}},"/beta/partner/customer/v1/create":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Creates a new end customer for a Plaid reseller.","externalDocs":{"url":"/api/partner/#partnercustomercreate"},"description":"The `/beta/partner/customer/v1/create` endpoint creates a new end customer record. You can provide as much information as you have available. If any required information is missing for the products you intend to use, it will be listed in the `requirements_due` field of the response.","operationId":"betaPartnerCustomerV1Create","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaPartnerCustomerV1CreateResponse"},"examples":{"example-1":{"value":{"end_customer":{"client_id":"7f57eb3d2a9j6480121fx361","company_name":"Plaid","status":"MORE_INFORMATION_NEEDED","product_statuses":{"cra_base_report":"MORE_INFORMATION_NEEDED"},"requirements_due":["is_diligence_attested","bank_addendum_acceptance","questionnaires.cra"],"secrets":{"sandbox":"b60b5201d006ca5a7081d27c824d77","production":"79g03eoofwl8240v776r2h667442119"}},"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaPartnerCustomerV1CreateRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","company_name":"Plaid","products":["auth","identity"],"create_link_customization":true,"legal_entity_name":"Plaid","website":"plaid.com","application_name":"Plaid","technical_contact":{"given_name":"Alice","family_name":"Smith","email":"alice.smith@example.com"},"billing_contact":{"given_name":"Bob","family_name":"Jones","email":"bob.jones@example.com"},"address":{"city":"New York","street":"123 Main St","region":"NY","postal_code":"12345","country_code":"US"},"customer_support_info":{"email":"support@example.com","phone_number":"1234567890","contact_url":"example.com/contact","link_update_url":"example.com/update"},"redirect_uris":["http://localhost/oauth.html","https://www.example.com/oauth.html"]}}}}}}}},"/beta/partner/customer/v1/get":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Retrieves the details of a Plaid reseller's end customer.","externalDocs":{"url":"/api/partner/#partnercustomerget"},"description":"The `/beta/partner/customer/v1/get` endpoint is used by reseller partners to retrieve data about a single end customer.","operationId":"betaPartnerCustomerV1Get","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaPartnerCustomerV1GetResponse"},"examples":{"example-1":{"value":{"end_customer":{"client_id":"634758733ebb4f00134b85ea","company_name":"Plaid","status":"MORE_INFORMATION_NEEDED","product_statuses":{"cra_base_report":"MORE_INFORMATION_NEEDED"},"requirements_due":["is_diligence_attested","bank_addendum_acceptance","questionnaires.cra"]},"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaPartnerCustomerV1GetRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","end_customer_client_id":"634758733ebb4f00134b85ea"}}}}}}}},"/beta/partner/customer/v1/update":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Updates an existing end customer.","externalDocs":{"url":"/api/partner/#partnercustomercreate"},"description":"The `/beta/partner/customer/v1/update` endpoint updates an existing end customer record.","operationId":"betaPartnerCustomerV1Update","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaPartnerCustomerV1UpdateResponse"},"examples":{"example-1":{"value":{"end_customer":{"client_id":"634758733ebb4f00134b85ea","company_name":"Plaid","status":"PENDING_ENABLEMENT","product_statuses":{"cra_base_report":"PENDING_ENABLEMENT"}},"request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaPartnerCustomerV1UpdateRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","end_customer_client_id":"634758733ebb4f00134b85ea","bank_addendum_acceptance":{"customer_accepted":true,"customer_agreement_timestamp":"2025-01-01T01:00:00Z","customer_ip_address":"127.0.0.1"},"questionnaires":{"cra":{"is_technical_service_provider_involved":true,"is_third_party_involved":true,"purposes":{"WRITTEN_INSTRUCTION":{"use_cases":["CREDIT_UNDERWRITING","TENANT_SCREENING"]}}}}}}}}}}}},"/beta/partner/customer/v1/enable":{"x-hidden-from-docs":true,"post":{"tags":["plaid"],"summary":"Enables a Plaid reseller's end customer in the Production environment.","externalDocs":{"url":"/api/partner/#partnercustomerenable"},"description":"The `/beta/partner/customer/v1/enable` endpoint is used by reseller partners to enable an end customer in the full Production environment.","operationId":"betaPartnerCustomerV1Enable","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaPartnerCustomerV1EnableResponse"},"examples":{"example-1":{"value":{"end_customer_client_id":"634758733ebb4f00134b85ea","status":"ACTIVE","product_statuses":{"auth":"ACTIVE","cra_base_report":"PENDING_ENABLEMENT"},"production_secret":"79g03eoofwl8240v776r2h667442119","request_id":"4zlKapIkTm8p5KM"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetaPartnerCustomerV1EnableRequest"},"examples":{"example-1":{"value":{"client_id":"7f57eb3d2a9j6480121fx361","secret":"79g03eoofwl8240v776r2h667442119","end_customer_client_id":"634758733ebb4f00134b85ea","products":["auth"]}}}}}}}},"/fdx/notifications":{"post":{"tags":["plaid"],"description":"A generic webhook receiver endpoint for FDX Event Notifications","x-hidden-from-docs":true,"externalDocs":{"url":"/api/fdx/notifications/#post"},"summary":"Webhook receiver for fdx notifications","operationId":"fdxNotifications","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FDXNotification"}}}},"responses":{"200":{"description":"OK"},"default":{"description":"Error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/fdx/recipients":{"get":{"tags":["plaid"],"summary":"Get Recipients","operationId":"getRecipients","description":"Returns metadata for every recipient (application) your customers have connected to via Plaid's App Directory.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRecipientsResponse"},"examples":{"default":{"value":{"recipients":[{"recipient_id":"98c8990b-72a9-4dc2-a4c5-f45b9b269178","client_name":"My Example Client","logo_uri":"https://client-logos.plaid.com/logo.png","joined_date":"2021-08-31","category":"Robo advisors","connection_count":128,"third_party_legal_name":"My Example Client LLC"},{"recipient_id":"1a6ad795-2b9a-4a9f-8615-e771816c92db","client_name":"Another Example Client","logo_uri":"https://client-logos.plaid.com/logo2.png","joined_date":"2023-11-12","category":"eCommerce","connection_count":209,"third_party_legal_name":"Another Example Client LLC"}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}},"/fdx/consents":{"get":{"tags":["plaid"],"summary":"List FDX consent grants for a customer","operationId":"fdxConsentsList","description":"Returns zero or more consent grants associated with the given data provider customer, optionally filtered by status.","parameters":[{"in":"query","name":"customerId","description":"Data provider customer identifier whose consent grants to return.","required":true,"schema":{"type":"string"}},{"in":"query","name":"status","description":"Optional filter restricting results to a single consent grant status. One of `ACTIVE`, `REVOKED`, `EXPIRED`.","required":false,"schema":{"$ref":"#/components/schemas/FDXConsentGrantStatus"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConsentsResponse"},"examples":{"default":{"value":{"consent_grants":[{"id":"9585694d-3ae5-8863-1234-567890abcdef","status":"ACTIVE","createdTime":"2026-01-01T00:00:00Z","updatedTime":"2026-01-01T00:00:00Z","parties":[{"name":"My Example Client","type":"DATA_RECIPIENT","homeUri":"https://example.com","registry":"PRIVATE","registeredEntityName":"My Example Client LLC","registeredEntityId":"549300A0B1C2D3E4F5G6"},{"name":"First Platypus Bank","type":"DATA_PROVIDER","homeUri":"https://www.platypus.com"},{"name":"Plaid","type":"DATA_ACCESS_PLATFORM","homeUri":"https://plaid.com"}],"resources":[{"resourceType":"ACCOUNT","resourceId":"b14e1e714693bc00","dataClusters":["ACCOUNT_BASIC","ACCOUNT_DETAILED","STATEMENTS"]}]},{"id":"1a2b3c4d-5e6f-7890-abcd-ef0123456789","status":"REVOKED","createdTime":"2026-01-03T00:00:00Z","updatedTime":"2026-01-04T00:00:00Z","parties":[{"name":"Another Example Client","type":"DATA_RECIPIENT","homeUri":"https://another-example.com","registry":"PRIVATE","registeredEntityName":"Another Example Client LLC","registeredEntityId":"549300Z9Y8X7W6V5U4T3"},{"name":"First Platypus Bank","type":"DATA_PROVIDER","homeUri":"https://www.platypus.com"},{"name":"Plaid","type":"DATA_ACCESS_PLATFORM","homeUri":"https://plaid.com"}],"resources":[{"resourceType":"ACCOUNT","resourceId":"c25f2f825704cd11","dataClusters":["ACCOUNT_BASIC","ACCOUNT_DETAILED"]}]}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FDXError"}}}}}}},"/fdx/consents/{consentId}/revocation":{"put":{"tags":["plaid"],"summary":"Revoke FDX consent grant","operationId":"fdxConsentsRevoke","description":"Revokes a consent grant, ending the data recipient's ongoing access to the customer's data.","parameters":[{"in":"path","name":"consentId","description":"Unique identifier of the consent grant.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FDXConsentRevocation"}}}},"responses":{"204":{"description":"No Content"},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FDXError"}}}}}},"get":{"tags":["plaid"],"summary":"Retrieve FDX consent grant revocation records","operationId":"fdxConsentsRevocationGet","description":"Returns the revocation history of a consent grant.","parameters":[{"in":"path","name":"consentId","description":"Unique identifier of the consent grant.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FDXConsentRevocations"},"examples":{"default":{"value":{"revocations":[{"status":"REVOKED","reason":"USER_ACTION","initiator":"DATA_PROVIDER","updatedTime":"2026-01-03T00:00:00Z"}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FDXError"}}}}}}},"/fdx/consents/{consentId}":{"get":{"tags":["plaid"],"summary":"Get FDX consent grant","operationId":"fdxConsentsGet","description":"Returns a consent grant by its identifier.","parameters":[{"in":"path","name":"consentId","description":"Unique identifier of the consent grant.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FDXConsentGrant"},"examples":{"default":{"value":{"id":"9585694d-3ae5-8863-1234-567890abcdef","status":"ACTIVE","createdTime":"2026-01-01T00:00:00Z","updatedTime":"2026-01-01T00:00:00Z","parties":[{"name":"My Example Client","type":"DATA_RECIPIENT","homeUri":"https://example.com","registry":"PRIVATE","registeredEntityName":"My Example Client LLC","registeredEntityId":"549300A0B1C2D3E4F5G6"},{"name":"First Platypus Bank","type":"DATA_PROVIDER","homeUri":"https://www.platypus.com"},{"name":"Plaid","type":"DATA_ACCESS_PLATFORM","homeUri":"https://plaid.com"}],"resources":[{"resourceType":"ACCOUNT","resourceId":"b14e1e714693bc00","dataClusters":["ACCOUNT_BASIC","BALANCES","TRANSACTIONS","SCHEDULED_PAYMENTS"]}]}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FDXError"}}}}}}},"/fdx/recipient/{recipientId}":{"get":{"tags":["plaid"],"summary":"Get Recipient","operationId":"getRecipient","description":"Returns metadata for a single recipient (application), identified by `recipientId`.","parameters":[{"in":"path","name":"recipientId","description":"The recipient's (application's) identifier (a UUID), as returned by `/fdx/recipients`.","required":true,"schema":{"type":"string"}},{"in":"header","name":"OAUTH-STATE-ID","description":"Optional. If this lookup happens during an active OAuth flow, pass the value of the OAuth `state` parameter to help Plaid correlate this request in logs.","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRecipientResponse"},"examples":{"default":{"value":{"recipient_id":"7bf0b839-861e-444e-b103-9007610ffbaf","client_name":"My Example Client","logo_uri":"https://client-logos.plaid.com/logo.png","third_party_legal_name":"My Example Client LLC"}}}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaidError"}}}}}}}},"components":{"securitySchemes":{"clientId":{"type":"apiKey","in":"header","name":"PLAID-CLIENT-ID"},"secret":{"type":"apiKey","in":"header","name":"PLAID-SECRET"},"plaidVersion":{"type":"apiKey","in":"header","name":"Plaid-Version"},"oauth2":{"type":"oauth2","description":"The Plaid API supports client credentials, authorization code, and custom delegation flows.","flows":{"clientCredentials":{"tokenUrl":"https://api.plaid.com/oauth2/apiv2/token","scopes":{"cra:read":"Read CRA report data.","user:write":"Write user data.","item:read":"Read Item data.","link:read":"Read Link session results.","link:write":"Create Link tokens.","item:write":"Exchange a public token for an access token.","auth:read":"Read Auth data.","accounts:read":"Read account data.","identity:read":"Read Identity data.","transactions:read":"Read Transactions data.","issues:read":"Read institution issue data.","issues:write":"Manage institution issue subscriptions."}}}}},"parameters":{"PlaidNewUserApiEnabledHeader":{"name":"Plaid-New-User-API-Enabled","in":"header","required":false,"x-hidden-from-docs":true,"description":"The HTTP header used in API requests to determine which set of User APIs to invoke: the legacy CRA version or the new User API version.","schema":{"type":"boolean","default":false}}},"schemas":{"NetworkStatusGetRequest":{"type":"object","description":"NetworkStatusGetRequest defines the request schema for `/network/status/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user":{"$ref":"#/components/schemas/NetworkStatusGetUser"},"template_id":{"type":"string","description":"The id of a template defined in Plaid Dashboard. This field is used if you have additional criteria that you want to check against (e.g. Layer eligibility)."}},"required":["user"]},"ProfileNetworkStatusGetRequest":{"type":"object","x-hidden-from-docs":true,"description":"ProfileNetworkStatusGetRequest defines the request schema for `/profile/network_status/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user":{"$ref":"#/components/schemas/NetworkStatusGetUser"}},"required":["user"]},"NetworkStatusGetUser":{"type":"object","additionalProperties":true,"description":"An object specifying information about the end user for the network status check.","properties":{"phone_number":{"type":"string","description":"The user's phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format."}},"required":["phone_number"]},"NetworkStatusGetResponse":{"type":"object","additionalProperties":true,"description":"NetworkStatusGetResponse defines the response schema for `/network/status/get`","properties":{"network_status":{"$ref":"#/components/schemas/NetworkStatusGetResponseNetworkStatus"},"layer":{"$ref":"#/components/schemas/NetworkStatusGetResponseLayer"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["network_status","request_id"]},"ProfileNetworkStatusGetResponse":{"type":"object","x-hidden-from-docs":true,"additionalProperties":true,"description":"ProfileNetworkStatusGetResponse defines the response schema for `/profile/network_status/get`","properties":{"network_status":{"$ref":"#/components/schemas/NetworkStatusGetResponseNetworkStatus"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["network_status","request_id"]},"NetworkStatusGetResponseNetworkStatus":{"nullable":false,"type":"string","description":"Enum representing the overall network status of the user.","enum":["UNKNOWN","RETURNING_USER"]},"NetworkStatusGetResponseLayer":{"type":["object","null"],"additionalProperties":true,"description":"An object representing Layer-related metadata for the requested user.","properties":{"eligible":{"type":"boolean","description":"Indicates if the user is eligible for a Layer session."}},"required":["eligible"]},"PartnerEndCustomerOAuthStatusUpdatedValues":{"nullable":false,"type":"string","description":"The OAuth status of the update","enum":["not-started","processing","approved","enabled","attention-required"]},"WebhookEnvironmentValues":{"nullable":false,"type":"string","description":"The Plaid environment the webhook was sent from","enum":["sandbox","production"]},"AuthGetRequest":{"type":"object","description":"AuthGetRequest defines the request schema for `/auth/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"options":{"$ref":"#/components/schemas/AuthGetRequestOptions"}},"required":["access_token"]},"AuthGetRequestOptions":{"type":"object","description":"An optional object to filter `/auth/get` results.","properties":{"account_ids":{"type":"array","description":"A list of `account_ids` to retrieve for the Item.\nNote: An error will be returned if a provided `account_id` is not associated with the Item.","items":{"type":"string"}}}},"AuthGetResponse":{"type":"object","additionalProperties":true,"description":"AuthGetResponse defines the response schema for `/auth/get`","properties":{"accounts":{"type":"array","description":"The Item's accounts, or the accounts specified in `options.account_ids`. Accounts that don't support Auth, such as credit, loan, or investment accounts, are included but have no entry in `numbers`.","items":{"$ref":"#/components/schemas/AccountBase"}},"numbers":{"$ref":"#/components/schemas/AuthGetNumbers"},"item":{"$ref":"#/components/schemas/Item"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","numbers","item","request_id"]},"AuthGetNumbers":{"type":"object","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":{"type":"array","description":"An array of ACH numbers identifying accounts.","items":{"$ref":"#/components/schemas/NumbersACH"}},"eft":{"type":"array","description":"An array of EFT numbers identifying accounts.","items":{"$ref":"#/components/schemas/NumbersEFT"}},"international":{"type":"array","description":"An array of IBAN numbers identifying accounts.","items":{"$ref":"#/components/schemas/NumbersInternational"}},"bacs":{"type":"array","description":"An array of Bacs numbers identifying accounts.","items":{"$ref":"#/components/schemas/NumbersBACS"}}},"required":["ach","eft","international","bacs"]},"AuthVerifyRequestNumbers":{"type":"object","description":"An object containing identifying account numbers for verification via Database Auth","properties":{"ach":{"$ref":"#/components/schemas/AuthVerifyNumbersACH"}},"required":["ach"]},"AuthVerifyNumbersACH":{"type":"object","description":"ACH numbers for verification via Database Auth","properties":{"account":{"type":"string","description":"Account's account number"},"routing":{"type":"string","description":"Account's routing number"}},"required":["account","routing"]},"AuthVerifyRequest":{"type":"object","description":"AuthVerifyRequest defines the request schema for `/auth/verify`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"legal_name":{"type":["string","null"],"description":"Account owner's legal name"},"numbers":{"$ref":"#/components/schemas/AuthVerifyRequestNumbers"}},"required":["numbers"]},"AuthVerifyResponse":{"type":"object","additionalProperties":true,"description":"AuthVerifyResponse defines the response schema for `/auth/verify`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"item_id":{"type":["string","null"],"description":"The `item_id` value of the Item created for verification. If numbers data provided is invalid, an Item may not be created."},"verification_status":{"type":"string","description":"Indicates the Item's database verification status. Possible values are:\n\n`database_insights_fail`: The Item's numbers have been verified using Plaid's data sources and have signal for being invalid and/or have no signal for being valid. Typically this indicates that the routing number is invalid, the account number does not match the account number format associated with the routing number, or the account has been reported as closed or frozen. Only returned for Auth Items created via Database Auth.\n\n`database_insights_pass`: The Item's numbers have been verified using Plaid's data sources: the routing and account number match a routing and account number of an account recognized on the Plaid network, and the account is not known by Plaid to be frozen or closed. Only returned for Auth Items created via Database Auth.\n\n`database_insights_pass_with_caution`: The Item's numbers have been verified using Plaid's data sources and have some signal for being valid: the routing and account number were not recognized on the Plaid network, but the routing number is valid and the account number is a potential valid account number for that routing number. Only returned for Auth Items created via Database Auth.\n"},"verification_insights":{"$ref":"#/components/schemas/AccountVerificationInsights"}},"required":["request_id","verification_status","verification_insights"]},"UserAccountSessionGetRequest":{"description":"UserAccountSessionGetRequest defines the request schema for `/user_account/session/get`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"public_token":{"type":"string","description":"The public token generated by the end user Layer session."}},"required":["public_token"]},"UserAccountSessionGetResponse":{"type":"object","additionalProperties":true,"description":"UserAccountSessionGetResponse defines the response schema for `/user_account/session/get`","properties":{"idv_session_status":{"description":"Overall IDV status for the session. Omitted when IDV status retrieval is disabled, no verification exists, or its status is unavailable. Use the IDV endpoints for detailed results.","x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/IdentityVerificationStatus"}]},"link_session_id":{"type":["string","null"],"description":"The Link session identifier associated with this session. Null for sessions without a valid Link session identifier.","x-hidden-from-docs":true},"identity":{"$ref":"#/components/schemas/UserAccountIdentity"},"items":{"type":"array","items":{"$ref":"#/components/schemas/UserAccountItem"}},"identity_edit_history":{"$ref":"#/components/schemas/UserAccountIdentityEditHistory"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["link_session_id","identity","items","request_id"]},"UserAccountSessionEventSendRequest":{"description":"UserAccountSessionEventSendRequest defines the request schema for `/user_account/session/event/send`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"cohort_id":{"type":"string","description":"Optional cohort identifier for the user session."},"link_session_id":{"type":"string","description":"The Link session identifier."},"event":{"$ref":"#/components/schemas/UserAccountSessionEvent"}},"required":["link_session_id","event"]},"UserAccountSessionEvent":{"description":"Event data for user account session tracking","type":"object","properties":{"name":{"type":"string","description":"The name of the event."},"timestamp":{"type":"string","format":"date-time","description":"The timestamp when the event occurred in ISO 8601 format."},"outcome":{"type":"string","description":"Optional outcome of the event."}},"required":["name","timestamp"]},"UserAccountSessionEventSendResponse":{"type":"object","additionalProperties":true,"description":"UserAccountSessionEventSendResponse defines the response schema for `/user_account/session/event/send`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransactionsGetRequest":{"type":"object","description":"TransactionsGetRequest defines the request schema for `/transactions/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"options":{"$ref":"#/components/schemas/TransactionsGetRequestOptions"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":"string","format":"date","description":"The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD. Plaid returns all transaction history stored for the Item (up to 2 years prior to the initial linking of the Item)."},"end_date":{"type":"string","format":"date","description":"The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD."}},"required":["access_token","start_date","end_date"]},"PersonalFinanceCategoryVersion":{"title":"PersonalFinanceCategoryVersion","type":"string","description":"Indicates which version of the personal finance category taxonomy is being used. [View PFCv2 and PFCv1 taxonomies](https://plaid.com/documents/pfc-taxonomy-all.csv).\n\nIf you enabled Transactions or Enrich before December 3, 2025 you will receive the `v1` taxonomy by default and may request `v2` by explicitly setting this field to `v2` in the request.\n\nIf you enabled Transactions or Enrich on or after December 3, 2025, you may only receive the `v2` taxonomy.\n","enum":["v1","v2"]},"TransactionsGetRequestOptions":{"type":"object","description":"An optional object to be used with the request. If specified, `options` must not be `null`.","properties":{"account_ids":{"type":"array","description":"A list of `account_ids` to retrieve for the Item\n\nNote: An error will be returned if a provided `account_id` is not associated with the Item.","items":{"type":"string"}},"count":{"type":"integer","default":100,"description":"The number of transactions to fetch.","minimum":1,"maximum":500},"offset":{"type":"integer","default":0,"description":"The number of transactions to skip. The default value is 0.","minimum":0},"include_original_description":{"type":["boolean","null"],"default":false,"description":"Include the raw unparsed transaction description from the financial institution."},"include_personal_finance_category_beta":{"type":"boolean","default":false,"description":"Personal finance categories are now returned by default.","deprecated":true,"x-hidden-from-docs":true},"include_personal_finance_category":{"type":"boolean","default":false,"description":"Personal finance categories are now returned by default.","deprecated":true,"x-hidden-from-docs":true},"include_logo_and_counterparty_beta":{"type":"boolean","default":false,"description":"Counterparties and extra merchant fields are now returned by default.","deprecated":true,"x-hidden-from-docs":true},"personal_finance_category_version":{"$ref":"#/components/schemas/PersonalFinanceCategoryVersion"},"days_requested":{"description":"This field only applies to calls for Items where the Transactions product has not already been initialized (i.e. by specifying `transactions` in the `products`, `optional_products`, or `required_if_supported_products` array when calling `/link/token/create` or by making a previous call to `/transactions/sync` or `/transactions/get`). In those cases, the field controls the maximum number of days of transaction history that Plaid will request from the financial institution. The more transaction history is requested, the longer the historical update poll will take. If no value is specified, 90 days of history will be requested by default. In Production, if a value under 30 is provided, a minimum of 30 days of history will be requested.\n\nIf you are initializing your Items with transactions during the `/link/token/create` call (e.g. by including `transactions` in the `/link/token/create` `products` array), you must use the [`transactions.days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) field in the `/link/token/create` request instead of in the `/transactions/get` request.\n\nIf the Item has already been initialized with the Transactions product, this field will have no effect. The maximum amount of transaction history to request on an Item cannot be updated if Transactions has already been added to the Item. To request older transaction history on an Item where Transactions has already been added, you must delete the Item via `/item/remove` and send the user through Link to create a new Item.\n\nCustomers using [Recurring Transactions](https://plaid.com/docs/api/products/transactions/#transactionsrecurringget) should request at least 180 days of history for optimal results.","type":"integer","minimum":1,"maximum":730,"default":90}}},"TransactionsGetResponse":{"type":"object","additionalProperties":true,"description":"TransactionsGetResponse defines the response schema for `/transactions/get`","properties":{"accounts":{"type":"array","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"}},"transactions":{"type":"array","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"}},"total_transactions":{"type":"integer","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."},"item":{"$ref":"#/components/schemas/Item"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","transactions","total_transactions","item","request_id"]},"TransactionsRefreshRequest":{"type":"object","description":"TransactionsRefreshRequest defines the request schema for `/transactions/refresh`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["access_token"]},"TransactionsRefreshResponse":{"type":"object","additionalProperties":true,"description":"TransactionsRefreshResponse defines the response schema for `/transactions/refresh`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransactionsCreateRequest":{"type":"object","description":"SandboxTransactionsCreateRequest defines the request schema for `/sandbox/transactions/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"transactions":{"type":"array","description":"List of transactions to be added","items":{"$ref":"#/components/schemas/CustomSandboxTransaction"}}},"required":["transactions","access_token"]},"SandboxTransactionsCreateResponse":{"type":"object","additionalProperties":true,"description":"SandboxTransactionsCreateResponse defines the response schema for `/sandbox/transactions/create`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CashflowReportRefreshRequest":{"x-hidden-from-docs":true,"type":"object","description":"CashflowReportRefreshRequest defines the request schema for `/cashflow_report/refresh`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"days_requested":{"type":"integer","description":"Number of days to retrieve transactions data for (1 to 730)","minimum":1,"maximum":730,"default":365}},"required":["access_token","days_requested"]},"CashflowReportRefreshResponse":{"x-hidden-from-docs":true,"type":"object","additionalProperties":true,"description":"CashflowReportRefreshResponse defines the response schema for `/cashflow_report/refresh`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CashflowReportGetRequest":{"x-hidden-from-docs":true,"type":"object","description":"CashflowReportGetRequest defines the request schema for `/cashflow_report/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"days_requested":{"type":"integer","description":"Number of days to retrieve transactions data for (1 to 730)","minimum":1,"maximum":730},"count":{"type":"integer","description":"Number of transactions to fetch per call","minimum":1,"maximum":500,"default":100},"cursor":{"type":"string","description":"The cursor value represents the last update requested. Pass in the empty string \"\" in the first call."},"options":{"$ref":"#/components/schemas/CashflowReportGetRequestOptions"}},"required":["access_token","days_requested"]},"CashflowReportGetRequestOptions":{"type":"object","description":"An optional object to be used with the request. If specified, `options` must not be `null`.","properties":{"account_ids":{"type":"array","description":"A list of `account_ids` to retrieve for the Item\n\nNote: An error will be returned if a provided `account_id` is not associated with the Item.","items":{"type":"string"}}}},"CashflowReportGetResponse":{"type":"object","additionalProperties":true,"description":"CashflowReportGetResponse defines the response schema for `/cashflow_report/get`","properties":{"accounts":{"type":"array","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/BusinessAccount"}},"transactions":{"type":"array","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/CashflowReportTransaction"}},"total_transactions":{"type":"integer","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 using the `cursor` parameter."},"item":{"$ref":"#/components/schemas/Item"},"next_cursor":{"type":"string","description":"Cursor used for fetching any future updates after the latest update provided in this response."},"has_more":{"type":"boolean","description":"Represents if more than requested count of transactions exists to be fetched"},"last_successful_update_time":{"type":"string","format":"date-time","description":"The last successful update time in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` )"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","transactions","total_transactions","item","next_cursor","has_more","last_successful_update_time","request_id"]},"CashflowReportTransactionsGetRequest":{"x-hidden-from-docs":true,"type":"object","description":"CashflowReportTransactionsGetRequest defines the request schema for `/cashflow_report/transactions/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"count":{"type":"integer","description":"Number of transactions to fetch per call","minimum":1,"maximum":500,"default":100},"cursor":{"type":"string","description":"The cursor value represents the last update requested. Pass in the empty string \"\" in the first call."},"options":{"$ref":"#/components/schemas/CashflowReportTransactionsGetRequestOptions"}},"required":["access_token"]},"CashflowReportTransactionsGetRequestOptions":{"type":"object","description":"An optional object to be used with the request. If specified, `options` must not be `null`.","properties":{"account_ids":{"type":"array","description":"A list of `account_ids` to retrieve for the Item\n\nNote: An error will be returned if a provided `account_id` is not associated with the Item.","items":{"type":"string"}}}},"CashflowReportTransactionsGetResponse":{"type":"object","additionalProperties":true,"description":"CashflowReportTransactionsGetResponse defines the response schema for `/cashflow_report/transactions/get`","properties":{"accounts":{"type":"array","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/BusinessAccount"}},"transactions":{"type":"array","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/CashflowReportTransaction"}},"total_transactions":{"type":"integer","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 using the `cursor` parameter."},"item":{"$ref":"#/components/schemas/Item"},"next_cursor":{"type":"string","description":"Cursor used for fetching any future updates after the latest update provided in this response."},"has_more":{"type":"boolean","description":"Represents if more than requested count of transactions exists to be fetched"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","transactions","total_transactions","item","next_cursor","has_more","request_id"]},"CashflowReportInsightsGetRequest":{"type":"object","description":"CashflowReportInsightsGetRequest defines the request schema for `/cashflow_report/insights/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["access_token"]},"CashflowReportInsightsGetResponse":{"type":"object","additionalProperties":true,"description":"CashflowReportInsightsGetResponse defines the response schema for `/cashflow_report/insights/get`","properties":{"item":{"$ref":"#/components/schemas/Item"},"accounts":{"type":"array","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/BusinessAccount"}},"account_insights":{"$ref":"#/components/schemas/CashflowReportAccountInsights"},"last_generated_time":{"type":"string","format":"date-time","description":"Datetime of last Cashflow Report generation in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` )"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["item","accounts","account_insights","last_generated_time","request_id"]},"CashflowReportAccountInsights":{"title":"CashflowAccountInsights","type":"object","additionalProperties":true,"description":"Insights on the account level. These are only returned for Credit and Depository type accounts.","properties":{"historical_balances":{"type":"array","description":"Calculated data about the historical balances on the account.\n\nAvailable for `credit` and `depository` type accounts.","items":{"$ref":"#/components/schemas/CashflowReportHistoricalBalance"}},"monthly_summaries":{"type":"array","description":"Monthly summary statistics derived from transaction-level data.","items":{"$ref":"#/components/schemas/CashflowReportMonthlySummary"}}},"required":["historical_balances","monthly_summaries"]},"CashflowReportHistoricalBalance":{"title":"CashflowReportHistoricalBalance","type":"object","additionalProperties":true,"description":"An object representing a balance held by an account in the past","properties":{"date":{"type":"string","format":"date","description":"The date of the calculated historical balance, in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)"},"amount":{"type":"number","format":"double","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.\n\nIf the account has any pending transactions, historical balance amounts on or before the date of the earliest pending transaction may differ if retrieved in subsequent Asset Reports as a result of those pending transactions posting."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the balance. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the balance. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}},"required":["date","amount","iso_currency_code","unofficial_currency_code"]},"CashflowIsoCurrencyCode":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`"},"CashflowUnofficialCurrencyCode":{"type":["string","null"],"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."},"CashflowReportMonthlySummaryStartingBalance":{"type":["object","null"],"description":"The starting balance of the month. This will be the same as the ending balance of the previous month. This field will not be available for the first monthly summary.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummaryEndingBalance":{"type":["object","null"],"description":"The ending balance of the month. This will be the same as the starting balance of the next month. This field will not be available for the last monthly summary.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummaryAverageDailyEndingBalance":{"type":"object","description":"Calendar-day average of the ending balance.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummaryAverageDailyInflowAmount":{"type":"object","description":"The average daily sum of inflow transactions, calculated over the month. Always represented as a positive monetary amount.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummaryAverageDailyOutflowAmount":{"type":"object","description":"The average daily sum of outflow transactions, calculated over the month. Always represented as a positive monetary amount.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummaryAverageDailyNetCashflowAmount":{"type":"object","description":"The average daily net cash flow amount, calculated as total daily inflows less total daily outflows.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummaryTotalRevenue":{"type":"object","description":"The total amount of all revenue transactions during this month.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummaryTotalLoanPayment":{"type":"object","description":"The total amount of all loan payment transactions during this month.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummaryTotalVariableExpense":{"type":"object","description":"The total amount of all variable expense transactions during this month.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummaryTotalPayroll":{"type":"object","description":"The total amount of all payroll transactions during this month.","properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CashflowIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CashflowUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CashflowReportMonthlySummary":{"description":"Monthly summary statistics derived from transaction-level data.","title":"CashflowReportMonthlySummary","type":"object","additionalProperties":true,"properties":{"start_date":{"type":"string","format":"date","description":"The start date of the period covered in this monthly summary.\n\nThis 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.\n\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The end date of the period included in this monthly summary.\n\nThis 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.\n\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"starting_balance":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryStartingBalance"},"ending_balance":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryEndingBalance"},"average_daily_ending_balance":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryAverageDailyEndingBalance"},"average_daily_inflow_amount":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryAverageDailyInflowAmount"},"average_daily_outflow_amount":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryAverageDailyOutflowAmount"},"average_daily_net_cashflow_amount":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryAverageDailyNetCashflowAmount"},"average_daily_inflow_transaction_count":{"type":"number","description":"The average count of the number of daily inflow transactions. Rounded to 2 decimal places."},"average_daily_outflow_transaction_count":{"type":"number","description":"The average count of the number of daily outflow transactions. Rounded to 2 decimal places."},"total_revenue":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryTotalRevenue"},"total_loan_payment":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryTotalLoanPayment"},"total_variable_expense":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryTotalVariableExpense"},"total_payroll":{"$ref":"#/components/schemas/CashflowReportMonthlySummaryTotalPayroll"},"nsf_transaction_count":{"type":"integer","description":"The total number of all NSF transactions during this month."},"overdraft_transaction_count":{"type":"integer","description":"The total number of all overdraft transactions during this month."},"negative_ending_balance_day_count":{"type":"integer","description":"The number of days with a negative daily average ending balance. The daily average is calculated across all valid accounts. Values will be in the range [0, 31]."}},"required":["start_date","end_date","starting_balance","ending_balance","average_daily_ending_balance","average_daily_inflow_amount","average_daily_outflow_amount","average_daily_net_cashflow_amount","average_daily_inflow_transaction_count","average_daily_outflow_transaction_count","total_revenue","total_loan_payment","total_variable_expense","total_payroll","nsf_transaction_count","overdraft_transaction_count","negative_ending_balance_day_count"]},"BusinessAccount":{"description":"Business identity information about an account","title":"BusinessAccount","allOf":[{"$ref":"#/components/schemas/AccountBase"},{"type":"object","additionalProperties":true,"properties":{"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","type":["string","null"]},"mask":{"description":"The last 2-4 alphanumeric characters of either the account's displayed mask or the account's official account number. Note that the mask may be non-unique between an Item's accounts.","type":["string","null"]},"verification_name":{"description":"The account holder name that was used for micro-deposit and/or database verification. Only returned for Auth Items created via micro-deposit or database verification. This name was manually-entered by the user during Link, unless it was otherwise provided via the `user.legal_name` request field in `/link/token/create` for the Link session that created the Item.","type":"string"},"owners":{"type":"array","description":"Data returned by the financial institution about the account owner or owners. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution. Multiple owners on a single account will be represented in the same owner object, not in multiple owner objects within the array.","items":{"$ref":"#/components/schemas/Owner"}}}}]},"TransactionsRecurringUpdateRequest":{"type":"object","description":"TransactionsRecurringUpdateRequest defines the request schema for `/transactions/recurring/streams/update` endpoint.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"inputs":{"type":"array","description":"A list of all the operations to be performed. This will either all succeed or all fail.","items":{"$ref":"#/components/schemas/TransactionsRecurringUpdateInput"}}},"required":["access_token","inputs"]},"TransactionsRecurringUpdateInput":{"type":"object","description":"TransactionsRecurringUpdateInput defines a single operation to the `/transactions/recurring/streams/update` endpoint.","properties":{"stream_id":{"type":"string","description":"ID of the stream that all the transactions will be added into."},"transaction_ids":{"type":"array","description":"IDs of all the transactions that will be added into the stream. If any transaction currently exists in another stream, it will be removed from the other stream.","items":{"type":"string"}}},"required":["stream_id","transaction_ids"]},"TransactionsRecurringUpdateResponse":{"type":"object","additionalProperties":true,"description":"TransactionsRecurringUpdateResponse defines the response schema for the `/transactions/recurring/streams/update` endpoint.","properties":{"modified_streams":{"type":"array","description":"Directly modified stream, along with other streams with transactions removed from them as a result of the operation (in no particular order).","items":{"$ref":"#/components/schemas/TransactionStream"}},"removed_stream_ids":{"type":"array","description":"The ids of streams that are no longer qualified as recurring transaction streams (in no particular order).","items":{"type":"string","description":"ID of the removed stream"}}},"required":["modified_streams"]},"TransactionsRecurringMergeRequest":{"type":"object","description":"TransactionsRecurringMergeRequest defines the request schema for `/transactions/recurring/streams/merge` endpoint.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"inputs":{"type":"array","description":"A list of all the operations to be performed. This will either all succeed or all fail.","items":{"$ref":"#/components/schemas/TransactionsRecurringMergeInput"}}},"required":["access_token","inputs"]},"TransactionsRecurringMergeInput":{"type":"object","description":"TransactionsRecurringMergeInput defines a single input to the `/transactions/recurring/streams/merge` endpoint.","properties":{"stream_ids":{"type":"array","description":"IDs of all the streams that will be merged into the first stream. This operation will retain the `stream_id` of the first stream.","items":{"type":"string"}}},"required":["stream_ids"]},"TransactionsRecurringMergeResponse":{"type":"object","additionalProperties":true,"description":"TransactionsRecurringMergeResponse defines the response schema for the `/transactions/recurring/streams/merge` endpoint.","properties":{"modified_streams":{"type":"array","description":"Directly modified stream, along with other streams with transactions removed from them as a result of the operation (in no particular order).","items":{"$ref":"#/components/schemas/TransactionStream"}},"removed_stream_ids":{"type":"array","description":"The ids of streams that are no longer qualified as recurring transaction streams (in no particular order).","items":{"type":"string","description":"ID of the removed stream"}}},"required":["modified_streams"]},"TransactionsRecurringCreateRequest":{"type":"object","description":"TransactionsRecurringCreateRequest defines the request schema for `/transactions/recurring/streams/create` endpoint.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"inputs":{"type":"array","description":"A list of all the operations to be performed. This will either all succeed or all fail.","items":{"$ref":"#/components/schemas/TransactionsRecurringCreateInput"}}},"required":["access_token","inputs"]},"TransactionsRecurringCreateInput":{"type":"object","description":"TransactionsRecurringCreateInput defines a single input to the `/transactions/recurring/streams/create` endpoint.","properties":{"transaction_ids":{"type":"array","description":"IDs of all the transactions that will be merged into one stream. If any transaction currently exists in another stream, it will be removed from the other stream.","items":{"type":"string"}}},"required":["stream_ids"]},"TransactionsRecurringCreateResponse":{"type":"object","additionalProperties":true,"description":"TransactionsRecurringCreateResponse defines the response schema for the `/transactions/recurring/streams/create` endpoint.","properties":{"added_streams":{"type":"array","description":"Streams created as a result of the operation.","items":{"$ref":"#/components/schemas/TransactionStream"}},"modified_streams":{"type":"array","description":"Other streams with transactions removed from them as a result of the operation (in no particular order).","items":{"$ref":"#/components/schemas/TransactionStream"}},"removed_stream_ids":{"type":"array","description":"The ids of streams that are no longer qualified as recurring transaction streams (in no particular order).","items":{"type":"string","description":"ID of the removed stream"}}},"required":["added_streams"]},"TransactionsRecurringGetRequest":{"type":"object","description":"TransactionsRecurringGetRequest defines the request schema for `/transactions/recurring/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"options":{"$ref":"#/components/schemas/TransactionsRecurringGetRequestOptions"},"account_ids":{"type":"array","description":"An optional list of `account_ids` to retrieve for the Item. Retrieves all active accounts on item if no `account_id`s are provided.\n\nNote: An error will be returned if a provided `account_id` is not associated with the Item.","items":{"type":"string"}}},"required":["access_token"]},"TransactionsRecurringGetRequestOptions":{"type":"object","description":"An optional object to be used with the request. If specified, `options` must not be `null`.","properties":{"include_personal_finance_category":{"type":"boolean","default":false,"description":"Personal finance categories are now returned by default.","deprecated":true,"x-hidden-from-docs":true},"personal_finance_category_version":{"$ref":"#/components/schemas/PersonalFinanceCategoryVersion"}}},"TransactionsRecurringGetResponse":{"type":"object","additionalProperties":true,"description":"TransactionsRecurringGetResponse defines the response schema for `/transactions/recurring/get`","properties":{"inflow_streams":{"type":"array","description":"An array of inflow transaction streams.","items":{"$ref":"#/components/schemas/TransactionStream"}},"outflow_streams":{"type":"array","description":"An array of expense transaction streams.","items":{"$ref":"#/components/schemas/TransactionStream"}},"updated_datetime":{"type":"string","format":"date-time","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"},"personal_finance_category_version":{"$ref":"#/components/schemas/PersonalFinanceCategoryVersion"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["inflow_streams","outflow_streams","updated_datetime","request_id"]},"TransactionsRulesCreateRequest":{"type":"object","description":"TransactionsRulesCreateRequest defines the request schema for `/beta/transactions/rules/v1/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_user_id":{"type":"string","description":"A unique ID representing the end user. This ID is used to associate rules with a specific user."},"pfc_primary_category":{"$ref":"#/components/schemas/PfcPrimaryCategory"},"pfc_detailed_category":{"$ref":"#/components/schemas/PfcDetailedCategory"},"rule_details":{"$ref":"#/components/schemas/TransactionsRuleDetails"}},"required":["client_user_id","pfc_primary_category","pfc_detailed_category","rule_details"]},"TransactionsRulesCreateResponse":{"type":"object","additionalProperties":true,"description":"TransactionsRulesCreateResponse defines the response schema for `/beta/transactions/rules/v1/create`","properties":{"rule":{"$ref":"#/components/schemas/TransactionsCategoryRule"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["rule","request_id"]},"TransactionsRulesListRequest":{"type":"object","description":"TransactionsRulesListRequest defines the request schema for `/beta/transactions/rules/v1/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_user_id":{"type":"string","description":"A unique ID representing the end user whose rules should be listed."}},"required":["client_user_id"]},"TransactionsRulesListResponse":{"type":"object","additionalProperties":true,"description":"TransactionsRulesListResponse defines the response schema for `/beta/transactions/rules/v1/list`","properties":{"rules":{"type":"array","description":"A list of the user's transaction rules","items":{"$ref":"#/components/schemas/TransactionsCategoryRule"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["rules","request_id"]},"TransactionsRulesRemoveRequest":{"type":"object","description":"TransactionsRulesRemoveRequest defines the request schema for `/beta/transactions/rules/v1/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_user_id":{"type":"string","description":"A unique ID representing the end user the rule belongs to."},"rule_id":{"type":"string","description":"A rule's unique identifier"}},"required":["client_user_id","rule_id"]},"TransactionsRulesRemoveResponse":{"type":"object","additionalProperties":true,"description":"TransactionsRulesRemoveResponse defines the response schema for `/beta/transactions/rules/v1/remove`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransactionsSyncRequest":{"type":"object","description":"TransactionsSyncRequest defines the request schema for `/transactions/sync`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"cursor":{"type":"string","description":"The cursor value represents the last update requested. Providing it will cause the response to only return changes after this update.\nIf omitted, the entire history of updates will be returned, starting with the first-added transactions on the Item. The cursor also accepts the special value of `\"now\"`, which can be used to fast-forward the cursor as part of migrating an existing Item from `/transactions/get` to `/transactions/sync`. For more information, see the [Transactions sync migration guide](https://plaid.com/docs/transactions/sync-migration/). Note that using the `\"now\"` value is not supported for any use case other than migrating existing Items from `/transactions/get`.\n\nThe upper-bound length of this cursor is 256 characters of base64."},"count":{"type":"integer","default":100,"description":"The number of transaction updates to fetch.","minimum":1,"maximum":500},"options":{"$ref":"#/components/schemas/TransactionsSyncRequestOptions"}},"required":["access_token"]},"TransactionsSyncRequestOptions":{"type":"object","description":"An optional object to be used with the request. If specified, `options` must not be `null`.","properties":{"include_original_description":{"type":["boolean","null"],"default":false,"description":"Include the raw unparsed transaction description from the financial institution."},"include_personal_finance_category":{"type":"boolean","default":false,"description":"Personal finance categories are now returned by default.","deprecated":true,"x-hidden-from-docs":true},"include_logo_and_counterparty_beta":{"type":"boolean","default":false,"description":"Counterparties and extra merchant fields are now returned by default.","deprecated":true,"x-hidden-from-docs":true},"personal_finance_category_version":{"$ref":"#/components/schemas/PersonalFinanceCategoryVersion"},"days_requested":{"description":"This field only applies to calls for Items where the Transactions product has not already been initialized (i.e., by specifying `transactions` in the `products`, `required_if_supported_products`, or `optional_products` array when calling `/link/token/create` or by making a previous call to `/transactions/sync` or `/transactions/get`). In those cases, the field controls the maximum number of days of transaction history that Plaid will request from the financial institution. The more transaction history is requested, the longer the historical update poll will take. If no value is specified, 90 days of history will be requested by default. In Production, if a value less than 30 is provided, a minimum of 30 days of transaction history will be requested.\n\nIf you are initializing your Items with transactions during the `/link/token/create` call (e.g. by including `transactions` in the `/link/token/create` `products` array), you must use the [`transactions.days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) field in the `/link/token/create` request instead of in the `/transactions/sync` request.\n\nIf the Item has already been initialized with the Transactions product, this field will have no effect. The maximum amount of transaction history to request on an Item cannot be updated if Transactions has already been added to the Item. To request older transaction history on an Item where Transactions has already been added, you must delete the Item via `/item/remove` and send the user through Link to create a new Item.\n\nCustomers using [Recurring Transactions](https://plaid.com/docs/api/products/transactions/#transactionsrecurringget) should request at least 180 days of history for optimal results.","type":"integer","minimum":1,"maximum":730,"default":90},"account_id":{"type":"string","description":"If provided, the returned updates and cursor will only reflect the specified account's transactions. Omitting `account_id` returns updates for all accounts under the Item. Note that specifying an `account_id` effectively creates a separate incremental update stream -- and therefore a separate cursor -- for that account. If multiple accounts are queried this way, you will maintain multiple cursors, one per `account_id`.\n\nIf you decide to begin filtering by `account_id` after using no `account_id`, start fresh with a null cursor and maintain separate `(account_id, cursor)` pairs going forward. Do not reuse any previously saved cursors, as this can cause pagination errors or incomplete data.\n\nNote: An error will be returned if a provided `account_id` is not associated with the Item."}}},"TransactionsSyncResponse":{"type":"object","additionalProperties":true,"description":"TransactionsSyncResponse defines the response schema for `/transactions/sync`","properties":{"transactions_update_status":{"$ref":"#/components/schemas/TransactionsUpdateStatus"},"accounts":{"type":"array","description":"An array of accounts at a financial institution associated with the transactions in this response. Only accounts that have associated transactions will be shown. For example, `investment`-type accounts will be omitted.","items":{"$ref":"#/components/schemas/AccountBase"}},"added":{"type":"array","description":"Transactions that have been added to the Item since `cursor` ordered by ascending last modified time.","items":{"$ref":"#/components/schemas/Transaction"}},"modified":{"type":"array","description":"Transactions that have been modified on the Item since `cursor` ordered by ascending last modified time.","items":{"$ref":"#/components/schemas/Transaction"}},"removed":{"type":"array","description":"Transactions that have been removed from the Item since `cursor` ordered by ascending last modified time.","items":{"$ref":"#/components/schemas/RemovedTransaction"}},"next_cursor":{"type":"string","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.\n\nIf `account_id` is included in the request, the returned cursor will reflect updates for that specific account."},"has_more":{"type":"boolean","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."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","added","modified","removed","next_cursor","has_more","request_id","transactions_update_status"]},"InstitutionsGetRequest":{"type":"object","description":"InstitutionsGetRequest defines the request schema for `/institutions/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"count":{"type":"integer","minimum":1,"maximum":500,"description":"The total number of Institutions to return."},"offset":{"type":"integer","description":"The number of Institutions to skip.","minimum":0},"country_codes":{"type":"array","description":"Specify which country or countries to include institutions from, using the ISO-3166-1 alpha-2 country code standard.\n\nIn 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.\n","minItems":1,"items":{"$ref":"#/components/schemas/CountryCode"}},"options":{"$ref":"#/components/schemas/InstitutionsGetRequestOptions"}},"required":["count","offset","country_codes"]},"InstitutionsGetRequestOptions":{"type":"object","description":"An optional object to filter `/institutions/get` results.","properties":{"products":{"type":["array","null"],"description":"Filter the Institutions based on which products they support. Will only return institutions that support all listed products. When filtering based on `auth`, an institution must support Instant Auth to match the criterion. To filter for Signal Transaction Scores support, use `balance`. To filter for Transfer support, use `auth`.","minItems":1,"items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["assets","auth","balance","employment","identity","cra_base_report","cra_income_insights","cra_cashflow_insights","cra_lend_score","cra_network_insights","cra_partner_insights","income_verification","identity_verification","investments","liabilities","payment_initiation","standing_orders","transactions"]},"routing_numbers":{"type":["array","null"],"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 generally comprehensive; however, failure to match a given routing number to an institution does not necessarily mean that the institution is unsupported by Plaid. Invalid routing numbers (numbers that are not 9 digits in length or do not have a valid checksum) will be filtered from the array before the response is processed. If all provided routing numbers are invalid, an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned.","items":{"type":"string"}},"oauth":{"type":["boolean","null"],"description":"Limit results to institutions with or without OAuth login flows. Note that institutions will have `oauth` set to `true` if some Items associated with that institution are required to use OAuth flows; institutions in a state of migration to OAuth will have the `oauth` attribute set to `true`."},"include_optional_metadata":{"type":"boolean","description":"When `true`, return the institution's homepage URL, logo and primary brand color. Not all institutions' logos are available.\n\nNote 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."},"include_auth_metadata":{"type":"boolean","default":false,"description":"When `true`, returns metadata related to the Auth product indicating which auth methods are supported."},"include_payment_initiation_metadata":{"type":"boolean","default":false,"description":"When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported."}}},"InstitutionsGetResponse":{"type":"object","additionalProperties":true,"description":"InstitutionsGetResponse defines the response schema for `/institutions/get`","properties":{"institutions":{"type":"array","description":"A list of Plaid institutions","items":{"$ref":"#/components/schemas/Institution"}},"total":{"type":"integer","description":"The total number of institutions available via this endpoint"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["institutions","total","request_id"]},"InstitutionsSearchRequest":{"type":"object","description":"InstitutionsSearchRequest defines the request schema for `/institutions/search`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"query":{"type":"string","description":"The search query. Institutions with names matching the query are returned","minLength":1},"products":{"type":["array","null"],"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. To search for Transfer support, use `auth`; to search for Signal Transaction Scores support, use `balance`.","minItems":1,"items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["assets","auth","balance","employment","identity","income_verification","investments","liabilities","identity_verification","payment_initiation","standing_orders","statements","transactions"]},"country_codes":{"type":"array","description":"Specify which country or countries to include institutions from, 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.\n","items":{"$ref":"#/components/schemas/CountryCode"}},"options":{"$ref":"#/components/schemas/InstitutionsSearchRequestOptions"}},"required":["query","country_codes"]},"InstitutionsSearchRequestOptions":{"type":"object","description":"An optional object to filter `/institutions/search` results.","properties":{"oauth":{"type":["boolean","null"],"description":"Limit results to institutions with or without OAuth login flows. Note that institutions will have `oauth` set to `true` if some Items associated with that institution are required to use OAuth flows; institutions in a state of migration to OAuth will have the `oauth` attribute set to `true`."},"include_optional_metadata":{"type":"boolean","description":"When true, return the institution's homepage URL, logo and primary brand color."},"include_auth_metadata":{"type":["boolean","null"],"default":false,"description":"When `true`, returns metadata related to the Auth product indicating which auth methods are supported."},"include_payment_initiation_metadata":{"type":["boolean","null"],"default":false,"description":"When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported."},"payment_initiation":{"$ref":"#/components/schemas/InstitutionsSearchPaymentInitiationOptions"}}},"InstitutionsSearchPaymentInitiationOptions":{"type":["object","null"],"description":"Additional options that will be used to filter institutions by various Payment Initiation configurations.","properties":{"payment_id":{"type":["string","null"],"description":"A unique ID identifying the payment"},"consent_id":{"type":["string","null"],"description":"A unique ID identifying the payment consent"}}},"InstitutionsSearchResponse":{"type":"object","additionalProperties":true,"description":"InstitutionsSearchResponse defines the response schema for `/institutions/search`","properties":{"institutions":{"type":"array","description":"An array of institutions matching the search criteria","items":{"$ref":"#/components/schemas/Institution"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["institutions","request_id"]},"InstitutionsGetByIdRequest":{"type":"object","description":"InstitutionsGetByIdRequest defines the request schema for `/institutions/get_by_id`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"institution_id":{"type":"string","description":"The ID of the institution to get details about","minLength":1},"country_codes":{"type":"array","description":"Specify which country or countries to include institutions from, 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.\n","items":{"$ref":"#/components/schemas/CountryCode"}},"options":{"$ref":"#/components/schemas/InstitutionsGetByIdRequestOptions"}},"required":["institution_id","country_codes"]},"InstitutionsGetByIdRequestOptions":{"type":"object","description":"Specifies optional parameters for `/institutions/get_by_id`. If provided, must not be `null`.","properties":{"include_optional_metadata":{"default":false,"type":"boolean","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`.\n\nNote 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."},"include_status":{"type":"boolean","default":false,"description":"If `true`, the response will include status information about the institution. Default value is `false`."},"include_auth_metadata":{"type":"boolean","default":false,"description":"When `true`, returns metadata related to the Auth product indicating which auth methods are supported."},"include_payment_initiation_metadata":{"type":"boolean","default":false,"description":"When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported."}}},"InstitutionsGetByIdResponse":{"type":"object","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"]},"AccountsGetRequest":{"type":"object","description":"AccountsGetRequest defines the request schema for `/accounts/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"options":{"$ref":"#/components/schemas/AccountsGetRequestOptions"}},"required":["access_token"],"x-examples":{"example-1":{}}},"AccountsGetRequestOptions":{"type":"object","description":"An optional object to filter `/accounts/get` results.","properties":{"account_ids":{"type":"array","description":"An array of `account_ids` to retrieve for the Account.","items":{"type":"string"}}}},"AccountsGetResponse":{"type":"object","additionalProperties":true,"description":"AccountsGetResponse defines the response schema for `/accounts/get` and `/accounts/balance/get`.","properties":{"accounts":{"type":"array","description":"An array of financial institution accounts associated with the Item.\nIf `/accounts/balance/get` was called, each account will include real-time balance information.","items":{"$ref":"#/components/schemas/AccountBase"}},"item":{"$ref":"#/components/schemas/Item"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","item","request_id"]},"CategoriesGetRequest":{"type":"object","description":"CategoriesGetRequest defines the request schema for `/categories/get`"},"CategoriesGetResponse":{"type":"object","additionalProperties":true,"description":"CategoriesGetResponse defines the response schema for `/categories/get`","properties":{"categories":{"type":"array","description":"An array of all of the transaction categories used by Plaid.","items":{"$ref":"#/components/schemas/Category"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["categories","request_id"]},"SandboxOverridePassword":{"type":["string","null"],"default":"pass_good","description":"Test password to use for the creation of the Sandbox Item. Default value is `pass_good`. You can also use a custom test user — reference one configured in the Dashboard via `override_username`, or set `override_username` to `user_custom` and pass the JSON-stringified custom user configuration object as this field to define one entirely via API. See [Sandbox Custom Users](https://plaid.com/docs/sandbox/user-custom) for more details."},"SandboxOverrideUsername":{"type":["string","null"],"default":"user_good","description":"Test username to use for the creation of the Sandbox Item. Default value is `user_good`. You can also use a custom test user — either set this to the username of a custom user configured in the Dashboard, or set it to `user_custom` and pass the JSON-stringified custom user configuration object as `override_password` to define one entirely via API. See [Sandbox Custom Users](https://plaid.com/docs/sandbox/user-custom) for more details."},"SandboxProcessorTokenCreateRequest":{"description":"SandboxProcessorTokenCreateRequest defines the request schema for `/sandbox/processor_token/create`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"institution_id":{"type":"string","description":"The ID of the institution the Item will be associated with"},"options":{"$ref":"#/components/schemas/SandboxProcessorTokenCreateRequestOptions"}},"required":["institution_id"]},"SandboxProcessorTokenCreateRequestOptions":{"type":"object","description":"An optional set of options to be used when configuring the Item. If specified, must not be `null`.","properties":{"override_username":{"$ref":"#/components/schemas/SandboxOverrideUsername"},"override_password":{"$ref":"#/components/schemas/SandboxOverridePassword"}}},"SandboxProcessorTokenCreateResponse":{"type":"object","additionalProperties":true,"properties":{"processor_token":{"type":"string","description":"A processor token that can be used to call the `/processor/` endpoints."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"description":"SandboxProcessorTokenCreateResponse defines the response schema for `/sandbox/processor_token/create`","required":["processor_token","request_id"]},"SandboxPublicTokenCreateRequest":{"type":"object","description":"SandboxPublicTokenCreateRequest defines the request schema for `/sandbox/public_token/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"institution_id":{"type":"string","description":"The ID of the institution the Item will be associated with"},"initial_products":{"type":"array","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,"x-override-enum-values-shown":["assets","auth","cra_base_report","cra_income_insights","cra_partner_insights","identity","income_verification","investments_auth","investments","liabilities","payment_initiation","signal","statements","transactions","transfer"]},"options":{"$ref":"#/components/schemas/SandboxPublicTokenCreateRequestOptions"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["institution_id","initial_products"]},"SandboxPublicTokenCreateRequestOptions":{"type":"object","description":"An optional set of options to be used when configuring the Item. If specified, must not be `null`.","properties":{"webhook":{"type":"string","description":"Specify a webhook to associate with the new Item.","format":"url"},"override_username":{"$ref":"#/components/schemas/SandboxOverrideUsername"},"override_password":{"$ref":"#/components/schemas/SandboxOverridePassword"},"transactions":{"$ref":"#/components/schemas/SandboxPublicTokenCreateRequestOptionsTransactions"},"statements":{"$ref":"#/components/schemas/SandboxPublicTokenCreateRequestOptionsStatements"},"income_verification":{"$ref":"#/components/schemas/SandboxPublicTokenCreateRequestOptionsIncomeVerification"}}},"SandboxPublicTokenCreateRequestOptionsTransactions":{"type":["object","null"],"description":"An optional set of parameters corresponding to transactions options.","properties":{"start_date":{"type":"string","format":"date","description":"Use `days_requested` instead. This field has no effect on the amount of transaction history available on the Item.","deprecated":true,"x-hidden-from-docs":true},"end_date":{"type":"string","format":"date","description":"Use `days_requested` instead. This field has no effect on the amount of transaction history available on the Item.","deprecated":true,"x-hidden-from-docs":true},"days_requested":{"description":"The maximum number of days of transaction history to request for the Transactions product, matching [`transactions.days_requested`](https://plaid.com/docs/api/link/#link-token-create-request-transactions-days-requested) on `/link/token/create`. If no value is specified, this defaults to 90 days. Once Transactions has been added to an Item, this value cannot be updated.","type":"integer","minimum":1,"maximum":730,"default":90}},"title":"SandboxPublicTokenCreateRequestOptionsTransactions"},"SandboxPublicTokenCreateRequestOptionsStatements":{"title":"SandboxPublicTokenCreateRequestOptionsStatements","type":["object","null"],"description":"An optional set of parameters corresponding to statements options.","properties":{"start_date":{"type":"string","format":"date","description":"The earliest date for which to fetch statements history. Dates should be formatted as YYYY-MM-DD."},"end_date":{"type":"string","format":"date","description":"The most recent date for which to fetch statements history. Dates should be formatted as YYYY-MM-DD."}},"required":["start_date","end_date"]},"SandboxPublicTokenCreateRequestOptionsIncomeVerification":{"type":"object","description":"A set of parameters for income verification options. This field is required if `income_verification` is included in the `initial_products` array.","properties":{"income_source_types":{"type":"array","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"}},"bank_income":{"$ref":"#/components/schemas/SandboxPublicTokenCreateRequestIncomeVerificationBankIncome"}}},"SandboxPublicTokenCreateRequestIncomeVerificationBankIncome":{"type":"object","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":{"type":"integer","description":"The number of days of data to request for the Bank Income product"}}},"SandboxPublicTokenCreateResponse":{"type":"object","additionalProperties":true,"description":"SandboxPublicTokenCreateResponse defines the response schema for `/sandbox/public_token/create`","properties":{"public_token":{"type":"string","description":"A public token that can be exchanged for an access token using `/item/public_token/exchange`"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["public_token","request_id"]},"SandboxItemFireWebhookRequest":{"type":"object","description":"SandboxItemFireWebhookRequest defines the request schema for `/sandbox/item/fire_webhook`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"webhook_type":{"$ref":"#/components/schemas/WebhookType"},"webhook_code":{"type":"string","enum":["DEFAULT_UPDATE","NEW_ACCOUNTS_AVAILABLE","SMS_MICRODEPOSITS_VERIFICATION","AUTHORIZATION_GRANTED","USER_PERMISSION_REVOKED","USER_ACCOUNT_REVOKED","PENDING_DISCONNECT","RECURRING_TRANSACTIONS_UPDATE","LOGIN_REPAIRED","SYNC_UPDATES_AVAILABLE","PRODUCT_READY","ERROR"],"x-override-enum-values-shown":["DEFAULT_UPDATE","NEW_ACCOUNTS_AVAILABLE","SMS_MICRODEPOSITS_VERIFICATION","USER_PERMISSION_REVOKED","USER_ACCOUNT_REVOKED","PENDING_DISCONNECT","RECURRING_TRANSACTIONS_UPDATE","LOGIN_REPAIRED","SYNC_UPDATES_AVAILABLE","PRODUCT_READY","ERROR"],"description":"The webhook codes that can be fired by this test endpoint."},"options":{"$ref":"#/components/schemas/SandboxItemFireWebhookRequestOptions"}},"required":["access_token","webhook_code"]},"SandboxItemFireWebhookRequestOptions":{"type":"object","description":"Values to set on the fired webhook's payload. Each field is named after the webhook field it sets. If specified, must not be `null`.","properties":{"new_transactions":{"type":"integer","minimum":0,"description":"The value to send as `new_transactions` in a `TRANSACTIONS` `DEFAULT_UPDATE` webhook. Defaults to 0. Only valid when `webhook_type` is `TRANSACTIONS` and `webhook_code` is `DEFAULT_UPDATE`."}}},"WebhookType":{"type":"string","enum":["AUTH","HOLDINGS","INVESTMENTS_TRANSACTIONS","ITEM","LIABILITIES","TRANSACTIONS","ASSETS","IDENTITY"],"description":"The webhook types that can be fired by this test endpoint."},"SandboxItemFireWebhookResponse":{"type":"object","additionalProperties":true,"description":"SandboxItemFireWebhookResponse defines the response schema for `/sandbox/item/fire_webhook`","properties":{"webhook_fired":{"type":"boolean","description":"Value is `true` if the test `webhook_code` was successfully fired."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["webhook_fired","request_id"]},"SandboxUserFireWebhookRequest":{"type":"object","description":"SandboxUserFireWebhookRequest defines the request schema for `/sandbox/user/fire_webhook`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"user_token":{"$ref":"#/components/schemas/UserToken"},"webhook_type":{"$ref":"#/components/schemas/SandboxUserFireWebhookType"},"webhook_code":{"$ref":"#/components/schemas/SandboxUserFireWebhookCode"},"webhook":{"type":"string","description":"The destination URL that the test webhook will be sent to.","format":"url"}},"required":["webhook_type","webhook_code","webhook"]},"SandboxUserFireWebhookType":{"type":"string","enum":["CHECK_REPORT"],"description":"The webhook types that can be fired by this test endpoint."},"SandboxUserFireWebhookCode":{"type":"string","enum":["USER_CHECK_REPORT_READY","USER_CHECK_REPORT_FAILED","CHECK_REPORT_READY","CHECK_REPORT_FAILED"],"description":"The webhook codes that can be fired by this test endpoint."},"SandboxUserFireWebhookResponse":{"type":"object","additionalProperties":true,"description":"SandboxUserFireWebhookResponse defines the response schema for `/sandbox/user/fire_webhook`","properties":{"webhook_fired":{"type":"boolean","description":"Value is `true` if the test `webhook_code` was successfully fired."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["webhook_fired","request_id"]},"AccountsBalanceGetRequest":{"type":"object","description":"AccountsBalanceGetRequest defines the request schema for `/accounts/balance/get`","properties":{"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"options":{"$ref":"#/components/schemas/AccountsBalanceGetRequestOptions"}},"required":["access_token"]},"AccountsBalanceGetRequestOptions":{"type":"object","description":"Optional parameters to `/accounts/balance/get`.","properties":{"account_ids":{"type":"array","description":"A list of `account_ids` to retrieve for the Item. The default value is `null`.\n\nNote: An error will be returned if a provided `account_id` is not associated with the Item.","items":{"type":"string"}},"min_last_updated_datetime":{"$ref":"#/components/schemas/MinLastUpdatedDatetime"}}},"MinLastUpdatedDatetime":{"title":"MinLastUpdatedDatetime","type":"string","format":"date-time","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`.\n\nThis field is only necessary when the institution is `ins_128026` (Capital One), *and* the Item has one or more non-depository accounts (such as a credit card), even if `account_ids` requests only depository accounts, as Capital One does not provide real-time balance for non-depository accounts. It is also necessary for all accounts when the institution is `ins_136439` (Apple Card), which provides only cached balances. In these cases, a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For all other institutions, as well as for depository accounts at Capital One (including all checking and savings accounts) this field is ignored and real-time balance information will be fetched.\n\nIf this field is not ignored, and no acceptable balance is available, an `INVALID_RESULT` error with the code `LAST_UPDATED_DATETIME_OUT_OF_RANGE` will be returned."},"IdentityGetRequest":{"type":"object","description":"IdentityGetRequest defines the request schema for `/identity/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"options":{"$ref":"#/components/schemas/IdentityGetRequestOptions"}},"required":["access_token"]},"IdentityGetRequestOptions":{"type":"object","description":"An optional object to filter `/identity/get` results.","properties":{"account_ids":{"type":"array","description":"A list of `account_ids` to retrieve for the Item.\nNote: An error will be returned if a provided `account_id` is not associated with the Item.","items":{"type":"string"}}}},"IdentityGetResponse":{"type":"object","additionalProperties":true,"description":"IdentityGetResponse defines the response schema for `/identity/get`","properties":{"accounts":{"type":"array","description":"The accounts for which Identity data has been requested","items":{"$ref":"#/components/schemas/AccountIdentity"}},"item":{"$ref":"#/components/schemas/Item"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","item","request_id"]},"IdentityMatchRequest":{"type":"object","description":"IdentityMatchRequest defines the request schema for `/identity/match`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"user":{"$ref":"#/components/schemas/IdentityMatchUser"},"options":{"$ref":"#/components/schemas/IdentityMatchRequestOptions"}},"required":["access_token"]},"IdentityMatchRequestOptions":{"type":"object","description":"An optional object to filter `/identity/match` results","properties":{"account_ids":{"type":"array","description":"An array of `account_ids` to perform fuzzy match","items":{"type":"string"}}}},"IdentityMatchUser":{"title":"IdentityMatchUser","type":"object","additionalProperties":true,"description":"The user's legal name, phone number, email address and address used to perform fuzzy match. If Financial Account Matching is enabled in the Identity Verification product, leave this field empty to automatically match against PII collected from the Identity Verification checks.","properties":{"legal_name":{"type":["string","null"],"description":"The user's full legal name."},"phone_number":{"type":["string","null"],"description":"The user's phone number, in E.164 format: +{countrycode}{number}. For example: \"+14157452130\". Phone numbers provided in other formats will be parsed on a best-effort basis."},"email_address":{"type":["string","null"],"description":"The user's email address."},"address":{"$ref":"#/components/schemas/AddressDataNullableNoRequiredFields"}}},"IdentityMatchResponse":{"type":"object","additionalProperties":true,"description":"IdentityMatchResponse defines the response schema for `/identity/match`","properties":{"accounts":{"type":"array","description":"The accounts for which Identity match has been requested","items":{"$ref":"#/components/schemas/AccountIdentityMatchScore"}},"item":{"$ref":"#/components/schemas/Item"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","item","request_id"]},"IdentityMatchListRequest":{"type":"object","description":"IdentityMatchListRequest defines the request schema for `/identity/match/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_time":{"type":"string","format":"date-time","description":"Inclusive start of the query window in RFC 3339 format. On the first request, this cannot be earlier than one calendar year before the current time."},"end_time":{"type":"string","format":"date-time","description":"Inclusive end of the query window in RFC 3339 format. Must be on or after `start_time`."},"count":{"type":"integer","minimum":1,"maximum":25,"default":25,"description":"Maximum number of attempts to return in one page."},"cursor":{"type":"string","description":"Opaque pagination cursor. Omit on the first request. For subsequent requests, set this field to the `next_cursor` from the previous response and use the same `start_time` and `end_time`. You may change `count` between pages."}},"required":["start_time","end_time"]},"IdentityMatchListResponse":{"type":"object","additionalProperties":true,"description":"IdentityMatchListResponse defines the response schema for `/identity/match/list`","properties":{"identity_match_attempts":{"type":"array","description":"Page of Link-originated Identity Match attempts ordered by creation time, oldest first.","items":{"$ref":"#/components/schemas/IdentityMatchListAttempt"}},"next_cursor":{"type":["string","null"],"description":"Cursor for the next page. Null when there are no more pages."},"has_more":{"type":"boolean","description":"Whether more attempts remain in the query window."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["identity_match_attempts","next_cursor","has_more","request_id"]},"IdentityMatchListAttempt":{"type":"object","additionalProperties":true,"description":"A Link-originated Identity Match attempt.","properties":{"attempt_id":{"type":"string","description":"Identifier for the Identity Match attempt."},"item_id":{"type":["string","null"],"description":"Item ID associated with the attempt. Null if the ID is unavailable."},"created_at":{"type":"string","format":"date-time","description":"Time at which the attempt was created."},"link_session_id":{"type":"string","description":"Link session that produced the attempt."},"link_customization_name":{"type":"string","description":"Link customization that supplied the ruleset."},"ruleset_revision":{"type":"integer","minimum":0,"description":"Revision of the Identity Match ruleset that was applied."},"outcome":{"$ref":"#/components/schemas/IdentityMatchListOutcome"},"outcome_account_id":{"type":["string","null"],"description":"Account ID associated with a `PASS` outcome. Null for `FAIL` or `UNKNOWN` outcomes, or if the ID is unavailable."},"scores":{"type":"array","description":"Per-account match scores. Empty if the attempt data is unavailable.","items":{"$ref":"#/components/schemas/IdentityMatchListAttemptScore"}}},"required":["attempt_id","item_id","created_at","link_session_id","link_customization_name","ruleset_revision","outcome","outcome_account_id","scores"]},"IdentityMatchListAttemptScore":{"type":"object","additionalProperties":true,"description":"Identity Match scores for one account. Scores compare the user identity data supplied for the Link session through `/link/token/create` with the account owner information from the financial institution.","properties":{"account_id":{"type":["string","null"],"description":"Account ID for the account that was scored. Null if the ID is unavailable."},"legal_name":{"$ref":"#/components/schemas/NameMatchScore"},"phone_number":{"$ref":"#/components/schemas/PhoneNumberMatchScore"},"email_address":{"$ref":"#/components/schemas/EmailAddressMatchScore"},"address":{"$ref":"#/components/schemas/AddressMatchScore"}},"required":["account_id","legal_name","phone_number","email_address","address"]},"IdentityMatchListOutcome":{"type":"string","description":"The Identity Match decision for the attempt.\n\n`PASS`: The decision was to allow the user to continue.\n`FAIL`: The decision was to block the user.\n`UNKNOWN`: The attempt's decision is unavailable or unrecognized.","enum":["PASS","FAIL","UNKNOWN"]},"IdentityRefreshRequest":{"type":"object","description":"IdentityRefreshRequest defines the request schema for `/identity/refresh`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["access_token"]},"IdentityRefreshResponse":{"type":"object","additionalProperties":true,"description":"IdentityRefreshResponse defines the response schema for `/identity/refresh`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProcessorAuthGetRequest":{"type":"object","description":"ProcessorAuthGetRequest defines the request schema for `/processor/auth/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"}},"required":["processor_token"]},"ProcessorAuthGetResponse":{"type":"object","additionalProperties":true,"description":"ProcessorAuthGetResponse defines the response schema for `/processor/auth/get`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"numbers":{"$ref":"#/components/schemas/ProcessorNumber"},"account":{"$ref":"#/components/schemas/AccountBase"}},"required":["request_id","numbers","account"]},"ProcessorAccountGetRequest":{"type":"object","description":"ProcessorAccountGetRequest defines the request schema for `/processor/account/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["processor_token"]},"ProcessorAccountGetResponse":{"type":"object","additionalProperties":true,"description":"ProcessorAccountGetResponse defines the response schema for `/processor/account/get`","properties":{"account":{"$ref":"#/components/schemas/AccountBase"},"institution_id":{"description":"The Plaid Institution ID associated with the Account.","type":"string"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["account","institution_id","request_id"]},"ProcessorInvestmentsHoldingsGetRequest":{"type":"object","description":"ProcessorInvestmentsHoldingsGetRequest defines the request schema for `/processor/investments/holdings/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["processor_token"]},"ProcessorInvestmentsHoldingsGetResponse":{"type":"object","additionalProperties":true,"description":"ProcessorInvestmentsHoldingsGetResponse defines the response schema for `/processor/investments/holdings/get`","properties":{"account":{"$ref":"#/components/schemas/InvestmentAccount"},"holdings":{"type":"array","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"}},"securities":{"description":"Objects describing the securities held in the account.","type":"array","items":{"$ref":"#/components/schemas/Security"}},"is_investments_fallback_item":{"type":"boolean","description":"When true, this field indicates that the Item's portfolio was manually created with the Investments Fallback flow."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["account","holdings","securities"]},"ProcessorInvestmentsAuthGetRequest":{"type":"object","description":"ProcessorInvestmentsAuthGetRequest defines the request schema for `/processor/investments/auth/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"}},"required":["processor_token"]},"ProcessorInvestmentsAuthGetResponse":{"type":"object","description":"ProcessorInvestmentsAuthGetResponse defines the response schema for `/processor/investments/auth/get`","additionalProperties":true,"properties":{"account":{"$ref":"#/components/schemas/AccountBase"},"holdings":{"type":"array","description":"The holdings belonging to the investment account. Details of the securities in the holdings are provided in the `securities` field.","items":{"$ref":"#/components/schemas/Holding"}},"securities":{"description":"Objects describing the securities held in the account.","type":"array","items":{"$ref":"#/components/schemas/Security"}},"owners":{"description":"Information about the account owners for the account.","type":"array","items":{"$ref":"#/components/schemas/InvestmentsAuthOwner"}},"numbers":{"$ref":"#/components/schemas/InvestmentsAuthGetNumbers"},"data_sources":{"$ref":"#/components/schemas/InvestmentsAuthDataSources"},"account_details_401k":{"type":"array","x-hidden-from-docs":true,"description":"Additional information for accounts of 401k subtype.","items":{"$ref":"#/components/schemas/InvestmentsAuthAccountDetails401k"}},"is_investments_fallback_item":{"type":"boolean","description":"When true, this field indicates that the Item's portfolio was manually created with the Investments Fallback flow."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["account","holdings","securities","numbers","owners","data_sources","request_id"]},"ProcessorTransactionsGetRequestOptions":{"type":"object","description":"An optional object to be used with the request. If specified, `options` must not be `null`.","properties":{"count":{"type":"integer","default":100,"description":"The number of transactions to fetch.","minimum":1,"maximum":500},"offset":{"type":"integer","default":0,"description":"The number of transactions to skip. The default value is 0.","minimum":0},"include_original_description":{"type":["boolean","null"],"default":false,"description":"Include the raw unparsed transaction description from the financial institution."},"include_personal_finance_category_beta":{"type":"boolean","default":false,"description":"Personal finance categories are now returned by default.","deprecated":true,"x-hidden-from-docs":true},"include_personal_finance_category":{"type":"boolean","default":false,"description":"Personal finance categories are now returned by default.","deprecated":true,"x-hidden-from-docs":true},"include_logo_and_counterparty_beta":{"type":"boolean","default":false,"description":"Counterparties and extra merchant fields are now returned by default.","deprecated":true,"x-hidden-from-docs":true}}},"ProcessorTransactionsGetRequest":{"type":"object","description":"ProcessorTransactionsGetRequest defines the request schema for `/processor/transactions/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"options":{"$ref":"#/components/schemas/ProcessorTransactionsGetRequestOptions"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":"string","format":"date","description":"The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD. Plaid returns all transaction history stored for the Item (up to 2 years prior to the initial linking of the Item)."},"end_date":{"type":"string","format":"date","description":"The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD."}},"required":["processor_token","start_date","end_date"]},"ProcessorTransactionsGetResponse":{"type":"object","additionalProperties":true,"description":"ProcessorTransactionsGetResponse defines the response schema for `/processor/transactions/get`","properties":{"account":{"$ref":"#/components/schemas/AccountBase"},"transactions":{"type":"array","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"}},"total_transactions":{"type":"integer","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."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["account","transactions","total_transactions","request_id"]},"ProcessorTransactionsSyncRequest":{"type":"object","description":"ProcessorTransactionsSyncRequest defines the request schema for `/processor/transactions/sync`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"cursor":{"type":"string","description":"The cursor value represents the last update requested. Providing it will cause the response to only return changes after this update.\nIf omitted, the entire history of updates will be returned, starting with the first-added transactions on the Item.\nNote: The upper-bound length of this cursor is 256 characters of base64."},"count":{"type":"integer","default":100,"description":"The number of transaction updates to fetch.","minimum":1,"maximum":500},"options":{"$ref":"#/components/schemas/TransactionsSyncRequestOptions"}},"required":["processor_token"]},"ProcessorTransactionsSyncResponse":{"type":"object","additionalProperties":true,"description":"ProcessorTransactionsSyncResponse defines the response schema for `/processor/transactions/sync`","properties":{"transactions_update_status":{"$ref":"#/components/schemas/TransactionsUpdateStatus"},"account":{"$ref":"#/components/schemas/AccountBaseNullable"},"added":{"type":"array","description":"Transactions that have been added to the Item since `cursor` ordered by ascending last modified time.","items":{"$ref":"#/components/schemas/Transaction"}},"modified":{"type":"array","description":"Transactions that have been modified on the Item since `cursor` ordered by ascending last modified time.","items":{"$ref":"#/components/schemas/Transaction"}},"removed":{"type":"array","description":"Transactions that have been removed from the Item since `cursor` ordered by ascending last modified time.","items":{"$ref":"#/components/schemas/RemovedTransaction"}},"next_cursor":{"type":"string","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."},"has_more":{"type":"boolean","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."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["account","added","modified","removed","next_cursor","has_more","request_id","transactions_update_status"]},"ProcessorTransactionsRefreshRequest":{"type":"object","description":"ProcessorTransactionsRefreshRequest defines the request schema for `/processor/transactions/refresh`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["processor_token"]},"ProcessorTransactionsRefreshResponse":{"type":"object","additionalProperties":true,"description":"ProcessorTransactionsRefreshResponse defines the response schema for `/processor/transactions/refresh`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProcessorTransactionsRecurringGetRequest":{"type":"object","description":"ProcessorTransactionsRecurringGetRequest defines the request schema for `/processor/transactions/recurring/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"options":{"$ref":"#/components/schemas/TransactionsRecurringGetRequestOptions"}},"required":["processor_token"]},"ProcessorTransactionsRecurringGetResponse":{"type":"object","additionalProperties":true,"description":"ProcessorTransactionsRecurringGetResponse defines the response schema for `/processor/transactions/recurring/get`","properties":{"inflow_streams":{"type":"array","description":"An array of inflow transaction streams.","items":{"$ref":"#/components/schemas/TransactionStream"}},"outflow_streams":{"type":"array","description":"An array of expense transaction streams.","items":{"$ref":"#/components/schemas/TransactionStream"}},"updated_datetime":{"type":"string","format":"date-time","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"},"personal_finance_category_version":{"$ref":"#/components/schemas/PersonalFinanceCategoryVersion"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["inflow_streams","outflow_streams","updated_datetime","request_id"]},"ProcessorBankTransferCreateRequest":{"title":"ProcessorBankTransferCreateRequest","type":"object","description":"Defines the request schema for `/processor/bank_transfer/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"idempotency_key":{"$ref":"#/components/schemas/BankTransferIdempotencyKey"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"type":{"$ref":"#/components/schemas/BankTransferType"},"network":{"$ref":"#/components/schemas/BankTransferNetwork"},"amount":{"$ref":"#/components/schemas/BankTransferAmount"},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount - should be set to \"USD\"."},"description":{"type":"string","description":"The transfer description. Maximum of 10 characters.","maxLength":10},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"user":{"$ref":"#/components/schemas/BankTransferUser"},"custom_tag":{"type":["string","null"],"maxLength":100,"description":"An arbitrary string provided by the client for storage with the bank transfer. May be up to 100 characters."},"metadata":{"$ref":"#/components/schemas/BankTransferMetadata"},"origination_account_id":{"type":["string","null"],"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."}},"required":["idempotency_key","processor_token","type","network","amount","iso_currency_code","description","user"]},"ProcessorBankTransferCreateResponse":{"title":"ProcessorBankTransferCreateResponse","type":"object","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"]},"ProcessorNumber":{"type":"object","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"},"eft":{"$ref":"#/components/schemas/NumbersEFTNullable"},"international":{"$ref":"#/components/schemas/NumbersInternationalNullable"},"bacs":{"$ref":"#/components/schemas/NumbersBACSNullable"}}},"ProcessorLiabilitiesGetRequest":{"type":"object","description":"ProcessorLiabilitiesGetRequest defines the request schema for `/processor/liabilities/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"}},"required":["processor_token"]},"ProcessorLiabilitiesGetResponse":{"type":"object","additionalProperties":true,"description":"ProcessorLiabilitiesGetResponse defines the response schema for `/processor/liabilities/get`","properties":{"account":{"$ref":"#/components/schemas/AccountBase"},"liabilities":{"$ref":"#/components/schemas/LiabilitiesObject"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["account","liabilities","request_id"]},"ProcessorIdentityGetRequest":{"type":"object","description":"ProcessorIdentityGetRequest defines the request schema for `/processor/identity/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"}},"required":["processor_token"]},"ProcessorIdentityGetResponse":{"type":"object","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"]},"ProcessorIdentityMatchRequest":{"type":"object","description":"ProcessorIdentityMatchRequest defines the request schema for `/processor/identity/match`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"user":{"$ref":"#/components/schemas/IdentityMatchUser"}},"required":["processor_token"]},"ProcessorIdentityMatchResponse":{"type":"object","additionalProperties":true,"description":"ProcessorIdentityMatchResponse defines the response schema for `/processor/identity/match`","properties":{"account":{"$ref":"#/components/schemas/AccountIdentityMatchScore"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["account","request_id"]},"ProcessorBalanceGetRequest":{"type":"object","description":"ProcessorBalanceGetRequest defines the request schema for `/processor/balance/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"options":{"$ref":"#/components/schemas/ProcessorBalanceGetRequestOptions"}},"required":["processor_token"]},"ProcessorBalanceGetRequestOptions":{"type":"object","description":"Optional parameters to `/processor/balance/get`.","properties":{"min_last_updated_datetime":{"$ref":"#/components/schemas/MinLastUpdatedDatetime"}}},"ProcessorBalanceGetResponse":{"type":"object","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"]},"BetaWebhookEventsListRequest":{"type":"object","description":"BetaWebhookEventsListRequest defines the request schema for `/beta/webhook_events/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"cursor":{"type":"string","maxLength":512,"description":"The `next_cursor` from a previous `/beta/webhook_events/list` response. Omit on your first request. If provided, `start_time` is ignored."},"start_time":{"type":["string","null"],"format":"date-time","description":"Return events sent at or after this time, in ISO 8601 format. Must be within the last 7 days. Ignored if `cursor` is provided. If you omit both `cursor` and `start_time`, results start with the oldest retained event."},"count":{"type":["integer","null"],"minimum":1,"maximum":100,"default":100,"description":"The maximum number of webhook events to return. Fewer events may be returned even when more are available; use `has_more` to determine whether to request another page."},"webhook_types":{"type":"array","description":"Return only events with these webhook types, for example `ITEM`. Case-sensitive.","items":{"type":"string"},"examples":[["ITEM","AUTH"]]},"webhook_codes":{"type":"array","description":"Return only events with these webhook codes, for example `ERROR`. Case-sensitive.","items":{"type":"string"},"examples":[["ERROR"]]},"item_ids":{"type":"array","description":"Return only events for these Items.","items":{"type":"string"},"examples":[["abc123"]]},"delivery_statuses":{"type":"array","description":"Return only events with these delivery statuses.","items":{"$ref":"#/components/schemas/WebhookEventDeliveryStatus"}}}},"BetaWebhookEventsListResponse":{"type":"object","additionalProperties":true,"description":"BetaWebhookEventsListResponse defines the response schema for `/beta/webhook_events/list`","properties":{"webhook_events":{"type":"array","description":"Webhook events for your account.","items":{"$ref":"#/components/schemas/WebhookEvent"}},"has_more":{"type":"boolean","description":"Indicates whether another page of webhook events is available."},"next_cursor":{"type":"string","description":"The cursor to send as `cursor` in your next request. Store it even when `has_more` is `false`."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["webhook_events","has_more","next_cursor","request_id"]},"WebhookEvent":{"type":"object","additionalProperties":true,"description":"A webhook event for your account.","properties":{"webhook_message_id":{"type":"string","description":"The ID of this webhook event. It stays the same across requests, so you can use it to skip events you've already handled. Include it when contacting Support."},"webhook_type":{"type":"string","description":"The webhook type."},"webhook_code":{"type":"string","description":"The webhook code."},"item_id":{"type":["string","null"],"description":"The Item ID associated with the webhook, if any."},"sent_time":{"type":"string","format":"date-time","description":"The time Plaid sent the webhook."},"payload":{"$ref":"#/components/schemas/WebhookEventPayload"},"destination_url":{"type":"string","description":"The destination URL Plaid sent the webhook to."},"delivery_status":{"$ref":"#/components/schemas/WebhookEventDeliveryStatus"},"last_http_status_code":{"type":["integer","null"],"description":"The most recent HTTP status code returned by the destination, if any."},"attempt_count":{"type":"integer","description":"Number of delivery attempts Plaid has made for this webhook."},"last_attempt_time":{"type":["string","null"],"format":"date-time","description":"The time of the most recent delivery attempt. Null if Plaid hasn't attempted delivery yet."}},"required":["webhook_message_id","webhook_type","webhook_code","item_id","sent_time","payload","destination_url","delivery_status","last_http_status_code","attempt_count","last_attempt_time"]},"WebhookEventPayload":{"type":"object","additionalProperties":{},"description":"The JSON body Plaid sent to the webhook destination."},"WebhookEventDeliveryStatus":{"type":"string","enum":["PENDING","DELIVERED","FAILED"],"description":"The current delivery status of the webhook.\n\n`PENDING`: Plaid hasn't recorded a successful delivery and may retry. The webhook may have been delivered even if its status is `PENDING`.\n\n`DELIVERED`: Your endpoint returned a 2xx response.\n\n`FAILED`: Plaid stopped retrying without receiving a 2xx response."},"WebhookVerificationKeyGetRequest":{"type":"object","description":"WebhookVerificationKeyGetRequest defines the request schema for `/webhook_verification_key/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"key_id":{"type":"string","description":"The key ID ( `kid` ) from the JWT header."}},"required":["key_id"]},"WebhookVerificationKeyGetResponse":{"type":"object","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"]},"JWKPublicKey":{"type":"object","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":{"type":"string","description":"The alg member identifies the cryptographic algorithm family used with the key."},"crv":{"type":"string","description":"The crv member identifies the cryptographic curve used with the key."},"kid":{"type":"string","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."},"kty":{"type":"string","description":"The kty (key type) parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC."},"use":{"type":"string","description":"The use (public key use) parameter identifies the intended use of the public key."},"x":{"type":"string","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."},"y":{"type":"string","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."},"created_at":{"type":"integer","description":"The timestamp when the key was created, in Unix time."},"expired_at":{"type":["integer","null"],"description":"The timestamp when the key expired, in Unix time."}},"required":["alg","kid","kty","crv","x","y","use","created_at","expired_at"]},"LiabilitiesGetRequest":{"type":"object","description":"LiabilitiesGetRequest defines the request schema for `/liabilities/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"options":{"$ref":"#/components/schemas/LiabilitiesGetRequestOptions"}},"required":["access_token"]},"LiabilitiesGetRequestOptions":{"type":"object","description":"An optional object to filter `/liabilities/get` results. If provided, `options` cannot be null.","properties":{"account_ids":{"type":"array","description":"A list of accounts to retrieve for the Item.\n\nAn error will be returned if a provided `account_id` is not associated with the Item","items":{"type":"string"}}}},"LiabilitiesGetResponse":{"type":"object","additionalProperties":true,"description":"LiabilitiesGetResponse defines the response schema for `/liabilities/get`","properties":{"accounts":{"type":"array","description":"An array of accounts associated with the Item","items":{"$ref":"#/components/schemas/AccountBase"}},"item":{"$ref":"#/components/schemas/Item"},"liabilities":{"$ref":"#/components/schemas/LiabilitiesObject"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","item","liabilities","request_id"]},"PaymentInitiationRecipientCreateRequest":{"type":"object","description":"PaymentInitiationRecipientCreateRequest defines the request schema for `/payment_initiation/recipient/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"name":{"type":"string","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},"iban":{"type":["string","null"],"description":"The International Bank Account Number (IBAN) for the recipient. If Bacs data is not provided, an IBAN is required.","minLength":15,"maxLength":34},"bacs":{"$ref":"#/components/schemas/RecipientBACSNullable"},"address":{"$ref":"#/components/schemas/PaymentInitiationAddress"}},"required":["name"]},"PaymentInitiationRecipientCreateResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationRecipientCreateResponse defines the response schema for `/payment_initiation/recipient/create`","properties":{"recipient_id":{"type":"string","description":"A unique ID identifying the recipient"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["recipient_id","request_id"]},"PaymentInitiationPaymentReverseResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationPaymentReverseResponse defines the response schema for `/payment_initiation/payment/reverse`","properties":{"refund_id":{"type":"string","description":"A unique ID identifying the refund"},"status":{"$ref":"#/components/schemas/WalletTransactionStatus"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["refund_id","request_id","status"]},"PaymentInitiationRecipientGetRequest":{"type":"object","description":"PaymentInitiationRecipientGetRequest defines the request schema for `/payment_initiation/recipient/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"recipient_id":{"type":"string","description":"The ID of the recipient"}},"required":["recipient_id"]},"PaymentInitiationRecipientGetResponse":{"additionalProperties":true,"description":"PaymentInitiationRecipientGetResponse defines the response schema for `/payment_initiation/recipient/get`","allOf":[{"$ref":"#/components/schemas/PaymentInitiationRecipient"},{"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}}}],"required":["recipient_id","name","request_id"]},"PaymentInitiationRecipient":{"type":"object","additionalProperties":true,"description":"PaymentInitiationRecipient defines a payment initiation recipient","properties":{"recipient_id":{"type":"string","description":"The ID of the recipient."},"name":{"type":"string","description":"The name of the recipient."},"address":{"$ref":"#/components/schemas/PaymentInitiationAddress"},"iban":{"type":["string","null"],"description":"The International Bank Account Number (IBAN) for the recipient."},"bacs":{"$ref":"#/components/schemas/RecipientBACSNullable"}},"required":["recipient_id","name"],"title":"PaymentInitiationRecipient"},"PaymentInitiationRecipientListRequest":{"type":"object","description":"PaymentInitiationRecipientListRequest defines the request schema for `/payment_initiation/recipient/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"count":{"type":["integer","null"],"minimum":1,"maximum":100,"default":100,"description":"The maximum number of recipients to return. If `count` is not specified, a maximum of 100 recipients will be returned, beginning with the recipient at the cursor (if specified)."},"cursor":{"type":"string","description":"A value representing the latest recipient to be included in the response. Set this from `next_cursor` received from the previous `/payment_initiation/recipient/list` request. If provided, the response will only contain that recipient and recipients created before it. If omitted, the response will contain recipients starting from the most recent, and in descending order by the `created_at` time.","maxLength":256}}},"PaymentInitiationRecipientListResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationRecipientListResponse defines the response schema for `/payment_initiation/recipient/list`","properties":{"recipients":{"type":"array","description":"An array of payment recipients created for Payment Initiation","items":{"$ref":"#/components/schemas/PaymentInitiationRecipient"}},"request_id":{"$ref":"#/components/schemas/RequestID"},"next_cursor":{"type":"string","description":"The value that, when used as the optional `cursor` parameter to `/payment_initiation/recipient/list`, will return the corresponding recipient as its first recipient.","maxLength":256}},"required":["recipients","request_id"]},"PaymentInitiationPaymentCreateRequest":{"type":"object","description":"PaymentInitiationPaymentCreateRequest defines the request schema for `/payment_initiation/payment/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"recipient_id":{"type":"string","description":"The ID of the recipient the payment is for."},"user_id":{"type":"string","description":"The `user_id` of the end user the payment is initiated for, as returned by [`/user/create`](https://plaid.com/docs/api/users/#usercreate). The user must have a `name` and either an email address or a phone number. Required for new integrations."},"reference":{"type":"string","description":"A reference for the payment. This must be a string of at most 18 characters containing only letters, numbers, and spaces (since not all institutions support them).\nIn 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.\nSome institutions may limit the reference to less than 18 characters. If necessary, Plaid will adjust the reference by truncating it to fit the institution's requirements.\nBoth the originally provided and automatically adjusted references (if any) can be found in the `reference` and `adjusted_reference` fields, respectively.","minLength":1,"maxLength":18},"amount":{"$ref":"#/components/schemas/PaymentAmount"},"schedule":{"$ref":"#/components/schemas/ExternalPaymentScheduleRequest"},"options":{"$ref":"#/components/schemas/ExternalPaymentOptions"}},"required":["recipient_id","reference","amount"]},"PaymentInitiationPaymentReverseRequest":{"type":"object","description":"PaymentInitiationPaymentReverseRequest defines the request schema for `/payment_initiation/payment/reverse`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"payment_id":{"type":"string","description":"The ID of the payment to reverse"},"idempotency_key":{"$ref":"#/components/schemas/WalletTransactionIdempotencyKey"},"reference":{"type":"string","maxLength":18,"minLength":6,"description":"A reference for the refund. This must be a string of 6 to 18 characters containing only letters, numbers, and spaces."},"amount":{"$ref":"#/components/schemas/PaymentAmountToRefund"},"counterparty_date_of_birth":{"type":["string","null"],"format":"date","description":"The counterparty's birthdate, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format."},"counterparty_address":{"$ref":"#/components/schemas/PaymentInitiationAddress"}},"required":["payment_id","idempotency_key","reference"]},"PaymentInitiationPaymentCreateStatus":{"type":"string","enum":["PAYMENT_STATUS_INPUT_NEEDED"],"description":"For a payment returned by this endpoint, there is only one possible value:\n\n`PAYMENT_STATUS_INPUT_NEEDED`: The initial phase of the payment"},"PaymentInitiationPaymentCreateResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationPaymentCreateResponse defines the response schema for `/payment_initiation/payment/create`","properties":{"payment_id":{"type":"string","description":"A unique ID identifying the payment"},"status":{"$ref":"#/components/schemas/PaymentInitiationPaymentCreateStatus"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["payment_id","status","request_id"]},"SandboxItemApplicationSeedRequest":{"type":"object","description":"SandboxItemApplicationSeedRequest defines the request schema for `/sandbox/item/application/seed`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"application_id":{"$ref":"#/components/schemas/ApplicationID"}},"required":["access_token","application_id"]},"SandboxItemApplicationSeedResponse":{"type":"object","additionalProperties":true,"description":"SandboxItemApplicationSeedResponse defines the response schema for `/sandbox/item/application/seed`","properties":{"item_id":{"type":"string","description":"The `item_id` of the newly seeded item representing the application connection."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["item_id","request_id"]},"SandboxFdxConsentSeedRequest":{"type":"object","description":"Request to seed an FDX consent grant, and its backing item, for the given end user and recipient application so the FDX Consent API can be exercised in Sandbox.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"customer_id":{"type":"string","description":"The data provider's identifier for the end user to associate the seeded consent grant with."},"application_id":{"$ref":"#/components/schemas/ApplicationID"},"consent_id":{"type":"string","description":"Optional UUIDv4 identifier for the seeded consent grant. If omitted, one is generated. Seeding fails if a grant with this identifier already exists."}},"required":["customer_id","application_id"]},"SandboxFdxConsentSeedResponse":{"type":"object","additionalProperties":true,"description":"Response containing the identifier of the seeded FDX consent grant, which can then be listed, retrieved, and revoked through the FDX Consent API.","properties":{"consent_id":{"type":"string","description":"The identifier of the newly seeded FDX consent grant."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["consent_id","request_id"]},"SandboxItemResetLoginRequest":{"type":"object","description":"SandboxItemResetLoginRequest defines the request schema for `/sandbox/item/reset_login`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"}},"required":["access_token"]},"SandboxItemResetLoginResponse":{"type":"object","additionalProperties":true,"description":"SandboxItemResetLoginResponse defines the response schema for `/sandbox/item/reset_login`","properties":{"reset_login":{"type":"boolean","description":"`true` if the call succeeded"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["reset_login","request_id"]},"SandboxUserResetLoginRequest":{"type":"object","description":"SandboxUserResetLoginRequest defines the request schema for `/sandbox/user/reset_login`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"item_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ItemId"},"description":"An array of `item_id`s associated with the User to be reset.  If empty or `null`, this field will default to resetting all Items associated with the User."},"user_id":{"$ref":"#/components/schemas/NewUserID"}}},"SandboxUserResetLoginResponse":{"type":"object","additionalProperties":true,"description":"SandboxUserResetLoginResponse defines the response schema for `/sandbox/user/reset_login`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxPaymentProfileResetLoginRequest":{"type":"object","description":"SandboxPaymentProfileResetLoginRequest defines the request schema for `/sandbox/payment_profile/reset_login`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"payment_profile_token":{"$ref":"#/components/schemas/PaymentProfileToken"}},"required":["payment_profile_token"]},"SandboxPaymentProfileResetLoginResponse":{"type":"object","additionalProperties":true,"description":"SandboxPaymentProfileResetLoginResponse defines the response schema for `/sandbox/payment_profile/reset_login`","properties":{"reset_login":{"type":"boolean","description":"`true` if the call succeeded"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["reset_login","request_id"]},"SandboxItemSetVerificationStatusRequest":{"type":"object","description":"SandboxItemSetVerificationStatusRequest defines the request schema for `/sandbox/item/set_verification_status`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"account_id":{"type":"string","description":"The `account_id` of the account whose verification status is to be modified"},"verification_status":{"enum":["automatically_verified","verification_expired"],"type":"string","description":"The verification status to set the account to."}},"required":["access_token","account_id","verification_status"]},"SandboxItemSetVerificationStatusResponse":{"type":"object","additionalProperties":true,"description":"SandboxItemSetVerificationStatusResponse defines the response schema for `/sandbox/item/set_verification_status`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"UserCreateRequest":{"type":"object","description":"UserCreateRequest defines the request schema for `/user/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"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`.","type":"string","maxLength":128,"minLength":1},"identity":{"$ref":"#/components/schemas/ClientUserIdentity"},"end_customer":{"x-hidden-from-docs":true,"description":"A unique ID representing a CRA reseller's end customer. Maximum of 128 characters.","type":"string","maxLength":128,"minLength":0},"consumer_report_user_identity":{"$ref":"#/components/schemas/ConsumerReportUserIdentity"},"with_upgraded_user":{"description":"If your integration with the User API predates December 10, 2025, set this field to `true` to opt into the [New User APIs](https://plaid.com/docs/api/users/user-apis/). When enabled, you can use the `identity` field instead of `consumer_report_user_identity`.","type":"boolean"}},"required":["client_user_id"]},"UserCreateResponse":{"type":"object","additionalProperties":true,"description":"UserCreateResponse defines the response schema for `/user/create`","properties":{"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["user_id","request_id"]},"UserGetRequest":{"type":"object","description":"UserGetRequest defines the request schema for `/user/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["user_id"]},"UserGetResponse":{"type":"object","additionalProperties":true,"description":"UserGetResponse defines the response schema for `/user/get`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"client_user_id":{"type":["string","null"],"description":"Client provided user ID."},"created_at":{"type":"string","format":"date-time","description":"Timestamp of user creation."},"updated_at":{"type":"string","format":"date-time","description":"Timestamp of last user update."},"identity":{"$ref":"#/components/schemas/ClientUserIdentity"}},"required":["request_id","user_id","client_user_id","created_at"]},"UserIdentityRemoveRequest":{"type":"object","description":"UserIdentityRemoveRequest defines the request schema for `/user/identity/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["user_id"]},"UserIdentityRemoveResponse":{"type":"object","additionalProperties":true,"description":"UserIdentityRemoveResponse defines the response schema for `/user/identity/remove`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"UserUpdateRequest":{"type":"object","description":"UserUpdateRequest defines the request schema for `/user/update`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"identity":{"$ref":"#/components/schemas/ClientUserIdentity"},"user_token":{"$ref":"#/components/schemas/UserToken"},"consumer_report_user_identity":{"$ref":"#/components/schemas/ConsumerReportUserIdentity"}}},"UserUpdateResponse":{"type":"object","additionalProperties":true,"description":"UserUpdateResponse defines the response schema for `/user/update`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"UserRemoveRequest":{"type":"object","description":"UserRemoveRequest defines the request schema for `/user/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"user_token":{"$ref":"#/components/schemas/UserToken"}}},"UserRemoveResponse":{"type":"object","additionalProperties":true,"description":"UserRemoveResponse defines the response schema for `/user/remove`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"UserProductsTerminateRequest":{"type":"object","description":"UserProductsTerminateRequest defines the request schema for `/user/products/terminate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"reason_code":{"$ref":"#/components/schemas/ProductsTerminateReasonCode"},"reason_note":{"type":["string","null"],"maxLength":512,"description":"Additional context or details about the reason for terminating user-based products. Personally identifiable information, such as an email address or phone number, should not be included in the `reason_note`."}},"required":["user_id","reason_code"]},"UserProductsTerminateResponse":{"type":"object","additionalProperties":true,"description":"UserProductsTerminateResponse defines the response schema for `/user/products/terminate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"UserThirdPartyTokenCreateRequest":{"x-hidden-from-docs":true,"type":"object","description":"UserThirdPartyTokenCreateRequest defines the request schema for `/user/third_party_token/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"third_party_client_id":{"type":"string","description":"The Plaid API `client_id` of the third-party client the token will be shared with. The token will only be valid for the specified client."},"expiration_time":{"type":["string","null"],"description":"The expiration date and time for the third-party user token in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDThh:mm:ssZ`). The expiration is restricted to a maximum of 24 hours from the token's creation time. If not provided, the token will automatically expire after 24 hours.","format":"date-time"},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["third_party_client_id"]},"UserThirdPartyTokenCreateResponse":{"x-hidden-from-docs":true,"type":"object","additionalProperties":true,"description":"UserThirdPartyTokenCreateResponse defines the response schema for `/user/third_party_token/create`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"}},"required":["request_id","third_party_user_token"]},"UserThirdPartyTokenRemoveRequest":{"x-hidden-from-docs":true,"type":"object","description":"UserThirdPartyTokenRemoveRequest defines the request schema for `/user/third_party_token/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"}},"required":["third_party_user_token"]},"UserThirdPartyTokenRemoveResponse":{"x-hidden-from-docs":true,"type":"object","additionalProperties":true,"description":"UserThirdPartyTokenRemoveResponse defines the response schema for `/user/third_party_token/remove`","properties":{"removed":{"type":"boolean","description":"`true` if the third-party user token was successfully removed."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["removed","request_id"]},"UserTransferLimitsGetRequest":{"type":"object","description":"UserTransferLimitsGetRequest defines the request schema for `/user/transfer/limits/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["user_id"]},"UserTransferLimitsGetResponse":{"type":"object","additionalProperties":true,"description":"UserTransferLimitsGetResponse defines the response schema for `/user/transfer/limits/get`.","properties":{"guarantee_limits":{"$ref":"#/components/schemas/UserGuaranteeLimits"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["guarantee_limits","request_id"]},"UserGuaranteeLimits":{"type":"object","additionalProperties":true,"description":"The user's Guaranteed ACH debit limits. Daily, weekly, and monthly limits are configured ceilings, not remaining capacity. Each rolling limit is `null` when no ceiling is enabled for that window.","properties":{"transaction_limit":{"allOf":[{"$ref":"#/components/schemas/UserTransferLimitAmount"},{"description":"The user's current per-transaction guarantee limit. A zero-dollar limit is returned with a value of `\"0.00\"`."}]},"daily_limit":{"$ref":"#/components/schemas/UserTransferLimitAmountNullable"},"weekly_limit":{"$ref":"#/components/schemas/UserTransferLimitAmountNullable"},"monthly_limit":{"$ref":"#/components/schemas/UserTransferLimitAmountNullable"}},"required":["transaction_limit","daily_limit","weekly_limit","monthly_limit"]},"UserTransferLimitAmount":{"type":"object","additionalProperties":true,"description":"A transfer limit amount and its currency.","properties":{"value":{"type":"string","description":"The limit in dollars, formatted as a decimal string with two digits of precision (for example, `\"150.25\"` represents $150.25).","examples":["150.25"]},"iso_currency_code":{"type":"string","description":"The ISO-4217 currency code of the limit. Currently always `USD`.","examples":["USD"]}},"required":["value","iso_currency_code"]},"UserTransferLimitAmountNullable":{"description":"A transfer limit amount and its currency, or `null` when the limit is not configured.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/UserTransferLimitAmount"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"UserItemsGetRequest":{"type":"object","description":"UserItemsGetRequest defines the request schema for `/user/items/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"}}},"UserItemsGetResponse":{"type":"object","additionalProperties":true,"description":"UserItemsGetResponse defines the response schema for `/user/items/get`","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Item"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["items","request_id"]},"UserItemsAssociateRequest":{"type":"object","description":"UserItemsAssociateRequest defines the request schema for `/user/items/associate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"item_ids":{"type":"array","items":{"$ref":"#/components/schemas/ItemId"},"description":"An array of `item_id`s to be associated with the `user_id`."}},"required":["user_id","item_ids"]},"UserItemsAssociateResponse":{"type":"object","additionalProperties":true,"description":"UserItemsAssociateResponse defines the response schema for `/user/items/associate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"UserItemsRemoveRequest":{"type":"object","description":"UserItemsRemoveRequest defines the request schema for `/user/items/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"item_ids":{"type":"array","items":{"$ref":"#/components/schemas/ItemId"},"description":"An array of `item_id`s to be deleted. All Items for removal must be currently associated with the provided `user_id` or `user_token`. Otherwise, the entire operation will error and no Items will be deleted."}},"required":["item_ids"]},"UserItemsRemoveResponse":{"type":"object","additionalProperties":true,"description":"UserItemsRemoveResponse defines the response schema for `/user/items/remove`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"UserAccountIdentity":{"type":["object","null"],"additionalProperties":true,"description":"The identity data permissioned by the end user during the authorization flow.","properties":{"name":{"$ref":"#/components/schemas/UserAccountIdentityName"},"address":{"$ref":"#/components/schemas/UserAccountIdentityAddress"},"phone_number":{"type":"string","description":"The user's phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format"},"email":{"description":"The user's email address.","type":["string","null"]},"date_of_birth":{"description":"The user's date of birth.","type":["string","null"]},"ssn":{"description":"The user's Social Security number.","type":["string","null"]},"ssn_last_4":{"description":"The last 4 digits of the user's Social Security number.","type":["string","null"]}}},"UserAccountIdentityName":{"type":["object","null"],"additionalProperties":true,"description":"The user's first name and last name.","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"}}},"UserAccountIdentityAddress":{"description":"The user's address.","additionalProperties":true,"type":["object","null"],"properties":{"city":{"type":["string","null"],"description":"The full city name"},"region":{"type":["string","null"],"description":"The region or state.\nExample: `\"NC\"`"},"street":{"type":["string","null"],"description":"The full street address\nExample: `\"564 Main Street, APT 15\"`"},"street2":{"type":["string","null"],"description":"The second line street address"},"postal_code":{"type":["string","null"],"description":"The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`."},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code"}}},"UserAccountIdentityEditCounts":{"description":"Edit counts over various time periods.","type":"object","additionalProperties":true,"properties":{"edits_current":{"type":"integer","description":"Number of edits in the current session"},"edits_1d":{"type":"integer","description":"Number of edits in the last 1 day"},"edits_30d":{"type":"integer","description":"Number of edits in the last 30 days"},"edits_365d":{"type":"integer","description":"Number of edits in the last 365 days"},"edits_all_time":{"type":"integer","description":"Total number of edits"}}},"UserAccountIdentityOfficialDocument":{"description":"Official identity document edit statistics.","type":["object","null"],"additionalProperties":true,"properties":{"ssn":{"$ref":"#/components/schemas/UserAccountIdentityEditCounts"}}},"UserAccountIdentityEditHistory":{"description":"Statistics tracking the number of edits made to identity fields over various time periods.","type":["object","null"],"additionalProperties":true,"properties":{"name":{"$ref":"#/components/schemas/UserAccountIdentityEditCounts"},"address":{"$ref":"#/components/schemas/UserAccountIdentityEditCounts"},"email":{"$ref":"#/components/schemas/UserAccountIdentityEditCounts"},"date_of_birth":{"$ref":"#/components/schemas/UserAccountIdentityEditCounts"},"official_document":{"$ref":"#/components/schemas/UserAccountIdentityOfficialDocument"}}},"UserAccountItem":{"description":"An Item created during a Layer authorization session.","type":"object","additionalProperties":true,"properties":{"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"},"access_token":{"$ref":"#/components/schemas/AccessToken"}}},"ConsumerReportUserIdentity":{"type":["object","null"],"additionalProperties":true,"description":"This field is only used by integrations created before December 10, 2025. All other integrations must use the `identity` object instead. For more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis).\nTo create a Plaid Check Consumer Report for a user when using a `user_token`, this field must be present. If this field is not provided during user token creation, you can add it to the user later by calling `/user/update`. Once the field has been added to the user, you will be able to call `/link/token/create` with a non-empty `consumer_report_permissible_purpose` (which will automatically create a Plaid Check Consumer Report), or call `/cra/check_report/create` for that user.","properties":{"first_name":{"type":"string","description":"The user's first name"},"last_name":{"type":"string","description":"The user's last name"},"phone_numbers":{"description":"The user's phone number, in E.164 format: +{countrycode}{number}. For example: \"+14157452130\". Phone numbers provided in other formats will be parsed on a best-effort basis. Phone number input is validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment.","type":"array","items":{"type":"string"}},"emails":{"description":"The user's emails","type":"array","items":{"type":"string"}},"ssn_full":{"description":"The user's full Social Security number. This field should only be provided by lenders intending to share the resulting consumer report with a Government-Sponsored Enterprise (GSE), such as Fannie Mae or Freddie Mac.\n\nFormat: \"ddd-dd-dddd\"","type":["string","null"]},"ssn_last_4":{"description":"The last 4 digits of the user's Social Security number.","type":["string","null"],"maxLength":4,"minLength":4},"date_of_birth":{"type":["string","null"],"format":"date","description":"To be provided in the format \"yyyy-mm-dd\".\nThis field is required for all Plaid Check customers."},"primary_address":{"$ref":"#/components/schemas/AddressData"}},"required":["first_name","last_name","phone_numbers","emails","date_of_birth","primary_address"]},"ClientUserIdentityName":{"type":["object","null"],"description":"User name information.","properties":{"given_name":{"type":"string","description":"User's given name."},"family_name":{"type":"string","description":"User's family name."}},"required":["given_name","family_name"]},"ClientUserIdentityPhoneNumber":{"type":"object","description":"User phone number information.","properties":{"data":{"type":"string","description":"User's phone number."},"primary":{"type":"boolean","description":"Indicates whether this is the primary phone number for the User."}},"required":["data","primary"]},"ClientUserIdentityEmail":{"type":"object","description":"User email information.","properties":{"data":{"type":"string","description":"User's email."},"primary":{"type":"boolean","description":"Indicates whether this is the primary email for the User."}},"required":["data","primary"]},"ClientUserIdentityAddress":{"type":"object","description":"User address information.","properties":{"street_1":{"type":["string","null"],"description":"First line of street address."},"street_2":{"type":["string","null"],"description":"Second line of street address."},"city":{"type":["string","null"],"description":"City name."},"region":{"type":["string","null"],"description":"State, province or region."},"country":{"type":"string","description":"Country code."},"postal_code":{"type":["string","null"],"description":"Postal or ZIP code."},"primary":{"type":"boolean","description":"Indicates whether this is the primary address for the User."}},"required":["country","primary"]},"ClientUserIdentity":{"type":["object","null"],"additionalProperties":true,"description":"The identity fields associated with a user. For a user to be eligible for a Plaid Check Consumer Report, all fields are required except `id_numbers`. Providing a partial SSN is strongly recommended, and improves the accuracy of matching user records during compliance processes such as file disclosure, dispute, or security freeze requests. If creating a report that will be shared with GSEs such as Fannie or Freddie, a full Social Security Number must be provided via the `id_numbers` field.","properties":{"name":{"$ref":"#/components/schemas/ClientUserIdentityName"},"date_of_birth":{"description":"The user's date of birth, to be provided in the format \"yyyy-mm-dd\".","type":["string","null"],"format":"date"},"emails":{"description":"The user's emails.","type":"array","items":{"$ref":"#/components/schemas/ClientUserIdentityEmail"}},"phone_numbers":{"description":"The user's phone numbers, in E.164 format: +{countrycode}{number}. For example: \"+14157452130\". Phone numbers provided in other formats will be parsed on a best-effort basis. Phone number input is validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment.","type":"array","items":{"$ref":"#/components/schemas/ClientUserIdentityPhoneNumber"}},"addresses":{"type":"array","description":"The user's addresses.","items":{"$ref":"#/components/schemas/ClientUserIdentityAddress"}},"id_numbers":{"type":"array","description":"The user's ID numbers.","items":{"$ref":"#/components/schemas/UserIDNumber"}}}},"CreditSessionsGetRequest":{"type":"object","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"},"user_id":{"$ref":"#/components/schemas/NewUserID"}}},"CreditSessionsGetResponse":{"type":"object","additionalProperties":true,"description":"CreditSessionsGetResponse defines the response schema for `/credit/sessions/get`","properties":{"sessions":{"type":"array","description":"A list of Link sessions for the user. Sessions will be sorted in reverse chronological order.","items":{"$ref":"#/components/schemas/CreditSession"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CreditSession":{"type":"object","description":"Metadata and results for a Link session","properties":{"link_session_id":{"type":"string","description":"The unique identifier associated with the Link session. This identifier matches the `link_session_id` returned in the onSuccess/onExit callbacks."},"session_start_time":{"type":"string","description":"The time when the Link session started","format":"date-time"},"results":{"$ref":"#/components/schemas/CreditSessionResults"},"errors":{"type":"array","description":"The set of errors that occurred during the Link session.","items":{"$ref":"#/components/schemas/CreditSessionError"}}}},"CreditSessionResults":{"type":"object","description":"The set of results for a Link session.","properties":{"item_add_results":{"type":"array","description":"The set of Item adds for the Link session.","items":{"$ref":"#/components/schemas/CreditSessionItemAddResult"}},"bank_income_results":{"type":"array","description":"The set of bank income verifications for the Link session.","items":{"$ref":"#/components/schemas/CreditSessionBankIncomeResult"}},"bank_employment_results":{"type":"array","description":"The set of bank employment verifications for the Link session.","items":{"$ref":"#/components/schemas/CreditSessionBankEmploymentResult"}},"payroll_income_results":{"type":"array","description":"The set of payroll income verifications for the Link session.","items":{"$ref":"#/components/schemas/CreditSessionPayrollIncomeResult"}},"document_income_results":{"$ref":"#/components/schemas/CreditSessionDocumentIncomeResult"}}},"CreditSessionItemAddResult":{"type":"object","description":"The details of an Item add in Link.","properties":{"public_token":{"description":"Returned once a user has successfully linked their 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"},"institution_id":{"description":"The Plaid Institution ID associated with the Item.","type":"string"}}},"CreditSessionBankIncomeResult":{"type":"object","description":"The details of a bank income verification in Link","properties":{"status":{"$ref":"#/components/schemas/CreditSessionBankIncomeStatus"},"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"},"institution_id":{"description":"The Plaid Institution ID associated with the Item.","type":"string"}}},"CreditSessionBankEmploymentResult":{"type":"object","description":"The details of a bank employment verification in Link.","properties":{"status":{"$ref":"#/components/schemas/CreditSessionBankEmploymentStatus"},"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"},"institution_id":{"description":"The Plaid Institution ID associated with the Item.","type":"string"}}},"CreditSessionError":{"type":"object","description":"The details of a Link error.","properties":{"error_type":{"type":"string","description":"A broad categorization of the error."},"error_code":{"description":"The particular error code.","type":"string"},"error_message":{"description":"A developer-friendly representation of the error code.","type":"string"},"display_message":{"description":"A user-friendly representation of the error code. `null` if the error is not related to user action.","type":["string","null"]}}},"CreditSessionPayrollIncomeResult":{"type":"object","description":"The details of a digital payroll income verification in Link","properties":{"num_paystubs_retrieved":{"type":"integer","description":"The number of paystubs retrieved from a payroll provider."},"num_w2s_retrieved":{"type":"integer","description":"The number of w2s retrieved from a payroll provider."},"institution_id":{"type":"string","description":"The Plaid Institution ID associated with the Item."},"institution_name":{"type":"string","description":"The Institution Name associated with the Item."}}},"CreditSessionDocumentIncomeResult":{"type":["object","null"],"description":"The details of a document income verification in Link","properties":{"num_paystubs_uploaded":{"type":"integer","description":"The number of paystubs uploaded by the user."},"num_w2s_uploaded":{"type":"integer","description":"The number of w2s uploaded by the user."},"num_bank_statements_uploaded":{"type":"integer","description":"The number of bank statements uploaded by the user."},"num_1099s_uploaded":{"type":"integer","description":"The number of 1099s uploaded by the user"},"num_i20s_uploaded":{"type":"integer","description":"The number of I-20s uploaded by the user"}},"required":["num_paystubs_uploaded","num_w2s_uploaded","num_bank_statements_uploaded","num_1099s_uploaded","num_i20s_uploaded"]},"LinkSessionCraDocumentUploadResult":{"type":["object","null"],"description":"The details of a document upload CRA session in Link","properties":{"num_bank_statements_uploaded":{"type":"integer","description":"The number of bank statements uploaded by the user."}},"required":["num_bank_statements_uploaded"]},"LinkSessionCraReportResult":{"type":["object","null"],"description":"Plaid Check report details for the Link session.","additionalProperties":true,"properties":{"report_id":{"anyOf":[{"allOf":[{"$ref":"#/components/schemas/CraReportId"},{"description":"The identifier of the report being generated. Use it to retrieve the report with `/cra/report/get` once its products are ready. `null` if no report identifier is available for the session."}]},{"type":"null"}]}},"required":["report_id"]},"CreditSessionBankIncomeStatus":{"type":"string","enum":["APPROVED","NO_DEPOSITS_FOUND","USER_REPORTED_NO_INCOME","STARTED","INTERNAL_ERROR"],"description":"Status of the Bank Income Link session.\n\n`APPROVED`: User has approved and verified their income\n\n`NO_DEPOSITS_FOUND`: We attempted, but were unable to find any income in the connected account.\n\n`USER_REPORTED_NO_INCOME`: The user explicitly indicated that they don't receive income in the connected account.\n\n`STARTED`: The user began the bank income portion of the link flow.\n\n`INTERNAL_ERROR`: The user encountered an internal error."},"CreditSessionBankEmploymentStatus":{"type":"string","enum":["APPROVED","NO_EMPLOYERS_FOUND","EMPLOYER_NOT_LISTED","STARTED","INTERNAL_ERROR"],"description":"Status of the Bank Employment Link session.\n\n`APPROVED`: User has approved and verified their employment.\n\n`NO_EMPLOYERS_FOUND`: We attempted, but were unable to find any employment in the connected account.\n\n`EMPLOYER_NOT_LISTED`: The user explicitly indicated that they did not see their current or previous employer in the list of employer names found.\n\n`STARTED`: The user began the bank employment portion of the link flow.\n\n`INTERNAL_ERROR`: The user encountered an internal error."},"CreditPayStubPayBasisType":{"type":"string","description":"The explicit pay basis on the paystub (if present).","enum":["SALARY","HOURLY","COMMISSION"]},"PaymentInitiationPaymentGetRequest":{"type":"object","description":"PaymentInitiationPaymentGetRequest defines the request schema for `/payment_initiation/payment/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"payment_id":{"type":"string","description":"The `payment_id` returned from `/payment_initiation/payment/create`."}},"required":["payment_id"]},"PaymentInitiationPaymentGetResponse":{"additionalProperties":true,"description":"PaymentInitiationPaymentGetResponse defines the response schema for `/payment_initiation/payment/get`","allOf":[{"$ref":"#/components/schemas/PaymentInitiationPayment"},{"type":"object","properties":{"institution_id":{"type":["string","null"],"description":"The Plaid institution ID of the end user's financial institution from which the payment was initiated, such as `ins_61`. `null` if the institution is not known, for example when the end user has not linked an account. A later request may return a value.","x-hidden-from-docs":true},"request_id":{"$ref":"#/components/schemas/RequestID"}}}],"required":["request_id","payment_id","amount","status","recipient_id","reference","last_status_update","bacs","iban","institution_id"]},"PaymentInitiationPaymentStatus":{"type":"string","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"],"description":"The status of the payment.\n\nCore lifecycle statuses:\n\n**`PAYMENT_STATUS_INPUT_NEEDED`**: Transitional. The payment is awaiting user input to continue processing. It may re-enter this state if additional input is required.\n\n**`PAYMENT_STATUS_AUTHORISING`:** Transitional. The payment is being authorised by the financial institution. It will automatically move on once authorisation completes.\n\n**`PAYMENT_STATUS_INITIATED`:** The payment has been authorised and accepted by the financial institution. In many EU markets, `PAYMENT_STATUS_EXECUTED` is not supported, and a payment will remain in `PAYMENT_STATUS_INITIATED` until the funds settle, making this a terminal success state in those cases. A payment in `PAYMENT_STATUS_INITIATED` should be treated as a successfully submitted payment; do not gate downstream processing on reaching `PAYMENT_STATUS_EXECUTED`. For a full explanation of payment statuses and how to handle each, see the [Payment Status guide](https://plaid.com/docs/payment-initiation/payment-status/).\n\n**`PAYMENT_STATUS_EXECUTED`: Terminal.** The funds have left the payer's account and the payment is en route to settlement. Note that this status does not confirm that funds have arrived in the recipient's account; do not use it as proof of fund receipt. Support is more common in the UK than in the EU; where unsupported, a successful payment remains in `PAYMENT_STATUS_INITIATED` before settling. When using Plaid Virtual Accounts, `PAYMENT_STATUS_EXECUTED` is not terminal -- the payment will continue to `PAYMENT_STATUS_SETTLED` once funds are available.\n\n**`PAYMENT_STATUS_SETTLED`: Terminal.** The funds are available in the recipient's account. Only available to customers using [Plaid Virtual Accounts](https://plaid.com/docs/payment-initiation/virtual-accounts/).\n\nFailure statuses:\n\n**`PAYMENT_STATUS_INSUFFICIENT_FUNDS`: Terminal.** The payment failed due to insufficient funds. No further retries will succeed until the payer's balance is replenished.\n\n**`PAYMENT_STATUS_FAILED`: Terminal (retryable).** The payment could not be initiated due to a system error or outage. Retry once the root cause is resolved.\n\n**`PAYMENT_STATUS_BLOCKED`: Terminal (retryable).** The payment was blocked by Plaid (e.g., flagged as risky). Resolve any compliance or risk issues and retry.\n\n**`PAYMENT_STATUS_REJECTED`: Terminal.** The payment was rejected by the financial institution. No automatic retry is possible.\n\n**`PAYMENT_STATUS_CANCELLED`: Terminal.** The end user cancelled the payment during authorisation.\n\nStanding-order statuses:\n\n**`PAYMENT_STATUS_ESTABLISHED`: Terminal.** A recurring/standing order has been successfully created.\n\nDeprecated (to be removed in a future release):\n\n`PAYMENT_STATUS_UNKNOWN`: The payment status is unknown.\n\n`PAYMENT_STATUS_PROCESSING`: The payment is currently being processed.\n\n`PAYMENT_STATUS_COMPLETED`: Indicates that the standing order has been successfully established."},"PaymentInitiationPayment":{"type":"object","additionalProperties":true,"description":"PaymentInitiationPayment defines a payment initiation payment","properties":{"payment_id":{"type":"string","description":"The ID of the payment. Like all Plaid identifiers, the `payment_id` is case sensitive."},"amount":{"$ref":"#/components/schemas/PaymentAmount"},"status":{"$ref":"#/components/schemas/PaymentInitiationPaymentStatus"},"recipient_id":{"type":"string","description":"The ID of the recipient"},"reference":{"type":"string","description":"A reference for the payment."},"adjusted_reference":{"type":["string","null"],"description":"The value of the reference sent to the bank after adjustment to pass bank validation rules."},"last_status_update":{"format":"date-time","type":"string","description":"The date and time of the last time the `status` was updated, in ISO 8601 format"},"schedule":{"$ref":"#/components/schemas/ExternalPaymentScheduleGet"},"refund_details":{"$ref":"#/components/schemas/ExternalPaymentRefundDetails"},"bacs":{"$ref":"#/components/schemas/SenderBACSNullable"},"iban":{"type":["string","null"],"description":"The International Bank Account Number (IBAN) for the sender, if specified in the `/payment_initiation/payment/create` call."},"refund_ids":{"type":["array","null"],"description":"Refund IDs associated with the payment.","items":{"type":"string"}},"amount_refunded":{"$ref":"#/components/schemas/PaymentAmountRefunded"},"wallet_id":{"type":["string","null"],"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."},"scheme":{"$ref":"#/components/schemas/PaymentScheme"},"adjusted_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"consent_id":{"type":["string","null"],"description":"The payment consent ID that this payment was initiated with. Is present only when payment was initiated using the payment consent."},"transaction_id":{"type":["string","null"],"description":"The transaction ID that this payment is associated with, if any. This is present only when a payment was initiated using virtual accounts."},"end_to_end_id":{"type":["string","null"],"description":"A unique identifier assigned by Plaid to each payment for tracking and reconciliation purposes.\n\nNote: Not all banks handle `end_to_end_id` consistently. To ensure accurate matching, clients should convert both the incoming `end_to_end_id` and the one provided by Plaid to the same case (either lower or upper) before comparison. For virtual account payments, Plaid manages this field automatically."},"error":{"$ref":"#/components/schemas/PlaidError"}},"required":["payment_id","amount","status","recipient_id","reference","last_status_update","bacs","iban"]},"PaymentInitiationPaymentTokenCreateRequest":{"type":"object","description":"PaymentInitiationPaymentTokenCreateRequest defines the request schema for `/payment_initiation/payment/token/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"payment_id":{"type":"string","description":"The `payment_id` returned from `/payment_initiation/payment/create`."}},"required":["payment_id"]},"PaymentInitiationPaymentTokenCreateResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationPaymentTokenCreateResponse defines the response schema for `/payment_initiation/payment/token/create`","properties":{"payment_token":{"type":"string","description":"A `payment_token` that can be provided to Link initialization to enter the payment initiation flow"},"payment_token_expiration_time":{"format":"date-time","type":"string","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 30 minutes."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["payment_token","payment_token_expiration_time","request_id"]},"PaymentInitiationConsentCreateRequest":{"type":"object","description":"PaymentInitiationConsentCreateRequest defines the request schema for `/payment_initiation/consent/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"recipient_id":{"type":"string","description":"The ID of the recipient the payment consent is for. The created consent can be used to transfer funds to this recipient only."},"user_id":{"type":"string","description":"The `user_id` of the end user the payment consent is for, as returned by [`/user/create`](https://plaid.com/docs/api/users/#usercreate). The user must have a `name` and either an email address or a phone number. Payments created from this consent inherit this `user_id`. Required for new integrations."},"reference":{"type":"string","description":"A reference for the payment consent. This must be a string of at most 18 characters containing only letters, numbers, and spaces.","minLength":1,"maxLength":18},"scopes":{"type":"array","deprecated":true,"description":"An array of payment consent scopes.","minItems":1,"uniqueItems":true,"items":{"$ref":"#/components/schemas/PaymentInitiationConsentScope"}},"type":{"$ref":"#/components/schemas/PaymentInitiationConsentType"},"constraints":{"$ref":"#/components/schemas/PaymentInitiationConsentConstraints"},"options":{"$ref":"#/components/schemas/ExternalPaymentInitiationConsentOptions"},"payer_details":{"$ref":"#/components/schemas/PaymentInitiationConsentPayerDetails"}},"required":["recipient_id","reference","constraints"]},"PaymentInitiationConsentCreateResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationConsentCreateResponse defines the response schema for `/payment_initiation/consent/create`","properties":{"consent_id":{"type":"string","description":"A unique ID identifying the payment consent."},"status":{"$ref":"#/components/schemas/PaymentInitiationConsentStatus"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["consent_id","status","request_id"]},"PaymentInitiationConsentGetRequest":{"type":"object","description":"PaymentInitiationConsentGetRequest defines the request schema for `/payment_initiation/consent/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"consent_id":{"type":"string","description":"The `consent_id` returned from `/payment_initiation/consent/create`."}},"required":["consent_id"]},"PaymentInitiationConsentGetResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationConsentGetResponse defines the response schema for `/payment_initiation/consent/get`","allOf":[{"$ref":"#/components/schemas/PaymentInitiationConsent"},{"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}}}],"required":["request_id"]},"PaymentInitiationConsent":{"type":"object","additionalProperties":true,"description":"PaymentInitiationConsent defines a payment initiation consent.","properties":{"consent_id":{"type":"string","description":"The consent ID.","minLength":1},"status":{"$ref":"#/components/schemas/PaymentInitiationConsentStatus"},"created_at":{"type":"string","format":"date-time","description":"Consent creation timestamp, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"recipient_id":{"type":"string","description":"The ID of the recipient the payment consent is for.","minLength":1},"reference":{"type":"string","description":"A reference for the payment consent."},"constraints":{"$ref":"#/components/schemas/PaymentInitiationConsentConstraints"},"scopes":{"type":"array","deprecated":true,"description":"Deprecated, use the 'type' field instead.","items":{"$ref":"#/components/schemas/PaymentInitiationConsentScope"}},"type":{"$ref":"#/components/schemas/PaymentInitiationConsentType"},"payer_details":{"$ref":"#/components/schemas/ExternalPaymentRefundDetails"}},"required":["consent_id","status","created_at","recipient_id","reference","constraints"]},"PaymentInitiationConsentStatus":{"type":"string","enum":["UNAUTHORISED","AUTHORISED","REVOKED","REJECTED","EXPIRED"],"description":"The status of the payment consent.\n\n`UNAUTHORISED`: Consent created, but requires user authorisation.\n\n`REJECTED`: Consent authorisation was rejected by the bank.\n\n`AUTHORISED`: Consent is active and ready to be used.\n\n`REVOKED`: Consent has been revoked and can no longer be used.\n\n`EXPIRED`: Consent is no longer valid."},"PaymentInitiationConsentRevokeRequest":{"type":"object","description":"PaymentInitiationConsentRevokeRequest defines the request schema for `/payment_initiation/consent/revoke`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"consent_id":{"type":"string","description":"The consent ID."}},"required":["consent_id"]},"PaymentInitiationConsentRevokeResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationConsentRevokeResponse defines the response schema for `/payment_initiation/consent/revoke`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}}},"PaymentInitiationConsentPaymentExecuteRequest":{"type":"object","description":"PaymentInitiationConsentPaymentExecuteRequest defines the request schema for `/payment_initiation/consent/payment/execute`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"consent_id":{"type":"string","description":"The consent ID."},"amount":{"$ref":"#/components/schemas/PaymentAmount"},"idempotency_key":{"$ref":"#/components/schemas/ConsentPaymentIdempotencyKey"},"reference":{"type":["string","null"],"description":"A reference for the payment. This must be a string of at most 18 characters containing only letters, numbers, and spaces (since not all institutions support them).\nIf not provided, Plaid will automatically fall back to the reference from consent. 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.\nSome institutions may limit the reference to less than 18 characters. If necessary, Plaid will adjust the reference by truncating it to fit the institution's requirements.\nBoth the originally provided and automatically adjusted references (if any) can be found in the `reference` and `adjusted_reference` fields, respectively.","minLength":1,"maxLength":18},"scope":{"deprecated":true,"allOf":[{"$ref":"#/components/schemas/PaymentInitiationConsentScope"},{"type":["string","null"],"description":"Deprecated, payments will be executed within the type of the consent.\n\nA scope of the payment. Must be one of the scopes mentioned in the consent.\nOptional if the appropriate consent has only one scope defined, required otherwise."}]},"processing_mode":{"$ref":"#/components/schemas/PaymentInitiationConsentProcessingMode"}},"required":["consent_id","amount","idempotency_key"]},"PaymentInitiationConsentPaymentExecuteResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationConsentPaymentExecuteResponse defines the response schema for `/payment_initiation/consent/payment/execute`","properties":{"payment_id":{"type":"string","description":"A unique ID identifying the payment"},"status":{"$ref":"#/components/schemas/PaymentInitiationPaymentStatus"},"request_id":{"$ref":"#/components/schemas/RequestID"},"error":{"$ref":"#/components/schemas/PlaidError"}},"required":["payment_id","status","request_id"]},"PaymentInitiationPaymentListRequest":{"type":"object","description":"PaymentInitiationPaymentListRequest defines the request schema for `/payment_initiation/payment/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"count":{"type":["integer","null"],"minimum":1,"maximum":200,"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)."},"cursor":{"type":["string","null"],"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"},"consent_id":{"type":["string","null"],"description":"The consent ID. If specified, only payments, executed using this consent, will be returned."}}},"PaymentInitiationPaymentListResponse":{"type":"object","additionalProperties":true,"description":"PaymentInitiationPaymentListResponse defines the response schema for `/payment_initiation/payment/list`","properties":{"payments":{"type":"array","description":"An array of payments that have been created, associated with the given `client_id`.","items":{"$ref":"#/components/schemas/PaymentInitiationPayment"}},"next_cursor":{"format":"date-time","type":["string","null"],"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."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["payments","next_cursor","request_id"]},"InvestmentsHoldingsGetRequest":{"type":"object","description":"InvestmentsHoldingsGetRequest defines the request schema for `/investments/holdings/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"options":{"$ref":"#/components/schemas/InvestmentHoldingsGetRequestOptions"}},"required":["access_token"]},"InvestmentHoldingsGetRequestOptions":{"type":"object","description":"An optional object to filter `/investments/holdings/get` results. If provided, must not be `null`.","properties":{"account_ids":{"type":"array","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"}}}},"InvestmentsHoldingsGetResponse":{"type":"object","additionalProperties":true,"description":"InvestmentsHoldingsGetResponse defines the response schema for `/investments/holdings/get`","properties":{"accounts":{"type":"array","description":"The accounts associated with the Item","items":{"$ref":"#/components/schemas/InvestmentAccount"}},"holdings":{"type":"array","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"}},"securities":{"description":"Objects describing the securities held in the accounts associated with the Item. ","type":"array","items":{"$ref":"#/components/schemas/Security"}},"item":{"$ref":"#/components/schemas/Item"},"request_id":{"$ref":"#/components/schemas/RequestID"},"is_investments_fallback_item":{"type":"boolean","description":"When true, this field indicates that the Item's portfolio was manually created with the Investments Fallback flow."}},"required":["accounts","holdings","securities","item","request_id"]},"InvestmentsAuthGetRequest":{"type":"object","description":"InvestmentsAuthGetRequest defines the request schema for `/investments/auth/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"options":{"$ref":"#/components/schemas/InvestmentsAuthGetRequestOptions"}},"required":["access_token"]},"InvestmentsAuthGetRequestOptions":{"type":"object","description":"An optional object to filter `/investments/auth/get` results.","properties":{"account_ids":{"type":"array","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"}}}},"InvestmentsAuthGetResponse":{"type":"object","additionalProperties":true,"description":"InvestmentsAuthGetResponse defines the response schema for `/investments/auth/get`","properties":{"accounts":{"type":"array","description":"The accounts for which data is being retrieved","items":{"$ref":"#/components/schemas/InvestmentAccount"}},"holdings":{"type":"array","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"}},"securities":{"description":"Objects describing the securities held in the accounts associated with the Item. ","type":"array","items":{"$ref":"#/components/schemas/Security"}},"owners":{"description":"Information about the account owners for the accounts associated with the Item. ","type":"array","items":{"$ref":"#/components/schemas/InvestmentsAuthOwner"}},"numbers":{"$ref":"#/components/schemas/InvestmentsAuthGetNumbers"},"data_sources":{"$ref":"#/components/schemas/InvestmentsAuthDataSources"},"account_details_401k":{"type":"array","x-hidden-from-docs":true,"description":"Additional information for accounts of 401k subtype.","items":{"$ref":"#/components/schemas/InvestmentsAuthAccountDetails401k"}},"item":{"$ref":"#/components/schemas/Item"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","holdings","securities","item","numbers","owners","data_sources","request_id"]},"ProcessorInvestmentsTransactionsGetRequest":{"type":"object","description":"ProcessorInvestmentsTransactionsGetRequest defines the request schema for `/processor/investments/transactions/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"options":{"$ref":"#/components/schemas/InvestmentsTransactionsGetRequestOptions"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":"string","format":"date","description":"The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD. Plaid returns all investment transaction history stored for the Item (up to 2 years prior to the initial linking of the Item)."},"end_date":{"type":"string","format":"date","description":"The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD."}},"required":["processor_token","start_date","end_date"]},"ProcessorInvestmentsTransactionsGetResponse":{"type":"object","description":"ProcessorInvestmentsTransactionsGetResponse defines the response schema for `/processor/investments/transactions/get`","additionalProperties":true,"properties":{"account":{"$ref":"#/components/schemas/InvestmentAccount"},"investment_transactions":{"type":"array","description":"An array containing investment transactions from the account. Investments 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/InvestmentTransaction"}},"securities":{"type":"array","description":"All securities for which there is a corresponding transaction being fetched.","items":{"$ref":"#/components/schemas/Security"}},"total_investment_transactions":{"type":"integer","description":"The total number of transactions available within the date range specified. If `total_investment_transactions` is larger than the size of the `investment_transactions` array, more transactions are available and can be fetched via manipulating the `offset` parameter."},"request_id":{"$ref":"#/components/schemas/RequestID"},"is_investments_fallback_item":{"type":"boolean","description":"When true, this field indicates that the Item's portfolio was manually created with the Investments Fallback flow."}},"required":["account","securities","investment_transactions","total_investment_transactions","request_id"]},"InvestmentsTransactionsGetRequest":{"type":"object","description":"InvestmentsTransactionsGetRequest defines the request schema for `/investments/transactions/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"start_date":{"type":"string","format":"date","description":"The earliest date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD. Plaid returns all investment transaction history stored for the Item (up to 2 years prior to the initial linking of the Item)."},"end_date":{"type":"string","format":"date","description":"The most recent date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD."},"options":{"$ref":"#/components/schemas/InvestmentsTransactionsGetRequestOptions"}},"required":["access_token","start_date","end_date"]},"InvestmentsTransactionsGetRequestOptions":{"description":"An optional object to filter `/investments/transactions/get` results. If provided, must be non-`null`.","type":"object","properties":{"account_ids":{"type":"array","description":"An array of `account_ids` to retrieve for the Item.","items":{"type":"string"}},"count":{"type":"integer","default":100,"minimum":1,"maximum":500,"description":"The number of transactions to fetch.\n"},"offset":{"type":"integer","description":"The number of transactions to skip when fetching transaction history","default":0,"minimum":0},"async_update":{"type":"boolean","description":"If the Item was not initialized with the investments product via the `products`, `required_if_supported_products`, or `optional_products` array when calling `/link/token/create`, and `async_update` is set to true, the initial Investments extraction will happen asynchronously. Plaid will subsequently fire a `HISTORICAL_UPDATE` webhook when the extraction completes. When `false`, Plaid will wait to return a response until extraction completion and no `HISTORICAL_UPDATE` webhook will fire. Note that while the extraction is happening asynchronously, calls to `/investments/transactions/get` and `/investments/refresh` will return `PRODUCT_NOT_READY` errors until the extraction completes.","default":false}}},"InvestmentsTransactionsGetResponse":{"type":"object","additionalProperties":true,"description":"InvestmentsTransactionsGetResponse defines the response schema for `/investments/transactions/get`","properties":{"item":{"$ref":"#/components/schemas/Item"},"accounts":{"type":"array","description":"The accounts for which transaction history is being fetched.","items":{"$ref":"#/components/schemas/InvestmentAccount"}},"securities":{"type":"array","description":"All securities for which there is a corresponding transaction being fetched.","items":{"$ref":"#/components/schemas/Security"}},"investment_transactions":{"type":"array","description":"The transactions being fetched","items":{"$ref":"#/components/schemas/InvestmentTransaction"}},"total_investment_transactions":{"type":"integer","description":"The total number of transactions available within the date range specified. If `total_investment_transactions` is larger than the size of the `investment_transactions` array, more transactions are available and can be fetched via manipulating the `offset` parameter."},"request_id":{"$ref":"#/components/schemas/RequestID"},"is_investments_fallback_item":{"type":"boolean","description":"When true, this field indicates that the Item's portfolio was manually created with the Investments Fallback flow."}},"required":["item","accounts","securities","investment_transactions","total_investment_transactions","request_id"]},"InvestmentsRefreshRequest":{"type":"object","description":"InvestmentsRefreshRequest defines the request schema for `/investments/refresh`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["access_token"]},"InvestmentsRefreshResponse":{"type":"object","additionalProperties":true,"description":"InvestmentsRefreshResponse defines the response schema for `/investments/refresh`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProcessorTokenCreateRequest":{"type":"object","description":"ProcessorTokenCreateRequest defines the request schema for `/processor/token/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"account_id":{"type":"string","description":"The `account_id` value obtained from the `onSuccess` callback in Link"},"processor":{"type":"string","enum":["dwolla","galileo","modern_treasury","ocrolus","stripe","vesta","drivewealth","vopay","achq","check","checkbook","circle","sila_money","rize","svb_api","unit","wyre","lithic","alpaca","astra","moov","treasury_prime","marqeta","checkout","solid","highnote","gemini","apex_clearing","gusto","adyen","atomic","i2c","wepay","riskified","utb","adp_roll","fortress_trust","bond","bakkt","teal","zero_hash","taba_pay","knot","sardine","alloy","finix","nuvei","layer","boom","seamlessach","stake","wedbush","esusu","ansa","scribeup","straddle","loanpro","bloom_credit","sfox","brale","parafin","cardless","open_ledger","valon","gainbridge","cardlytics","pinwheel","thread_bank","array","fiant","oatfi","curinos","frame","interchecks","interchange","atomicfi","pay","natural","kanmon","kick","increase","airwallex","cybrid","bizcap","webull","kikoff_enterprise","adyen_ca","bitgo","anchorage"],"description":"The processor you are integrating with."}},"required":["access_token","account_id","processor"]},"ProcessorTokenCreateResponse":{"type":"object","additionalProperties":true,"description":"ProcessorTokenCreateResponse defines the response schema for `/processor/token/create` and `/processor/apex/processor_token/create`","properties":{"processor_token":{"type":"string","description":"The `processor_token` that can then be used by the Plaid partner to make API requests"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["processor_token","request_id"]},"ProcessorTokenPermissionsSetRequest":{"type":"object","description":"ProcessorTokenPermissionsSetRequest defines the request schema for `/processor/token/permissions/set`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"products":{"type":"array","description":"A list of products the processor token should have access to. An empty list will grant access to all products.","items":{"$ref":"#/components/schemas/Products"}}},"required":["processor_token","products"]},"ProcessorTokenPermissionsSetResponse":{"type":"object","additionalProperties":true,"description":"ProcessorTokenPermissionsSetResponse defines the response schema for `/processor/token/permissions/set`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProcessorTokenPermissionsGetRequest":{"type":"object","description":"ProcessorTokenPermissionsGetRequest defines the request schema for `/processor/token/permissions/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"}},"required":["processor_token"]},"ProcessorTokenPermissionsGetResponse":{"type":"object","additionalProperties":true,"description":"ProcessorTokenPermissionsGetResponse defines the response schema for `/processor/token/permissions/get`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"products":{"type":"array","description":"A list of products the processor token should have access to. An empty list means that the processor has access to all available products, including future products.","items":{"$ref":"#/components/schemas/Products"}}},"required":["request_id","products"]},"ProcessorTokenWebhookUpdateRequest":{"type":"object","description":"ProcessorTokenWebhookUpdateRequest defines the request schema for `/processor/token/webhook/update`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"webhook":{"type":["string","null"],"description":"The new webhook URL to associate with the processor token. To remove a webhook from a processor token, set to `null`.","format":"url"}},"required":["processor_token","webhook"]},"ProcessorTokenWebhookUpdateResponse":{"type":"object","additionalProperties":true,"description":"ProcessorTokenWebhookUpdateResponse defines the response schema for `/processor/token/webhook/update`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProcessorStripeBankAccountTokenCreateRequest":{"type":"object","description":"ProcessorStripeBankAccountTokenCreateRequest defines the request schema for `/processor/stripe/bank_account_token/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"account_id":{"type":"string","description":"The `account_id` value obtained from the `onSuccess` callback in Link"}},"required":["access_token","account_id"]},"ProcessorStripeBankAccountTokenCreateResponse":{"type":"object","additionalProperties":true,"description":"ProcessorStripeBankAccountTokenCreateResponse defines the response schema for `/processor/stripe/bank_account_token/create`","properties":{"stripe_bank_account_token":{"type":"string","description":"A token that can be sent to Stripe for use in making API calls to Plaid"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["stripe_bank_account_token","request_id"]},"ProcessorApexProcessorTokenCreateRequest":{"type":"object","description":"ProcessorApexProcessorTokenCreateRequest defines the request schema for `/processor/apex/processor_token/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"account_id":{"type":"string","description":"The `account_id` value obtained from the `onSuccess` callback in Link"}},"required":["access_token","account_id"]},"LinkTokenGetRequest":{"type":"object","description":"LinkTokenGetRequest defines the request schema for `/link/token/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"link_token":{"type":"string","description":"A `link_token` from a previous invocation of `/link/token/create`"}},"required":["link_token"]},"LinkTokenCreateRequestAppearanceMode":{"x-hidden-from-docs":true,"type":["string","null"],"description":"Enum representing the desired appearance mode for Link, used to force light or dark modes or set Link to change depending on user system settings. Currently in closed beta.","enum":["LIGHT","DARK","SYSTEM",null]},"LinkTokenCreateRequest":{"type":"object","description":"LinkTokenCreateRequest defines the request schema for `/link/token/create`","x-reserved-keys":["deposit_switch"],"properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_name":{"type":"string","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.","minLength":1},"language":{"type":"string","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://plaid.com/docs/identity-verification/#supported-languages).\n\nSupported languages are:\n- Danish (`'da'`)\n- Dutch (`'nl'`)\n- English (`'en'`)\n- Estonian (`'et'`)\n- French (`'fr'`)\n- German (`'de'`)\n- Haitian Creole (`'ht'`)\n- Hindi (`'hi'`)\n- Italian (`'it'`)\n- Latvian (`'lv'`)\n- Lithuanian (`'lt'`)\n- Norwegian Bokmål (`'nb'`)\n- Polish (`'pl'`)\n- Portuguese (`'pt'`)\n- Romanian (`'ro'`)\n- Spanish (`'es'`)\n- Swedish (`'sv'`)\n- Vietnamese (`'vi'`)\n\nWhen using a Link customization, the language configured here must match the setting in the customization, or the customization will not be applied.","minLength":1},"country_codes":{"type":"array","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 [What Plaid products are supported in each country and region?](https://support.plaid.com/hc/en-us/articles/27895826947735-What-Plaid-products-are-supported-in-each-country-and-region). For access to additional countries beyond what you have been approved for, [contact sales](https://plaid.com/contact/), your account manager, or support.\n\nIf using Identity Verification, `country_codes` should be set to the country where your company is based, not the country where your user is located. For all other products, `country_codes` represents the location of your user's financial institution.\n\nIf Link is launched with multiple country codes, every product you specify, in any product array, must be enabled for your account in all of the listed countries; otherwise, the request fails with an `INVALID_PRODUCT` error. While all countries are enabled by default in Sandbox, in Production only the countries you have requested access for are shown. To request access to additional countries, [file a product access Support ticket](https://dashboard.plaid.com/support/new/product-and-development/product-troubleshooting/request-product-access) via the Plaid dashboard.\n\nIf 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.\n\nIf using the Auth features Instant Match, Instant Micro-deposits, Same-Day Micro-deposits, or Automated Micro-deposits, `country_codes` must be set to `['US']`. If using Database Auth, `country_codes` must be set to `['US']` or `['CA']`.","items":{"$ref":"#/components/schemas/CountryCode"},"minItems":1},"user":{"$ref":"#/components/schemas/LinkTokenCreateRequestUser"},"user_id":{"type":"string","description":"A `user_id` generated using `/user/create`. Required for integrations that began using Plaid Protect, Multi-Item Link, or Plaid Check Consumer Report after December 10, 2025. Required for new integrations that use Payment Initiation, Variable Recurring Payments, or Virtual Accounts. For more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis). One of either the `user_id` or the `user` field is required."},"products":{"type":["array","null"],"description":"List of Plaid product(s) that the linked Item must support. If launching Link in update mode, should be omitted (unless you are using update mode to add a credit product, such as Assets, Statements, Income, or Plaid Check Consumer Report, to an existing Item); at least one `product` is required otherwise.\n\nTo maximize the number of institutions and accounts available, initialize Link with the minimal product set required for your use case, as the products specified will limit which institutions and account types will be available to your users in Link. Only institutions that support *all* requested products can be selected; 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. For each specified product, the Item connected by the user must contain at least one compatible account. For details on compatible product / account type combinations, see [the account type/product support matrix](https://plaid.com/docs/api/accounts/#account-type--product-support-matrix).\n\nTo add products without limiting the institution list or account types, use the [`optional_products`](https://plaid.com/docs/api/link/#link-token-create-request-optional-products) or  [`required_if_supported_products`](https://plaid.com/docs/api/link/#link-token-create-request-required-if-supported-products) fields. Products can also be added to an Item by calling the product endpoint after obtaining an access token; this may require the product to be listed in the [`additional_consented_products`](https://plaid.com/docs/api/link/#link-token-create-request-additional-consented-products) array. For details, see [Choosing when to initialize products](https://plaid.com/docs/link/initializing-products/).\n\n`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.\n\nNote 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.\n\nIn 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"},"x-override-enum-values-shown":["assets","auth","beacon","employment","identity","income_verification","identity_verification","investments","investments_auth","liabilities","payment_initiation","protect_transactions","signal","statements","transactions","transfer","cra_base_report","cra_income_insights","cra_cashflow_insights","cra_lend_score","cra_partner_insights","cra_network_insights","cra_lend_score_complete","cra_income_complete","layer","protect_linked_bank"]},"required_if_supported_products":{"type":["array","null"],"description":"List of Plaid product(s) you wish to use only if the institution and account(s) selected by the user support the product. Institutions that do not support these products will still be shown in Link. The products will only be extracted and billed if the user selects an institution and account type that supports them.\n\nThere should be no overlap between this array and the `products`, `optional_products`, or `additional_consented_products` arrays. The `products` array must have at least one product.\n\nFor more details on using this feature, see [Required if Supported Products](https://plaid.com/docs/link/initializing-products/#required-if-supported-products).","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["auth","identity","investments","liabilities","transactions","signal","statements","protect_linked_bank","protect_transactions"]},"optional_products":{"type":["array","null"],"description":"List of Plaid product(s) that will enhance the consumer's use case, but that your app can function without. Plaid will attempt to fetch data for these products on a best-effort basis, and failure to support these products will not affect Item creation.\n\nThere should be no overlap between this array and the `products`, `required_if_supported_products`, or `additional_consented_products` arrays. The `products` array must have at least one product.\n\nFor more details on using this feature, see [Optional Products](https://plaid.com/docs/link/initializing-products/#optional-products).","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["auth","identity","investments","liabilities","signal","statements","transactions","cra_base_report","cra_income_insights","cra_cashflow_insights","cra_lend_score","cra_partner_insights","cra_network_insights","cra_lend_score_complete","cra_income_complete"]},"additional_consented_products":{"type":["array","null"],"description":"List of additional Plaid product(s) you wish to collect consent for to support your use case. These products will not be billed until you start using them by calling the relevant endpoints.\n\n`balance` is *not* a valid value, the Balance product does not require explicit initialization and will automatically have consent collected.\n\nInstitutions that do not support these products will still be shown in Link.\n\nThere should be no overlap between this array and the `products`, `required_if_supported_products`, or `optional_products` arrays.\n\nIf you include `signal` in `additional_consented_products`, you will need to call [`/signal/prepare`](https://plaid.com/docs/api/products/signal/#signalprepare) before calling `/signal/evaluate` for the first time on an Item in order to get the most accurate results. For more details, see [`/signal/prepare`](https://plaid.com/docs/api/products/signal/#signalprepare).","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["auth","balance_plus","identity","investments","investments_auth","liabilities","transactions","signal"]},"webhook":{"type":"string","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), Monitor, and Identity Verification are configured via the Dashboard instead. In update mode, this field will not have an effect; to update the webhook receiver endpoint for an existing Item, use `/item/webhook/update` instead.","format":"url"},"access_token":{"type":["string","null"],"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 Micro-deposit (manual) flow, or (optionally) when initializing Link for a returning user as part of the Transfer UI flow.","minLength":1},"access_tokens":{"x-hidden-from-docs":true,"type":"array","description":"A list of access tokens associated with the items to update in Link update mode for the Assets product. Using this instead of the `access_token` field allows the updating of multiple items at once. This feature is in closed beta, please contact your account manager for more info.","items":{"type":"string"}},"link_customization_name":{"type":"string","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`."},"appearance_mode":{"$ref":"#/components/schemas/LinkTokenCreateRequestAppearanceMode"},"redirect_uri":{"$ref":"#/components/schemas/LinkTokenCreateRequestRedirectUri"},"android_package_name":{"type":"string","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."},"institution_data":{"$ref":"#/components/schemas/LinkTokenCreateInstitutionData"},"card_switch":{"$ref":"#/components/schemas/LinkTokenCreateCardSwitch"},"account_filters":{"$ref":"#/components/schemas/LinkTokenAccountFilters"},"eu_config":{"$ref":"#/components/schemas/LinkTokenEUConfig"},"institution_id":{"type":"string","description":"Used for certain legacy use cases"},"payment_configuration":{"$ref":"#/components/schemas/LinkTokenCreateRequestPaymentConfiguration"},"payment_initiation":{"$ref":"#/components/schemas/LinkTokenCreateRequestPaymentInitiation"},"employment":{"$ref":"#/components/schemas/LinkTokenCreateRequestEmployment"},"income_verification":{"$ref":"#/components/schemas/LinkTokenCreateRequestIncomeVerification"},"base_report":{"$ref":"#/components/schemas/LinkTokenCreateRequestBaseReport"},"credit_partner_insights":{"$ref":"#/components/schemas/LinkTokenCreateRequestCreditPartnerInsights"},"cra_options":{"$ref":"#/components/schemas/LinkTokenCreateRequestCraOptions"},"cra_report_parameter":{"$ref":"#/components/schemas/LinkTokenCreateRequestCraReportParameter"},"consumer_report_permissible_purpose":{"$ref":"#/components/schemas/ConsumerReportPermissiblePurpose"},"auth":{"$ref":"#/components/schemas/LinkTokenCreateRequestAuth"},"transfer":{"$ref":"#/components/schemas/LinkTokenCreateRequestTransfer"},"update":{"$ref":"#/components/schemas/LinkTokenCreateRequestUpdate"},"identity_verification":{"$ref":"#/components/schemas/LinkTokenCreateRequestIdentityVerification"},"statements":{"$ref":"#/components/schemas/LinkTokenCreateRequestStatements"},"third_party_user_token":{"x-hidden-from-docs":true,"type":"string","description":"A third party user token associated with the current user."},"investments":{"$ref":"#/components/schemas/LinkTokenInvestments"},"investments_auth":{"$ref":"#/components/schemas/LinkTokenInvestmentsAuth"},"hosted_link":{"$ref":"#/components/schemas/LinkTokenCreateHostedLink"},"transactions":{"$ref":"#/components/schemas/LinkTokenTransactions"},"cashflow_report":{"$ref":"#/components/schemas/LinkTokenCashflowReport"},"cra_enabled":{"x-hidden-from-docs":true,"type":"boolean","description":"If `true`, request a CRA connection. Defaults to `false`."},"identity":{"$ref":"#/components/schemas/LinkTokenCreateIdentity"},"financekit_supported":{"x-hidden-from-docs":true,"type":"boolean","description":"If `true`, indicates that client supports linking FinanceKit / AppleCard items. Defaults to `false`."},"enable_multi_item_link":{"type":"boolean","description":"If `true`, enable linking multiple items in the same Link session. Defaults to `false`."},"user_token":{"type":"string","description":"A user token generated using `/user/create`. Any Item created during the Link session will be associated with the user. Integrations that began using Plaid Protect, Multi-Item Link, or Plaid Check Consumer Report before December 10, 2025 use this field instead of the `user_id`."}},"required":["client_name","language","country_codes"]},"LinkTokenAccountFilters":{"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`, `savings`, and `cash management` 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).\n\nThe filter may or may not impact the list of accounts shown by the institution in the OAuth account selection flow, depending on the specific institution. If the user selects excluded account subtypes in the OAuth flow, these accounts will not be added to the Item. If the user selects only excluded account subtypes, the link attempt will fail and the user will be prompted to try again.\n","type":"object","additionalProperties":true,"properties":{"depository":{"$ref":"#/components/schemas/DepositoryFilter"},"credit":{"$ref":"#/components/schemas/CreditFilter"},"loan":{"$ref":"#/components/schemas/LoanFilter"},"investment":{"$ref":"#/components/schemas/InvestmentFilter"},"other":{"$ref":"#/components/schemas/OtherFilter"}}},"LinkTokenEUConfig":{"x-hidden-from-docs":true,"deprecated":true,"description":"Configuration parameters for EU flows","type":"object","properties":{"headless":{"type":"boolean","description":"If `true`, open Link without an initial UI. Defaults to `false`."}}},"LinkTokenInvestments":{"description":"Configuration parameters for the Investments product","type":"object","properties":{"allow_unverified_crypto_wallets":{"type":"boolean","description":"If `true`, allow self-custody crypto wallets to be added without requiring signature verification. Defaults to `false`."},"allow_manual_entry":{"type":"boolean","description":"If `true`, allow users to manually enter Investments account and holdings information. Defaults to `false`."},"async_update":{"x-hidden-from-docs":true,"type":["boolean","null"],"description":"If `true`, only a 30-day initial history of investment transactions is pulled synchronously before the Link session completes, with the full history being pulled asynchronously after Link. When the full history is available, an `INVESTMENTS_TRANSACTIONS: HISTORICAL_UPDATE` webhook will be sent. If `false`, Link pulls the full history before the session completes. Only applies when `investments` is initialized in the `products` array. This field is configurable only for clients created before November 30, 2026, and will default to `false` if omitted. For newer clients created on or after that date, this field is ignored and is automatically `true`."}}},"LinkTokenInvestmentsAuth":{"description":"Configuration parameters for the Investments Move product. Masked Number Match and Stated Account Number default to `true` when omitted. Manual Entry defaults to `false`.","type":"object","properties":{"manual_entry_enabled":{"default":false,"type":["boolean","null"],"description":"If `true`, show institutions that use the manual entry fallback flow. If omitted, this defaults to `false`."},"masked_number_match_enabled":{"type":["boolean","null"],"description":"If `true`, show institutions that use the masked number match fallback flow. If omitted, this defaults to `true`."},"stated_account_number_enabled":{"type":["boolean","null"],"description":"If `true`, show institutions that use the stated account number fallback flow. If omitted, this defaults to `true`."},"rollover_401k_enabled":{"x-hidden-from-docs":true,"default":false,"type":["boolean","null"],"description":"If `true`, the fee and contribution details for 401k accounts will be returned."}}},"LinkTokenTransactions":{"description":"Configuration parameters for the Transactions product","type":"object","properties":{"days_requested":{"description":"The maximum number of days of transaction history to request for the Transactions product. The more transaction history is requested, the longer the historical update poll will take. The default value is 90 days. In Production, if a value under 30 is provided, a minimum of 30 days of history will be requested. Once Transactions has been added to an Item, this value cannot be updated.\n\nCustomers using [Recurring Transactions](https://plaid.com/docs/api/products/transactions/#transactionsrecurringget) should request at least 180 days of history for optimal results.","type":"integer","minimum":1,"maximum":730,"default":90}}},"LinkTokenCashflowReport":{"x-hidden-from-docs":true,"description":"Configuration parameters for the Cashflow Report product. Currently in closed beta.","type":"object","properties":{"days_requested":{"description":"Number of days of transaction history to request in the Cashflow Report product.","type":"integer","minimum":1,"maximum":730,"default":365}}},"LinkTokenCreateHostedLink":{"description":"Configuration parameters for Hosted Link. To enable the session for Hosted Link, send this object in the request. It can be empty.","additionalProperties":true,"type":"object","properties":{"delivery_method":{"$ref":"#/components/schemas/HostedLinkDeliveryMethod"},"completion_redirect_uri":{"$ref":"#/components/schemas/HostedLinkCompletionRedirectURI"},"url_lifetime_seconds":{"$ref":"#/components/schemas/HostedLinkURLLifetimeSeconds"},"is_mobile_app":{"$ref":"#/components/schemas/HostedLinkIsMobileApp"}}},"SessionTokenCreateRequest":{"type":"object","description":"SessionTokenCreateRequest defines the request schema for `/session/token/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"template_id":{"type":"string","description":"The id of a template defined in Plaid Dashboard"},"user":{"$ref":"#/components/schemas/SessionTokenCreateRequestUser"},"redirect_uri":{"$ref":"#/components/schemas/LinkTokenCreateRequestRedirectUri"},"android_package_name":{"type":"string","description":"The name of your app's Android package. Required if using the session token to initialize Layer 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 session token for initializing Layer on other platforms, `android_package_name` must be left blank and `redirect_uri` should be used instead."},"webhook":{"type":"string","description":"The destination URL to which any webhooks should be sent. If you use the same webhook listener for all Sandbox or all Production activity, set this value in the Layer template editor in the Dashboard instead. Only provide a value in this field if you need to use multiple webhook URLs per environment (an uncommon use case). If provided, a value in this field will take priority over webhook values set in the Layer template editor.","format":"url"},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["template_id"]},"SessionTokenCreateRequestUser":{"type":"object","description":"Details about the end user. Required if a root-level `user_id` is not provided.","properties":{"client_user_id":{"type":"string","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."},"user_id":{"allOf":[{"$ref":"#/components/schemas/UserId"},{"type":"string","description":"The `user_id` created by calling `/user/create`. Provide this field only if you are using Plaid Check Report with Layer and have a `user_token`."}]}},"required":["client_user_id"]},"HostedLinkDeliveryMethod":{"type":"string","description":"How Plaid should deliver the Plaid Link session to the customer. Only available to customers enabled for Link Delivery (beta). To request Link Delivery access, contact your account manager.\n\n`sms` will deliver via SMS. Must pass `user.phone_number`.\n\n`email` will deliver via email. Must pass `user.email_address`.\n\nLink Delivery is only available in Production.\n","enum":["sms","email"]},"HostedLinkCompletionRedirectURI":{"type":"string","description":"URI that Hosted Link will redirect to upon completion of the Link flow. This will only occur in Hosted Link sessions, not in other implementation methods.\n"},"HostedLinkURLLifetimeSeconds":{"type":"integer","description":"How many seconds the link will be valid for. Must be positive. Cannot be longer than 21 days. The default lifetime is 7 days for links delivered by email, 1 day for links delivered via SMS, and 30 minutes for links not sent via Plaid Link delivery. This parameter will override the value of all three link types.\n"},"HostedLinkIsMobileApp":{"type":"boolean","default":false,"description":"This indicates whether the client is opening Hosted Link in a mobile app in an `AsWebAuthenticationSession` or Chrome custom tab.\n"},"LinkTokenCreateIdentity":{"type":"object","description":"Identity object used to specify document upload","properties":{"is_document_upload":{"type":"boolean","description":"Used to specify whether the Link session is Identity Document Upload"},"account_ids":{"type":"array","description":"An array of `account_ids`. Currently can only contain one `account_id`. Must be populated if using Document Upload.","items":{"type":"string"}},"parsing_configs":{"type":"array","description":"An array of parsing configurations. Valid parsing configurations are `ocr` and `risk_signals`. If parsing configurations are omitted, defaults to `ocr`","items":{"$ref":"#/components/schemas/IncomeVerificationDocParsingConfig"}}}},"LinkTokenCreateRequestPaymentConfiguration":{"type":"object","x-hidden-from-docs":true,"description":"Specifies options for initializing Link for use with the Pay By Bank flow. This is an optional field to configure the user experience, and currently requires the amount field to be set.","properties":{"amount":{"type":"string","description":"The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\").","x-hidden-from-docs":true},"description":{"type":"string","description":"The description of the transfer that provides the payment context. The max length is 256.","x-hidden-from-docs":true}},"required":["amount"]},"LinkTokenCreateRequestPaymentInitiation":{"type":"object","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":{"payment_id":{"type":"string","description":"The `payment_id` provided by the `/payment_initiation/payment/create` endpoint."},"consent_id":{"type":"string","description":"The `consent_id` provided by the `/payment_initiation/consent/create` endpoint."}}},"LinkTokenCreateRequestDepositSwitch":{"type":"object","x-hidden-from-docs":true,"deprecated":true,"description":"(Deprecated) 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":{"type":"string","description":"The `deposit_switch_id` provided by the `/deposit_switch/create` endpoint."}},"required":["deposit_switch_id"]},"LinkTokenCreateRequestTransfer":{"type":"object","description":"Specifies options for initializing Link for use with the Transfer product.","properties":{"intent_id":{"type":"string","description":"The `id` returned by the `/transfer/intent/create` endpoint."},"authorization_id":{"type":"string","description":"The `id` returned by the `/transfer/authorization/create` endpoint. Used to indicate Link session to complete required user action in order to make a decision for the authorization. If set, `access_token` can be omitted."},"payment_profile_token":{"x-hidden-from-docs":true,"type":"string","description":"The `payment_profile_token` returned by the `/payment_profile/create` endpoint."}}},"LinkTokenCreateRequestUserStatedIncomeSource":{"type":"object","description":"Specifies user stated income sources for the Income product","properties":{"employer":{"type":"string","description":"The employer corresponding to an income source specified by the user"},"category":{"$ref":"#/components/schemas/UserStatedIncomeSourceCategory"},"pay_per_cycle":{"type":"number","format":"double","description":"The income amount paid per cycle for a specified income source"},"pay_annual":{"type":"number","format":"double","description":"The income amount paid annually for a specified income source"},"pay_type":{"$ref":"#/components/schemas/UserStatedIncomeSourcePayType"},"pay_frequency":{"$ref":"#/components/schemas/UserStatedIncomeSourceFrequency"}}},"LinkTokenCreateRequestStatements":{"type":"object","description":"Specifies options for initializing Link for use with the Statements product. This field is required for the statements product.","properties":{"start_date":{"type":"string","format":"date","description":"The start date for statements, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) \"YYYY-MM-DD\" format, e.g. \"2020-10-30\"."},"end_date":{"type":"string","format":"date","description":"The end date for statements, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) \"YYYY-MM-DD\" format, e.g. \"2020-10-30\". You can request up to two years of data."}},"required":["start_date","end_date"]},"TrustedDeviceData":{"type":"object","description":"Trusted Device data associated with the previous Link session.","properties":{"trust_level":{"type":"integer"},"device_id":{"$ref":"#/components/schemas/DeviceId"}}},"DeviceId":{"type":"object","description":"Device ID associated with the device used during the previous Link session","properties":{"type":{"type":"integer"},"id":{"type":"string","description":"Identifier for the device"}}},"UserStatedIncomeSourceCategory":{"type":"string","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"]},"UserStatedIncomeSourceFrequency":{"type":"string","description":"The pay frequency of a specified income source","enum":["UNKNOWN","WEEKLY","BIWEEKLY","SEMI_MONTHLY","MONTHLY"]},"UserStatedIncomeSourcePayType":{"type":"string","description":"The pay type - `GROSS`, `NET`, or `UNKNOWN` for a specified income source","enum":["UNKNOWN","GROSS","NET"]},"LinkTokenCreateRequestAuth":{"type":"object","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. The default behavior described in the documentation is the default behavior that will apply if you have not requested your account manager to apply a different default. If you have enabled the [Dashboard Account Verification pane](https://dashboard.plaid.com/account-verification), the settings enabled there will override any settings in this object.","properties":{"auth_type_select_enabled":{"type":"boolean","description":"Specifies whether Auth Type Select is enabled for the Link session, allowing the end user to choose between linking via a credentials-based flow (i.e. Instant Auth, Instant Match, Automated Micro-deposits) or a manual flow that does not require login (all other Auth flows) prior to selecting their financial institution. Default behavior is `false`."},"automated_microdeposits_enabled":{"type":"boolean","description":"Specifies whether the Link session is enabled for the Automated Micro-deposits flow. Default behavior is `false`."},"instant_match_enabled":{"type":"boolean","description":"Specifies whether the Link session is enabled for the Instant Match flow. Instant Match is enabled by default. Instant Match can be disabled by setting this field to `false`."},"same_day_microdeposits_enabled":{"type":"boolean","description":"Specifies whether the Link session is enabled for the Same-Day Micro-deposits flow.  Default behavior is `false`."},"instant_microdeposits_enabled":{"type":"boolean","description":"Specifies whether the Link session is enabled for the Instant Micro-deposits flow.  Default behavior for Plaid teams created after November 2023 is `false`; default behavior for Plaid teams created before that date is `true`."},"reroute_to_credentials":{"type":"string","enum":["OFF","OPTIONAL","FORCED"],"description":"Specifies what type of [Reroute to Credentials](https://plaid.com/docs/auth/coverage/flow-options/#removing-manual-verification-entry-points-with-reroute-to-credentials) pane should be used in the Link session for the Same-Day Micro-deposits flow. Default behavior is `OPTIONAL`."},"database_match_enabled":{"type":"boolean","deprecated":true,"description":"Database Match has been deprecated and replaced with Database Auth. Use the [Account Verification Dashboard](https://dashboard.plaid.com/account-verification) to enable Database Auth."},"database_insights_enabled":{"type":"boolean","deprecated":true,"description":"Database Insights has been deprecated and replaced with Database Auth. Use the [Account Verification Dashboard](https://dashboard.plaid.com/account-verification) to enable Database Auth."},"flow_type":{"type":"string","x-hidden-from-docs":true,"enum":["FLEXIBLE_AUTH"],"description":"This field has been deprecated in favor of `auth_type_select_enabled`.","deprecated":true},"sms_microdeposits_verification_enabled":{"type":"boolean","description":"Specifies whether the Link session is enabled for SMS micro-deposits verification. Default behavior is `true`."}}},"LinkTokenCreateRequestIdentityVerification":{"type":"object","description":"Specifies option for initializing Link for use with the Identity Verification product.","properties":{"template_id":{"allOf":[{"$ref":"#/components/schemas/IdentityVerificationTemplateID"}]},"consent":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/IdentityVerificationConsent"}]},"gave_consent":{"$ref":"#/components/schemas/IdentityVerificationConsent"}},"required":["template_id"]},"LinkTokenCreateInstitutionData":{"type":"object","description":"A map containing data used to highlight institutions in Link.","properties":{"routing_number":{"type":"string","description":"The routing number of the bank to highlight in Link. Note: in rare cases, a single routing number can be associated with multiple institutions, e.g. due to a brokerage using another institution to manage ACH on its sweep accounts. If this happens, the bank will not be highlighted in Link even if the routing number is provided."},"institution_id":{"type":"string","description":"The Plaid institution ID of the institution to highlight in Link, such as `ins_56`. Takes precedence over `routing_number`; will fall back to `routing_number` (if provided) if the institution ID is unknown or unavailable for this Link session. This feature is in closed beta, please contact your account manager for more info.","x-hidden-from-docs":true}}},"LinkTokenCreateCardSwitch":{"type":"object","description":"A map containing data to pass in for the Card Switch flow.","x-hidden-from-docs":true,"properties":{"card_bin":{"type":"string","description":"The BIN (Bank Identification Number) of the card to switch."}},"required":["card_bin"]},"LinkTokenCreateRequestUser":{"type":"object","description":"An object specifying information about the end user who will be linking their account. **Required** if `user_id` isn't included.","properties":{"client_user_id":{"type":"string","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.","minLength":1},"legal_name":{"type":"string","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. Providing the user's name in this field when using micro-deposit-based verification will streamline the end user experience, as the user will not be prompted to enter their name during the Link flow; Plaid will use the provided legal name instead."},"name":{"allOf":[{"$ref":"#/components/schemas/IdentityVerificationRequestUserName"},{"description":"The user's full name. Optional, and only allowed when using [Identity Verification](https://plaid.com/docs/api/products/identity-verification), Assets, Protect, or Hosted Link. Users will not be asked for their name when this field is provided."}]},"phone_number":{"type":"string","description":"The user's phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format. If supplied, will be used when applicable to prefill phone number fields in Link for the [returning user flow](https://plaid.com/docs/link/returning-user) and the [Identity Verification flow](https://plaid.com/docs/identity-verification). Phone number input is validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment."},"phone_number_verified_time":{"format":"date-time","type":["string","null"],"deprecated":true,"x-hidden-from-docs":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.\n\n 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.\n\n Example: `2020-01-01T00:00:00Z`\n"},"email_address":{"type":"string","description":"The user's email address. Can be used to prefill Link fields when used with [Identity Verification](https://plaid.com/docs/identity-verification)."},"email_address_verified_time":{"type":["string","null"],"format":"date-time","deprecated":true,"x-hidden-from-docs":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.\n\n 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.\n\n Example: `2020-01-01T00:00:00Z`"},"ssn":{"type":"string","deprecated":true,"description":"Deprecated and not currently used, use the `id_number` field instead.","x-hidden-from-docs":true},"date_of_birth":{"type":["string","null"],"format":"date","description":"To be provided in the format \"yyyy-mm-dd\". Can be used to prefill Link fields when used with Identity Verification."},"address":{"allOf":[{"$ref":"#/components/schemas/UserAddress"},{"description":"The user's address. Used only for Identity Verification and the Identity Match in Link workflows. If provided for Identity Verification, the user will not be shown fields to enter their address in the Identity Verification flow. If provided for Identity Match, the provided data will be used to match against the user's address. May be omitted, but if not omitted, all fields marked as required must be provided."}]},"id_number":{"allOf":[{"$ref":"#/components/schemas/UserIDNumber"},{"description":"The user's ID number. Used only for Identity Verification. If provided, the user will not be shown fields to enter their ID number in the Identity Verification flow. May be omitted, but if not omitted, all fields marked as required must be provided."}]}},"required":["client_user_id"]},"LinkTokenCreateRequestUpdate":{"type":"object","description":"Specifies options for initializing Link for [update mode](https://plaid.com/docs/link/update-mode).","properties":{"account_selection_enabled":{"type":"boolean","description":"If `true`, enables [update mode with Account Select](https://plaid.com/docs/link/update-mode/#using-update-mode-to-request-new-accounts) for institutions in the US and Canada that do not use OAuth, or that use OAuth but do not have their own account selection flow. For institutions in the US that have an OAuth account selection flow (i.e. most OAuth-enabled institutions), update mode with Account Select will always be enabled, regardless of the value of this field.","default":false},"reauthorization_enabled":{"x-hidden-from-docs":true,"type":"boolean","description":"Note: this field is not currently used. Plaid may enable this field in the future if 1033-related expiration begins to be enforced.\n\nBy default, Plaid will enable the reauthorization flow during update mode for an Item enabled for [Data Transparency Messaging](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/) if the Item expires within six months. During a reauthorization flow, an end user will review Plaid's end user privacy policy, use case and data scope consents, and account access consents; they may also be required to log in to their financial institution's OAuth flow. After the end user successfully completes the reauthorization flow, the Item's expiration date will be extended to 12 months from the time that the reauthorization took place. This field allows you to optionally override the default reauthorization scheduling logic to either forcibly enable or disable the reauthorization flow for a given update mode session. This field does not impact the flow for Items at institutions in the EU or UK.\n"},"user":{"type":"boolean","description":"If `true`, a `user_token` or `user_id` must also be provided, and Link will open in update mode for the given user.","default":false},"item_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ItemId"},"description":"An array of `item_id`s associated with the user to be updated in update mode. If empty or `null`, this field will default to initializing update mode for the most recent unhealthy Item associated with the user. A `user_token` or `user_id` must also be provided, and `update.user` must be `true`. Only one `item_id` may currently be specified.\n"}}},"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.\n\nFor a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).\n\nFor institutions using OAuth, the filter will not affect the list of institutions or accounts shown by the bank in the OAuth window.\n","type":"object","properties":{"depository":{"$ref":"#/components/schemas/LinkTokenCreateDepositoryFilter"},"credit":{"$ref":"#/components/schemas/LinkTokenCreateCreditFilter"},"loan":{"$ref":"#/components/schemas/LinkTokenCreateLoanFilter"},"investment":{"$ref":"#/components/schemas/LinkTokenCreateInvestmentFilter"}}},"LinkTokenCreateRequestRedirectUri":{"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 another app. The `redirect_uri` should not contain any query parameters. When used in Production, must be an https URI. 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"},"LinkTokenCreateDepositoryFilter":{"description":"A filter to apply to `depository`-type accounts","type":"object","properties":{"account_subtypes":{"$ref":"#/components/schemas/DepositoryAccountSubtypes"},"limited_purpose_types":{"$ref":"#/components/schemas/LimitedPurposeTypes"}}},"LinkTokenCreateCreditFilter":{"description":"A filter to apply to `credit`-type accounts","type":"object","properties":{"account_subtypes":{"$ref":"#/components/schemas/CreditAccountSubtypes"}}},"LinkTokenCreateLoanFilter":{"description":"A filter to apply to `loan`-type accounts","type":"object","properties":{"account_subtypes":{"$ref":"#/components/schemas/LoanAccountSubtypes"}}},"LinkTokenCreateInvestmentFilter":{"description":"A filter to apply to `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier).","type":"object","properties":{"account_subtypes":{"$ref":"#/components/schemas/InvestmentAccountSubtypes"}}},"LinkOAuthCorrelationIdExchangeRequest":{"type":"object","description":"LinkOAuthCorrelationIdExchangeRequest defines the request schema for `/link/oauth/correlation_id/exchange`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"link_correlation_id":{"type":"string","description":"A `link_correlation_id` from a received OAuth redirect URI callback"}},"required":["link_correlation_id"]},"LinkOAuthCorrelationIdExchangeResponse":{"type":"object","additionalProperties":true,"description":"LinkOAuthCorrelationIdExchangeResponse defines the response schema for `/link/oauth/correlation_id/exchange`","properties":{"link_token":{"type":"string","description":"The `link_token` associated to the given `link_correlation_id`, which can be used to re-initialize Link."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["link_token","request_id"]},"LinkTokenGetResponse":{"type":"object","additionalProperties":true,"description":"LinkTokenGetResponse defines the response schema for `/link/token/get`","properties":{"link_token":{"type":"string","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`."},"created_at":{"type":["string","null"],"format":"date-time","description":"The creation timestamp for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"expiration":{"type":["string","null"],"format":"date-time","description":"The expiration timestamp for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"link_sessions":{"type":"array","description":"Information about Link sessions created using this `link_token`. Session data will be provided for up to six hours after the session has ended.","items":{"$ref":"#/components/schemas/LinkTokenGetSessionsResponse"}},"metadata":{"$ref":"#/components/schemas/LinkTokenGetMetadataResponse"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["link_token","created_at","expiration","metadata","request_id"]},"LinkTokenGetSessionsResponse":{"type":"object","description":"An object containing information about a link session. Session data will be provided for up to six hours after the session has ended.","additionalProperties":true,"properties":{"link_session_id":{"type":"string","description":"The unique ID for the link session."},"started_at":{"type":"string","format":"date-time","description":"The timestamp at which the link session was first started, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"finished_at":{"type":["string","null"],"format":"date-time","description":"The timestamp at which the link session was finished, if available, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"on_success":{"$ref":"#/components/schemas/LinkSessionSuccess"},"on_exit":{"$ref":"#/components/schemas/LinkSessionExitDeprecated"},"exit":{"$ref":"#/components/schemas/LinkSessionExit"},"events":{"type":"array","description":"List of customer-related Link events","items":{"$ref":"#/components/schemas/LinkEvent"}},"results":{"$ref":"#/components/schemas/LinkSessionResults"}},"required":["link_session_id"]},"LinkSessionResults":{"type":["object","null"],"description":"The set of results for a Link session.","additionalProperties":true,"properties":{"item_add_results":{"type":"array","description":"The set of Item adds for the Link session. If you are not receiving this field and are instead receiving the deprecated `on_success` field, contact your account manager to update your integration.","items":{"$ref":"#/components/schemas/LinkSessionItemAddResult"}},"cra_item_add_results":{"type":"array","description":"The set of Plaid Check Item adds for the Link session.","items":{"$ref":"#/components/schemas/LinkSessionCraItemAddResult"}},"cra_update_results":{"type":"array","description":"The set of Plaid Check Item updates for the Link session.","items":{"$ref":"#/components/schemas/LinkSessionCraUpdateResult"}},"bank_income_results":{"type":"array","description":"The set of bank income verifications for the Link session.","items":{"$ref":"#/components/schemas/LinkSessionBankIncomeResult"}},"payroll_income_results":{"type":"array","description":"The set of payroll income verifications for the Link session.","items":{"$ref":"#/components/schemas/LinkSessionPayrollIncomeResult"}},"document_income_results":{"$ref":"#/components/schemas/CreditSessionDocumentIncomeResult"},"cra_document_upload_results":{"$ref":"#/components/schemas/LinkSessionCraDocumentUploadResult"},"cra_report_results":{"$ref":"#/components/schemas/LinkSessionCraReportResult"}},"required":["item_add_results","cra_item_add_results","cra_update_results","bank_income_results","payroll_income_results","document_income_results","cra_report_results"]},"LinkSessionItemAddResult":{"type":"object","description":"The details of an Item add in Link.","additionalProperties":true,"properties":{"public_token":{"description":"Returned once a user has successfully linked their Item.","type":"string"},"accounts":{"type":"array","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/LinkSessionSuccessMetadataAccount"}},"institution":{"$ref":"#/components/schemas/LinkSessionSuccessMetadataInstitution"}},"required":["public_token","accounts","institution"]},"LinkSessionCraItemAddResult":{"type":"object","description":"The details of a Plaid Check Item add in Link.","additionalProperties":true,"properties":{"item_id":{"description":"The Plaid Check 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. The `item_id` is case-sensitive.","type":"string"},"accounts":{"type":"array","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/LinkSessionSuccessMetadataAccount"}},"institution":{"$ref":"#/components/schemas/LinkSessionSuccessMetadataInstitution"}},"required":["item_id","accounts","institution"]},"LinkSessionCraUpdateResult":{"type":"object","description":"The details of a Plaid Check Item update via update mode in Link.","additionalProperties":true,"properties":{"item_id":{"description":"The Plaid Check 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. The `item_id` is case-sensitive.","type":"string"},"accounts":{"type":"array","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/LinkSessionSuccessMetadataAccount"}},"institution":{"$ref":"#/components/schemas/LinkSessionSuccessMetadataInstitution"}},"required":["item_id","accounts","institution"]},"LinkSessionBankIncomeResult":{"type":"object","description":"The details of a bank income verification in Link.","additionalProperties":true,"properties":{"status":{"$ref":"#/components/schemas/CreditSessionBankIncomeStatus"},"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"},"institution":{"$ref":"#/components/schemas/LinkSessionSuccessMetadataInstitution"}},"required":["status","item_id","institution"]},"LinkSessionBankEmploymentResult":{"type":"object","description":"The details of a bank employment verification in Link.","additionalProperties":true,"properties":{"status":{"$ref":"#/components/schemas/CreditSessionBankEmploymentStatus"},"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"},"institution":{"$ref":"#/components/schemas/LinkSessionSuccessMetadataInstitution"}},"required":["status","item_id","institution"]},"LinkSessionPayrollIncomeResult":{"type":"object","description":"The details of a digital payroll income verification in Link.","additionalProperties":true,"properties":{"num_paystubs_retrieved":{"type":"integer","description":"The number of paystubs retrieved from a payroll provider."},"num_w2s_retrieved":{"type":"integer","description":"The number of W-2s retrieved from a payroll provider."},"institution":{"$ref":"#/components/schemas/LinkSessionSuccessMetadataInstitution"}},"required":["num_paystubs_retrieved","num_w2s_retrieved","institution"]},"LinkSessionSuccess":{"deprecated":true,"type":["object","null"],"description":"An object representing an [onSuccess](https://plaid.com/docs/link/web/#onsuccess) callback from Link. This field is returned only for legacy integrations and is deprecated in favor of [`results.item_add_results`](https://plaid.com/docs/api/link/#link-token-get-response-link-sessions-results-item-add-results) which can support multiple public tokens in a single Link session, for flows such as multi-Item Link. If you are receiving `on_success`, contact your account manager to migrate to `results.item_add_results` instead.","properties":{"public_token":{"type":"string","description":"Displayed once a user has successfully linked their Item."},"metadata":{"$ref":"#/components/schemas/LinkSessionSuccessMetadata"}},"required":["public_token","metadata"]},"LinkSessionSuccessMetadata":{"type":["object","null"],"description":"Displayed once a user has successfully linked their Item.","properties":{"institution":{"$ref":"#/components/schemas/LinkSessionSuccessMetadataInstitution"},"accounts":{"type":"array","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/LinkSessionSuccessMetadataAccount"}},"link_session_id":{"type":"string","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."},"session_group_id":{"type":"string","description":"An identifier used to group related Layer sessions.","x-hidden-from-docs":true},"transfer_status":{"$ref":"#/components/schemas/LinkSessionSuccessMetadataTransferStatus"}}},"LinkSessionSuccessMetadataInstitution":{"type":["object","null"],"description":"An institution object. If the Item was created via Same-Day or Instant micro-deposit verification, `name` and `institution_id` will be omitted.","properties":{"name":{"type":"string","description":"The full institution name, such as `'Wells Fargo'`"},"institution_id":{"type":"string","description":"The Plaid institution identifier"}}},"LinkSessionSuccessMetadataAccount":{"type":"object","description":"An account attached to the connected Item.","properties":{"id":{"type":"string","description":"The Plaid `account_id`\n"},"name":{"type":"string","description":"The official account name"},"mask":{"type":["string","null"],"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":{"type":"string","description":"The account type. See the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema) for a full list of possible values"},"subtype":{"type":"string","description":"The account subtype. See the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema) for a full list of possible values"},"verification_status":{"type":["string","null"],"description":"Indicates an Item's micro-deposit-based verification or database verification status. This field is only populated when using Auth and falling back to micro-deposit or database verification. Possible values are:\n\n`pending_automatic_verification`: The Item is pending automatic verification.\n\n`pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the code.\n\n`automatically_verified`: The Item has successfully been automatically verified.\n\n`manually_verified`: The Item has successfully been manually verified.\n\n`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.\n\n`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.\n\n`unsent`: The Item is pending micro-deposit verification, but Plaid has not yet sent the micro-deposit.\n\n`database_insights_pending`: The Database Auth result is pending and will be available upon Auth request.\n\n`database_insights_fail`: The Item's numbers have been verified using Plaid's data sources and have signal for being invalid and/or have no signal for being valid. Typically this indicates that the routing number is invalid, the account number does not match the account number format associated with the routing number, or the account has been reported as closed or frozen. Only returned for Auth Items created via Database Auth.\n\n`database_insights_pass`: The Item's numbers have been verified using Plaid's data sources: the routing and account number match a routing and account number of an account recognized on the Plaid network, and the account is not known by Plaid to be frozen or closed. Only returned for Auth Items created via Database Auth.\n\n`database_insights_pass_with_caution`: The Item's numbers have been verified using Plaid's data sources and have some signal for being valid: the routing and account number were not recognized on the Plaid network, but the routing number is valid and the account number is a potential valid account number for that routing number. Only returned for Auth Items created via Database Auth.\n\n`database_matched`: (deprecated) The Item has successfully been verified using Plaid's data sources. Only returned for Auth Items created via Database Match.\n\n`null` or empty string: Neither micro-deposit-based verification nor database verification are being used for the Item.\n"},"class_type":{"type":["string","null"],"deprecated":true,"description":"If micro-deposit verification was being used, indicates the user's selection when asked if the account being verified is a `business` or `personal` account. This field is deprecated as Plaid no longer collects this information during the micro-deposit flow. To see whether an account is business or personal, use the `holder_category` field instead."}}},"LinkSessionSuccessMetadataTransferStatus":{"type":["string","null"],"description":"The status of a transfer. Returned only when [Transfer UI](https://plaid.com/docs/transfer/using-transfer-ui) is implemented.\n\n- `COMPLETE` - The transfer was completed.\n- `INCOMPLETE` - The transfer could not be completed. For help, see [Troubleshooting transfers](https://plaid.com/docs/transfer/using-transfer-ui/#troubleshooting-transfer-ui).","enum":["COMPLETE","INCOMPLETE",null]},"LinkSessionExit":{"type":["object","null"],"description":"An object representing an [onExit](https://plaid.com/docs/link/web/#onexit) callback from Link. If you are not receiving this field and are instead receiving the deprecated `on_exit` field, contact your account manager to update your integration.","additionalProperties":true,"properties":{"error":{"$ref":"#/components/schemas/PlaidError"},"metadata":{"$ref":"#/components/schemas/LinkSessionExitMetadata"}},"required":["error","metadata"]},"LinkSessionExitDeprecated":{"type":["object","null"],"deprecated":true,"description":"An object representing an [onExit](https://plaid.com/docs/link/web/#onexit) callback from Link. This field is returned only for legacy implementations and has been deprecated in favor of [`exit`](https://plaid.com/docs/api/link/#link-token-get-response-link-sessions-exit), for improved naming consistency. If you are receiving this field, contact your account manager to migrate to the newer `exit` field.","additionalProperties":true,"properties":{"error":{"$ref":"#/components/schemas/PlaidError"},"metadata":{"$ref":"#/components/schemas/LinkSessionExitMetadata"}},"required":["error","metadata"]},"LinkSessionExitMetadata":{"type":["object","null"],"description":"Displayed if a user exits Link without successfully linking an Item.","properties":{"institution":{"$ref":"#/components/schemas/LinkSessionExitMetadataInstitution"},"status":{"type":"string","description":"The point at which the user exited the Link flow. One of the following values.","properties":{"requires_questions":{"description":"User prompted to answer security questions"},"requires_selections":{"description":"User prompted to answer multiple choice question(s)"},"requires_code":{"description":"User prompted to provide a one-time passcode"},"choose_device":{"description":"User prompted to select a device on which to receive a one-time passcode"},"requires_credentials":{"description":"User prompted to provide credentials for the selected financial institution or has not yet selected a financial institution"},"requires_account_selection":{"description":"User prompted to select one or more financial accounts to share"},"requires_oauth":{"description":"User prompted to enter an OAuth flow"},"institution_not_found":{"description":"User exited the Link flow after unsuccessfully (no results returned) searching for a financial institution"},"institution_not_supported":{"description":"User exited the Link flow after discovering their selected institution is no longer supported by Plaid"}}},"link_session_id":{"type":"string","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."},"request_id":{"type":"string","description":"The request ID for the last request made by Link. This can be shared with Plaid support to expedite investigation."}}},"LinkSessionExitMetadataInstitution":{"type":["object","null"],"description":"An institution object. If the Item was created via Same-Day or Instant micro-deposit verification, `name` and `institution_id` will be omitted.","properties":{"name":{"type":"string","description":"The full institution name, such as `Wells Fargo`"},"institution_id":{"type":"string","description":"The Plaid institution identifier"}}},"LinkTokenGetMetadataResponse":{"type":"object","additionalProperties":true,"description":"An object specifying the arguments originally provided to the `/link/token/create` call.","properties":{"initial_products":{"type":"array","description":"The `products` specified in the `/link/token/create` call.","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["assets","auth","employment","identity","income_verification","identity_verification","investments","liabilities","payment_initiation","standing_orders","transactions","transfer"]},"webhook":{"type":["string","null"],"description":"The `webhook` specified in the `/link/token/create` call.","format":"url"},"country_codes":{"type":"array","description":"The `country_codes` specified in the `/link/token/create` call.","items":{"$ref":"#/components/schemas/CountryCode"}},"language":{"type":["string","null"],"description":"The `language` specified in the `/link/token/create` call."},"institution_data":{"anyOf":[{"$ref":"#/components/schemas/LinkTokenCreateInstitutionData"},{"type":"null"}]},"account_filters":{"anyOf":[{"$ref":"#/components/schemas/AccountFiltersResponse"},{"type":"null"}]},"redirect_uri":{"type":["string","null"],"description":"The `redirect_uri` specified in the `/link/token/create` call."},"client_name":{"type":["string","null"],"description":"The `client_name` specified in the `/link/token/create` call."}},"required":["initial_products","webhook","country_codes","language","redirect_uri","client_name"]},"LinkTokenCreateResponse":{"type":"object","additionalProperties":true,"description":"LinkTokenCreateResponse defines the response schema for `/link/token/create`","properties":{"link_token":{"type":"string","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`."},"expiration":{"type":"string","format":"date-time","description":"The expiration date and time for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format. By default, a `link_token` created to generate a `public_token` that will be exchanged for a new `access_token` expires after 4 hours, and 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. If using [Hosted Link](https://plaid.com/docs/link/hosted-link/), the `link_token` will expire at the same time as the Hosted Link URL, and you can customize the duration using the `hosted_link.url_lifetime_seconds` option in the request. If using Link Delivery (beta), the `link_token` will expire by default after 24 hours if sent via SMS and after 7 days if sent via email. If using Identity Verification, Link token expiration will not be enforced; an Identity Verification Link session can be created with an expired Link token."},"request_id":{"$ref":"#/components/schemas/RequestID"},"hosted_link_url":{"type":"string","description":"A URL of a Plaid-hosted Link flow that will use the Link token returned by this request. Only present if the session is enabled for Hosted Link. To enable the session for Hosted Link, send a `hosted_link` object in the request."},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["link_token","expiration","request_id"]},"SessionTokenCreateResponse":{"type":"object","additionalProperties":true,"description":"SessionTokenCreateResponse defines the response schema for `/session/token/create`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"link":{"$ref":"#/components/schemas/SessionTokenCreateResponseLink"}},"required":["request_id"]},"SessionTokenCreateResponseLink":{"type":"object","additionalProperties":true,"description":"Response data for `/session/token/create` intended for use with the Link SDK.","properties":{"link_token":{"type":"string","description":"A Link token, which can be supplied to Link in order to initialize it and receive a `public_token`."},"expiration":{"type":"string","format":"date-time","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."},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["link_token","expiration"]},"PlaidError":{"description":"Errors are identified by `error_code` and categorized by `error_type`. Use these in preference to HTTP status codes to identify and handle specific errors. HTTP status codes are set and provide the broadest categorization of errors: 4xx codes are for developer- or user-related errors, and 5xx codes are for Plaid-related errors, and the status will be 2xx in non-error cases. 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.","type":["object","null"],"additionalProperties":true,"title":"Error","properties":{"error_type":{"$ref":"#/components/schemas/PlaidErrorType"},"error_code":{"description":"The particular error code. Safe for programmatic use.","type":"string"},"error_code_reason":{"type":["string","null"],"description":"The specific reason for the error code. Currently, reasons are only supported for OAuth-based item errors; the field is omitted otherwise. Safe for programmatic use.\n\nPossible values:\n\n`OAUTH_INVALID_TOKEN`: The user's OAuth connection to this institution has been invalidated.\n\n`OAUTH_CONSENT_EXPIRED`: The user's access consent for this OAuth connection to this institution has expired.\n\n`OAUTH_USER_REVOKED`: The user's OAuth connection to this institution is invalid because the user revoked their connection."},"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"},"display_message":{"description":"A user-friendly representation of the error code. `null` if the error is not related to user action.\n\nThis may change over time and is not safe for programmatic use.","type":["string","null"]},"request_id":{"type":"string","description":"A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks."},"causes":{"type":"array","description":"In this product, a request can pertain to more than one Item. If an error is returned for such a request, `causes` will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.\n\n`causes` will be provided for the `error_type` `ASSET_REPORT_ERROR` or `CHECK_REPORT_ERROR`, and for the `USER_ERROR` codes `USER_ITEM_ASSOCIATION_FAILED` and `USER_ITEM_REMOVAL_FAILED`. `causes` will also not be populated inside an error nested within a `warning` object.","items":{}},"status":{"type":["integer","null"],"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."},"documentation_url":{"type":"string","description":"The URL of a Plaid documentation page with more information about the error"},"suggested_action":{"type":["string","null"],"description":"Suggested steps for resolving the error"},"required_account_subtypes":{"type":"array","items":{"type":"string"},"description":"A list of the account subtypes that were requested via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.\n"},"provided_account_subtypes":{"type":"array","items":{"type":"string"},"description":"A list of the account subtypes that were extracted but did not match the requested subtypes via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.\n"}},"required":["error_type","error_code","error_message","display_message"]},"PlaidErrorType":{"title":"PlaidErrorType","type":"string","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","BASE_REPORT_ERROR","RECAPTCHA_ERROR","OAUTH_ERROR","PAYMENT_ERROR","BANK_TRANSFER_ERROR","INCOME_VERIFICATION_ERROR","MICRODEPOSITS_ERROR","SANDBOX_ERROR","PARTNER_ERROR","SIGNAL_ERROR","TRANSACTIONS_ERROR","TRANSACTION_ERROR","TRANSFER_ERROR","CHECK_REPORT_ERROR","CONSUMER_REPORT_ERROR","USER_ERROR","IDEMPOTENCY_ERROR","ASSETS_ERROR","CRA_MONITORING_ERROR","CREDIT_PROFILE_REPORT_ERROR","ENCOMPASS_ERROR","ENRICH_ERROR","FRAUD_INSIGHTS_ERROR","FREDDIE_MAC_ERROR","LINK_DELIVERY_ERROR","PROFILE_ERROR","RECURRING_TRANSACTIONS_ERROR","STATEMENTS_ERROR","TRANSFER_RECURRING_ERROR","TRANSFER_REFUND_ERROR","CRA_REPORT_ERROR","CRA_PARTNER_INSIGHTS_ERROR"]},"AccountType":{"type":"string","title":"AccountType","enum":["investment","credit","depository","loan","brokerage","other"],"description":"`investment:` Investment account. In API versions 2018-05-22 and earlier, this type is called `brokerage` instead.\n\n`credit:` Credit card\n\n`depository:` Depository account\n\n`loan:` Loan account\n\n`other:` Non-specified account type\n\nSee the [Account type schema](https://plaid.com/docs/api/accounts#account-type-schema) for a full listing of account types and corresponding subtypes."},"OverrideAccountType":{"type":"string","title":"OverrideAccountType","enum":["investment","credit","depository","loan","payroll","other"],"description":"`investment:` Investment account.\n\n`credit:` Credit card\n\n`depository:` Depository account\n\n`loan:` Loan account\n\n`payroll:` Payroll account\n\n`other:` Non-specified account type\n\nSee the [Account type schema](https://plaid.com/docs/api/accounts#account-type-schema) for a full listing of account types and corresponding subtypes."},"AccountBase":{"title":"Account","type":"object","additionalProperties":true,"description":"A single account at a financial institution.","x-examples":{"example-1":{}},"properties":{"account_id":{"type":"string","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.\n\nThe `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`.\n\nIf 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.\n\nWhen using a CRA endpoint (an endpoint associated with Plaid Check Consumer Report, i.e. any endpoint beginning with `/cra/`), the `account_id` returned will not match the `account_id` returned by a non-CRA endpoint.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"balances":{"$ref":"#/components/schemas/AccountBalance"},"mask":{"type":["string","null"],"description":"The last 2-4 alphanumeric characters of either the account's displayed mask or the account's official account number. Note that the mask may be non-unique between an Item's accounts."},"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself"},"official_name":{"type":["string","null"],"description":"The official name of the account as given by the financial institution"},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"verification_status":{"type":"string","enum":["automatically_verified","pending_automatic_verification","pending_manual_verification","unsent","manually_verified","verification_expired","verification_failed","database_matched","database_insights_pass","database_insights_pass_with_caution","database_insights_fail"],"description":"Indicates an Item's micro-deposit-based verification or database verification status. This field is only populated when using Auth and falling back to micro-deposit or database verification. Possible values are:\n\n`pending_automatic_verification`: The Item is pending automatic verification.\n\n`pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the code.\n\n`automatically_verified`: The Item has successfully been automatically verified.\n\n`manually_verified`: The Item has successfully been manually verified.\n\n`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.\n\n`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.\n\n`unsent`: The Item is pending micro-deposit verification, but Plaid has not yet sent the micro-deposit.\n\n`database_insights_fail`: The Item's numbers have been verified using Plaid's data sources and have signal for being invalid and/or have no signal for being valid. Typically this indicates that the routing number is invalid, the account number does not match the account number format associated with the routing number, or the account has been reported as closed or frozen. Only returned for Auth Items created via Database Auth.\n\n`database_insights_pass`: The Item's numbers have been verified using Plaid's data sources: the routing and account number match a routing and account number of an account recognized on the Plaid network, and the account is not known by Plaid to be frozen or closed. Only returned for Auth Items created via Database Auth.\n\n`database_insights_pass_with_caution`: The Item's numbers have been verified using Plaid's data sources and have some signal for being valid: the routing and account number were not recognized on the Plaid network, but the routing number is valid and the account number is a potential valid account number for that routing number. Only returned for Auth Items created via Database Auth.\n\n`database_matched`: (deprecated) The Item has successfully been verified using Plaid's data sources. Only returned for Auth Items created via Database Match.\n\nOmitted or empty string: Neither micro-deposit-based verification nor database verification are being used for the Item."},"verification_name":{"type":"string","description":"The account holder name that was used for micro-deposit and/or database verification. Only returned for Auth Items created via micro-deposit or database verification. This name was manually-entered by the user during Link, unless it was otherwise provided via the `user.legal_name` request field in `/link/token/create` for the Link session that created the Item."},"verification_insights":{"$ref":"#/components/schemas/AccountVerificationInsights"},"persistent_account_id":{"type":"string","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 field is currently supported only for Items at institutions that use Tokenized Account Numbers (i.e., Chase, PNC, and US Bank). Because these accounts have a different account number each time they are linked, this field may be used instead of the account number to uniquely identify an account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud. In Sandbox, this field is populated for TAN-based institutions (`ins_56`, `ins_13`, `ins_127990`) as well as the OAuth Sandbox institution (`ins_127287`); in Production, it will only be populated for accounts at applicable institutions."},"apy":{"type":["number","null"],"format":"double","description":"The annual percentage yield (APY) on an interest-bearing deposit account, expressed as a percentage (e.g. `4.25` means 4.25%). In the event that the APY is not provided by the financial institution, Plaid will return a value of `null`."},"holder_category":{"$ref":"#/components/schemas/AccountHolderCategory"},"paired_account_id":{"type":["string","null"],"x-hidden-from-docs":true,"description":"The `account_id` of the account on the paired Item (see `paired_item_id`) that represents the same bank account as this one. For an account on a Plaid Inc Item, this is the matching account on its paired Plaid Check Item, and the reverse for an account on a Plaid Check Item. Only returned for accounts on an Item that has a paired Item. `null` means the Item has a paired Item but Plaid could not confidently match this account to an account on it. Like `account_id`, this value can change if Plaid re-creates the paired account."}},"required":["account_id","balances","mask","name","official_name","type","subtype"]},"AccountBaseNullable":{"title":"AccountNullable","type":["object","null"],"additionalProperties":true,"description":"A single account at a financial institution.","allOf":[{"$ref":"#/components/schemas/AccountBase"},{"type":["object","null"]}]},"InvestmentAccountBalance":{"title":"InvestmentAccountBalance","description":"A set of fields describing the balance for an account, including margin loan information for investment accounts.","allOf":[{"$ref":"#/components/schemas/AccountBalance"},{"type":"object","additionalProperties":true,"properties":{"margin_loan_amount":{"type":["number","null"],"format":"double","description":"The total amount of borrowed funds in the account, as determined by the financial institution.\nFor investment-type accounts, the margin balance is the total value of borrowed assets in the account, as presented by the institution.\nThis is commonly referred to as margin or a loan."}},"required":["margin_loan_amount"]}]},"InvestmentAccount":{"title":"InvestmentAccount","description":"A single account at a financial institution, with additional investment-specific balance information.","allOf":[{"$ref":"#/components/schemas/AccountBase"},{"type":"object","additionalProperties":true,"properties":{"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","type":["string","null"]},"mask":{"description":"The last 2-4 alphanumeric characters of either the account's displayed mask or the account's official account number. Note that the mask may be non-unique between an Item's accounts.","type":["string","null"]},"verification_name":{"description":"The account holder name that was used for micro-deposit and/or database verification. Only returned for Auth Items created via micro-deposit or database verification. This name was manually-entered by the user during Link, unless it was otherwise provided via the `user.legal_name` request field in `/link/token/create` for the Link session that created the Item.","type":"string"},"balances":{"$ref":"#/components/schemas/InvestmentAccountBalance"}},"required":["balances"]}]},"AccountBalance":{"title":"AccountBalance","type":"object","additionalProperties":true,"description":"A set of fields describing the balance for an account. For real-time values, use `/accounts/balance/get` or `/signal/evaluate` (with a Balance-only ruleset), which are fetched live from the institution at request time. Values returned by other endpoints may be cached, or adjusted by Plaid to reflect transaction activity received since the last refresh.","properties":{"available":{"type":["number","null"],"format":"double","description":"The amount of funds available to be withdrawn from the account, as determined by the financial institution.\n\nFor `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows.\n\nFor `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.\n\nFor `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.\n\nNote 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`.\n\nAvailable balance may be cached and is not guaranteed to be up-to-date in real-time unless the value was returned by `/accounts/balance/get`, or by `/signal/evaluate` with a Balance-only ruleset.\n\nIf `current` is `null` this field is guaranteed not to be `null`, unless you have opted into enabling [limited-purpose checking accounts](https://plaid.com/docs/auth/#enabling-limited-purpose-checking-accounts-for-rent-or-mortgage), which always have `null` values for both `available` and `current` balance."},"current":{"type":["number","null"],"format":"double","description":"The total amount of funds in or owed by the account.\n\nFor `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.\n\nFor `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. Similar to `credit`-type accounts, a positive balance is typically expected, while a negative amount indicates the lender owing the account holder.\n\nFor `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.\n\nNote that balance information may be cached unless the value was returned by `/accounts/balance/get` or by `/signal/evaluate` with a Balance-only ruleset; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require real-time balance information, use the `available` balance as provided by `/accounts/balance/get` or `/signal/evaluate` called with a Balance-only `ruleset_key`.\n\nWhen returned by `/accounts/balance/get`, this field may be `null`. When this happens, `available` is guaranteed not to be `null`, unless you have opted into enabling [limited-purpose checking accounts](https://plaid.com/docs/auth/#enabling-limited-purpose-checking-accounts-for-rent-or-mortgage), which always have `null` values for both `available` and `current` balance."},"limit":{"type":["number","null"],"format":"double","description":"For `credit`-type accounts, this represents the credit limit.\n\nFor `depository`-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe.\n\nIn North America, this field is typically only available for `credit`-type accounts."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"last_updated_datetime":{"type":["string","null"],"format":"date-time","description":"Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the last time the balance was updated.\n\nThis field is returned only when the institution is `ins_128026` (Capital One) or `ins_136439` (Apple Card)."}},"required":["available","current","limit","iso_currency_code","unofficial_currency_code"]},"AccountSubtype":{"type":["string","null"],"title":"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","auto","brokerage","business","cash isa","cash management","cd","checking","commercial","commercial line of credit","construction","consumer","credit card","crypto exchange","ebt","education savings account","fhsa","fixed annuity","gic","health reimbursement arrangement","home equity","home equity loan","hsa","isa","ira","keogh","lif","life insurance","limited purpose checking","line of credit","lira","loan","lrif","lrsp","money market","mortgage","mutual fund","non-custodial wallet","non-taxable brokerage account","other","other insurance","other annuity","overdraft","paypal","payroll","pension","prediction market","prepaid","prif","profit sharing plan","qshr","rdsp","resp","retirement","rlif","roth","roth 401k","roth 403B","roth 457b","roth pension","roth profit sharing plan","roth thrift savings plan","rrif","rrsp","sarsep","savings","sep ira","simple ira","sipp","stock plan","student","thrift savings plan","tfsa","trust","ugma","utma","variable annuity"]},"AccountHolderCategory":{"type":["string","null"],"title":"HolderCategory","description":"Indicates the account's categorization as either a personal or a business account. This field is currently in beta; to request access, contact your account manager. Coverage varies by institution, with approximately 70% of accounts populated overall.","enum":["business","personal","unrecognized"]},"AccountVerificationInsights":{"title":"VerificationInsights","type":"object","additionalProperties":true,"description":"Insights from performing database verification for the account. Only returned for Auth Items using Database Auth.","properties":{"name_match_score":{"type":["integer","null"],"description":"Indicates the score of the name match between the given name provided during database verification (available in the [`verification_name`](https://plaid.com/docs/api/products/auth/#auth-get-response-accounts-verification-name) field if using standard Database Auth, or provided in the request if using `/auth/verify`) and matched Plaid network accounts. If defined, will be a value between 0 and 100. Will be undefined if name matching was not enabled for the database verification session or if there were no eligible Plaid network matches to compare the given name with. For Items at Canadian institutions, name matching is not currently supported, so this field will always be omitted."},"network_status":{"$ref":"#/components/schemas/AccountVerificationInsightsNetworkStatus"},"previous_returns":{"$ref":"#/components/schemas/AccountVerificationInsightsPreviousReturns"},"account_number_format":{"$ref":"#/components/schemas/AccountVerificationInsightsAccountNumberFormat"}},"required":["network_status","account_number_format"]},"AccountVerificationInsightsAccountNumberFormat":{"title":"VerificationInsightsAccountNumberFormat","type":"string","enum":["valid","invalid","unknown"],"description":"Indicator of account number format validity for institution.\n\n`valid`: indicates that the account number has a correct format for the institution.\n\n`invalid`: indicates that the account number has an incorrect format for the institution.\n\n`unknown`: indicates that there was not enough information to determine whether the format is correct for the institution."},"AccountVerificationInsightsNetworkStatus":{"title":"VerificationInsightsNetworkStatus","type":"object","additionalProperties":true,"description":"Status information about the account and routing number in the Plaid network.","properties":{"has_numbers_match":{"type":"boolean","description":"Indicates whether we found at least one matching account for the ACH account and routing number."},"is_numbers_match_verified":{"type":"boolean","description":"Indicates if at least one matching account for the ACH account and routing number is already verified."}},"required":["has_numbers_match","is_numbers_match_verified"]},"AccountVerificationInsightsPreviousReturns":{"title":"AccountVerificationInsightsPreviousReturns","type":"object","additionalProperties":true,"description":"Information about known ACH returns for the account and routing number.","properties":{"has_previous_administrative_return":{"type":"boolean","description":"Indicates whether Plaid's data sources include a known administrative ACH return for this account and routing number."}},"required":["has_previous_administrative_return"]},"LinkEventName":{"title":"LinkEventName","description":"A string representing the event that has just occurred in the Link flow.","type":"string","enum":["BANK_INCOME_INSIGHTS_COMPLETED","CLOSE_OAUTH","ERROR","EXIT","FAIL_OAUTH","HANDOFF","ISSUE_FOLLOWED","OPEN","OPEN_MY_PLAID","OPEN_OAUTH","SEARCH_INSTITUTION","SELECT_AUTH_TYPE","SELECT_BRAND","SELECT_DEGRADED_INSTITUTION","SELECT_DOWN_INSTITUTION","SELECT_FILTERED_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"]},"LinkDeliveryWebhookCallbackType":{"title":"LinkDeliveryWebhookCallbackType","description":"The type of Link callback event","type":"string","enum":["ON_SUCCESS","ON_EVENT","ON_EXIT"]},"LinkDeliveryWebhookCommunicationMethod":{"title":"LinkDeliveryWebhookCommunicationMethod","description":"The communication method used to deliver the Hosted Link session","type":"string","enum":["SMS","EMAIL"]},"LinkDeliveryWebhookDeliveryStatus":{"title":"LinkDeliveryWebhookDeliveryStatus","description":"The status of the delivery of the Hosted Link to the user","type":"string","enum":["SUCCESS","FAILURE"]},"LinkDeliveryInstitution":{"title":"LinkDeliveryInstitution","type":"object","additionalProperties":true,"description":"Information related to the financial institution.","x-hidden-from-docs":true,"properties":{"name":{"type":"string","description":"The full institution name, such as 'Wells Fargo'"},"institution_id":{"type":"string","description":"The Plaid institution identifier"}}},"LinkDeliveryVerificationStatus":{"title":"LinkDeliveryVerificationStatus","description":"Indicates an Item's micro-deposit-based verification or database verification status.","type":"string","enum":["automatically_verified","pending_automatic_verification","pending_manual_verification","manually_verified","verification_expired","verification_failed","unsent","database_matched","database_insights_pending"]},"LinkDeliveryAccount":{"title":"LinkDeliveryAccount","type":"object","additionalProperties":true,"description":"Information related to account attached to the connected Item","x-hidden-from-docs":true,"properties":{"id":{"type":"string","description":"The Plaid `account_id`"},"name":{"type":"string","description":"The official account name"},"mask":{"type":"string","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":{"type":"string","description":"The account type. See the [Account schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of possible values"},"subtype":{"type":"string","description":"The account subtype. See the [Account schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of possible values"},"verification_status":{"$ref":"#/components/schemas/LinkDeliveryVerificationStatus"},"class_type":{"type":"string","description":"If micro-deposit verification is being used, indicates whether the account being verified is a `business` or `personal` account."}}},"LinkDeliveryMetadata":{"title":"LinkDeliveryMetadata","type":"object","additionalProperties":true,"description":"Information related to the delivery of the link session to users","x-hidden-from-docs":true,"properties":{"communication_method":{"$ref":"#/components/schemas/LinkDeliveryWebhookCommunicationMethod"},"delivery_status":{"$ref":"#/components/schemas/LinkDeliveryWebhookDeliveryStatus"}}},"LinkCallbackMetadata":{"title":"LinkCallbackMetadata","type":"object","additionalProperties":true,"description":"Information related to the callback from the Hosted Link session.","x-hidden-from-docs":true,"properties":{"callback_type":{"$ref":"#/components/schemas/LinkDeliveryWebhookCallbackType"},"event_name":{"$ref":"#/components/schemas/LinkEventName"},"status":{"type":"string","description":"Indicates where in the flow the Link user exited"},"link_session_id":{"type":"string","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."},"request_id":{"type":"string","description":"The request ID for the last request made by Link. This can be shared with Plaid support to expedite investigation."},"institution":{"$ref":"#/components/schemas/LinkDeliveryInstitution"},"accounts":{"type":"array","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"}}}},"NumbersACH":{"title":"NumbersACH","type":"object","additionalProperties":true,"description":"Identifying information for transferring money to or from a US account via ACH or wire transfer.","properties":{"account_id":{"type":"string","description":"The Plaid account ID associated with the account numbers"},"account":{"type":"string","description":"The ACH account number for the account.\n\nAt certain institutions, including Chase, PNC, and US Bank, you will receive a \"tokenized\" account number, which is not the user's actual account number. For important details on how this may impact your integration and on how to avoid fraud, user confusion, and ACH returns, see [Tokenized account numbers](https://plaid.com/docs/auth/#tokenized-account-numbers)."},"is_tokenized_account_number":{"type":"boolean","description":"Indicates whether the account number is tokenized by the institution. For important details on how tokenized account numbers may impact your integration, see [Tokenized account numbers](https://plaid.com/docs/auth/#tokenized-account-numbers)."},"routing":{"type":"string","description":"The ACH routing number for the account. For more information, see [Tokenized account numbers](https://plaid.com/docs/auth/#tokenized-account-numbers)."},"wire_routing":{"type":["string","null"],"description":"The wire transfer routing number for the account. This field is only populated if the institution is known to use a separate wire transfer routing number. Many institutions do not have a separate wire routing number and use the ACH routing number for wires instead. It is recommended to have the end user manually confirm their wire routing number before sending any wires to their account, especially if this field is `null`."},"can_transfer_in":{"type":["boolean","null"],"description":"Whether the account supports ACH transfers into the account","x-hidden-from-docs":true},"can_transfer_out":{"type":["boolean","null"],"description":"Whether the account supports ACH transfers out of the account","x-hidden-from-docs":true}},"required":["account_id","account","routing","wire_routing"]},"NumbersACHNullable":{"description":"Identifying information for transferring money to or from a US account via ACH or wire transfer.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/NumbersACH"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"NumbersEFT":{"title":"NumbersEFT","type":"object","additionalProperties":true,"description":"Identifying information for transferring money to or from a Canadian bank account via EFT.","properties":{"account_id":{"type":"string","description":"The Plaid account ID associated with the account numbers"},"account":{"type":"string","description":"The EFT account number for the account"},"institution":{"type":"string","description":"The EFT institution number for the account"},"branch":{"type":"string","description":"The EFT branch number for the account"}},"required":["account_id","account","institution","branch"]},"NumbersEFTNullable":{"description":"Identifying information for transferring money to or from a Canadian bank account via EFT.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/NumbersEFT"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"NumbersInternational":{"title":"NumbersInternational","type":"object","additionalProperties":true,"description":"Identifying information for transferring money to or from an international bank account via wire transfer.","properties":{"account_id":{"type":"string","description":"The Plaid account ID associated with the account numbers"},"iban":{"type":"string","description":"The International Bank Account Number (IBAN) for the account"},"bic":{"type":"string","description":"The Business Identifier Code (BIC) for the account"}},"required":["account_id","iban","bic"]},"NumbersInternationalNullable":{"description":"Identifying information for transferring money to or from an international bank account via wire transfer.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/NumbersInternational"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"NumbersBACS":{"title":"NumbersBACS","type":"object","additionalProperties":true,"description":"Identifying information for transferring money to or from a UK bank account via Bacs.","properties":{"account_id":{"type":"string","description":"The Plaid account ID associated with the account numbers"},"account":{"type":"string","description":"The Bacs account number for the account"},"sort_code":{"type":"string","description":"The Bacs sort code for the account"}},"required":["account_id","account","sort_code"]},"NumbersBACSNullable":{"description":"Identifying information for transferring money to or from a UK bank account via Bacs.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/NumbersBACS"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"NumbersInternationalIBAN":{"type":["object","null"],"additionalProperties":true,"description":"Account numbers using the International Bank Account Number and BIC/SWIFT code format.","properties":{"iban":{"$ref":"#/components/schemas/NumbersIBAN"},"bic":{"type":"string","description":"The Business Identifier Code, also known as SWIFT code, for this bank account.","minLength":8,"maxLength":11}},"required":["iban","bic"]},"NumbersIBAN":{"type":"string","description":"International Bank Account Number (IBAN).","minLength":15,"maxLength":34},"NumbersIBANNullable":{"type":["string","null"],"description":"International Bank Account Number (IBAN).","allOf":[{"$ref":"#/components/schemas/NumbersIBAN"}]},"InvestmentsAuthGetNumbers":{"type":"object","additionalProperties":true,"description":"Identifying information for transferring holdings to an investment account.","properties":{"acats":{"type":"array","items":{"$ref":"#/components/schemas/NumbersACATS"}},"aton":{"type":"array","items":{"$ref":"#/components/schemas/NumbersATON"}},"retirement_401k":{"type":"array","items":{"$ref":"#/components/schemas/NumbersRetirement401k"}}}},"NumbersACATS":{"title":"NumbersACATS","type":"object","additionalProperties":true,"description":"Identifying information for transferring holdings to an investment account via ACATS.","properties":{"account_id":{"type":"string","description":"The Plaid account ID associated with the account numbers"},"account":{"type":"string","description":"The full account number for the account"},"dtc_numbers":{"type":"array","description":"Identifiers for the clearinghouses that are associated with the account in order of relevance. If this array is empty, call `/institutions/get_by_id` with the `item.institution_id` to get the DTC number.","items":{"type":"string"}}},"required":["account_id","account","dtc_numbers"]},"NumbersATON":{"title":"NumbersATON","type":"object","additionalProperties":true,"description":"Identifying information for transferring holdings to an investment account via ATON.","properties":{"account_id":{"type":"string","description":"The Plaid account ID associated with the account numbers"},"account":{"type":"string","description":"The full account number for the account"}},"required":["account_id","account"]},"NumbersRetirement401k":{"title":"NumbersRetirement401k","type":"object","additionalProperties":true,"description":"Identifying information for transferring holdings from a 401k account to another 401k account or IRA via the manual 401k rollover process.","properties":{"account_id":{"type":"string","description":"The Plaid account ID associated with the account numbers"},"plan":{"type":"string","description":"The plan number for the employer's 401k retirement plan"},"account":{"type":"string","description":"The full account number for the account"}},"required":["account_id"]},"RecipientBACS":{"title":"RecipientBACS","type":["object","null"],"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.","properties":{"account":{"type":"string","description":"The account number of the account. Maximum of 10 characters.","minLength":1,"maxLength":10},"sort_code":{"type":"string","description":"The 6-character sort code of the account.","minLength":6,"maxLength":6}}},"RecipientBACSNullable":{"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.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/RecipientBACS"},{"type":"object","additionalProperties":true,"description":"The account number and sort code of the recipient's account."}]},{"type":"null"}]},"SenderBACSNullable":{"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.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/RecipientBACS"},{"type":"object","additionalProperties":true,"description":"The account number and sort code of the sender's account, if specified in the `/payment_initiation/payment/create` call."}]},{"type":"null"}]},"PaymentInitiationOptionalRestrictionBacs":{"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.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/RecipientBACS"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"TransactionsUpdateStatus":{"title":"TransactionsUpdateStatus","type":"string","description":"A description of the update status for transaction pulls of an Item. This field contains the same information provided by transactions webhooks, and may be helpful for webhook troubleshooting or when recovering from missed webhooks.\n\n`TRANSACTIONS_UPDATE_STATUS_UNKNOWN`: Unable to fetch transactions update status for Item.\n\n`NOT_READY`: The Item is pending transaction pull.\n\n`INITIAL_UPDATE_COMPLETE`: Initial pull for the Item is complete, historical pull is pending.\n\n`HISTORICAL_UPDATE_COMPLETE`: Both initial and historical pull for Item are complete.","enum":["TRANSACTIONS_UPDATE_STATUS_UNKNOWN","NOT_READY","INITIAL_UPDATE_COMPLETE","HISTORICAL_UPDATE_COMPLETE"]},"RemovedTransaction":{"title":"RemovedTransaction","type":"object","additionalProperties":true,"description":"A representation of a removed transaction","x-examples":{},"properties":{"transaction_id":{"type":"string","description":"The ID of the removed transaction."},"account_id":{"type":"string","description":"The ID of the account of the removed transaction."}},"required":["transaction_id","account_id"]},"RequestID":{"title":"RequestID","type":"string","description":"A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."},"TransactionsRuleDetails":{"title":"TransactionsRuleDetails","type":"object","description":"A representation of transactions rule details.","x-examples":{},"properties":{"field":{"$ref":"#/components/schemas/TransactionsRuleField"},"type":{"$ref":"#/components/schemas/TransactionsRuleType"},"query":{"type":"string","description":"For `TRANSACTION_ID` field, provide `transaction_id`. For `MERCHANT_NAME` field, provide a string pattern.\n"}},"required":["field","type","query"]},"TransactionsRuleField":{"title":"TransactionsRuleField","type":"string","enum":["TRANSACTION_ID","MERCHANT_NAME"],"description":"Transaction field for which the rule is defined."},"TransactionsRuleType":{"title":"TransactionsRuleType","type":"string","enum":["EXACT_MATCH","SUBSTRING_MATCH"],"description":"Transaction rule's match type. For `TRANSACTION_ID` field, `EXACT_MATCH` is available.\n`TRANSACTION_ID` matches are case sensitive; `MERCHANT_NAME` matches are case insensitive.\n"},"TransactionsCategoryRule":{"title":"TransactionsCategoryRule","type":"object","description":"A representation of a transactions category rule.","x-examples":{},"properties":{"id":{"type":"string","description":"A unique identifier of the rule created"},"user_id":{"type":"string","description":"The Plaid-generated unique identifier for the end user this rule belongs to."},"created_at":{"type":"string","format":"date-time","description":"Date and time when a rule was created in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ).\n"},"updated_at":{"type":"string","format":"date-time","description":"Date and time when a rule was last updated in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ).\n"},"pfc_primary_category":{"$ref":"#/components/schemas/PfcPrimaryCategory"},"pfc_detailed_category":{"$ref":"#/components/schemas/PfcDetailedCategory"},"rule_details":{"$ref":"#/components/schemas/TransactionsRuleDetails"}}},"TransactionBase":{"title":"TransactionBase","type":"object","additionalProperties":true,"description":"A representation of a transaction","x-examples":{},"properties":{"account_id":{"type":"string","description":"The ID of the account in which this transaction occurred."},"amount":{"type":"number","format":"double","description":"The settled value of the transaction, denominated in the transaction's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. For all products except Income: 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. For Income endpoints, values are positive when representing income."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"category":{"deprecated":true,"type":["array","null"],"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).\n\nAll Transactions implementations are recommended to use the new `personal_finance_category` instead of `category`, as it provides greater accuracy and more meaningful categorization.\n\nIf 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.","x-hidden-from-docs":true,"items":{"type":"string"}},"category_id":{"deprecated":true,"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).\n\nAll Transactions implementations are recommended to use the new `personal_finance_category` instead of `category`, as it provides greater accuracy and more meaningful categorization.\n\nIf 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","null"],"x-hidden-from-docs":true},"check_number":{"type":["string","null"],"description":"The check number of the transaction. This field is only populated for check transactions."},"date":{"type":"string","format":"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` ). To receive information about the date that a posted transaction was initiated, see the `authorized_date` field."},"location":{"$ref":"#/components/schemas/Location"},"name":{"type":"string","deprecated":true,"description":"The merchant name or transaction description.\n\nNote: While Plaid does not currently plan to remove this field, it is a legacy field that is not actively maintained. Use `merchant_name` instead for the merchant name.\n\nIf the `transactions` object was returned by a Transactions endpoint such as `/transactions/sync` or `/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."},"merchant_name":{"type":["string","null"],"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`."},"original_description":{"type":["string","null"],"description":"The string returned by the financial institution to describe the transaction. For transactions returned by `/transactions/sync` or `/transactions/get`, this field will only be included if the client has set `options.include_original_description` to `true`."},"payment_meta":{"$ref":"#/components/schemas/PaymentMeta"},"pending":{"type":"boolean","description":"When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled. Not all institutions provide pending transactions."},"pending_transaction_id":{"type":["string","null"],"description":"The ID of a posted transaction's associated pending transaction, where applicable. Not all institutions provide pending transactions."},"account_owner":{"type":["string","null"],"description":"This field is not typically populated and only relevant when dealing with sub-accounts. A sub-account most commonly exists in cases where a single account is linked to multiple cards, each with its own card number and card holder name; each card will be considered a sub-account. If the account does have sub-accounts, this field will typically be some combination of the sub-account owner's name and/or the sub-account mask. The format of this field is not standardized and will vary based on institution."},"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."},"transaction_type":{"type":"string","enum":["digital","place","special","unresolved"],"description":"Please use the `payment_channel` field, `transaction_type` will be deprecated in the future.\n\n`digital:` transactions that took place online.\n\n`place:` transactions that were made at a physical location.\n\n`special:` transactions that relate to banks, e.g. fees or deposits.\n\n`unresolved:` transactions that do not fit into the other three types.\n","deprecated":true},"logo_url":{"type":["string","null"],"description":"The URL of a logo associated with this transaction, if available. The logo will always be a 100×100 pixel PNG file."},"website":{"type":["string","null"],"description":"The website associated with this transaction, if available."}},"required":["transaction_id","pending","date","unofficial_currency_code","iso_currency_code","amount","account_id"]},"Transaction":{"title":"Transaction","description":"A representation of a transaction","x-examples":{},"allOf":[{"$ref":"#/components/schemas/TransactionBase"},{"type":"object","additionalProperties":true,"properties":{"authorized_date":{"type":["string","null"],"format":"date","description":"The date that the transaction was authorized. For posted transactions, the `date` field will indicate the posted date, but `authorized_date` will indicate the day the transaction was authorized by the financial institution. If presenting transactions to the user in a UI, the `authorized_date`, when available, is generally preferable to use over the `date` field for posted transactions, as it will generally represent the date the user actually made the transaction. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` )."},"authorized_datetime":{"type":["string","null"],"format":"date-time","description":"Date and time when a transaction was authorized in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). For posted transactions, the `datetime` field will indicate the posted date, but `authorized_datetime` will indicate the day the transaction was authorized by the financial institution. If presenting transactions to the user in a UI, the `authorized_datetime`, when available, is generally preferable to use over the `datetime` field for posted transactions, as it will generally represent the date the user actually made the transaction.\n\nThis 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."},"datetime":{"type":["string","null"],"format":"date-time","description":"Date and time when a transaction was posted in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). For the date that the transaction was initiated, rather than posted, see the `authorized_datetime` field.\n\nThis 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."},"payment_channel":{"type":"string","enum":["online","in store","other"],"description":"The channel used to make a payment.\n`online:` transactions that took place online.\n\n`in store:` transactions that were made at a physical location.\n\n`other:` transactions that relate to banks, e.g. fees or deposits.\n\nThis field replaces the `transaction_type` field.\n"},"personal_finance_category":{"$ref":"#/components/schemas/PersonalFinanceCategory"},"business_finance_category":{"$ref":"#/components/schemas/BusinessFinanceCategory"},"transaction_code":{"$ref":"#/components/schemas/TransactionCode"},"personal_finance_category_icon_url":{"type":"string","description":"The URL of an icon associated with the primary personal finance category. The icon will always be a 100×100 pixel PNG file."},"counterparties":{"type":"array","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/TransactionCounterparty"}},"merchant_entity_id":{"type":["string","null"],"description":"A unique, stable, Plaid-generated ID that maps to the merchant. In the case of a merchant with multiple retail locations, this field will map to the broader merchant, not a specific location or store."},"merchant_category_code":{"type":["string","null"],"description":"The merchant category code for the transaction, typically a four-digit [ISO 18245](https://www.iso.org/standard/33365.html) string. This field is in beta: it is populated primarily for card transactions, coverage varies by institution, and values are subject to change."},"running_balance":{"type":["number","null"],"format":"double","description":"The balance of the account after this transaction was applied, as reported by the financial institution. Returned on posted transactions only, and not populated for every institution or every transaction. May not reconcile with the balances returned by `/accounts/balance/get`.","x-hidden-from-docs":true},"client_customization":{"$ref":"#/components/schemas/ClientCustomization"}},"required":["account_owner","pending_transaction_id","payment_channel","payment_meta","name","location","authorized_date","authorized_datetime","datetime","transaction_code"]}]},"ClientCustomization":{"title":"ClientCustomization","type":["object","null"],"additionalProperties":true,"description":"Custom client fields","x-hidden-from-docs":true,"properties":{"custom_entity_id":{"type":"string","description":"Custom entity ID that maps to a merchant or counterparty. This is different from the `merchant_entity_id` as well as the `entity_id` on the counterparties object to meet client specific needs."}}},"CashflowReportTransaction":{"title":"CashflowReportTransaction","type":"object","description":"A representation of a transaction returned from Cashflow Report","x-examples":{},"additionalProperties":true,"properties":{"account_id":{"type":"string","description":"The ID of the account in which this transaction occurred."},"amount":{"type":["number","null"],"format":"double","description":"The settled value of the transaction, denominated in the transaction's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. For all products except Income: 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. For Income endpoints, values are positive when representing income."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"check_number":{"type":["string","null"],"description":"The check number of the transaction. This field is only populated for check transactions."},"date":{"type":"string","format":"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` ). To receive information about the date that a posted transaction was initiated, see the `authorized_date` field."},"location":{"$ref":"#/components/schemas/Location"},"name":{"type":["string","null"],"description":"The merchant name or transaction description.\n\nNote: This is a legacy field that is not actively maintained. Use `merchant_name` instead for the merchant name.\n\nIf the `transactions` object was returned by a Transactions endpoint such as `/transactions/sync` or `/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."},"merchant_name":{"type":["string","null"],"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`."},"original_description":{"type":["string","null"],"description":"The string returned by the financial institution to describe the transaction. For transactions returned by `/transactions/sync` or `/transactions/get`, this field will only be included if the client has set `options.include_original_description` to `true`."},"payment_meta":{"$ref":"#/components/schemas/CashflowReportPaymentMeta"},"pending":{"type":["boolean","null"],"description":"When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled. Not all institutions provide pending transactions."},"pending_transaction_id":{"type":["string","null"],"description":"The ID of a posted transaction's associated pending transaction, where applicable. Not all institutions provide pending transactions."},"account_owner":{"type":["string","null"],"description":"This field is not typically populated and only relevant when dealing with sub-accounts. A sub-account most commonly exists in cases where a single account is linked to multiple cards, each with its own card number and card holder name; each card will be considered a sub-account. If the account does have sub-accounts, this field will typically be some combination of the sub-account owner's name and/or the sub-account mask. The format of this field is not standardized and will vary based on institution."},"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."},"logo_url":{"type":["string","null"],"description":"The URL of a logo associated with this transaction, if available. The logo will always be a 100×100 pixel PNG file."},"website":{"type":["string","null"],"description":"The website associated with this transaction, if available."},"authorized_date":{"type":["string","null"],"format":"date","description":"The date that the transaction was authorized. For posted transactions, the `date` field will indicate the posted date, but `authorized_date` will indicate the day the transaction was authorized by the financial institution. If presenting transactions to the user in a UI, the `authorized_date`, when available, is generally preferable to use over the `date` field for posted transactions, as it will generally represent the date the user actually made the transaction. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` )."},"authorized_datetime":{"type":["string","null"],"format":"date-time","description":"Date and time when a transaction was authorized in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). For posted transactions, the `datetime` field will indicate the posted date, but `authorized_datetime` will indicate the day the transaction was authorized by the financial institution. If presenting transactions to the user in a UI, the `authorized_datetime`, when available, is generally preferable to use over the `datetime` field for posted transactions, as it will generally represent the date the user actually made the transaction.\n\nThis 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."},"datetime":{"type":["string","null"],"format":"date-time","description":"Date and time when a transaction was posted in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). For the date that the transaction was initiated, rather than posted, see the `authorized_datetime` field.\n\nThis 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."},"payment_channel":{"$ref":"#/components/schemas/PaymentChannel"},"personal_finance_category":{"$ref":"#/components/schemas/PersonalFinanceCategory"},"business_finance_category":{"$ref":"#/components/schemas/BusinessFinanceCategory"},"credit_category":{"$ref":"#/components/schemas/CreditCategory"},"transaction_code":{"$ref":"#/components/schemas/TransactionCode"},"personal_finance_category_icon_url":{"type":["string","null"],"description":"The URL of an icon associated with the primary personal finance category. The icon will always be a 100×100 pixel PNG file."},"counterparties":{"type":"array","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/TransactionCounterparty"}},"merchant_entity_id":{"type":["string","null"],"description":"A unique, stable, Plaid-generated ID that maps to the merchant. In the case of a merchant with multiple retail locations, this field will map to the broader merchant, not a specific location or store."}},"required":["transaction_id","pending","date","unofficial_currency_code","iso_currency_code","amount","account_id","account_owner","pending_transaction_id","payment_channel","payment_meta","name","location","authorized_date","authorized_datetime","datetime","transaction_code"]},"Location":{"title":"Transaction Location","type":"object","additionalProperties":true,"description":"A representation of where a transaction took place. Location data is provided only for transactions at physical locations, not for online transactions. Location data availability depends primarily on the merchant and is most likely to be populated for transactions at large retail chains; small, local businesses are less likely to have location data available.","properties":{"address":{"type":["string","null"],"description":"The street address where the transaction occurred."},"city":{"type":["string","null"],"description":"The city where the transaction occurred."},"region":{"type":["string","null"],"description":"The region or state where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `state`."},"postal_code":{"type":["string","null"],"description":"The postal code where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `zip`."},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code where the transaction occurred."},"lat":{"type":["number","null"],"format":"double","description":"The latitude where the transaction occurred."},"lon":{"type":["number","null"],"format":"double","description":"The longitude where the transaction occurred."},"store_number":{"type":["string","null"],"description":"The merchant defined store number where the transaction occurred."}},"required":["address","city","region","postal_code","country","lat","lon","store_number"]},"TransactionStream":{"title":"TransactionStream","type":"object","description":"A grouping of related transactions","x-examples":{},"additionalProperties":true,"properties":{"account_id":{"type":"string","description":"The ID of the account to which the stream belongs"},"stream_id":{"type":"string","description":"A unique id for the stream"},"category":{"deprecated":true,"type":["array","null"],"x-hidden-from-docs":true,"description":"A hierarchical array of the categories to which this transaction belongs. See [Categories](https://plaid.com/docs/api/products/transactions/#categoriesget).\n\nAll implementations are encouraged to use the new `personal_finance_category` instead of `category`. `personal_finance_category` provides more meaningful categorization and greater accuracy.","items":{"type":"string"}},"category_id":{"deprecated":true,"description":"The ID of the category to which this transaction belongs. See [Categories](https://plaid.com/docs/api/products/transactions/#categoriesget).\n\nAll implementations are encouraged to use the new `personal_finance_category` instead of `category`. `personal_finance_category` provides more meaningful categorization and greater accuracy.","type":["string","null"],"x-hidden-from-docs":true},"description":{"type":"string","description":"A description of the transaction stream."},"merchant_name":{"type":["string","null"],"description":"The merchant associated with the transaction stream."},"first_date":{"type":"string","description":"The posted date of the earliest transaction in the stream.","format":"date"},"last_date":{"type":"string","description":"The posted date of the latest transaction in the stream.","format":"date"},"predicted_next_date":{"type":["string","null"],"description":"The predicted date of the next payment. This will only be set if the next payment date can be predicted.","format":"date"},"frequency":{"$ref":"#/components/schemas/RecurringTransactionFrequency"},"transaction_ids":{"type":"array","description":"An array of Plaid transaction IDs belonging to the stream, sorted by posted date.","items":{"type":"string"}},"average_amount":{"$ref":"#/components/schemas/TransactionStreamAmount"},"last_amount":{"$ref":"#/components/schemas/TransactionStreamAmount"},"is_active":{"type":"boolean","description":"Indicates whether the transaction stream is still live."},"status":{"$ref":"#/components/schemas/TransactionStreamStatus"},"personal_finance_category":{"$ref":"#/components/schemas/PersonalFinanceCategory"},"is_user_modified":{"type":"boolean","description":"As the ability to modify transactions streams has been discontinued, this field will always be `false`.","deprecated":true},"last_user_modified_datetime":{"type":"string","description":"The date and time of the most recent user modification. This will only be set if `is_user_modified` is `true`.","format":"date-time","deprecated":true,"x-hidden-from-docs":true}},"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","is_user_modified"]},"TransactionStreamAmount":{"type":"object","title":"TransactionStreamAmount","description":"Object with data pertaining to an amount on the transaction stream.","additionalProperties":true,"properties":{"amount":{"type":"number","format":"double","description":"Represents the numerical value of an amount."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s."},"unofficial_currency_code":{"type":["string","null"],"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."}}},"RecurringTransactionFrequency":{"type":"string","description":"Describes the frequency of the transaction stream.\n\n`WEEKLY`: Assigned to a transaction stream that occurs approximately every week.\n\n`BIWEEKLY`: Assigned to a transaction stream that occurs approximately every 2 weeks.\n\n`SEMI_MONTHLY`: Assigned to a transaction stream that occurs approximately twice per month. This frequency is typically seen for inflow transaction streams.\n\n`MONTHLY`: Assigned to a transaction stream that occurs approximately every month.\n\n`ANNUALLY`: Assigned to a transaction stream that occurs approximately every year.\n\n`UNKNOWN`: Assigned to a transaction stream that does not fit any of the pre-defined frequencies.","title":"RecurringTransactionFrequency","enum":["UNKNOWN","WEEKLY","BIWEEKLY","SEMI_MONTHLY","MONTHLY","ANNUALLY"]},"TransactionStreamStatus":{"type":"string","description":"The current status of the transaction stream.\n\n`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).\n\n`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`.\n\n`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.\n\n`UNKNOWN`: A stream is assigned an `UNKNOWN` status when none of the other statuses are applicable.","title":"TransactionStreamStatus","enum":["UNKNOWN","MATURE","EARLY_DETECTION","TOMBSTONED"]},"InvestmentsAuthOwner":{"title":"InvestmentsAuthOwner","type":"object","description":"Information on the ownership of an investment account","additionalProperties":true,"properties":{"account_id":{"type":"string","description":"The ID of the account that this identity information pertains to"},"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.\n\nIf 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.","type":"array","items":{"type":"string"}}}},"InvestmentsAuthAccountDetails401k":{"type":"object","additionalProperties":true,"description":"Additional account fee and contribution information for 401k type accounts.","properties":{"account_id":{"type":"string","description":"The ID of the 401k account."},"fee_details":{"$ref":"#/components/schemas/InvestmentsAuth401kFeeDetails"},"contribution_details":{"$ref":"#/components/schemas/InvestmentsAuth401kContributionDetails"}}},"InvestmentsAuth401kFeeDetails":{"type":"object","additionalProperties":true,"description":"Object containing information on account fee transactions for the 401k account.","properties":{"account_fee_count_12m":{"type":"integer","description":"Number of account fee transactions on this account, for the past 12 months."},"account_fee_amount_12m":{"type":"number","format":"float","description":"Sum of account fee transactions on this account, for the past 12 months."}},"required":["account_fee_count_12m","account_fee_amount_12m"]},"InvestmentsAuth401kContributionDetails":{"type":"object","additionalProperties":true,"description":"Object containing information on contribution transactions for the 401k account. Note that the sum fields in this object represent the total of absolute contribution values.","properties":{"last_contribution_transactions":{"type":"array","description":"A list of the most recent contribution transactions for the 401k account. Includes all contributions made on the same day.","items":{"$ref":"#/components/schemas/InvestmentTransaction"}},"contribution_count_1m":{"type":"integer","description":"Number of contribution transactions on this account, for the past month."},"contribution_amount_1m":{"type":"number","format":"float","description":"Sum of the contribution transactions on this account, for the past month."},"contribution_count_6m":{"type":"integer","description":"Number of contribution transactions on this account, for the past 6 months."},"contribution_amount_6m":{"type":"number","format":"float","description":"Sum of the contribution transactions on this account, for the past 6 months."},"contribution_count_12m":{"type":"integer","description":"Number of contribution transactions on this account, for the past 12 months."},"contribution_amount_12m":{"type":"number","format":"float","description":"Sum of the contribution transactions on this account, for the past 12 months."}},"required":["last_contribution_transactions","contribution_count_1m","contribution_amount_1m","contribution_count_6m","contribution_amount_6m","contribution_count_12m","contribution_amount_12m"]},"InvestmentsAuthDataSources":{"title":"InvestmentsAuthDataSources","type":"object","description":"Object with metadata pertaining to the source of data for the account numbers, owners, and holdings that are returned.","additionalProperties":true,"properties":{"numbers":{"$ref":"#/components/schemas/DataSources"},"owners":{"$ref":"#/components/schemas/DataSources"},"holdings":{"$ref":"#/components/schemas/DataSources"}}},"DataSources":{"type":"string","description":"A description of the source of data for a given product/data type.\n\n`INSTITUTION`: The institution supports this product, and the data was provided by the institution.\n\n`INSTITUTION_MASK`: The user manually provided the full account number, which was matched to the account mask provided by the institution. Only applicable to the `numbers` data type.\n\n`USER`: The institution does not support this product, and the data was manually provided by the user.","enum":["INSTITUTION","INSTITUTION_MASK","USER"]},"Institution":{"title":"Institution","type":"object","additionalProperties":true,"description":"Details relating to a specific financial institution","properties":{"institution_id":{"type":"string","description":"Unique identifier for the institution. Note that the same institution may have multiple records, each with different institution IDs; for example, if the institution has migrated to OAuth, there may be separate `institution_id`s for the OAuth and non-OAuth versions of the institution. Institutions that operate in different countries or with multiple login portals may also have separate `institution_id`s for each country or portal."},"name":{"type":"string","description":"The official name of the institution."},"products":{"type":"array","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/). The `income_verification` product here indicates support for Bank Income. Note: For Signal Transaction Scores and Transfer, listed institutions may be incomplete or incorrect. Instead, use the following: `balance` support also indicates coverage of Signal Transaction Scores; `auth` support also indicates coverage of Transfer.","items":{"$ref":"#/components/schemas/Products"}},"country_codes":{"type":"array","description":"A list of the country codes supported by the institution.","items":{"$ref":"#/components/schemas/CountryCode"}},"url":{"type":["string","null"],"description":"The URL for the institution's website"},"primary_color":{"type":["string","null"],"description":"Hexadecimal representation of the primary color used by the institution. If Plaid does not have primary color data for the institution, this field will be a deterministically generated fallback color."},"logo":{"type":["string","null"],"description":"Base64 encoded representation of the institution's logo, returned as a base64 encoded 152x152 PNG. Not all institutions' logos are available."},"routing_numbers":{"type":"array","description":"A list of routing numbers known to be associated with the institution. This list is provided for the purpose of looking up institutions by routing number. It is generally comprehensive but is not guaranteed to be a complete list of routing numbers for an institution.","items":{"type":"string"}},"dtc_numbers":{"type":"array","description":"A partial list of DTC numbers associated with the institution.","items":{"type":"string"}},"oauth":{"type":"boolean","description":"Indicates that the institution has an OAuth login flow. This will be `true` if OAuth is supported for any Items associated with the institution, even if the institution also supports non-OAuth connections."},"connection_availability":{"$ref":"#/components/schemas/InstitutionConnectionAvailability"},"status":{"$ref":"#/components/schemas/InstitutionStatus"},"payment_initiation_metadata":{"$ref":"#/components/schemas/PaymentInitiationMetadata"},"auth_metadata":{"$ref":"#/components/schemas/AuthMetadata"}},"required":["institution_id","name","products","country_codes","routing_numbers","oauth","connection_availability"]},"InstitutionConnectionAvailability":{"type":"string","title":"InstitutionConnectionAvailability","description":"Whether Plaid supports creating new Items for the institution.\n\n`SUPPORTED`: Plaid supports new connections to the institution. Whether a given connection succeeds can still depend on your integration and account: some institutions require completing [OAuth registration](https://plaid.com/docs/link/oauth/#complete-the-registration-requirements-in-the-compliance-center) before they can be used, the institution may not support every product requested in `/link/token/create`, and your Plaid account must be in good standing.\n\n`NOT_SUPPORTED`: Plaid does not support new connections to the institution. Existing Items may continue to work. Attempting to create a new Item for the institution returns an `INSTITUTION_NO_LONGER_SUPPORTED` error. Institutions with this value are returned only by `/institutions/get_by_id`.\n","enum":["SUPPORTED","NOT_SUPPORTED"]},"InstitutionStatus":{"title":"InstitutionStatus","type":["object","null"],"additionalProperties":true,"properties":{"item_logins":{"$ref":"#/components/schemas/ProductStatus"},"transactions_updates":{"$ref":"#/components/schemas/ProductStatus"},"auth":{"$ref":"#/components/schemas/ProductStatus"},"identity":{"$ref":"#/components/schemas/ProductStatus"},"investments_updates":{"$ref":"#/components/schemas/ProductStatus"},"liabilities_updates":{"$ref":"#/components/schemas/ProductStatus"},"liabilities":{"$ref":"#/components/schemas/ProductStatus"},"investments":{"$ref":"#/components/schemas/ProductStatus"},"health_incidents":{"type":["array","null"],"description":"Details of recent health incidents associated with the institution.","items":{"$ref":"#/components/schemas/HealthIncident"}}},"required":["item_logins"],"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.\n\nInstitution status is accessible in the Dashboard and via the API using the `/institutions/get_by_id` endpoint with the `options.include_status` option set to true. In the Sandbox environment, institution status is only available for First Platypus Bank (`ins_109508`) and Houndstooth Bank (`ins_109512`).\n","x-examples":{"example-1":{"item_logins":{"status":"HEALTHY","last_status_change":"2019-02-15T15:53:00Z","breakdown":{"success":0.9,"error_plaid":0.01,"error_institution":0.09}},"transactions_updates":{"status":"HEALTHY","last_status_change":"2019-02-12T08:22:00Z","breakdown":{"success":0.95,"error_plaid":0.02,"error_institution":0.03,"refresh_interval":"NORMAL"}},"auth":{"status":"HEALTHY","last_status_change":"2019-02-15T15:53:00Z","breakdown":{"success":0.91,"error_plaid":0.01,"error_institution":0.08}},"identity":{"status":"DEGRADED","last_status_change":"2019-02-15T15:50:00Z","breakdown":{"success":0.42,"error_plaid":0.08,"error_institution":0.5}},"investments":{"status":"HEALTHY","last_status_change":"2019-02-15T15:53:00Z","breakdown":{"success":0.89,"error_plaid":0.02,"error_institution":0.09}},"liabilities":{"status":"HEALTHY","last_status_change":"2019-02-15T15:53:00Z","breakdown":{"success":0.89,"error_plaid":0.02,"error_institution":0.09}},"investments_updates":{"status":"HEALTHY","last_status_change":"2019-02-12T08:22:00Z","breakdown":{"success":0.95,"error_plaid":0.02,"error_institution":0.03,"refresh_interval":"NORMAL"}},"liabilities_updates":{"status":"HEALTHY","last_status_change":"2019-02-12T08:22:00Z","breakdown":{"success":0.95,"error_plaid":0.02,"error_institution":0.03,"refresh_interval":"NORMAL"}}}}},"CountryCode":{"type":"string","title":"CountryCode","enum":["US","GB","ES","NL","FR","IE","CA","DE","IT","PL","DK","NO","SE","EE","LT","LV","PT","BE","AT","FI"],"description":"ISO-3166-1 alpha-2 country code standard."},"ConsumerReportPermissiblePurpose":{"type":"string","title":"ConsumerReportPermissiblePurpose","enum":["ACCOUNT_REVIEW_CREDIT","ACCOUNT_REVIEW_NON_CREDIT","EXTENSION_OF_CREDIT","LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING","LEGITIMATE_BUSINESS_NEED_OTHER","WRITTEN_INSTRUCTION_PREQUALIFICATION","WRITTEN_INSTRUCTION_OTHER","ELIGIBILITY_FOR_GOVT_BENEFITS","INSURANCE_UNDERWRITING","SECONDARY_INVESTOR"],"description":"Describes the reason you are generating a Consumer Report for this user. When calling `/link/token/create`, this field is required when using Plaid Check (CRA) products; invalid if not using Plaid Check (CRA) products.\n\n`ACCOUNT_REVIEW_CREDIT`: In connection with a consumer credit transaction for the review or collection of an account pursuant to FCRA Section 604(a)(3)(A).\n\n`ACCOUNT_REVIEW_NON_CREDIT`: For a legitimate business need of the information to review a non-credit account provided primarily for personal, family, or household purposes to determine whether the consumer continues to meet the terms of the account pursuant to FCRA Section 604(a)(3)(F)(2).\n\n`EXTENSION_OF_CREDIT`: In connection with a credit transaction initiated by and involving the consumer pursuant to FCRA Section 604(a)(3)(A).\n\n`LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING`: For a legitimate business need in connection with a business transaction initiated by the consumer primarily for personal, family, or household purposes in connection with a property rental assessment pursuant to FCRA Section 604(a)(3)(F)(i).\n\n`LEGITIMATE_BUSINESS_NEED_OTHER`: For a legitimate business need in connection with a business transaction made primarily for personal, family, or household initiated by the consumer pursuant to FCRA Section 604(a)(3)(F)(i).\n\n`WRITTEN_INSTRUCTION_PREQUALIFICATION`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), to evaluate an application's profile to make an offer to the consumer.\n\n`WRITTEN_INSTRUCTION_OTHER`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.\n\n`ELIGIBILITY_FOR_GOVT_BENEFITS`:  In connection with an eligibility determination for a government benefit where the entity is required to consider an applicant's financial status pursuant to FCRA Section 604(a)(3)(D).\n\n`INSURANCE_UNDERWRITING`: In connection with the underwriting of insurance involving the consumer pursuant to FCRA Section 604(a)(3)(C).\n\n`SECONDARY_INVESTOR`: As a potential investor or servicer, or current insurer, in connection with a valuation of, or an assessment of the credit or prepayment risks associated with, an existing credit obligation pursuant to FCRA Section 604(a)(3)(E)."},"PaymentMeta":{"title":"PaymentMeta","type":"object","additionalProperties":true,"description":"Transaction information specific to inter-bank transfers. If the transaction was not an inter-bank transfer, all fields will be `null`.\n\nIf the `transactions` object was returned by a Transactions endpoint such as `/transactions/sync` or `/transactions/get`, the `payment_meta` key will always appear, but no data elements are guaranteed. If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.","properties":{"reference_number":{"type":["string","null"],"description":"The transaction reference number supplied by the financial institution."},"ppd_id":{"type":["string","null"],"description":"The ACH PPD ID for the payer."},"payee":{"type":["string","null"],"description":"For transfers, the party that is receiving the transaction."},"by_order_of":{"type":["string","null"],"description":"The party initiating a wire transfer. Will be `null` if the transaction is not a wire transfer."},"payer":{"type":["string","null"],"description":"For transfers, the party that is paying the transaction."},"payment_method":{"type":["string","null"],"description":"The type of transfer, e.g. 'ACH'"},"payment_processor":{"type":["string","null"],"description":"The name of the payment processor"},"reason":{"type":["string","null"],"description":"The payer-supplied description of the transfer."}},"required":["reference_number","ppd_id","payee","by_order_of","payer","payment_method","payment_processor","reason"]},"CashflowReportPaymentMeta":{"title":"CashflowReportPaymentMeta","type":"object","additionalProperties":true,"description":"Transaction information specific to inter-bank transfers. If the transaction was not an inter-bank transfer, all fields will be `null`.","properties":{"reference_number":{"type":["string","null"],"description":"The transaction reference number supplied by the financial institution."},"ppd_id":{"type":["string","null"],"description":"The ACH PPD ID for the payer."},"payee":{"type":["string","null"],"description":"For transfers, the party that is receiving the transaction."},"by_order_of":{"type":["string","null"],"description":"The party initiating a wire transfer. Will be `null` if the transaction is not a wire transfer."},"payer":{"type":["string","null"],"description":"For transfers, the party that is paying the transaction."},"payment_method":{"type":["string","null"],"description":"The type of transfer, e.g. 'ACH'"},"payment_processor":{"type":["string","null"],"description":"The name of the payment processor"},"reason":{"type":["string","null"],"description":"The payer-supplied description of the transfer."}},"required":["reference_number","ppd_id","payee","by_order_of","payer","payment_method","payment_processor","reason"]},"TransactionCode":{"type":["string","null"],"title":"transaction_code","description":"An identifier classifying the transaction type.\n\nThis field is populated for European institutions, as well as certain institutions in the United States. For institutions where this classification is not available, this field is set to `null`.\n\n`adjustment:` Bank adjustment\n\n`atm:` Cash deposit or withdrawal via an automated teller machine\n\n`bank charge:` Charge or fee levied by the institution\n\n`bill payment`: Payment of a bill\n\n`cash:` Cash deposit or withdrawal\n\n`cash advance:` Cash advance drawn against a credit card or line of credit\n\n`cashback:` Cash withdrawal while making a debit card purchase\n\n`cheque:` Document ordering the payment of money to another person or organization\n\n`direct debit:` Automatic withdrawal of funds initiated by a third party at a regular interval\n\n`interest:` Interest earned or incurred\n\n`late fee:` Fee associated with a late or past-due payment\n\n`membership fee:` Annual or recurring membership fee\n\n`payment:` One-off outbound payment not classified as a bill payment, direct debit, or standing order\n\n`purchase:` Purchase made with a debit or credit card\n\n`refund:` Merchant credit or return, such as a refund of a prior purchase\n\n`returned item fee:` Fee for a returned item, such as a returned check or stop payment\n\n`standing order:` Payment instructed by the account holder to a third party at a regular interval\n\n`transfer:` Transfer of money between accounts","enum":["adjustment","atm","bank charge","bill payment","cash","cash advance","cashback","cheque","direct debit","interest","late fee","membership fee","payment","purchase","refund","returned item fee","standing order","transfer",null]},"Category":{"title":"Category","type":"object","additionalProperties":true,"description":"Information describing a transaction category","properties":{"category_id":{"type":"string","description":"An identifying number for the category. `category_id` is a Plaid-specific identifier and does not necessarily correspond to merchant category codes."},"group":{"type":"string","description":"`place` for physical transactions or `special` for other transactions such as bank charges."},"hierarchy":{"type":"array","description":"A hierarchical array of the categories to which this `category_id` belongs.","items":{"type":"string"}}},"required":["category_id","group","hierarchy"]},"Counterparty":{"type":"object","title":"Counterparty","additionalProperties":true,"description":"The counterparty, such as the merchant or financial institution, is extracted by Plaid from the raw description.","properties":{"name":{"type":"string","description":"The name of the counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description."},"entity_id":{"type":["string","null"],"description":"A unique, stable, Plaid-generated ID that maps to the counterparty."},"type":{"$ref":"#/components/schemas/CounterpartyType"},"website":{"type":["string","null"],"description":"The website associated with the counterparty."},"logo_url":{"type":["string","null"],"description":"The URL of a logo associated with the counterparty, if available. The logo will always be a 100×100 pixel PNG file."},"confidence_level":{"type":["string","null"],"description":"A description of how confident we are that the provided counterparty is involved in the transaction.\n\n`VERY_HIGH`: We recognize this counterparty and we are more than 98% confident that it is involved in this transaction.\n\n`HIGH`: We recognize this counterparty and we are more than 90% confident that it is involved in this transaction.\n\n`MEDIUM`: We are moderately confident that this counterparty was involved in this transaction, but some details may differ from our records.\n\n`LOW`: We didn't find a matching counterparty in our records, so we are returning a cleansed name parsed out of the request description.\n\n`UNKNOWN`: We don't know the confidence level for this counterparty."},"phone_number":{"type":["string","null"],"description":"The phone number associated with the counterparty in E.164 format. If there is a location match (i.e. a street address is returned in the location object), the phone number will be location specific."},"account_numbers":{"$ref":"#/components/schemas/CounterpartyNumbers"}},"required":["name","type","logo_url","website","phone_number"]},"TransactionCounterparty":{"type":"object","title":"Counterparty","additionalProperties":true,"description":"The counterparty, such as the merchant or financial institution, is extracted by Plaid from the raw description.","properties":{"name":{"type":"string","description":"The name of the counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description."},"entity_id":{"type":["string","null"],"description":"A unique, stable, Plaid-generated ID that maps to the counterparty."},"type":{"$ref":"#/components/schemas/CounterpartyType"},"website":{"type":["string","null"],"description":"The website associated with the counterparty."},"logo_url":{"type":["string","null"],"description":"The URL of a logo associated with the counterparty, if available. The logo will always be a 100×100 pixel PNG file."},"confidence_level":{"type":["string","null"],"description":"A description of how confident we are that the provided counterparty is involved in the transaction.\n\n`VERY_HIGH`: We recognize this counterparty and we are more than 98% confident that it is involved in this transaction.\n\n`HIGH`: We recognize this counterparty and we are more than 90% confident that it is involved in this transaction.\n\n`MEDIUM`: We are moderately confident that this counterparty was involved in this transaction, but some details may differ from our records.\n\n`LOW`: We didn't find a matching counterparty in our records, so we are returning a cleansed name parsed out of the request description.\n\n`UNKNOWN`: We don't know the confidence level for this counterparty."},"account_numbers":{"$ref":"#/components/schemas/CounterpartyNumbers"}},"required":["name","type","logo_url","website"]},"CounterpartyType":{"title":"CounterpartyType","description":"The counterparty type.\n\n`merchant`: a provider of goods or services for purchase\n\n`financial_institution`: a financial entity (bank, credit union, BNPL, fintech)\n\n`payment_app`: a transfer or P2P app (e.g. Zelle)\n\n`marketplace`: a marketplace (e.g. DoorDash, Google Play Store)\n\n`payment_terminal`: a point-of-sale payment terminal (e.g. Square, Toast)\n\n`income_source`: the payer in an income transaction (e.g., an employer, client, or government agency)","type":"string","enum":["merchant","financial_institution","payment_app","marketplace","payment_terminal","income_source"]},"CounterpartyNumbers":{"type":["object","null"],"title":"CounterpartyNumbers","additionalProperties":true,"description":"Account numbers associated with the counterparty, when available.\nThis field is currently only filled in for select financial institutions in Europe.","properties":{"bacs":{"$ref":"#/components/schemas/CounterpartyNumbersBACS"},"international":{"$ref":"#/components/schemas/CounterpartyNumbersInternational"}}},"CounterpartyNumbersBACS":{"type":["object","null"],"title":"CounterpartyNumbersBACS","description":"Identifying information for a UK bank account via Bacs.","properties":{"account":{"type":["string","null"],"description":"The Bacs account number for the account."},"sort_code":{"type":["string","null"],"description":"The Bacs sort code for the account."}}},"CounterpartyNumbersInternational":{"type":["object","null"],"title":"CounterpartyNumbersInternational","description":"Account numbers using the International Bank Account Number and BIC/SWIFT code format.","properties":{"iban":{"$ref":"#/components/schemas/NumbersIBANNullable"},"bic":{"type":["string","null"],"description":"Business Identifier Code (BIC) for this counterparty.","minLength":8,"maxLength":11}}},"PfcPrimaryCategory":{"title":"PfcPrimaryCategory","type":"string","description":"A personal finance primary category.\nSee the [taxonomy csv file](https://plaid.com/documents/pfc-taxonomy-all.csv) for a full list of personal finance categories.\n"},"PfcDetailedCategory":{"title":"PfcDetailedCategory","type":"string","description":"A personal finance detailed category.\nSee the [taxonomy csv file](https://plaid.com/documents/pfc-taxonomy-all.csv) for a full list of personal finance categories.\n"},"PersonalFinanceCategory":{"title":"PersonalFinanceCategory","type":["object","null"],"additionalProperties":true,"description":"Information describing the intent of the transaction. Most relevant for personal finance use cases, but not limited to such use cases.\n\nSee the [taxonomy CSV file](https://plaid.com/documents/pfc-taxonomy-all.csv) for a full list of personal finance categories. If you are migrating to personal finance categories from the legacy categories, also refer to the [migration guide](https://plaid.com/docs/transactions/pfc-migration/).","properties":{"primary":{"type":"string","description":"A high level category that communicates the broad category of the transaction."},"detailed":{"type":"string","description":"A granular category conveying the transaction's intent. This field can also be used as a unique identifier for the category."},"confidence_level":{"type":["string","null"],"description":"A description of how confident we are that the provided categories accurately describe the transaction intent.\n\n`VERY_HIGH`: We are more than 98% confident that this category reflects the intent of the transaction.\n\n`HIGH`: We are more than 90% confident that this category reflects the intent of the transaction.\n\n`MEDIUM`: We are moderately confident that this category reflects the intent of the transaction.\n\n`LOW`: This category may reflect the intent, but there may be other categories that are more accurate.\n\n`UNKNOWN`: We don't know the confidence level for this category."},"version":{"$ref":"#/components/schemas/PersonalFinanceCategoryVersion"}},"required":["primary","detailed"]},"BusinessFinanceCategory":{"title":"BusinessFinanceCategory","type":["object","null"],"additionalProperties":true,"description":"Information describing the intent of the transaction. Most relevant for business finance use cases, but not limited to such use cases.","x-hidden-from-docs":true,"properties":{"primary":{"type":"string","description":"A high level category that communicates the broad category of the transaction."},"detailed":{"type":"string","description":"A granular category conveying the transaction's intent. This field can also be used as a unique identifier for the category."},"confidence_level":{"type":["string","null"],"description":"A description of how confident we are that the provided categories accurately describe the transaction intent.\n\n`VERY_HIGH`: We are more than 98% confident that this category reflects the intent of the transaction.\n\n`HIGH`: We are more than 90% confident that this category reflects the intent of the transaction.\n\n`MEDIUM`: We are moderately confident that this category reflects the intent of the transaction.\n\n`LOW`: This category may reflect the intent, but there may be other categories that are more accurate.\n\n`UNKNOWN`: We don't know the confidence level for this category."}},"required":["primary","detailed"]},"UserToken":{"title":"UserToken","type":"string","description":"The user token associated with the user for which data is being requested. This field is used only by customers with pre-existing integrations that already use the `user_token` field. All other customers should use the `user_id` instead. For more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis)."},"ThirdPartyUserToken":{"x-hidden-from-docs":true,"title":"ThirdPartyUserToken","type":"string","description":"The third-party user token associated with the requested User data."},"AccessToken":{"title":"AccessToken","type":"string","description":"The access token associated with the Item for which data is being requested."},"AccessTokenNullable":{"type":["string","null"],"description":"The access token associated with the Item for which data is being requested."},"TransferAccessToken":{"description":"The Plaid `access_token` for the account that will be debited or credited.","type":"string"},"TransferAccountID":{"type":"string","description":"The Plaid `account_id` corresponding to the end-user account that will be debited or credited."},"TransferOriginatorClientID":{"type":["string","null"],"description":"Client ID of the customer that owns the Ledger balance. This is so Plaid knows which of your customers to pay out to or collect funds from. Only applicable for [Platform customers](https://plaid.com/docs/transfer/application/#originators-vs-platforms). Do not include if you're paying out to yourself."},"TransferMigratedFundingAccountIDRequest":{"type":["string","null"],"description":"Specify the account used to fund the transfer. Should be specified if using legacy funding methods only. If using Plaid Ledger, leave this field blank. Customers can find a list of `funding_account_id`s in the Accounts page of your Plaid Dashboard, under the \"Account ID\" column. If this field is left blank and you are using legacy funding methods, this will default to the default `funding_account_id` specified during onboarding. Otherwise, Plaid Ledger will be used.","x-hidden-from-docs":true},"TransferUnmigratedFundingAccountIDRequest":{"type":["string","null"],"description":"Specify the account used to fund the transfer. Customers can find a list of `funding_account_id`s in the Accounts page of your Plaid Dashboard, under the \"Account ID\" column. If this field is left blank, it will default to the default `funding_account_id` specified during onboarding."},"TransferLedgerFundingAccountIDRequest":{"type":["string","null"],"description":"Specify which funding account to use. Customers can find a list of `funding_account_id`s in the Accounts page of the Plaid Dashboard, under the \"Account ID\" column. If this field is left blank, the funding account associated with the specified Ledger will be used. If an `originator_client_id` is specified, the `funding_account_id` must belong to the specified originator."},"TransferFundingAccountIDResponse":{"type":"string","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."},"TransferFundingAccountIDResponseNullable":{"type":["string","null"],"description":"The id of the associated funding account, available in the Plaid Dashboard. If present, this indicates which of your business checking accounts will be credited or debited."},"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","x-hidden-from-docs":true},"BankTransferAccessToken":{"description":"The Plaid `access_token` for the account that will be debited or credited.","type":"string"},"APISecret":{"title":"APISecret","type":"string","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."},"APIClientID":{"title":"ClientID","type":"string","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."},"ScreeningStatusUpdatedWebhook":{"title":"ScreeningStatusUpdatedWebhook","description":"Fired when an individual screening status has changed, which can occur manually via the dashboard or during ongoing monitoring.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`SCREENING`"},"webhook_code":{"type":"string","description":"`STATUS_UPDATED`"},"screening_id":{"type":"string","description":"The ID of the associated screening."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","screening_id","environment"],"x-examples":{"example-1":{"webhook_type":"SCREENING","webhook_code":"STATUS_UPDATED","screening_id":"scr_52xR9LKo77r1Np","environment":"production"}}},"EntityScreeningStatusUpdatedWebhook":{"title":"EntityScreeningStatusUpdatedWebhook","description":"Fired when an entity screening status has changed, which can occur manually via the dashboard or during ongoing monitoring.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`ENTITY_SCREENING`"},"webhook_code":{"type":"string","description":"`STATUS_UPDATED`"},"entity_screening_id":{"type":"string","description":"The ID of the associated entity screening."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","entity_screening_id","environment"],"x-examples":{"example-1":{"webhook_type":"ENTITY_SCREENING","webhook_code":"STATUS_UPDATED","entity_screening_id":"entscr_52xR9LKo77r1Np","environment":"production"}}},"BeaconUserStatusUpdatedWebhook":{"title":"BeaconUserStatusUpdatedWebhook","deprecated":true,"description":"Fired when a Beacon User status has changed, which can occur manually via the dashboard or when information is reported to the Beacon network.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`BEACON`"},"webhook_code":{"type":"string","description":"`USER_STATUS_UPDATED`"},"beacon_user_id":{"type":"string","description":"The ID of the associated Beacon user."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","beacon_user_id","environment"],"x-examples":{"example-1":{"webhook_type":"BEACON","webhook_code":"USER_STATUS_UPDATED","beacon_user_id":"becusr_4WciCrtbxF76T8","environment":"production"}}},"BeaconReportCreatedWebhook":{"title":"BeaconReportCreatedWebhook","deprecated":true,"description":"Fired when one of your Beacon Users is first reported to the Beacon network.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`BEACON`"},"webhook_code":{"type":"string","description":"`REPORT_CREATED`"},"beacon_report_id":{"type":"string","description":"The ID of the associated Beacon Report."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","beacon_report_id","environment"],"x-examples":{"example-1":{"webhook_type":"BEACON","webhook_code":"REPORT_CREATED","beacon_report_id":"becrpt_2zugxV6hWQZG91","environment":"production"}}},"BeaconReportUpdatedWebhook":{"title":"BeaconReportUpdatedWebhook","deprecated":true,"description":"Fired when one of your existing Beacon Reports has been modified or removed from the Beacon Network.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`BEACON`"},"webhook_code":{"type":"string","description":"`REPORT_UPDATED`"},"beacon_report_id":{"type":"string","description":"The ID of the associated Beacon Report."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","beacon_report_id","environment"],"x-examples":{"example-1":{"webhook_type":"BEACON","webhook_code":"REPORT_UPDATED","beacon_report_id":"becrpt_2zugxV6hWQZG91","environment":"production"}}},"BeaconReportSyndicationCreatedWebhook":{"title":"BeaconReportSyndicationCreatedWebhook","deprecated":true,"description":"Fired when a report created on the Beacon Network matches with one of your Beacon Users.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`BEACON`"},"webhook_code":{"type":"string","description":"`REPORT_SYNDICATION_CREATED`"},"beacon_report_syndication_id":{"type":"string","description":"The ID of the associated Beacon Report Syndication."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","beacon_report_syndication_id","environment"],"x-examples":{"example-1":{"webhook_type":"BEACON","webhook_code":"REPORT_SYNDICATION_CREATED","beacon_report_syndication_id":"becrsn_eZPgiiv3JH8rfT","environment":"production"}}},"BeaconDuplicateDetectedWebhook":{"title":"BeaconDuplicateDetectedWebhook","deprecated":true,"description":"Fired when a Beacon User created within your organization matches one of your existing users.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`BEACON`"},"webhook_code":{"type":"string","description":"`DUPLICATE_DETECTED`"},"beacon_duplicate_id":{"type":"string","description":"The ID of the associated Beacon Duplicate."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","beacon_duplicate_id","environment"],"x-examples":{"example-1":{"webhook_type":"BEACON","webhook_code":"DUPLICATE_DETECTED","beacon_duplicate_id":"becdup_erJcFn97r9sugZ","environment":"production"}}},"IdentityVerificationStepUpdatedWebhook":{"title":"IdentityVerificationStepUpdatedWebhook","description":"Fired when an end user has completed a step of the Identity Verification process.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`IDENTITY_VERIFICATION`"},"webhook_code":{"type":"string","description":"`STEP_UPDATED`"},"identity_verification_id":{"type":"string","description":"The ID of the associated Identity Verification attempt."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","identity_verification_id","environment"],"x-examples":{"example-1":{"webhook_type":"IDENTITY_VERIFICATION","webhook_code":"STEP_UPDATED","identity_verification_id":"idv_52xR9LKo77r1Np","environment":"production"}}},"IdentityVerificationRetriedWebhook":{"title":"IdentityVerificationRetriedWebhook","description":"Fired when an identity verification has been retried, which can be triggered via the dashboard or the API.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`IDENTITY_VERIFICATION`"},"webhook_code":{"type":"string","description":"`RETRIED`"},"identity_verification_id":{"type":"string","description":"The ID of the associated Identity Verification attempt."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","identity_verification_id","environment"],"x-examples":{"example-1":{"webhook_type":"IDENTITY_VERIFICATION","webhook_code":"RETRIED","identity_verification_id":"idv_52xR9LKo77r1Np","environment":"production"}}},"IdentityVerificationStatusUpdatedWebhook":{"title":"IdentityVerificationStatusUpdatedWebhook","description":"Fired when the status of an identity verification has been updated, which can be triggered via the dashboard or the API.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`IDENTITY_VERIFICATION`"},"webhook_code":{"type":"string","description":"`STATUS_UPDATED`"},"identity_verification_id":{"type":"string","description":"The ID of the associated Identity Verification attempt."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","identity_verification_id","environment"],"x-examples":{"example-1":{"webhook_type":"IDENTITY_VERIFICATION","webhook_code":"STATUS_UPDATED","identity_verification_id":"idv_52xR9LKo77r1Np","environment":"production"}}},"TransactionsRemovedWebhook":{"title":"TransactionsRemovedWebhook","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.\n\nThis 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.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`TRANSACTIONS_REMOVED`"},"error":{"$ref":"#/components/schemas/PlaidError"},"removed_transactions":{"type":"array","description":"An array of `transaction_ids` corresponding to the removed transactions","items":{"type":"string"}},"item_id":{"$ref":"#/components/schemas/ItemId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","removed_transactions","item_id","environment"],"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"TRANSACTIONS_REMOVED","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","removed_transactions":["yBVBEwrPyJs8GvR77N7QTxnGg6wG74H7dEDN6","kgygNvAVPzSX9KkddNdWHaVGRVex1MHm3k9no"],"error":null,"environment":"production"}}},"ProcessorTransactionsRemovedWebhook":{"title":"ProcessorTransactionsRemovedWebhook","description":"This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).\n\nFired 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.\n\nThis webhook is intended for use with `/processor/transactions/get`; if you are using the newer `/processor/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.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`TRANSACTIONS_REMOVED`"},"error":{"$ref":"#/components/schemas/PlaidError"},"removed_transactions":{"type":"array","description":"An array of `transaction_ids` corresponding to the removed transactions","items":{"type":"string"}},"account_id":{"type":"string","description":"The ID of the account."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","removed_transactions","account_id","environment"],"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"TRANSACTIONS_REMOVED","account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","removed_transactions":["yBVBEwrPyJs8GvR77N7QTxnGg6wG74H7dEDN6","kgygNvAVPzSX9KkddNdWHaVGRVex1MHm3k9no"],"error":null,"environment":"production"}}},"DefaultUpdateWebhook":{"title":"DefaultUpdateWebhook","type":"object","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.\n\nThis 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.\n","x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"DEFAULT_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","error":null,"new_transactions":3,"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`DEFAULT_UPDATE`"},"error":{"$ref":"#/components/schemas/PlaidError"},"new_transactions":{"type":"number","description":"The number of new transactions detected since the last time this webhook was fired.","title":"DefaultUpdateWebhook"},"item_id":{"type":"string","description":"The `item_id` of the Item the webhook relates to."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","new_transactions","item_id","environment"]},"ProcessorDefaultUpdateWebhook":{"title":"ProcessorDefaultUpdateWebhook","type":"object","additionalProperties":true,"description":"This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).\n\nFired when new transaction data is available for an Item. Plaid will typically check for new transaction data several times a day.\n\nThis webhook is intended for use with `/processor/transactions/get`; if you are using the newer `/processor/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.\n","x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"DEFAULT_UPDATE","account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","error":null,"new_transactions":3,"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`DEFAULT_UPDATE`"},"error":{"$ref":"#/components/schemas/PlaidError"},"new_transactions":{"type":"number","description":"The number of new transactions detected since the last time this webhook was fired.","title":"DefaultUpdateWebhook"},"account_id":{"type":"string","description":"The ID of the account."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","new_transactions","account_id","environment"]},"SyncUpdatesAvailableWebhook":{"title":"SyncUpdatesAvailableWebhook","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`.\n\nAfter receipt of this webhook, the new changes can be fetched for the Item from `/transactions/sync`.\n\nNote 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.\n\nThis webhook will fire in the Sandbox environment as it would in Production. It can also be manually triggered in Sandbox by calling `/sandbox/item/fire_webhook`.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`SYNC_UPDATES_AVAILABLE`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"initial_update_complete":{"type":"boolean","description":"Indicates if initial pull information (most recent 30 days of transaction history) is available."},"historical_update_complete":{"type":"boolean","description":"Indicates if historical pull information (maximum transaction history requested, up to 2 years) is available."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","initial_update_complete","historical_update_complete","environment"],"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"SYNC_UPDATES_AVAILABLE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","user_id":"usr_9nSp2KuZ2x4JDw","initial_update_complete":true,"historical_update_complete":false,"environment":"production"}}},"ProcessorSyncUpdatesAvailableWebhook":{"title":"ProcessorSyncUpdatesAvailableWebhook","description":"This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).\n\nFired 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 `/processor/transactions/sync` endpoint. Note that when using `/processor/transactions/sync` the older webhooks `INITIAL_UPDATE`, `HISTORICAL_UPDATE`, `DEFAULT_UPDATE`, and `TRANSACTIONS_REMOVED`, which are intended for use with `/processor/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 `/processor/transactions/sync`.\n\nAfter receipt of this webhook, the new changes can be fetched for the Item from `/processor/transactions/sync`.\n\nNote that to receive this webhook for an Item, `/processor/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 `/processor/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.\n\nThis webhook will typically not fire in the Sandbox environment, due to the lack of dynamic transactions data.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`SYNC_UPDATES_AVAILABLE`"},"account_id":{"type":"string","description":"The ID of the account."},"initial_update_complete":{"type":"boolean","description":"Indicates if initial pull information is available."},"historical_update_complete":{"type":"boolean","description":"Indicates if historical pull information is available."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","account_id","initial_update_complete","historical_update_complete","environment"],"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"SYNC_UPDATES_AVAILABLE","account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","initial_update_complete":true,"historical_update_complete":false,"environment":"production"}}},"RecurringTransactionsUpdateWebhook":{"title":"RecurringTransactionsUpdateWebhook","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.\n\nAfter receipt of this webhook, the updated data can be fetched from `/transactions/recurring/get`.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`RECURRING_TRANSACTIONS_UPDATE`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"account_ids":{"type":"array","description":"A list of `account_ids` for accounts that have new or updated recurring transactions data.","items":{"type":"string"}},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","account_ids","environment"],"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"RECURRING_TRANSACTIONS_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","account_ids":["lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff"],"environment":"production"}}},"ProcessorRecurringTransactionsUpdateWebhook":{"title":"ProcessorRecurringTransactionsUpdateWebhook","description":"This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).\n\nFired 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.\n\nAfter receipt of this webhook, the updated data can be fetched from `/processor/transactions/recurring/get`.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`RECURRING_TRANSACTIONS_UPDATE`"},"account_id":{"type":"string","description":"The ID of the account."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","account_id","environment"],"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"RECURRING_TRANSACTIONS_UPDATE","account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","environment":"production"}}},"IdentityDefaultUpdateWebhook":{"x-examples":{"example-1":{"webhook_type":"IDENTITY","webhook_code":"DEFAULT_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","account_ids_with_updated_identity":{"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp":["addresses"]},"error":null,"environment":"production"}},"title":"IdentityDefaultUpdateWebhook","type":"object","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":{"webhook_type":{"type":"string","description":"`IDENTITY`"},"webhook_code":{"type":"string","description":"`DEFAULT_UPDATE`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"account_ids_with_updated_identity":{"$ref":"#/components/schemas/AccountIdsWithUpdatedIdentity"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","error","account_ids_with_updated_identity","environment"]},"AccountIdsWithUpdatedIdentity":{"title":"AccountIdsWithUpdatedIdentity","type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/IdentityUpdateTypes"}},"description":"An object with keys of `account_id`'s that are mapped to their respective identity attributes that changed.\n\nExample: `{ \"XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58\": [\"phone_numbers\"] }`\n"},"IdentityUpdateTypes":{"type":"string","description":"The possible types of identity data that may have changed.","enum":["addresses","emails","names","phone_numbers"]},"HistoricalUpdateWebhook":{"title":"HistoricalUpdateWebhook","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. 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.\n\nThis 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.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`HISTORICAL_UPDATE`"},"error":{"$ref":"#/components/schemas/PlaidError"},"new_transactions":{"type":"number","description":"The number of new transactions available"},"item_id":{"$ref":"#/components/schemas/ItemId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","new_transactions","item_id","environment"],"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"HISTORICAL_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","error":null,"new_transactions":231,"environment":"production"}}},"ProcessorHistoricalUpdateWebhook":{"title":"ProcessorHistoricalUpdateWebhook","description":"This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).\n\nFired 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. 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.\n\nThis webhook is intended for use with `/processor/transactions/get`; if you are using the newer `/processor/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.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`HISTORICAL_UPDATE`"},"error":{"$ref":"#/components/schemas/PlaidError"},"new_transactions":{"type":"number","description":"The number of new transactions available"},"account_id":{"type":"string","description":"The ID of the account."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","new_transactions","account_id","environment"],"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"HISTORICAL_UPDATE","account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","error":null,"new_transactions":231,"environment":"production"}}},"InitialUpdateWebhook":{"title":"InitialUpdateWebhook","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. 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.\n\nThis 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.","type":"object","additionalProperties":true,"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"INITIAL_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","error":null,"new_transactions":19,"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`INITIAL_UPDATE`"},"error":{"type":["string","null"],"description":"The error code associated with the webhook."},"new_transactions":{"type":"number","description":"The number of new transactions available."},"item_id":{"$ref":"#/components/schemas/ItemId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","new_transactions","item_id","environment"]},"ProcessorInitialUpdateWebhook":{"title":"ProcessorInitialUpdateWebhook","description":"This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).\n\nFired 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. 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.\n\nThis webhook is intended for use with `/processor/transactions/get`; if you are using the newer `/processor/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.","type":"object","additionalProperties":true,"x-examples":{"example-1":{"webhook_type":"TRANSACTIONS","webhook_code":"INITIAL_UPDATE","account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","error":null,"new_transactions":19,"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`INITIAL_UPDATE`"},"error":{"type":["string","null"],"description":"The error code associated with the webhook."},"new_transactions":{"type":"number","description":"The number of new transactions available."},"account_id":{"type":"string","description":"The ID of the account."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","new_transactions","account_id","environment"]},"ProcessorTokenWebhookUpdate":{"title":"ProcessorTokenWebhookUpdate","description":"This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).\n\nFired when a processor updates the webhook URL for a processor token via `/processor/token/webhook/update`.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`PROCESSOR_TOKEN`"},"webhook_code":{"type":"string","description":"`WEBHOOK_UPDATE_ACKNOWLEDGED`"},"error":{"$ref":"#/components/schemas/PlaidError"},"account_id":{"type":"string","description":"The ID of the account."},"new_webhook_url":{"type":"string","description":"The new webhook URL."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","account_id","new_webhook_url","environment"],"x-examples":{"example-1":{"webhook_type":"PROCESSOR_TOKEN","webhook_code":"WEBHOOK_UPDATE_ACKNOWLEDGED","account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","new_webhook_url":"https://www.example.com","error":null,"environment":"production"}}},"IssueResolvedWebhook":{"title":"IssueResolvedWebhook","description":"Webhook notifications are sent only when a subscribed issue is marked as resolved. The payload contains details about the issue at the time of its resolution, focusing on the most essential information.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`ISSUES`"},"webhook_code":{"type":"string","description":"`ISSUE_RESOLVED`"},"issue_id":{"type":"string","description":"The unique identifier of the connectivity issue."},"issue_description":{"type":"string","description":"A simple description of the error for the end user."},"issue_resolved_at":{"type":"string","format":"date-time","description":"The time when the issue was marked as resolved."},"institution_id":{"type":"string","description":"The unique identifier of the financial institution involved."},"institution_name":{"type":"string","description":"The name of the financial institution involved."}},"required":["webhook_type","webhook_code","issue_id","issue_description","issue_resolved_at","institution_id","institution_name"],"x-examples":{"example-1":{"webhook_type":"ISSUES","webhook_code":"ISSUE_RESOLVED","issue_id":"KI-123456","issue_description":"Connection to Example Bank temporarily unavailable.","issue_resolved_at":"2023-07-03T14:30:00Z","institution_id":"ins_4","institution_name":"Example Bank"}}},"PhoneNumber":{"title":"PhoneNumber","type":"object","additionalProperties":true,"description":"A phone number","properties":{"data":{"type":"string","description":"The phone number."},"primary":{"type":"boolean","description":"When `true`, identifies the phone number as the primary number on an account."},"type":{"type":"string","enum":["home","work","office","mobile","mobile1","other"],"description":"The type of phone number."}},"required":["data","primary","type"]},"Email":{"title":"Email","type":"object","additionalProperties":true,"properties":{"data":{"type":"string","description":"The email address."},"primary":{"type":"boolean","description":"When `true`, identifies the email address as the primary email on an account."},"type":{"type":"string","enum":["primary","secondary","other"],"description":"The type of email account as described by the financial institution."}},"required":["data","primary","type"],"description":"An object representing an email address"},"Address":{"title":"Address","type":"object","additionalProperties":true,"description":"A physical mailing address.","properties":{"data":{"$ref":"#/components/schemas/AddressData"},"primary":{"type":"boolean","description":"When `true`, identifies the address as the primary address on an account."}},"required":["data"]},"AddressNullable":{"description":"A physical mailing address.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/Address"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"AddressDataNullable":{"description":"Data about the components comprising an address.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/AddressData"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"AddressDataNullableNoRequiredFields":{"description":"Data about the components comprising an address.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/AddressDataNotRequired"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"AddressData":{"title":"AddressData","type":"object","additionalProperties":true,"description":"Data about the components comprising an address.","properties":{"city":{"type":["string","null"],"description":"The full city name"},"region":{"type":["string","null"],"description":"The region or state. In API versions 2018-05-22 and earlier, this field is called `state`.\nExample: `\"NC\"`"},"street":{"type":["string","null"],"description":"The full street address\nExample: `\"564 Main Street, APT 15\"`"},"postal_code":{"type":["string","null"],"description":"The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`."},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code"}},"required":["city","region","street","postal_code","country"]},"AddressDataNotRequired":{"title":"AddressData","type":"object","additionalProperties":true,"description":"Data about the components comprising an address.","properties":{"city":{"type":["string","null"],"description":"The full city name"},"region":{"type":["string","null"],"description":"The region or state. In API versions 2018-05-22 and earlier, this field is called `state`.\nExample: `\"NC\"`"},"street":{"type":["string","null"],"description":"The full street address\nExample: `\"564 Main Street, APT 15\"`"},"postal_code":{"type":["string","null"],"description":"The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`."},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code"}}},"ProcessorToken":{"title":"ProcessorToken","type":"string","description":"The processor token obtained from the Plaid integration partner. Processor tokens are in the format: `processor-<environment>-<identifier>`"},"Owner":{"title":"Owner","type":"object","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":{"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.\n\nIf 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.","type":"array","items":{"type":"string"}},"phone_numbers":{"type":"array","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"}},"emails":{"type":"array","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"}},"addresses":{"type":"array","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"}}},"required":["names","phone_numbers","emails","addresses"]},"OwnerOverride":{"title":"OwnerOverride","type":"object","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":{"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.","type":"array","items":{"type":"string"}},"phone_numbers":{"type":"array","description":"A list of phone numbers associated with the account.","items":{"$ref":"#/components/schemas/PhoneNumber"}},"emails":{"type":"array","description":"A list of email addresses associated with the account.","items":{"$ref":"#/components/schemas/Email"}},"addresses":{"type":"array","description":"Data about the various addresses associated with the account.","items":{"$ref":"#/components/schemas/AddressOverride"}}},"required":["names"]},"AddressOverride":{"title":"AddressOverride","type":"object","additionalProperties":true,"description":"A physical mailing address.","properties":{"data":{"$ref":"#/components/schemas/AddressDataOverride"},"primary":{"type":"boolean","description":"When `true`, identifies the address as the primary address on an account."}},"required":["data","primary"]},"AddressDataOverride":{"title":"AddressDataOverride","type":"object","additionalProperties":true,"description":"Data about the components comprising an address.","properties":{"city":{"type":"string","description":"The full city name"},"region":{"type":"string","description":"The region or state.\nExample: `\"NC\"`"},"street":{"type":"string","description":"The full street address\nExample: `\"564 Main Street, APT 15\"`"},"postal_code":{"type":"string","description":"The postal code."},"country":{"type":"string","description":"The ISO 3166-1 alpha-2 country code"}},"required":["city","street","country"]},"LiabilitiesObject":{"title":"LiabilitiesObject","type":"object","additionalProperties":true,"description":"An object containing liability accounts","properties":{"credit":{"type":["array","null"],"description":"The credit accounts returned.","items":{"$ref":"#/components/schemas/CreditCardLiability"}},"mortgage":{"description":"The mortgage accounts returned.","type":["array","null"],"items":{"$ref":"#/components/schemas/MortgageLiability"}},"student":{"description":"The student loan accounts returned.","type":["array","null"],"items":{"$ref":"#/components/schemas/StudentLoan"}},"loan":{"description":"The closed-end loan accounts returned. This field is omitted when using plaid-python earlier than 13.0.0 or plaid-ruby earlier than 50.0.0.","type":["array","null"],"items":{"$ref":"#/components/schemas/LoanLiability"}},"line_of_credit":{"description":"The line of credit accounts returned. This field is omitted when using plaid-python earlier than 13.0.0 or plaid-ruby earlier than 50.0.0.","type":["array","null"],"items":{"$ref":"#/components/schemas/LineOfCreditLiability"}}},"required":["credit","mortgage","student"]},"LoanLiability":{"title":"LoanLiability","type":"object","additionalProperties":true,"description":"Contains details about a closed-end loan account.","properties":{"account_id":{"type":"string","description":"The ID of the account that this liability belongs to."},"account_number":{"type":["string","null"],"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)."},"interest_rate":{"$ref":"#/components/schemas/LoanInterestRate"},"principal_balance":{"type":["number","null"],"format":"double","description":"The outstanding principal balance of the loan."},"origination_principal_amount":{"type":["number","null"],"format":"double","description":"The original principal amount of the loan."},"origination_date":{"type":["string","null"],"format":"date","description":"The date on which the loan was originated, in ISO 8601 format (YYYY-MM-DD)."},"loan_term_months":{"type":["integer","null"],"format":"int32","description":"The length of the loan term in months."},"maturity_date":{"type":["string","null"],"format":"date","description":"The date on which the loan is scheduled to be fully paid, in ISO 8601 format (YYYY-MM-DD)."},"payment_count":{"type":["integer","null"],"format":"int32","description":"The total number of payments scheduled for the loan."},"payment_frequency":{"$ref":"#/components/schemas/LoanPaymentFrequency"},"next_payment_amount":{"type":["number","null"],"format":"double","description":"The amount of the next scheduled payment."},"next_payment_due_date":{"type":["string","null"],"format":"date","description":"The due date of the next payment, in ISO 8601 format (YYYY-MM-DD)."},"last_payment_amount":{"type":["number","null"],"format":"double","description":"The amount of the most recent payment."},"last_payment_date":{"type":["string","null"],"format":"date","description":"The date of the most recent payment, in ISO 8601 format (YYYY-MM-DD)."},"payoff_amount":{"type":["number","null"],"format":"double","description":"The amount required to fully pay off the loan."},"ytd_interest_paid":{"type":["number","null"],"format":"double","description":"The year-to-date interest paid on the loan."},"compounding_period":{"$ref":"#/components/schemas/LoanCompoundingPeriod"}},"required":["account_id","account_number","interest_rate","principal_balance","origination_principal_amount","origination_date","loan_term_months","maturity_date","payment_count","payment_frequency","next_payment_amount","next_payment_due_date","last_payment_amount","last_payment_date","payoff_amount","ytd_interest_paid","compounding_period"]},"LineOfCreditLiability":{"title":"LineOfCreditLiability","type":"object","additionalProperties":true,"description":"Contains details about a line of credit account.","properties":{"account_id":{"type":"string","description":"The ID of the account that this liability belongs to."},"interest_rate":{"$ref":"#/components/schemas/LoanInterestRate"},"credit_limit":{"type":["number","null"],"format":"double","description":"The maximum amount of credit available on the account."},"available_credit":{"type":["number","null"],"format":"double","description":"The amount of credit currently available on the account."},"principal_balance":{"type":["number","null"],"format":"double","description":"The outstanding principal balance on the account."},"minimum_payment_amount":{"type":["number","null"],"format":"double","description":"The minimum payment due for the next billing cycle."},"next_payment_amount":{"type":["number","null"],"format":"double","description":"The amount of the next scheduled payment."},"next_payment_due_date":{"type":["string","null"],"format":"date","description":"The due date of the next payment, in ISO 8601 format (YYYY-MM-DD)."},"last_payment_amount":{"type":["number","null"],"format":"double","description":"The amount of the most recent payment."},"last_payment_date":{"type":["string","null"],"format":"date","description":"The date of the most recent payment, in ISO 8601 format (YYYY-MM-DD)."},"last_statement_balance":{"type":["number","null"],"format":"double","description":"The total amount owed as of the last statement issued."},"last_statement_issue_date":{"type":["string","null"],"format":"date","description":"The date of the last statement, in ISO 8601 format (YYYY-MM-DD)."},"past_due_amount":{"type":["number","null"],"format":"double","description":"The amount of the payment that is currently past due."},"finance_charges":{"type":["number","null"],"format":"double","description":"The finance charges assessed on the account."},"draw_period_end_date":{"type":["string","null"],"format":"date","description":"The date on which the draw period ends, in ISO 8601 format (YYYY-MM-DD)."},"aprs":{"type":"array","description":"The various interest rates that apply to the account.","items":{"$ref":"#/components/schemas/APR"}}},"required":["account_id","interest_rate","credit_limit","available_credit","principal_balance","minimum_payment_amount","next_payment_amount","next_payment_due_date","last_payment_amount","last_payment_date","last_statement_balance","last_statement_issue_date","past_due_amount","finance_charges","draw_period_end_date","aprs"]},"LoanInterestRate":{"title":"LoanInterestRate","type":["object","null"],"additionalProperties":true,"description":"Information about the interest rate on a loan or line of credit.","properties":{"percentage":{"type":["number","null"],"format":"double","description":"The interest rate percentage."},"type":{"$ref":"#/components/schemas/LoanInterestRateType"}},"required":["percentage","type"]},"LoanInterestRateType":{"title":"LoanInterestRateType","type":["string","null"],"enum":["fixed","variable"],"description":"The type of interest rate."},"LoanPaymentFrequency":{"title":"LoanPaymentFrequency","type":["string","null"],"enum":["daily","weekly","biweekly","semimonthly","monthly","semiannually","annually"],"description":"The frequency at which payments are scheduled."},"LoanCompoundingPeriod":{"title":"LoanCompoundingPeriod","type":["string","null"],"enum":["daily","weekly","biweekly","semimonthly","monthly","semiannually","annually"],"description":"The frequency at which interest is compounded."},"StudentLoan":{"title":"StudentLoan","type":"object","additionalProperties":true,"description":"Contains details about a student loan account","properties":{"account_id":{"type":["string","null"],"description":"The ID of the account that this liability belongs to. Each account can only contain one liability."},"account_number":{"type":["string","null"],"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)."},"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).","type":["array","null"],"items":{"type":"string","format":"date"}},"expected_payoff_date":{"type":["string","null"],"format":"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)."},"guarantor":{"type":["string","null"],"description":"The guarantor of the student loan."},"interest_rate_percentage":{"description":"The interest rate on the loan as a percentage.","type":"number","format":"double"},"is_overdue":{"description":"`true` if a payment is currently overdue. Availability for this field is limited.","type":["boolean","null"]},"last_payment_amount":{"description":"The amount of the last payment.","type":["number","null"],"format":"double"},"last_payment_date":{"type":["string","null"],"format":"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)."},"last_statement_balance":{"description":"The total amount owed as of the last statement issued","type":["number","null"],"format":"double"},"last_statement_issue_date":{"type":["string","null"],"format":"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)."},"loan_name":{"type":["string","null"],"description":"The type of loan, e.g., \"Consolidation Loans\"."},"loan_status":{"$ref":"#/components/schemas/StudentLoanStatus"},"minimum_payment_amount":{"description":"The minimum payment due for the next billing cycle. There are some exceptions:\nSome 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`), Granite State (`ins_116308`), and Oklahoma Student Loan Authority (`ins_116945`).\nFirstmark (`ins_116295` ) and Navient (`ins_116248`) will display as $0 if there is an autopay program in effect.","type":["number","null"],"format":"double"},"next_payment_due_date":{"type":["string","null"],"format":"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)."},"origination_date":{"type":["string","null"],"format":"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).\n"},"origination_principal_amount":{"description":"The original principal balance of the loan.","type":["number","null"],"format":"double"},"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`.","type":["number","null"],"format":"double"},"payment_reference_number":{"type":["string","null"],"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."},"pslf_status":{"$ref":"#/components/schemas/PSLFStatus"},"repayment_plan":{"$ref":"#/components/schemas/StudentRepaymentPlan"},"sequence_number":{"type":["string","null"],"description":"The sequence number of the student loan. Heartland ECSI (`ins_116948`) does not make this field available."},"servicer_address":{"$ref":"#/components/schemas/ServicerAddressData"},"ytd_interest_paid":{"description":"The year to date (YTD) interest paid. Availability for this field is limited.","type":["number","null"],"format":"double"},"ytd_principal_paid":{"description":"The year to date (YTD) principal paid. Availability for this field is limited.","type":["number","null"],"format":"double"}},"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"]},"CreditCardLiability":{"title":"CreditCardLiability","type":"object","additionalProperties":true,"description":"An object representing a credit card account.","properties":{"account_id":{"type":["string","null"],"description":"The ID of the account that this liability belongs to."},"aprs":{"type":"array","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"}},"is_overdue":{"description":"true if a payment is currently overdue. Availability for this field is limited.","type":["boolean","null"]},"last_payment_amount":{"description":"The amount of the last payment.","type":["number","null"],"format":"double"},"last_payment_date":{"type":["string","null"],"format":"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."},"last_statement_issue_date":{"type":["string","null"],"format":"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)."},"last_statement_balance":{"description":"The total amount owed as of the last statement issued","type":["number","null"],"format":"double"},"minimum_payment_amount":{"description":"The minimum payment due for the next billing cycle.","type":["number","null"],"format":"double"},"next_payment_due_date":{"type":["string","null"],"format":"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)."},"cash_advance_limit":{"description":"The credit limit for cash advances on the account.","type":["number","null"],"format":"double","x-hidden-from-docs":true}},"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"]},"MortgageLiability":{"title":"MortgageLiability","type":"object","additionalProperties":true,"description":"Contains details about a mortgage account.","properties":{"account_id":{"type":"string","description":"The ID of the account that this liability belongs to."},"account_number":{"type":["string","null"],"description":"The account number of the loan."},"current_late_fee":{"description":"The current outstanding amount charged for late payment.","type":["number","null"],"format":"double"},"escrow_balance":{"type":["number","null"],"format":"double","description":"Total amount held in escrow to pay taxes and insurance on behalf of the borrower."},"has_pmi":{"type":["boolean","null"],"description":"Indicates whether the borrower has private mortgage insurance in effect."},"has_prepayment_penalty":{"description":"Indicates whether the borrower will pay a penalty for early payoff of mortgage.","type":["boolean","null"]},"interest_rate":{"$ref":"#/components/schemas/MortgageInterestRate"},"last_payment_amount":{"description":"The amount of the last payment.","type":["number","null"],"format":"double"},"last_payment_date":{"type":["string","null"],"format":"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)."},"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.","type":["string","null"]},"loan_term":{"description":"Full duration of mortgage as at origination (e.g. `10 year`).","type":["string","null"]},"maturity_date":{"type":["string","null"],"format":"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)."},"next_monthly_payment":{"type":["number","null"],"format":"double","description":"The amount of the next payment."},"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).","type":["string","null"],"format":"date"},"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).","type":["string","null"],"format":"date"},"origination_principal_amount":{"type":["number","null"],"format":"double","description":"The original principal balance of the mortgage."},"past_due_amount":{"type":["number","null"],"format":"double","description":"Amount of loan (principal + interest) past due for payment."},"property_address":{"$ref":"#/components/schemas/MortgagePropertyAddress"},"ytd_interest_paid":{"description":"The year to date (YTD) interest paid.","type":["number","null"],"format":"double"},"ytd_principal_paid":{"type":["number","null"],"format":"double","description":"The YTD principal paid."}},"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"]},"MortgageInterestRate":{"title":"MortgageInterestRate","type":"object","additionalProperties":true,"description":"Object containing metadata about the interest rate for the mortgage.","properties":{"percentage":{"type":["number","null"],"format":"double","description":"Percentage value (interest rate of current mortgage, not APR) of interest payable on a loan."},"type":{"type":["string","null"],"description":"The type of interest charged (fixed or variable)."}},"required":["percentage","type"]},"MortgagePropertyAddress":{"title":"MortgagePropertyAddress","type":"object","additionalProperties":true,"description":"Object containing fields describing property address.","properties":{"city":{"type":["string","null"],"description":"The city name."},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code."},"postal_code":{"type":["string","null"],"description":"The five or nine digit postal code."},"region":{"type":["string","null"],"description":"The region or state (example \"NC\")."},"street":{"type":["string","null"],"description":"The full street address (example \"564 Main Street, Apt 15\")."}},"required":["city","country","postal_code","region","street"]},"StudentLoanStatus":{"title":"StudentLoanStatus","type":"object","additionalProperties":true,"description":"An object representing the status of the student loan","properties":{"end_date":{"type":["string","null"],"format":"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).\n"},"type":{"type":["string","null"],"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","pending idr"],"description":"The status type of the student loan"}},"required":["end_date","type"]},"StudentRepaymentPlan":{"title":"StudentRepaymentPlan","type":"object","additionalProperties":true,"description":"An object representing the repayment plan for the student loan","properties":{"description":{"type":["string","null"],"description":"The description of the repayment plan as provided by the servicer."},"type":{"type":["string","null"],"enum":["extended graduated","extended standard","graduated","income-contingent repayment","income-based repayment","income-sensitive repayment","interest only","other","pay as you earn","revised pay as you earn","standard","saving on a valuable education",null],"description":"The type of the repayment plan."}},"required":["description","type"]},"PSLFStatus":{"title":"PSLFStatus","type":"object","additionalProperties":true,"x-hidden-from-docs":true,"deprecated":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`). Since FedLoan no longer services student loans, this field is no longer returned. ","properties":{"estimated_eligibility_date":{"type":["string","null"],"format":"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)."},"payments_made":{"type":["integer","null"],"description":"The number of qualifying payments that have been made."},"payments_remaining":{"type":["integer","null"],"description":"The number of qualifying payments remaining."}},"required":["estimated_eligibility_date","payments_made","payments_remaining"]},"ServicerAddressData":{"title":"ServicerAddressData","type":"object","additionalProperties":true,"description":"The address of the student loan servicer. This is generally the remittance address to which payments should be sent.","properties":{"city":{"type":["string","null"],"description":"The full city name"},"region":{"type":["string","null"],"description":"The region or state\nExample: `\"NC\"`"},"street":{"type":["string","null"],"description":"The full street address\nExample: `\"564 Main Street, APT 15\"`"},"postal_code":{"type":["string","null"],"description":"The postal code"},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code"}},"required":["city","region","street","postal_code","country"]},"APR":{"title":"APR","type":"object","additionalProperties":true,"description":"Information about the APR on the account.","properties":{"apr_percentage":{"type":"number","format":"double","description":"Annual Percentage Rate applied.\n"},"apr_type":{"type":"string","enum":["balance_transfer_apr","cash_apr","penalty_apr","purchase_apr","special"],"description":"The type of balance to which the APR applies."},"balance_subject_to_apr":{"type":["number","null"],"format":"double","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."},"interest_charge_amount":{"type":["number","null"],"format":"double","description":"Amount of money charged due to interest from last statement."}},"required":["apr_percentage","apr_type","balance_subject_to_apr","interest_charge_amount"]},"AuthMetadata":{"title":"AuthMetadata","type":["object","null"],"additionalProperties":true,"description":"Metadata that captures information about the Auth features of an institution.","properties":{"supported_methods":{"$ref":"#/components/schemas/AuthSupportedMethods"}},"required":["supported_methods"]},"AuthSupportedMethods":{"title":"AuthSupportedMethods","type":["object","null"],"additionalProperties":true,"description":"Metadata specifically related to which auth methods an institution supports.","properties":{"instant_auth":{"type":"boolean","description":"Indicates if instant auth is supported."},"instant_match":{"type":"boolean","description":"Indicates if instant match is supported."},"automated_micro_deposits":{"type":"boolean","description":"Indicates if automated micro-deposits are supported."},"instant_micro_deposits":{"type":"boolean","description":"Indicates if instant micro-deposits are supported."}},"required":["instant_auth","instant_match","automated_micro_deposits","instant_micro_deposits"]},"PaymentInitiationMetadata":{"title":"PaymentInitiationMetadata","type":["object","null"],"additionalProperties":true,"description":"Metadata that captures what specific payment configurations an institution supports when making Payment Initiation requests.","properties":{"supports_international_payments":{"type":"boolean","description":"Indicates whether the institution supports payments from a different country."},"supports_sepa_instant":{"type":"boolean","description":"Indicates whether the institution supports SEPA Instant payments."},"maximum_payment_amount":{"$ref":"#/components/schemas/PaymentInitiationMaximumPaymentAmount"},"supports_refund_details":{"type":"boolean","description":"Indicates whether the institution supports returning refund details when initiating a payment."},"standing_order_metadata":{"$ref":"#/components/schemas/PaymentInitiationStandingOrderMetadata"},"supports_payment_consents":{"type":"boolean","description":"Indicates whether the institution supports payment consents."},"supports_commercial_payment_consents":{"type":"boolean","description":"Indicates whether the institution supports commercial variable recurring payment (cVRP) consents."}},"required":["supports_international_payments","supports_sepa_instant","supports_refund_details","standing_order_metadata","supports_payment_consents","supports_commercial_payment_consents"]},"PaymentInitiationMaximumPaymentAmount":{"type":"object","description":"A mapping of currency to maximum payment amount (denominated in the smallest unit of currency) supported by the institution.\n\nExample: `{\"GBP\": \"10000\"}`\n","additionalProperties":{"type":"string"}},"PaymentInitiationStandingOrderMetadata":{"title":"PaymentInitiationStandingOrderMetadata","type":["object","null"],"additionalProperties":true,"description":"Metadata specifically related to valid Payment Initiation standing order configurations for the institution.","properties":{"supports_standing_order_end_date":{"type":"boolean","description":"Indicates whether the institution supports closed-ended standing orders by providing an end date."},"supports_standing_order_negative_execution_days":{"type":"boolean","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."},"valid_standing_order_intervals":{"type":["array","null"],"description":"A list of the valid standing order intervals supported by the institution.","items":{"$ref":"#/components/schemas/PaymentScheduleInterval"}}},"required":["supports_standing_order_end_date","supports_standing_order_negative_execution_days","valid_standing_order_intervals"]},"PaymentInitiationAddress":{"title":"PaymentInitiationAddress","type":["object","null"],"additionalProperties":true,"description":"The optional address of the payment recipient's bank account. Required by most institutions outside of the UK.","properties":{"street":{"description":"An array of length 1-2 representing the street address where the recipient is located. Maximum of 70 characters.","type":"array","minItems":1,"items":{"type":"string","minLength":1}},"city":{"type":"string","description":"The city where the recipient is located. Maximum of 35 characters.","minLength":1,"maxLength":35},"postal_code":{"type":"string","description":"The postal code where the recipient is located. Maximum of 16 characters.","minLength":1,"maxLength":16},"country":{"type":"string","description":"The ISO 3166-1 alpha-2 country code where the recipient is located.","minLength":2,"maxLength":2}},"required":["street","city","postal_code","country"]},"ExternalPaymentScheduleBase":{"title":"ExternalPaymentScheduleBase","type":["object","null"],"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.","properties":{"interval":{"$ref":"#/components/schemas/PaymentScheduleInterval"},"interval_execution_day":{"description":"The day of the interval on which to schedule the payment.\n\nIf the payment interval is weekly, `interval_execution_day` should be an integer from 1 (Monday) to 7 (Sunday).\n\nIf 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":{"format":"date","type":"string","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`.\n\nIf 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."},"end_date":{"format":"date","type":["string","null"],"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`.\nIf 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."},"adjusted_start_date":{"format":"date","type":["string","null"],"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`."}}},"ExternalPaymentScheduleRequest":{"title":"ExternalPaymentScheduleRequest","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.","allOf":[{"$ref":"#/components/schemas/ExternalPaymentScheduleBase"},{"type":"object"}],"required":["start_date","interval","interval_execution_day"]},"PaymentScheduleInterval":{"type":"string","title":"PaymentScheduleInterval","enum":["WEEKLY","MONTHLY"],"description":"The frequency interval of the payment.","minLength":1},"PaymentScheme":{"type":["string","null"],"enum":[null,"LOCAL_DEFAULT","LOCAL_INSTANT","SEPA_CREDIT_TRANSFER","SEPA_CREDIT_TRANSFER_INSTANT"],"description":"Payment scheme. If not specified - the default in the region will be used (e.g. `SEPA_CREDIT_TRANSFER` for EU). In responses, if the scheme is not explicitly specified in the request, this field is omitted. Using unsupported values will result in a failed payment.\n\n`LOCAL_DEFAULT`: The default payment scheme for the selected market and currency will be used.\n\n`LOCAL_INSTANT`: The instant payment scheme for the selected market and currency will be used (if applicable). Fees may be applied by the institution.\n\n`SEPA_CREDIT_TRANSFER`: The standard payment to a beneficiary within the SEPA area.\n\n`SEPA_CREDIT_TRANSFER_INSTANT`: Instant payment within the SEPA area. May involve additional fees and may not be available at some banks."},"WalletPaymentScheme":{"type":["string","null"],"enum":[null,"FASTER_PAYMENTS","SEPA_CREDIT_TRANSFER","SEPA_CREDIT_TRANSFER_INSTANT"],"description":"The payment scheme used to execute this transaction. This is present only for transaction types `PAYOUT` and `REFUND`.\n\n`FASTER_PAYMENTS`: The standard payment scheme within the UK.\n\n`SEPA_CREDIT_TRANSFER`: The standard payment to a beneficiary within the SEPA area.\n\n`SEPA_CREDIT_TRANSFER_INSTANT`: Instant payment to a beneficiary within the SEPA area."},"PaymentInitiationConsentScope":{"type":"string","title":"PaymentInitiationConsentScope","deprecated":true,"enum":["ME_TO_ME","EXTERNAL"],"description":"This field is deprecated in favor of the consent `type` field. Consents are required to have a single type.\n\nPayment consent scope. Defines possible directions for payments made with the given consent.\n\n`ME_TO_ME`: Allows moving money between accounts owned by the same user.\n\n`EXTERNAL`: Allows initiating payments from the user's account to third parties."},"PaymentInitiationConsentType":{"type":"string","title":"PaymentInitiationConsentType","enum":["SWEEPING","COMMERCIAL"],"description":"Payment consent type. Defines possible use case for payments made with the given consent.\n\n`SWEEPING`: Allows moving money between accounts owned by the same user.\n\n`COMMERCIAL`: Allows initiating payments from the user's account to third parties."},"PaymentInitiationConsentProcessingMode":{"type":"string","title":"PaymentInitiationConsentProcessingMode","enum":["ASYNC","IMMEDIATE"],"description":"Decides the mode under which the payment processing should be performed, using `IMMEDIATE` as default.\n\n`IMMEDIATE`: Will immediately execute the payment, waiting for a response from the ASPSP before returning the result of the payment initiation. This is ideal for user-present flows.\n\n `ASYNC`: Will accept a payment execution request and schedule it for processing, immediately returning the new `payment_id`. Listen for webhooks to obtain real-time updates on the payment status. This is ideal for non user-present flows."},"ExternalPaymentInitiationConsentOptions":{"type":["object","null"],"title":"ExternalPaymentInitiationConsentOptions","description":"(Deprecated) Additional payment consent options. Please use `payer_details` to specify the account.","deprecated":true,"properties":{"request_refund_details":{"type":["boolean","null"],"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."},"iban":{"type":["string","null"],"minLength":15,"maxLength":34,"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."},"bacs":{"$ref":"#/components/schemas/PaymentInitiationOptionalRestrictionBacs"}}},"PaymentInitiationConsentConstraints":{"type":"object","title":"PaymentInitiationConsentConstraints","description":"Limitations that will be applied to payments initiated using the payment consent.","properties":{"valid_date_time":{"$ref":"#/components/schemas/PaymentConsentValidDateTime"},"max_payment_amount":{"$ref":"#/components/schemas/PaymentConsentMaxPaymentAmount"},"periodic_amounts":{"type":"array","description":"A list of amount limitations per period of time.","minItems":1,"items":{"$ref":"#/components/schemas/PaymentConsentPeriodicAmount"}}},"required":["max_payment_amount","periodic_amounts"]},"PaymentInitiationConsentPayerDetails":{"title":"PaymentInitiationConsentPayerDetails","type":["object","null"],"additionalProperties":true,"description":"An object representing the payment consent payer details.\nPayer `name` and account `numbers` are required to lock the account to which the consent can be created.","properties":{"name":{"type":"string","description":"The name of the payer as it appears in their bank account","minLength":1},"numbers":{"$ref":"#/components/schemas/PaymentInitiationConsentPayerNumbers"},"address":{"$ref":"#/components/schemas/PaymentInitiationAddress"},"date_of_birth":{"type":["string","null"],"format":"date","description":"The payer's birthdate, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format."},"phone_numbers":{"description":"The payer's phone numbers in E.164 format: +{countrycode}{number}","type":"array","items":{"type":"string"}},"emails":{"description":"The payer's emails","type":"array","items":{"type":"string"}}},"required":["name","numbers"]},"PaymentInitiationConsentPayerNumbers":{"title":"PaymentInitiationConsentPayerNumbers","type":"object","description":"The payer's bank account numbers. Exactly one of IBAN or Bacs data is required.","additionalProperties":true,"properties":{"bacs":{"$ref":"#/components/schemas/PaymentInitiationOptionalRestrictionBacs"},"iban":{"$ref":"#/components/schemas/NumbersIBANNullable"}}},"PaymentConsentMaxPaymentAmount":{"description":"Maximum amount of a single payment initiated using the payment consent.","allOf":[{"$ref":"#/components/schemas/PaymentAmount"}]},"ConsentPaymentIdempotencyKey":{"title":"ConsentPaymentIdempotencyKey","type":"string","maxLength":128,"minLength":1,"description":"A random key provided by the client, per unique consent payment. Maximum of 128 characters.\n\nThe 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 48 hours of the first request, from being processed."},"ExternalPaymentOptions":{"title":"PaymentOptions","description":"Additional payment options","type":["object","null"],"properties":{"request_refund_details":{"type":["boolean","null"],"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."},"iban":{"type":["string","null"],"minLength":15,"maxLength":34,"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."},"bacs":{"$ref":"#/components/schemas/PaymentInitiationOptionalRestrictionBacs"},"scheme":{"$ref":"#/components/schemas/PaymentScheme"}}},"ExternalPaymentRefundDetails":{"title":"ExternalPaymentRefundDetails","description":"Details about external payment refund","type":["object","null"],"properties":{"name":{"type":"string","description":"The name of the account holder."},"iban":{"type":["string","null"],"description":"The International Bank Account Number (IBAN) for the account."},"bacs":{"$ref":"#/components/schemas/RecipientBACSNullable"}},"required":["name","iban","bacs"]},"ExternalPaymentScheduleGet":{"title":"ExternalPaymentScheduleGet","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":["adjusted_start_date","end_date","interval","interval_execution_day","start_date"],"anyOf":[{"allOf":[{"$ref":"#/components/schemas/ExternalPaymentScheduleBase"},{"type":"object"}]},{"type":"null"}]},"Products":{"title":"Products","enum":["assets","auth","balance","balance_plus","beacon","identity","identity_match","investments","investments_auth","liabilities","payment_initiation","identity_verification","transactions","credit_details","income","income_verification","standing_orders","transfer","employment","recurring_transactions","transactions_refresh","signal","statements","processor_payments","processor_identity","profile","cra_base_report","cra_income_insights","cra_partner_insights","cra_network_insights","cra_cashflow_insights","cra_monitoring","cra_lend_score","cra_plaid_credit_score","cra_qualify","cra_home_lending","cra_lend_score_complete","cra_income_complete","layer","pay_by_bank","protect_linked_bank","protect_transactions"],"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.","type":"string"},"UserBasedProducts":{"title":"UserBasedProducts","enum":["cra_base_report","cra_income_insights","cra_partner_insights","cra_network_insights","cra_cashflow_insights","cra_monitoring","cra_lend_score","cra_plaid_credit_score","investments","liabilities","protect_linked_bank","protect_transactions","transactions"],"description":"A list of user-based products. User-based products include Financial Management products, Protect products, CRA products, and subscription products.","type":"string"},"ProductStatus":{"title":"ProductStatus","type":["object","null"],"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.","properties":{"status":{"type":"string","deprecated":true,"enum":["HEALTHY","DEGRADED","DOWN"],"description":"This field is deprecated in favor of the `breakdown` object, which provides more granular institution health data.\n\n`HEALTHY`: nearly all requests are successful\n\n`DEGRADED`: a meaningful share of requests are failing, or data refreshes are delayed\n\n`DOWN`: nearly all requests are failing, or data refreshes have stopped"},"last_status_change":{"type":"string","format":"date-time","description":"[ISO 8601](https://wikipedia.org/wiki/ISO_8601) formatted timestamp of the last status change for the institution.\n"},"breakdown":{"$ref":"#/components/schemas/ProductStatusBreakdown"}},"required":["status","last_status_change","breakdown"]},"ProductStatusBreakdown":{"title":"StatusBreakdown","type":"object","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/#troubleshooting-institution-insights).","properties":{"success":{"description":"The percentage of login attempts that are successful, expressed as a decimal.","type":"number","format":"double"},"error_plaid":{"description":"The percentage of logins that are failing due to an internal Plaid issue, expressed as a decimal.\n","type":"number","format":"double"},"error_institution":{"description":"The percentage of logins that are failing due to an issue in the institution's system, expressed as a decimal.","type":"number","format":"double"},"refresh_interval":{"type":"string","enum":["NORMAL","DELAYED","STOPPED"],"description":"How frequently data for subscription products like Investments, Transactions, and Liabilities, is being refreshed. `NORMAL`: data is refreshed at least every 2 days. `DELAYED`: data is refreshed less often than every 2 days. `STOPPED`: data is refreshed less often than every 14 days, or not at all. The `refresh_interval` may be `DELAYED` or `STOPPED` even when the success rate is high."}},"required":["success","error_plaid","error_institution"]},"UserCustomPassword":{"title":"UserCustomPassword","type":"object","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.","x-examples":{},"properties":{"version":{"type":["integer","null"],"minimum":1,"maximum":2,"description":"The version of the password schema to use, sent as a number. 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."},"seed":{"type":"string","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.\n\nNote 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."},"roll_dates_forward":{"type":"boolean","default":false,"description":"When `true`, every date in this configuration is shifted at Item creation so that the most recent activity date falls on the day the Item is created, keeping the spacing between dates. Activity dates are transaction and investment transaction dates, pay period end dates and pay days, holding `institution_price_as_of` dates, and a loan's `last_payment_date` or `last_statement_issue_date`. Scheduled loan dates such as `origination_date`, `maturity_date`, and `next_payment_due_date` move by the same amount but are never the anchor. This lets a saved configuration keep producing recent data without being edited.\n\nA `date_posted` later than its `date_transacted` stays later, so the most recent transaction can still be pending. Dates are UTC calendar dates. The shift happens once, when the Item is created; the Item keeps the shifted dates afterwards. Defaults to `false`."},"has_perpetual_otp":{"type":"boolean","default":false,"description":"When `true`, the Item behaves like an Item at an institution that requires a one-time passcode (OTP) or other multi-factor authentication at every login, so it can be updated only while the user is present. `/item/get` returns an `update_type` of `user_present_required`. Endpoints that fetch new data from the institution, such as `/transactions/refresh` and `/accounts/balance/get`, return `ITEM_LOGIN_REQUIRED`. If your integration isn't enabled for this kind of institution, they return [`MFA_NOT_SUPPORTED`](https://plaid.com/docs/errors/item/#mfa_not_supported) instead. Endpoints that return data Plaid already has, such as `/transactions/sync` and `/accounts/get`, still work. Defaults to `false`."},"override_accounts":{"type":"array","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"}},"mfa":{"$ref":"#/components/schemas/MFA"},"recaptcha":{"type":"string","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."},"force_error":{"type":"string","description":"An error code to force on Item creation. Possible values are:\n\n`\"INSTITUTION_NOT_RESPONDING\"`\n`\"INSTITUTION_NO_LONGER_SUPPORTED\"`\n`\"INVALID_CREDENTIALS\"`\n`\"INVALID_MFA\"`\n`\"ITEM_LOCKED\"`\n`\"ITEM_LOGIN_REQUIRED\"`\n`\"ITEM_NOT_SUPPORTED\"`\n`\"INVALID_LINK_TOKEN\"`\n`\"MFA_NOT_SUPPORTED\"`\n`\"NO_ACCOUNTS\"`\n`\"PLAID_ERROR\"`\n`\"USER_INPUT_TIMEOUT\"`\n`\"USER_SETUP_REQUIRED\"`"}}},"MFA":{"title":"MFA","type":"object","additionalProperties":true,"properties":{"type":{"type":"string","description":"Possible values are `device`, `selections`, or `questions`.\n\nIf value is `device`, the MFA answer is `1234`.\n\nIf value is `selections`, the MFA answer is always the first option.\n\nIf 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`."},"question_rounds":{"type":"number","description":"Number of rounds of questions. Required if value of `type` is `questions`. "},"questions_per_round":{"type":"number","description":"Number of questions per round. Required if value of `type` is `questions`. If value of type is `selections`, default value is 2."},"selection_rounds":{"description":"Number of rounds of selections, used if `type` is `selections`. Defaults to 1.","type":"number"},"selections_per_question":{"type":"number","description":"Number of available answers per question, used if `type` is `selections`. Defaults to 2.\n"}},"required":["type"],"description":"Specifies the multi-factor authentication settings to use with this test account"},"OverrideAccounts":{"title":"OverrideAccounts","type":"object","additionalProperties":true,"description":"Data to use to set values of test accounts. Some values cannot be specified in the schema and will instead be calculated from other test data in order to achieve more consistent, realistic test data.","properties":{"type":{"$ref":"#/components/schemas/OverrideAccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"starting_balance":{"type":"number","format":"double","description":"If provided, the account will start with this amount as the current balance.\n"},"force_available_balance":{"type":"number","format":"double","description":"If provided, the account will always have this amount as its available balance, regardless of current balance or changes in transactions over time. Cannot be set together with `has_null_available_balance`.\n"},"has_null_available_balance":{"type":"boolean","description":"If set to `true`, the account will always have null as its available balance, regardless of current balance or changes in transactions over time. Cannot be set together with `force_available_balance`.\n"},"currency":{"type":"string","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."},"meta":{"$ref":"#/components/schemas/Meta"},"numbers":{"$ref":"#/components/schemas/Numbers"},"transactions":{"description":"Specify the list of transactions on the account.","type":"array","items":{"$ref":"#/components/schemas/TransactionOverride"}},"holdings":{"description":"Specify the list of holdings on the account.","type":"array","items":{"$ref":"#/components/schemas/HoldingsOverride"}},"investment_transactions":{"description":"Specify the list of investment transactions on the account.","type":"array","items":{"$ref":"#/components/schemas/Investments_TransactionsOverride"}},"identity":{"$ref":"#/components/schemas/OwnerOverride"},"liability":{"$ref":"#/components/schemas/LiabilityOverride"},"inflow_model":{"$ref":"#/components/schemas/InflowModel"},"income":{"$ref":"#/components/schemas/IncomeOverride"}},"required":["type","subtype"]},"Meta":{"title":"Meta","type":"object","additionalProperties":true,"description":"Allows specifying the metadata of the test account","properties":{"name":{"type":"string","description":"The account's name"},"official_name":{"type":"string","description":"The account's official name"},"limit":{"type":"number","format":"double","description":"The account's limit"},"mask":{"type":"string","description":"The account's mask. Should be an empty string or 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).","pattern":"^$|^[A-Za-z0-9]{2,4}$"},"apy":{"type":"number","format":"double","description":"The annual percentage yield (APY) to report on the account, expressed as a percentage (e.g. `4.25` means 4.25%). Applies to interest-bearing depository accounts. If omitted, savings, money market, CD, cash management, and HSA accounts report a generated APY, and other accounts report none."}}},"Numbers":{"title":"Numbers","type":"object","additionalProperties":true,"description":"Account and bank identifier number data used to configure the test account. All values are optional.","properties":{"account":{"type":"string","description":"Will be used for the account number."},"ach_routing":{"type":"string","description":"Must be a valid ACH routing number. To test `/transfer/capabilities/get`, set this to 322271627 to force a `true` result."},"ach_wire_routing":{"type":"string","description":"Must be a valid wire transfer routing number."},"eft_institution":{"type":"string","description":"EFT institution number. Must be specified alongside `eft_branch`."},"eft_branch":{"type":"string","description":"EFT branch number. Must be specified alongside `eft_institution`."},"international_bic":{"type":"string","description":"Business Identifier Code (BIC). Must be specified alongside `international_iban`."},"international_iban":{"type":"string","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`."},"bacs_sort_code":{"type":"string","description":"Bacs sort code"}}},"TransactionOverride":{"title":"TransactionOverride","type":"object","additionalProperties":true,"description":"Data to populate as test transaction data. If not specified, random transactions will be generated instead.","properties":{"date_transacted":{"type":"string","format":"date","description":"The date of the transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. This field does not affect pending status; see `date_posted`."},"date_posted":{"type":"string","format":"date","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."},"amount":{"type":"number","format":"double","description":"The transaction amount. Can be negative."},"description":{"type":"string","description":"The transaction description."},"currency":{"type":"string","description":"The ISO-4217 format currency code for the transaction."}},"required":["date_transacted","date_posted","amount","description"]},"CustomSandboxTransaction":{"title":"CustomSandboxTransaction","type":"object","additionalProperties":true,"description":"Data to populate as test transaction data.","properties":{"date_transacted":{"type":"string","format":"date","description":"The date of the transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Transaction date must be the present date or a date up to 730 days in the past. Future dates are not allowed."},"date_posted":{"type":"string","format":"date","description":"The date the transaction posted, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Posted date must be the present date or a date up to 730 days in the past. Future dates are not allowed."},"amount":{"type":"number","format":"double","description":"The transaction amount. Can be negative."},"description":{"type":"string","description":"The transaction description."},"iso_currency_code":{"type":"string","description":"The ISO-4217 format currency code for the transaction. Defaults to USD."},"account_id":{"type":"string","description":"The `account_id` of the account to add the transaction to, as returned by `/accounts/get`. If omitted, the transaction is added to the Item's checking account, or, for a custom Sandbox user, to the first depository account listed in its `override_accounts`, or its first account if it has no depository account. Student loan accounts don't accept custom transactions and return an `INVALID_ACCOUNT_ID` error."}},"required":["date_transacted","date_posted","amount","description"]},"SecurityOverride":{"type":"object","title":"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`, or `isin`) are required.","properties":{"isin":{"description":"12-character ISIN, a globally unique securities identifier. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please [request ISIN/CUSIP access here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform).","type":"string"},"cusip":{"description":"9-character CUSIP, an identifier assigned to North American securities. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please [request ISIN/CUSIP access here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform).","type":"string"},"sedol":{"deprecated":true,"x-hidden-from-docs":true,"description":"(Deprecated) 7-character SEDOL, an identifier assigned to securities in the UK.","type":"string"},"name":{"description":"A descriptive name for the security, suitable for display.","type":"string"},"ticker_symbol":{"description":"The security's trading symbol for publicly traded securities, and otherwise a short identifier if available.","type":"string"},"currency":{"description":"Either a valid `iso_currency_code` or `unofficial_currency_code`","type":"string"}},"required":["currency"]},"HoldingsOverride":{"type":"object","title":"HoldingsOverride","description":"A holding on the account.","properties":{"institution_price":{"description":"The last price given by the institution for this security","type":"number","format":"double"},"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.","type":"string","format":"date"},"cost_basis":{"description":"The total cost basis of the holding (e.g., the total amount spent to acquire all assets currently in the holding).","type":"number","format":"double"},"quantity":{"description":"The total quantity of the asset held, as reported by the financial institution.","type":"number","format":"double"},"currency":{"description":"Either a valid `iso_currency_code` or `unofficial_currency_code`","type":"string"},"security":{"$ref":"#/components/schemas/SecurityOverride"}},"required":["institution_price","quantity","currency","security"]},"Investments_TransactionsOverride":{"type":"object","description":"An investment transaction on the account.","title":"Investments_TransactionsOverride","properties":{"date":{"description":"Posting date for the transaction. Must be formatted as an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date.","type":"string","format":"date"},"name":{"description":"The institution's description of the transaction.","type":"string"},"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.","type":"number","format":"double"},"price":{"description":"The price of the security at which this transaction occurred.","type":"number","format":"double"},"fees":{"description":"The combined value of all fees applied to this transaction.","type":"number","format":"double"},"type":{"description":"The type of the investment transaction. Possible values are:\n\n`buy`: Buying an investment\n\n`sell`: Selling an investment\n\n`cash`: Activity that modifies a cash position\n\n`fee`: A fee on the account\n\n`transfer`: Activity that modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer","type":"string"},"currency":{"description":"Either a valid `iso_currency_code` or `unofficial_currency_code`","type":"string"},"security":{"$ref":"#/components/schemas/SecurityOverride"}},"required":["date","name","quantity","price","type","currency"]},"LiabilityOverride":{"type":"object","additionalProperties":true,"title":"LiabilityOverride","properties":{"type":{"description":"The type of the liability object: `credit` for a credit card, `student` for a student loan, `loan` for a closed-end loan, or `line_of_credit` for a line of credit. Mortgages are not currently supported in the custom Sandbox.","type":"string","x-override-enum-values-shown":["credit","student","loan","line_of_credit"]},"purchase_apr":{"description":"The purchase APR percentage value, between 0 and 100. For simplicity, this is the only interest rate used to calculate interest charges. Can only be set if `type` is `credit`.","type":"number","format":"double","minimum":0,"maximum":100},"cash_apr":{"type":"number","format":"double","minimum":0,"maximum":100,"description":"The cash APR percentage value, between 0 and 100. Can only be set if `type` is `credit`."},"balance_transfer_apr":{"type":"number","format":"double","minimum":0,"maximum":100,"description":"The balance transfer APR percentage value, between 0 and 100. Can only be set if `type` is `credit`."},"special_apr":{"type":"number","format":"double","minimum":0,"maximum":100,"description":"The special APR percentage value, between 0 and 100. Can only be set if `type` is `credit`."},"last_payment_amount":{"type":"number","format":"double","description":"Override the `last_payment_amount` field. Can only be set if `type` is `credit`, `loan`, or `line_of_credit`."},"last_statement_balance":{"type":"number","format":"double","description":"Override the `last_statement_balance` field. Can only be set if `type` is `credit` or `line_of_credit`."},"minimum_payment_amount":{"type":"number","format":"double","description":"Override the `minimum_payment_amount` field. Can only be set if `type` is `credit`, `student`, or `line_of_credit`."},"is_overdue":{"type":"boolean","description":"Override the `is_overdue` field. Can only be set if `type` is `credit` or `student`."},"origination_date":{"type":"string","format":"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` or `loan`."},"principal":{"description":"The original loan principal. Can only be set if `type` is `student`.","type":"number","format":"double"},"nominal_apr":{"description":"The interest rate on the loan as a percentage, between 0 and 100. Can only be set if `type` is `student`.","type":"number","format":"double","minimum":0,"maximum":100},"interest_capitalization_grace_period_months":{"type":"integer","minimum":0,"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`."},"repayment_model":{"$ref":"#/components/schemas/StudentLoanRepaymentModel"},"expected_payoff_date":{"type":"string","format":"date","description":"Override the `expected_payoff_date` field. Can only be set if `type` is `student`."},"guarantor":{"type":"string","description":"Override the `guarantor` field. Can only be set if `type` is `student`."},"is_federal":{"description":"Override the `is_federal` field. Can only be set if `type` is `student`.","type":"boolean"},"loan_name":{"type":"string","description":"Override the `loan_name` field. Can only be set if `type` is `student`."},"loan_status":{"$ref":"#/components/schemas/StudentLoanStatus"},"payment_reference_number":{"type":"string","description":"Override the `payment_reference_number` field. Can only be set if `type` is `student`."},"pslf_status":{"$ref":"#/components/schemas/PSLFStatus"},"repayment_plan_description":{"type":"string","description":"Override the `repayment_plan.description` field. Can only be set if `type` is `student`."},"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\"`, `\"income-sensitive repayment\"`, `\"interest only\"`, `\"other\"`, `\"pay as you earn\"`, `\"revised pay as you earn\"`, `\"standard\"`, or `\"saving on a valuable education\"`.","type":"string"},"sequence_number":{"type":"number","description":"Override the `sequence_number` field. Can only be set if `type` is `student`."},"servicer_address":{"$ref":"#/components/schemas/AddressDataOverride"},"account_number":{"type":"string","description":"Override the `account_number` field. Can only be set if `type` is `loan`."},"interest_rate":{"$ref":"#/components/schemas/LiabilityOverrideInterestRate"},"principal_balance":{"type":"number","format":"double","description":"Override the `principal_balance` field. Can only be set if `type` is `loan` or `line_of_credit`."},"origination_principal_amount":{"type":"number","format":"double","description":"Override the `origination_principal_amount` field. Can only be set if `type` is `loan`."},"loan_term_months":{"type":"integer","minimum":0,"description":"Override the `loan_term_months` field with a non-negative whole number. Can only be set if `type` is `loan`."},"maturity_date":{"type":"string","format":"date","description":"Override the `maturity_date` field, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Can only be set if `type` is `loan`."},"payment_count":{"type":"integer","minimum":0,"description":"Override the `payment_count` field with a non-negative whole number. Can only be set if `type` is `loan`."},"payment_frequency":{"type":"string","description":"Override the `payment_frequency` field. Can only be set if `type` is `loan`.","x-override-enum-values-shown":["daily","weekly","biweekly","semimonthly","monthly","semiannually","annually"]},"next_payment_amount":{"type":"number","format":"double","description":"Override the `next_payment_amount` field. Can only be set if `type` is `loan` or `line_of_credit`."},"next_payment_due_date":{"type":"string","format":"date","description":"Override the `next_payment_due_date` field, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Can only be set if `type` is `loan` or `line_of_credit`."},"last_payment_date":{"type":"string","format":"date","description":"Override the `last_payment_date` field, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Can only be set if `type` is `loan` or `line_of_credit`."},"payoff_amount":{"type":"number","format":"double","description":"Override the `payoff_amount` field. Can only be set if `type` is `loan`."},"ytd_interest_paid":{"type":"number","format":"double","description":"Override the `ytd_interest_paid` field. Can only be set if `type` is `loan`."},"compounding_period":{"type":"string","description":"Override the `compounding_period` field. Can only be set if `type` is `loan`.","x-override-enum-values-shown":["daily","weekly","biweekly","semimonthly","monthly","semiannually","annually"]},"credit_limit":{"type":"number","format":"double","description":"Override the `credit_limit` field. Can only be set if `type` is `line_of_credit`."},"available_credit":{"type":"number","format":"double","description":"Override the `available_credit` field. Can only be set if `type` is `line_of_credit`."},"last_statement_issue_date":{"type":"string","format":"date","description":"Override the `last_statement_issue_date` field, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Can only be set if `type` is `line_of_credit`."},"past_due_amount":{"type":"number","format":"double","description":"Override the `past_due_amount` field. Can only be set if `type` is `line_of_credit`."},"finance_charges":{"type":"number","format":"double","description":"Override the `finance_charges` field. Can only be set if `type` is `line_of_credit`."},"draw_period_end_date":{"type":"string","format":"date","description":"Override the `draw_period_end_date` field, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Can only be set if `type` is `line_of_credit`."},"aprs":{"type":"array","description":"Override the `aprs` field. Can only be set if `type` is `line_of_credit`.","items":{"$ref":"#/components/schemas/LiabilityOverrideAPR"}}},"required":["type"],"description":"Used to configure Sandbox test data for the Liabilities product"},"LiabilityOverrideInterestRate":{"title":"LiabilityOverrideInterestRate","type":"object","additionalProperties":true,"description":"Override the `interest_rate` field. Can only be set if `type` is `loan` or `line_of_credit`.","properties":{"percentage":{"type":"number","format":"double","minimum":0,"maximum":100,"description":"The interest rate percentage, between 0 and 100."},"type":{"$ref":"#/components/schemas/LiabilityOverrideInterestRateType"}}},"LiabilityOverrideInterestRateType":{"title":"LiabilityOverrideInterestRateType","type":"string","enum":["fixed","variable"],"description":"The type of interest rate."},"LiabilityOverrideAPR":{"title":"LiabilityOverrideAPR","type":"object","additionalProperties":true,"description":"An APR that applies to a line of credit.","properties":{"apr_type":{"$ref":"#/components/schemas/LiabilityOverrideAPRType"},"apr_percentage":{"type":"number","format":"double","minimum":0,"maximum":100,"description":"The Annual Percentage Rate applied, between 0 and 100."},"balance_subject_to_apr":{"type":"number","format":"double","description":"Amount of money that is subjected to the APR if a balance was carried beyond payment due date."},"interest_charge_amount":{"type":"number","format":"double","description":"Amount of money charged due to interest from last statement."}},"required":["apr_type"]},"LiabilityOverrideAPRType":{"title":"LiabilityOverrideAPRType","type":"string","enum":["balance_transfer_apr","cash_apr","penalty_apr","purchase_apr","special"],"description":"The type of balance to which the APR applies."},"StudentLoanRepaymentModel":{"title":"StudentLoanRepaymentModel","type":"object","additionalProperties":true,"properties":{"type":{"type":"string","description":"The only currently supported value for this field is `standard`."},"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"}},"required":["type","non_repayment_months","repayment_months"],"description":"Student loan repayment information used to configure Sandbox test data for the Liabilities product"},"InflowModel":{"title":"InflowModel","type":"object","additionalProperties":true,"description":"The `inflow_model` allows you to model a test account that receives regular income or makes 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":{"type":{"type":"string","description":"Inflow model. One of the following:\n\n`none`: No income\n\n`monthly-income`: Income occurs once per month\n\n`monthly-balance-payment`: Pays off the balance on a liability account at the given statement day of month.\n\n`monthly-interest-only-payment`: Makes an interest-only payment on a liability account at the given statement day of month.\n\nNote 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`."},"income_amount":{"type":"number","format":"double","description":"Amount of income per month. This value is required if `type` is `monthly-income`."},"payment_day_of_month":{"description":"The day of the month on which the income transaction will appear: a whole number between 1 and 28, or the string `last` for the last day of the month. This field is required if `type` is `monthly-income`, `monthly-balance-payment` or `monthly-interest-only-payment`."},"transaction_name":{"type":"string","description":"The name of the income transaction. This field is required if `type` is `monthly-income`, `monthly-balance-payment` or `monthly-interest-only-payment`."},"statement_day_of_month":{"description":"The day of the month on which the balance is calculated for the next payment: a whole number between 1 and 28, or the string `last` for the last day of the month. For compatibility with client libraries generated before 1.776.0, which typed this field as a string, a quoted number such as `\"15\"` is also accepted. This field is required if `type` is `monthly-balance-payment` or `monthly-interest-only-payment`."}},"required":["type"]},"IncomeOverride":{"title":"IncomeOverride","type":"object","description":"Specify payroll data on the account.","properties":{"paystubs":{"type":"array","description":"A list of paystubs associated with the account.","items":{"$ref":"#/components/schemas/PaystubOverride"}},"w2s":{"type":"array","description":"A list of w2s associated with the account.","items":{"$ref":"#/components/schemas/W2Override"}}}},"W2Override":{"title":"W2Override","type":"object","additionalProperties":true,"description":"W2 is an object that represents income data taken from a W2 tax document.","properties":{"employer":{"$ref":"#/components/schemas/PaystubOverrideEmployer"},"employee":{"$ref":"#/components/schemas/PaystubOverrideEmployee"},"tax_year":{"type":["integer","null"],"description":"The tax year of the W2 document."},"employer_id_number":{"type":["string","null"],"description":"An employer identification number or EIN."},"wages_tips_other_comp":{"type":["number","null"],"format":"double","description":"Wages from tips and other compensation."},"federal_income_tax_withheld":{"type":["number","null"],"format":"double","description":"Federal income tax withheld for the tax year."},"social_security_wages":{"type":["number","null"],"format":"double","description":"Wages from Social Security."},"social_security_tax_withheld":{"type":["number","null"],"format":"double","description":"Social Security tax withheld for the tax year."},"medicare_wages_and_tips":{"type":["number","null"],"format":"double","description":"Wages and tips from medicare."},"medicare_tax_withheld":{"type":["number","null"],"format":"double","description":"Medicare tax withheld for the tax year."},"social_security_tips":{"type":["number","null"],"format":"double","description":"Tips from Social Security."},"allocated_tips":{"type":["number","null"],"format":"double","description":"Allocated tips."},"box_9":{"type":["string","null"],"description":"Contents from box 9 on the W2."},"dependent_care_benefits":{"type":["number","null"],"format":"double","description":"Dependent care benefits."},"nonqualified_plans":{"type":["number","null"],"format":"double","description":"Nonqualified plans."},"box_12":{"type":"array","items":{"$ref":"#/components/schemas/W2Box12Override"}},"statutory_employee":{"type":["boolean","null"],"description":"Statutory employee."},"retirement_plan":{"type":["boolean","null"],"description":"Retirement plan."},"third_party_sick_pay":{"type":["boolean","null"],"description":"Third party sick pay."},"other":{"type":["string","null"],"description":"Other."},"state_and_local_wages":{"type":"array","items":{"$ref":"#/components/schemas/W2StateAndLocalWagesOverride"}}}},"W2Box12Override":{"title":"W2Box12Override","description":"Data on the W2 Box 12","type":"object","additionalProperties":true,"properties":{"code":{"type":["string","null"],"description":"W2 Box 12 code."},"amount":{"type":["number","null"],"format":"double","description":"W2 Box 12 amount."}}},"W2StateAndLocalWagesOverride":{"title":"W2StateAndLocalWagesOverride","description":"W2 state and local wages","type":"object","additionalProperties":true,"properties":{"state":{"type":["string","null"],"description":"State associated with the wage."},"employer_state_id_number":{"type":["string","null"],"description":"State identification number of the employer."},"state_wages_tips":{"type":["number","null"],"format":"double","description":"Wages and tips from the specified state."},"state_income_tax":{"type":["number","null"],"format":"double","description":"Income tax from the specified state."},"local_wages_tips":{"type":["number","null"],"format":"double","description":"Wages and tips from the locality."},"local_income_tax":{"type":["number","null"],"format":"double","description":"Income tax from the locality."},"locality_name":{"type":["string","null"],"description":"Name of the locality."}}},"PaystubOverride":{"title":"PaystubOverride","type":"object","description":"An object representing data from a paystub.","properties":{"employer":{"$ref":"#/components/schemas/PaystubOverrideEmployer"},"employee":{"$ref":"#/components/schemas/PaystubOverrideEmployee"},"income_breakdown":{"x-hidden-from-docs":true,"deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/IncomeBreakdown"}},"net_pay":{"$ref":"#/components/schemas/PaystubOverrideNetPay"},"deductions":{"$ref":"#/components/schemas/PaystubOverrideDeductions"},"earnings":{"$ref":"#/components/schemas/PaystubOverrideEarnings"},"pay_period_details":{"$ref":"#/components/schemas/PaystubOverridePayPeriodDetails"}}},"PaystubOverrideEarnings":{"title":"PaystubOverrideEarnings","type":"object","description":"An object representing both a breakdown of earnings on a paystub and the total earnings.","additionalProperties":true,"properties":{"breakdown":{"type":"array","items":{"$ref":"#/components/schemas/PaystubOverrideEarningsBreakdown"}},"total":{"$ref":"#/components/schemas/PaystubOverrideEarningsTotal"}}},"PaystubOverrideEarningsBreakdown":{"title":"PaystubOverrideEarningsBreakdown","type":"object","additionalProperties":true,"description":"An object representing the earnings line items for the pay period.","properties":{"canonical_description":{"$ref":"#/components/schemas/EarningsBreakdownCanonicalDescription"},"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the earning line item."},"description":{"type":["string","null"],"description":"Description of the earning line item."},"hours":{"type":["number","null"],"description":"Number of hours applicable for this earning."},"currency":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item."},"rate":{"type":["number","null"],"format":"double","description":"Hourly rate applicable for this earning."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount of the line item."}}},"PaystubOverrideEarningsTotal":{"title":"PaystubOverrideEarningsTotal","type":"object","description":"An object representing both the current pay period and year to date amount for an earning category.","additionalProperties":true,"properties":{"hours":{"type":["number","null"],"description":"Total number of hours worked for this pay period"},"currency":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item"},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount for the total earnings"}}},"PaystubOverrideDeductions":{"title":"PaystubOverrideDeductions","type":"object","description":"An object with the deduction information found on a paystub.","additionalProperties":true,"properties":{"breakdown":{"type":"array","items":{"$ref":"#/components/schemas/PaystubOverrideDeductionsBreakdown"}},"total":{"$ref":"#/components/schemas/PaystubOverrideDeductionsTotal"}}},"PaystubOverrideDeductionsBreakdown":{"title":"PaystubOverrideDeductionsBreakdown","type":"object","additionalProperties":true,"description":"An object representing the deduction line items for the pay period","properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the deduction"},"description":{"type":["string","null"],"description":"Description of the deduction line item"},"currency":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount of the deduction"}}},"PaystubOverrideDeductionsTotal":{"title":"PaystubOverrideDeductionsTotal","type":"object","description":"An object representing the total deductions for the pay period","additionalProperties":true,"properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the deduction"},"currency":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date total amount of the deductions"}}},"PaystubOverrideNetPay":{"title":"PaystubOverrideNetPay","type":"object","description":"An object representing information about the net pay amount on the paystub.","additionalProperties":true,"properties":{"description":{"type":["string","null"],"description":"Description of the net pay"},"currency":{"type":["string","null"],"description":"The ISO-4217 currency code of the net pay."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount of the net pay"}}},"PaystubOverrideEmployer":{"type":"object","description":"The employer on the paystub.","properties":{"name":{"type":["string","null"],"description":"The name of the employer."},"address":{"$ref":"#/components/schemas/PaystubOverrideEmployerAddress"}}},"PaystubOverrideEmployerAddress":{"type":"object","description":"The address of the employer.","properties":{"city":{"type":"string","description":"The full city name."},"region":{"type":"string","description":"The region or state\nExample: `\"NC\"`"},"street":{"type":"string","description":"The full street address\nExample: `\"564 Main Street, APT 15\"`"},"postal_code":{"type":"string","description":"5 digit postal code."},"country":{"type":"string","description":"The country of the address."}}},"PaystubOverrideEmployee":{"type":"object","description":"The employee on the paystub.","properties":{"name":{"type":"string","description":"The name of the employee."},"address":{"$ref":"#/components/schemas/PaystubOverrideEmployeeAddress"},"marital_status":{"type":["string","null"],"description":"Marital status of the employee - either `single` or `married`.","x-override-enum-values-shown":["single","married"]},"taxpayer_id":{"$ref":"#/components/schemas/PaystubOverrideTaxpayerID"}}},"PaystubOverrideTaxpayerID":{"title":"PaystubOverrideTaxpayerID","type":"object","additionalProperties":true,"description":"Taxpayer ID of the individual receiving the paystub.","properties":{"id_type":{"type":["string","null"],"description":"Type of ID, e.g. 'SSN'"},"id_mask":{"type":["string","null"],"description":"ID mask; i.e. last 4 digits of the taxpayer ID"}}},"PaystubOverrideEmployeeAddress":{"type":"object","description":"The address of the employee.","properties":{"city":{"type":"string","description":"The full city name."},"region":{"type":"string","description":"The region or state\nExample: `\"NC\"`"},"street":{"type":"string","description":"The full street address\nExample: `\"564 Main Street, APT 15\"`"},"postal_code":{"type":"string","description":"5 digit postal code."},"country":{"type":"string","description":"The country of the address."}}},"PaystubOverridePayPeriodDetails":{"title":"PaystubOverridePayPeriodDetails","type":"object","additionalProperties":true,"description":"Details about the pay period.","properties":{"check_amount":{"type":["number","null"],"format":"double","description":"The amount of the paycheck."},"distribution_breakdown":{"type":"array","items":{"$ref":"#/components/schemas/PaystubOverrideDistributionBreakdown"}},"end_date":{"type":["string","null"],"format":"date","description":"The pay period end date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: \"yyyy-mm-dd\"."},"gross_earnings":{"type":["number","null"],"format":"double","description":"Total earnings before tax/deductions."},"pay_date":{"type":["string","null"],"format":"date","description":"The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"pay_day":{"deprecated":true,"type":["string","null"],"format":"date","description":"The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"start_date":{"type":["string","null"],"format":"date","description":"The pay period start date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: \"yyyy-mm-dd\"."}}},"PaystubOverrideDistributionBreakdown":{"title":"DistributionBreakdown","type":"object","description":"Information about the accounts that the payment was distributed to.","additionalProperties":true,"properties":{"account_name":{"type":["string","null"],"description":"Name of the account for the given distribution."},"bank_name":{"type":["string","null"],"description":"The name of the bank that the payment is being deposited to."},"current_amount":{"type":["number","null"],"format":"double","description":"The amount distributed to this account."},"currency":{"type":["string","null"],"description":"The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null."},"mask":{"type":["string","null"],"description":"The last 2-4 alphanumeric characters of an account's official account number."},"type":{"type":["string","null"],"description":"Type of the account that the paystub was sent to (e.g. 'checking')."}}},"ItemId":{"title":"ItemId","type":"string","description":"The `item_id` of the Item associated with this webhook, warning, or error"},"UserId":{"title":"UserId","type":"string","description":"The Plaid `user_id` of the User associated with this webhook, warning, or error."},"NewUserID":{"title":"NewUserID","type":"string","description":"A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10, 2025 use this field to identify a user instead of the `user_token`. For more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis)."},"NewUserIDNullable":{"title":"NewUserIDNullable","type":["string","null"],"description":"A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10, 2025 use this field to identify a user instead of the `user_token`. For more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis)."},"AuthDefaultUpdateWebhook":{"x-examples":{"example-1":{"webhook_type":"AUTH","webhook_code":"DEFAULT_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","account_ids_with_new_auth":[],"account_ids_with_updated_auth":{"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp":["account_number"]},"error":null,"environment":"production"}},"title":"AuthDefaultUpdateWebhook","type":"object","additionalProperties":true,"description":"Plaid will trigger a `DEFAULT_UPDATE` webhook for Items that undergo a change in Auth data. This is generally caused by data partners notifying Plaid of a change in their account numbering system or to their routing numbers. To avoid returned transactions, customers that receive a `DEFAULT_UPDATE` webhook with the `account_ids_with_updated_auth` object populated should immediately discontinue all usages of existing Auth data for those accounts and call `/auth/get` or `/processor/auth/get` to obtain updated account and routing numbers.","properties":{"webhook_type":{"type":"string","description":"`AUTH`"},"webhook_code":{"type":"string","description":"`DEFAULT_UPDATE`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"account_ids_with_new_auth":{"type":"array","description":"An array of `account_id`'s for accounts that contain new auth.","items":{"type":"string"}},"account_ids_with_updated_auth":{"$ref":"#/components/schemas/AccountIdsWithUpdatedAuth"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","error","account_ids_with_new_auth","account_ids_with_updated_auth","environment"]},"AccountIdsWithUpdatedAuth":{"title":"AccountIdsWithUpdatedAuth","type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/AuthUpdateTypes"}},"description":"An object with keys of `account_id`'s that are mapped to their respective auth attributes that changed. Possible values are `account_number`, `routing_number`, and `account_number_mask`.\n\nExample: `{ \"XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58\": [\"account_number\"] }`\n"},"AuthUpdateTypes":{"type":"string","description":"The possible types of auth data that may have changed.","enum":["account_number","routing_number","account_number_mask"]},"AutomaticallyVerifiedWebhook":{"title":"AutomaticallyVerifiedWebhook","type":"object","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":{"webhook_type":{"type":"string","description":"`AUTH`"},"webhook_code":{"type":"string","description":"`AUTOMATICALLY_VERIFIED`"},"account_id":{"type":"string","description":"The `account_id` of the account associated with the webhook"},"item_id":{"$ref":"#/components/schemas/ItemId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"},"error":{"$ref":"#/components/schemas/PlaidError"}},"required":["webhook_type","webhook_code","account_id","item_id","environment"],"x-examples":{"example-1":{"webhook_type":"AUTH","webhook_code":"AUTOMATICALLY_VERIFIED","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","environment":"production","error":null}}},"JWTHeader":{"title":"JWTHeader","type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"kid":{"type":"string"},"alg":{"type":"string"}},"required":["id","kid","alg"],"description":"A JWT Header, used for webhook validation"},"VerificationExpiredWebhook":{"title":"VerificationExpiredWebhook","type":"object","additionalProperties":true,"description":"Fired when an Item was not verified via automated micro-deposits after seven days since the automated micro-deposit was made.","x-examples":{"example-1":{"webhook_type":"AUTH","webhook_code":"VERIFICATION_EXPIRED","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","account_id":"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp","environment":"production","error":null}},"properties":{"webhook_type":{"type":"string","description":"`AUTH`"},"webhook_code":{"type":"string","description":"`VERIFICATION_EXPIRED`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"account_id":{"type":"string","description":"The `account_id` of the account associated with the webhook"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"},"error":{"$ref":"#/components/schemas/PlaidError"}},"required":["webhook_type","webhook_code","item_id","account_id","environment"]},"WebhookUpdateAcknowledgedWebhook":{"title":"WebhookUpdateAcknowledgedWebhook","type":"object","additionalProperties":true,"description":"Fired when an Item's webhook is updated. This will be sent to the newly specified webhook.","x-examples":{"example-1":{"webhook_type":"ITEM","webhook_code":"WEBHOOK_UPDATE_ACKNOWLEDGED","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","error":null,"new_webhook_url":"https://plaid.com/example/webhook","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`ITEM`"},"webhook_code":{"type":"string","description":"`WEBHOOK_UPDATE_ACKNOWLEDGED`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"new_webhook_url":{"type":"string","description":"The new webhook URL"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","new_webhook_url","environment"]},"PendingExpirationWebhook":{"title":"PendingExpirationWebhook","type":"object","additionalProperties":true,"description":"Fired when an Item's access consent is expiring in 7 days. This can be resolved by having the user go through Link's update mode. This webhook is fired only for Items associated with institutions in Europe (including the UK); for Items associated with institutions in the US or Canada, see [`PENDING_DISCONNECT`](https://plaid.com/docs/api/items/#pending_disconnect) instead.","properties":{"webhook_type":{"type":"string","description":"`ITEM`"},"webhook_code":{"type":"string","description":"`PENDING_EXPIRATION`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"consent_expiration_time":{"type":"string","format":"date-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."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","consent_expiration_time","environment"],"x-examples":{"example-1":{"webhook_type":"ITEM","webhook_code":"PENDING_EXPIRATION","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","user_id":"usr_9nSp2KuZ2x4JDw","consent_expiration_time":"2020-01-15T13:25:17.766Z","environment":"production"}}},"ItemErrorWebhook":{"title":"ItemErrorWebhook","type":"object","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":{"webhook_type":{"type":"string","description":"`ITEM`"},"webhook_code":{"type":"string","description":"`ERROR`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","error","environment"],"x-examples":{"example-1":{"webhook_type":"ITEM","webhook_code":"ERROR","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","user_id":"usr_9nSp2KuZ2x4JDw","error":{"display_message":"The user's OAuth connection to this institution has been invalidated.","error_code":"ITEM_LOGIN_REQUIRED","error_code_reason":"OAUTH_INVALID_TOKEN","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},"environment":"production"}}},"ItemLoginRepairedWebhook":{"title":"ItemLoginRepairedWebhook","type":"object","additionalProperties":true,"description":"Fired when an Item has exited the `ITEM_LOGIN_REQUIRED` state without the user having gone through the update mode flow in your app (this can happen if the user completed the update mode in a different app). If you have messaging that tells the user to complete the update mode flow, you should silence this messaging upon receiving the `LOGIN_REPAIRED` webhook.","properties":{"webhook_type":{"type":"string","description":"`ITEM`"},"webhook_code":{"type":"string","description":"`LOGIN_REPAIRED`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","environment"],"x-examples":{"example-1":{"webhook_type":"ITEM","webhook_code":"LOGIN_REPAIRED","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","user_id":"usr_9nSp2KuZ2x4JDw","environment":"production"}}},"ItemProductReadyWebhook":{"title":"ItemProductReadyWebhook","type":"object","additionalProperties":true,"description":"Fired once Plaid calculates income from an Item.","properties":{"webhook_type":{"type":"string","description":"`INCOME`"},"webhook_code":{"type":"string","description":"`PRODUCT_READY`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","environment"],"x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"PRODUCT_READY","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","error":null,"environment":"production"}}},"ProductPermissionsRequiredAuthWebhook":{"title":"ProductPermissionsRequiredAuthWebhook","type":"object","additionalProperties":true,"description":"Fired when an `ACCESS_NOT_GRANTED` error is hit for Auth. The error can be resolved by putting the user through update mode with `auth` in the `products` array, as well as through the limited beta for update mode Authentication product validations.","properties":{"webhook_type":{"type":"string","description":"`AUTH`"},"webhook_code":{"type":"string","description":"`PRODUCT_PERMISSIONS_REQUIRED`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","environment"],"x-examples":{"example-1":{"webhook_type":"AUTH","webhook_code":"PRODUCT_PERMISSIONS_REQUIRED","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","environment":"production"}}},"ProductPermissionsRequiredIdentityWebhook":{"title":"ProductPermissionsRequiredIdentityWebhook","type":"object","additionalProperties":true,"description":"Fired when an `ACCESS_NOT_GRANTED` error is hit for Identity. The error can be resolved by putting the user through update mode with `identity` in the `products` array, as well as through the limited beta for update mode Identity product validations.","properties":{"webhook_type":{"type":"string","description":"`IDENTITY`"},"webhook_code":{"type":"string","description":"`PRODUCT_PERMISSIONS_REQUIRED`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","environment"],"x-examples":{"example-1":{"webhook_type":"IDENTITY","webhook_code":"PRODUCT_PERMISSIONS_REQUIRED","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","environment":"production"}}},"Recaptcha_RequiredError":{"title":"Recaptcha_RequiredError","type":"object","additionalProperties":true,"description":"The request was flagged by Plaid's fraud system and requires additional verification to ensure the user is not a bot.","x-examples":{"example-1":{"error_type":"RECAPTCHA_ERROR","error_code":"RECAPTCHA_REQUIRED","error_message":"This request requires additional verification. Please resubmit the request after completing the challenge","display_message":null,"http_code":400,"request_id":"HNTDNrA8F1shFEW"}},"properties":{"error_type":{"type":"string","description":"`RECAPTCHA_ERROR`"},"error_code":{"type":"string","description":"`RECAPTCHA_REQUIRED`"},"display_message":{"type":["string","null"]},"http_code":{"type":"integer","description":"400"},"link_user_experience":{"type":"string","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."},"common_causes":{"type":"string","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."},"troubleshooting_steps":{"type":"string","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.\n\nIf your user cannot verify their session, please submit a support ticket with the following identifiers: `link_session_id` or `request_id`"}},"required":["error_type","error_code","display_message","http_code"]},"BankTransfersEventsUpdateWebhook":{"title":"BankTransfersEventsUpdateWebhook","deprecated":true,"type":"object","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`.","x-examples":{"example-1":{"webhook_type":"BANK_TRANSFERS","webhook_code":"BANK_TRANSFERS_EVENTS_UPDATE","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`BANK_TRANSFERS`"},"webhook_code":{"type":"string","description":"`BANK_TRANSFERS_EVENTS_UPDATE`"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","environment"]},"BankTransfersEventsUpdateWebhookForAuth":{"title":"BankTransfersEventsUpdateWebhookForAuth","type":"object","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](https://plaid.com/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.","x-examples":{"example-1":{"webhook_type":"BANK_TRANSFERS","webhook_code":"BANK_TRANSFERS_EVENTS_UPDATE","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`BANK_TRANSFERS`"},"webhook_code":{"type":"string","description":"`BANK_TRANSFERS_EVENTS_UPDATE`"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","environment"]},"TransferEventsUpdateWebhook":{"title":"TransferEventsUpdateWebhook","type":"object","additionalProperties":true,"description":"Fired when new transfer events are available. Receiving this webhook indicates you should fetch the new events from `/transfer/event/sync`. If multiple transfer events occur within a single minute, only one webhook will be fired, so a single webhook instance may correspond to multiple transfer events.","x-examples":{"example-1":{"webhook_type":"TRANSFER","webhook_code":"TRANSFER_EVENTS_UPDATE","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`TRANSFER`"},"webhook_code":{"type":"string","description":"`TRANSFER_EVENTS_UPDATE`"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","environment"]},"LayerAuthenticationPassedWebhook":{"title":"LayerAuthenticationPassedWebhook","type":"object","additionalProperties":true,"description":"Indicates that Plaid's authentication process has completed for a user and that Plaid has verified that the user owns their phone number. If you receive this webhook, you should skip your own OTP phone number verification flow for the user, even if the user does not complete the entire Link flow. If the user doesn't complete the full Link flow (as verified by your being able to successfully call `/user_account/session/get` using the `public_token` from the `onSuccess` callback) it is recommended that you implement [webhook verification](https://plaid.com/docs/api/webhooks/webhook-verification/) or another technique to avoid webhook spoofing attacks.","x-examples":{"example-1":{"webhook_type":"LAYER","webhook_code":"LAYER_AUTHENTICATION_PASSED","environment":"production","link_session_id":"1daca4d5-9a0d-4e85-a2e9-1e905ecaa32e","link_token":"link-production-79e723b0-0e04-4248-8a33-15ceb6828a45"}},"properties":{"webhook_type":{"type":"string","description":"`LAYER`"},"webhook_code":{"type":"string","description":"`LAYER_AUTHENTICATION_PASSED`"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"},"link_session_id":{"type":"string","description":"An identifier for the Link session these events occurred in"},"link_token":{"type":"string","description":"The Link token used to create the Link session these events are from"}},"required":["webhook_type","webhook_code","environment","link_session_id","link_token"]},"ProtectUserEventWebhook":{"title":"ProtectUserEventWebhook","type":"object","additionalProperties":true,"description":"Fired when there has been a new user event. The webhook payload contains limited information about the event.","x-examples":{"example-1":{"webhook_type":"PROTECT","webhook_code":"PROTECT_USER_EVENT","user_id":"plaid-user-6009db6e","client_user_id":"your-client-user-id","event_id":"ptevt_cYNnF8xYE1v1om","timestamp":"2020-07-24T03:26:02Z","event_type":"LINK_COMPLETE","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`\"PROTECT\"`"},"webhook_code":{"type":"string","description":"`PROTECT_USER_EVENT`"},"event_id":{"type":"string","description":"The event ID of the user event that occurred."},"event_type":{"type":"string","description":"The type of user event that occurred. Possible values include `LINK_COMPLETE` (the Link session has finished and a Trust Index score has been computed without waiting for transaction extraction) and `PROTECT_RUN_FINISH` (extraction-required scoring is complete, including transaction extraction; may arrive 30 seconds or more after Link completion)."},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`"},"user_id":{"type":["string","null"],"description":"The Plaid User ID."},"client_user_id":{"type":["string","null"],"description":"The `client_user_id` provided by the client when the user was created via `/user/create` or Link."},"link_session_id":{"type":["string","null"],"description":"An identifier for the Link session this event occurred in"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","event_id","event_type","timestamp","user_id","environment"]},"RecurringNewTransferWebhook":{"title":"RecurringNewTransferWebhook","type":"object","additionalProperties":true,"description":"Fired when a new transfer of a recurring transfer is originated.","x-examples":{"example-1":{"webhook_type":"TRANSFER","webhook_code":"RECURRING_NEW_TRANSFER","recurring_transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","transfer_id":"271ef220-dbf8-caeb-a7dc-a2b3e8a80963","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`TRANSFER`"},"webhook_code":{"type":"string","description":"`RECURRING_NEW_TRANSFER`"},"recurring_transfer_id":{"$ref":"#/components/schemas/RecurringTransferID"},"transfer_id":{"$ref":"#/components/schemas/TransferID"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","recurring_transfer_id","transfer_id","environment"]},"RecurringTransferSkippedWebhook":{"title":"RecurringTransferSkippedWebhook","type":"object","additionalProperties":true,"description":"Fired when Plaid is unable to originate a new ACH transaction of the recurring transfer on the planned date.","x-examples":{"example-1":{"webhook_type":"TRANSFER","webhook_code":"RECURRING_TRANSFER_SKIPPED","recurring_transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","authorization_decision":"declined","authorization_decision_rationale_code":"NSF","skipped_origination_date":"2022-11-30","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`TRANSFER`"},"webhook_code":{"type":"string","description":"`RECURRING_TRANSFER_SKIPPED`"},"recurring_transfer_id":{"$ref":"#/components/schemas/RecurringTransferID"},"authorization_decision":{"$ref":"#/components/schemas/TransferAuthorizationDecision"},"authorization_decision_rationale_code":{"$ref":"#/components/schemas/TransferAuthorizationDecisionRationaleCode"},"skipped_origination_date":{"type":"string","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"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","recurring_transfer_id","authorization_decision","skipped_origination_date","environment"]},"RecurringCancelledWebhook":{"title":"RecurringCancelledWebhook","type":"object","additionalProperties":true,"description":"Fired when a recurring transfer is cancelled, either by Plaid or via `/transfer/recurring/cancel`.","x-examples":{"example-1":{"webhook_type":"TRANSFER","webhook_code":"RECURRING_CANCELLED","recurring_transfer_id":"460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`TRANSFER`"},"webhook_code":{"type":"string","description":"`RECURRING_CANCELLED`"},"recurring_transfer_id":{"$ref":"#/components/schemas/RecurringTransferID"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","recurring_transfer_id","environment"]},"InvestmentsDefaultUpdateWebhook":{"title":"InvestmentsDefaultUpdateWebhook","type":"object","additionalProperties":true,"description":"Fired when new transactions have been detected on an investment account.","x-examples":{"example-1":{"webhook_type":"INVESTMENTS_TRANSACTIONS","webhook_code":"DEFAULT_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","user_id":"usr_9nSp2KuZ2x4JDw","error":null,"new_investments_transactions":16,"cancelled_investments_transactions":0,"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`INVESTMENTS_TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`DEFAULT_UPDATE`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"error":{"$ref":"#/components/schemas/PlaidError"},"new_investments_transactions":{"type":"number","description":"The number of new transactions reported since the last time this webhook was fired."},"cancelled_investments_transactions":{"type":"number","description":"The number of cancelled transactions reported since the last time this webhook was fired."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","new_investments_transactions","cancelled_investments_transactions","environment"]},"InvestmentsHistoricalUpdateWebhook":{"title":"InvestmentsHistoricalUpdateWebhook","type":"object","additionalProperties":true,"description":"Fired after an asynchronous extraction on an investment account.","x-examples":{"example-1":{"webhook_type":"INVESTMENTS_TRANSACTIONS","webhook_code":"HISTORICAL_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","user_id":"usr_9nSp2KuZ2x4JDw","error":null,"new_investments_transactions":16,"cancelled_investments_transactions":0,"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`INVESTMENTS_TRANSACTIONS`"},"webhook_code":{"type":"string","description":"`HISTORICAL_UPDATE`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"error":{"$ref":"#/components/schemas/PlaidError"},"new_investments_transactions":{"type":"number","description":"The number of new transactions reported since the last time this webhook was fired."},"cancelled_investments_transactions":{"type":"number","description":"The number of cancelled transactions reported since the last time this webhook was fired."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","new_investments_transactions","cancelled_investments_transactions","environment"]},"HoldingsDefaultUpdateWebhook":{"title":"HoldingsDefaultUpdateWebhook","type":"object","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.","x-examples":{"example-1":{"webhook_type":"HOLDINGS","webhook_code":"DEFAULT_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","user_id":"usr_9nSp2KuZ2x4JDw","error":null,"new_holdings":19,"updated_holdings":0,"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`HOLDINGS`"},"webhook_code":{"type":"string","description":"`DEFAULT_UPDATE`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"error":{"$ref":"#/components/schemas/PlaidError"},"new_holdings":{"type":"number","description":"The number of new holdings reported since the last time this webhook was fired."},"updated_holdings":{"type":"number","description":"The number of updated holdings reported since the last time this webhook was fired."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","new_holdings","updated_holdings","environment"]},"PartnerEndCustomerOAuthStatusUpdatedWebhook":{"title":"PartnerEndCustomerOAuthStatusUpdatedWebhook","type":"object","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.","x-examples":{"example-1":{"webhook_type":"PARTNER","webhook_code":"END_CUSTOMER_OAUTH_STATUS_UPDATED","end_customer_client_id":"634758733ebb4f00134b85ea","environment":"production","institution_id":"ins_127989","institution_name":"Bank of America","status":"attention-required"}},"properties":{"webhook_type":{"type":"string","description":"`PARTNER`"},"webhook_code":{"type":"string","description":"`END_CUSTOMER_OAUTH_STATUS_UPDATED`"},"end_customer_client_id":{"type":"string","description":"The client ID of the end customer"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"},"institution_id":{"type":"string","description":"The institution ID"},"institution_name":{"type":"string","description":"The institution name"},"status":{"$ref":"#/components/schemas/PartnerEndCustomerOAuthStatusUpdatedValues"}},"required":["webhook_type","webhook_code","end_customer_client_id","environment","institution_id","institution_name","status"]},"LiabilitiesDefaultUpdateWebhook":{"title":"LiabilitiesDefaultUpdateWebhook","type":"object","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.","x-examples":{"example-1":{"webhook_type":"LIABILITIES","webhook_code":"DEFAULT_UPDATE","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","user_id":"usr_9nSp2KuZ2x4JDw","error":null,"account_ids_with_new_liabilities":["XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58","BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"],"account_ids_with_updated_liabilities":{"XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58":["past_due_amount"]},"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`LIABILITIES`"},"webhook_code":{"type":"string","description":"`DEFAULT_UPDATE`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"error":{"$ref":"#/components/schemas/PlaidError"},"account_ids_with_new_liabilities":{"type":"array","description":"An array of `account_id`'s for accounts that contain new liabilities.'","items":{"type":"string"}},"account_ids_with_updated_liabilities":{"$ref":"#/components/schemas/LiabilitiesAccountIdsWithUpdatedLiabilities"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","error","account_ids_with_new_liabilities","account_ids_with_updated_liabilities","environment"]},"PendingDisconnectWebhookReason":{"type":"string","description":"Reason why the Item is about to be disconnected.\n\n`INSTITUTION_MIGRATION`: The institution is moving to API or to a different integration. For example, this can occur when an institution moves from a non-OAuth integration to an OAuth integration.\n\n`INSTITUTION_TOKEN_EXPIRATION`: The consent on an Item associated with a US or CA institution is about to expire.","enum":["INSTITUTION_MIGRATION","INSTITUTION_TOKEN_EXPIRATION"]},"PendingDisconnectWebhook":{"title":"PendingDisconnectWebhook","type":"object","additionalProperties":true,"description":"Fired when an Item is expected to be disconnected. The webhook will currently be fired 7 days before the existing Item is scheduled for disconnection. This can be resolved by having the user go through Link's [update mode](https://plaid.com/docs/link/update-mode). Currently, this webhook is fired only for US or Canadian institutions; in the UK or EU, you should continue to listen for the [`PENDING_EXPIRATION`](https://plaid.com/docs/api/items/#pending_expiration) webhook instead.","properties":{"webhook_type":{"type":"string","description":"`ITEM`"},"webhook_code":{"type":"string","description":"`PENDING_DISCONNECT`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"reason":{"$ref":"#/components/schemas/PendingDisconnectWebhookReason"},"disconnect_time":{"type":"string","format":"date-time","description":"The date and time at which the Item is scheduled to disconnect, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","reason","disconnect_time","environment"],"x-examples":{"example-1":{"webhook_type":"ITEM","webhook_code":"PENDING_DISCONNECT","item_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","user_id":"usr_9nSp2KuZ2x4JDw","reason":"INSTITUTION_MIGRATION","disconnect_time":"2020-01-15T13:25:17.766Z","environment":"production"}}},"LiabilitiesAccountIdsWithUpdatedLiabilities":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"An object with keys of `account_id`'s that are mapped to their respective liabilities fields that changed.\n\nExample: `{ \"XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58\": [\"past_due_amount\"] }`\n"},"Cause":{"title":"Cause","type":["object","null"],"additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/PlaidError"},{"type":"object","properties":{"item_id":{"$ref":"#/components/schemas/ItemId"}}}],"required":["item_id","error_type","error_code","error_message","display_message"],"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."},"PaymentAmountCurrency":{"type":"string","enum":["GBP","EUR","PLN","SEK","DKK","NOK"],"description":"The ISO-4217 currency code of the payment. For standing orders and payment consents, `\"GBP\"` must be used. For Poland, Denmark, Sweden and Norway, only the local currency is currently supported.","minLength":3,"maxLength":3},"PaymentAmount":{"title":"PaymentAmount","type":"object","properties":{"currency":{"$ref":"#/components/schemas/PaymentAmountCurrency"},"value":{"type":"number","format":"double","description":"The amount of the payment. Must contain at most two digits of precision e.g. `1.23`. Minimum accepted value is `1`."}},"required":["currency","value"],"description":"The amount and currency of a payment"},"PaymentAmountNullable":{"title":"PaymentAmount","type":["object","null"],"additionalProperties":true,"properties":{"currency":{"$ref":"#/components/schemas/PaymentAmountCurrency"},"value":{"type":"number","format":"double","minimum":0.01,"description":"The amount of the payment. Must contain at most two digits of precision e.g. `1.23`."}},"required":["currency","value"],"description":"The amount and currency of a payment"},"PaymentAmountToRefund":{"description":"The amount and currency of a payment","allOf":[{"$ref":"#/components/schemas/PaymentAmountNullable"},{"type":"object","description":"An amount to refund the payment partially. If this amount is not specified, the payment is refunded fully for the remaining amount."}]},"PaymentAmountRefunded":{"description":"The amount and currency of a payment","allOf":[{"$ref":"#/components/schemas/PaymentAmountNullable"},{"type":"object","additionalProperties":true,"description":"The amount that has been refunded already. Subtract this from the payment amount to calculate the amount still available to refund."}]},"PaymentConsentValidDateTime":{"type":["object","null"],"title":"PaymentConsentValidDateTime","description":"Life span for the payment consent. After the `to` date the payment consent expires and can no longer be used for payment initiation.","properties":{"from":{"type":["string","null"],"format":"date-time","description":"The date and time from which the consent should be active, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"to":{"type":["string","null"],"format":"date-time","description":"The date and time at which the consent expires, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."}}},"PaymentConsentPeriodicAmount":{"type":"object","title":"PaymentConsentPeriodicAmount","description":"Defines consent payments limitations per period.","properties":{"amount":{"$ref":"#/components/schemas/PaymentConsentPeriodicAmountAmount"},"interval":{"$ref":"#/components/schemas/PaymentConsentPeriodicInterval"},"alignment":{"$ref":"#/components/schemas/PaymentConsentPeriodicAlignment"}},"required":["amount","interval","alignment"]},"PaymentConsentPeriodicAmountAmount":{"description":"Maximum cumulative amount for all payments in the specified interval.","allOf":[{"$ref":"#/components/schemas/PaymentAmount"}]},"PaymentConsentPeriodicInterval":{"type":"string","description":"Payment consent periodic interval.","enum":["DAY","WEEK","MONTH","YEAR"]},"PaymentConsentPeriodicAlignment":{"type":"string","enum":["CALENDAR","CONSENT"],"description":"Where the payment consent period should start.\n\nIf the institution is Monzo, only `CONSENT` alignments are supported.\n\n`CALENDAR`: line up with a calendar.\n\n`CONSENT`: on the date of consent creation."},"StandaloneCurrencyCodeList":{"title":"StandaloneCurrencyCodeList","type":"object","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"]},"UnofficialCurrencyCodeList":{"title":"UnofficialCurrencyCodeList","type":"string","description":"List of unofficial currency codes","properties":{"ADA":{"type":"string","description":"Cardano"},"BAT":{"type":"string","description":"Basic Attention Token"},"BCH":{"type":"string","description":"Bitcoin Cash"},"BNB":{"type":"string","description":"Binance Coin"},"BTC":{"type":"string","description":"Bitcoin"},"BTG":{"type":"string","description":"Bitcoin Gold"},"BSV":{"type":"string","description":"Bitcoin Satoshi Vision"},"CNH":{"type":"string","description":"Chinese Yuan (offshore)"},"DASH":{"type":"string","description":"Dash"},"DOGE":{"type":"string","description":"Dogecoin"},"ETC":{"type":"string","description":"Ethereum Classic"},"ETH":{"type":"string","description":"Ethereum"},"GBX":{"type":"string","description":"Pence sterling, i.e. British penny"},"LSK":{"type":"string","description":"Lisk"},"NEO":{"type":"string","description":"Neo"},"OMG":{"type":"string","description":"OmiseGO"},"QTUM":{"type":"string","description":"Qtum"},"USDT":{"type":"string","description":"Tether"},"XLM":{"type":"string","description":"Stellar Lumen"},"XMR":{"type":"string","description":"Monero"},"XRP":{"type":"string","description":"Ripple"},"ZEC":{"type":"string","description":"Zcash"},"ZRX":{"type":"string","description":"0x"}},"required":["ADA","BAT","BCH","BNB","BTC","BTG","CNH","DASH","DOGE","ETC","ETH","GBX","LSK","NEO","OMG","QTUM","USDT","XLM","XMR","XRP","ZEC","ZRX"]},"StandaloneAccountType":{"title":"StandaloneAccountType","description":"The schema below describes the various `types` and corresponding `subtypes` that Plaid recognizes and reports for financial institution accounts. For a mapping of supported types and subtypes to Plaid products, see the [Account type / product support matrix](https://plaid.com/docs/api/accounts/#account-type--product-support-matrix).","type":"object","additionalProperties":true,"properties":{"depository":{"$ref":"#/components/schemas/DepositoryAccount"},"credit":{"$ref":"#/components/schemas/CreditAccount"},"loan":{"$ref":"#/components/schemas/LoanAccount"},"investment":{"$ref":"#/components/schemas/InvestmentAccountSubtypeStandalone"},"payroll":{"$ref":"#/components/schemas/PayrollAccount"},"other":{"type":"string","description":"Other or unknown account type."}},"required":["depository","credit","loan","investment","other"]},"DepositoryAccount":{"title":"DepositoryAccount","description":"An account type holding cash, in which funds are deposited.","type":"string","properties":{"cash management":{"type":"string","description":"A cash management account, typically a cash account at a brokerage"},"cd":{"type":"string","description":"Certificate of deposit account"},"checking":{"type":"string","description":"Checking account"},"ebt":{"type":"string","description":"An Electronic Benefit Transfer (EBT) account, used by certain public assistance programs to distribute funds (US only)"},"hsa":{"type":"string","description":"Health Savings Account (US only) that can only hold cash"},"limited purpose checking":{"type":"string","description":"A checking account that is limited in its purpose or usage. Note that this account subtype is opt-in only, meaning it cannot be connected in Link unless it is present in the subtypes filter."},"money market":{"type":"string","description":"Money market account"},"paypal":{"type":"string","description":"PayPal depository account"},"prepaid":{"type":"string","description":"Prepaid debit card"},"savings":{"type":"string","description":"Savings account"}},"required":["checking","savings","hsa","cd","money market","paypal","prepaid","cash management","ebt","limited purpose checking"]},"CreditAccount":{"title":"CreditAccount","type":"string","description":"A credit card type account.","properties":{"credit card":{"type":"string","description":"Bank-issued credit card"},"paypal":{"type":"string","description":"PayPal-issued credit card"}},"required":["credit card","paypal"]},"LoanAccount":{"title":"LoanAccount","type":"string","description":"A loan type account.","properties":{"auto":{"type":"string","description":"Auto loan"},"business":{"type":"string","description":"Business loan"},"commercial":{"type":"string","description":"Commercial loan"},"commercial line of credit":{"type":"string","description":"Commercial line of credit. This subtype is normalized to `line of credit` in plaid-go versions earlier than 10.1.0, plaid-java versions earlier than 44.0.0, plaid-python versions earlier than 8.3.0, and plaid-ruby versions earlier than 14.4.0."},"construction":{"type":"string","description":"Construction loan"},"consumer":{"type":"string","description":"Consumer loan"},"home equity":{"type":"string","description":"Home Equity Line of Credit (HELOC)"},"home equity loan":{"type":"string","description":"Home equity loan. This subtype is normalized to `loan` in plaid-go versions earlier than 10.1.0, plaid-java versions earlier than 44.0.0, plaid-python versions earlier than 8.3.0, and plaid-ruby versions earlier than 14.4.0."},"line of credit":{"type":"string","description":"Pre-approved line of credit"},"loan":{"type":"string","description":"General loan"},"mortgage":{"type":"string","description":"Mortgage loan"},"other":{"type":"string","description":"Other loan type or unknown loan type"},"overdraft":{"type":"string","description":"Pre-approved overdraft account, usually tied to a checking account"},"student":{"type":"string","description":"Student loan"}},"required":["auto","business","commercial","commercial line of credit","construction","consumer","home equity","home equity loan","loan","mortgage","overdraft","line of credit","student","other"]},"InvestmentAccountSubtypeStandalone":{"title":"InvestmentAccountSubtype","type":"string","description":"An investment account. In API versions 2018-05-22 and earlier, this type is called `brokerage`.","properties":{"529":{"type":"string","description":"Tax-advantaged college savings and prepaid tuition 529 plans (US)\n"},"401a":{"type":"string","description":"Employer-sponsored money-purchase 401(a) retirement plan (US)"},"401k":{"type":"string","description":"Standard 401(k) retirement account (US)"},"403B":{"type":"string","description":"403(b) retirement savings account for non-profits and schools (US)"},"457b":{"type":"string","description":"Tax-advantaged deferred-compensation 457(b) retirement plan for governments and non-profits (US)"},"brokerage":{"type":"string","description":"Standard brokerage account"},"cash isa":{"type":"string","description":"Individual Savings Account (ISA) that pays interest tax-free (UK)"},"crypto exchange":{"type":"string","description":"Standard cryptocurrency exchange account"},"education savings account":{"type":"string","description":"Tax-advantaged Coverdell Education Savings Account (ESA) (US)"},"fhsa":{"type":"string","description":"First Home Savings Account (FHSA) (Canada)"},"fixed annuity":{"type":"string","description":"Fixed annuity"},"gic":{"type":"string","description":"Guaranteed Investment Certificate (Canada)"},"health reimbursement arrangement":{"type":"string","description":"Tax-advantaged Health Reimbursement Arrangement (HRA) benefit plan (US)"},"hsa":{"type":"string","description":"Non-cash tax-advantaged medical Health Savings Account (HSA) (US)\n"},"ira":{"type":"string","description":"Traditional Individual Retirement Account (IRA) (US)"},"isa":{"type":"string","description":"Non-cash Individual Savings Account (ISA) (UK)"},"keogh":{"type":"string","description":"Keogh self-employed retirement plan (US)"},"lif":{"type":"string","description":"Life Income Fund (LIF) retirement account (Canada)\n"},"life insurance":{"type":"string","description":"Life insurance account"},"line of credit":{"type":"string","description":"Pre-approved line of credit"},"lira":{"type":"string","description":"Locked-in Retirement Account (LIRA) (Canada)"},"lrif":{"type":"string","description":"Locked-in Retirement Income Fund (LRIF) (Canada)"},"lrsp":{"type":"string","description":"Locked-in Retirement Savings Plan (Canada)"},"mutual fund":{"type":"string","description":"Mutual fund account"},"non-custodial wallet":{"type":"string","description":"A cryptocurrency wallet where the user controls the private key"},"non-taxable brokerage account":{"type":"string","description":"A non-taxable brokerage account that is not covered by a more specific subtype"},"other":{"type":"string","description":"An account whose type could not be determined"},"other annuity":{"type":"string","description":"An annuity account not covered by other subtypes"},"other insurance":{"type":"string","description":"An insurance account not covered by other subtypes"},"pension":{"type":"string","description":"Standard pension account"},"prediction market":{"type":"string","description":"Account used to hold positions in prediction markets"},"prif":{"type":"string","description":"Prescribed Registered Retirement Income Fund (Canada)"},"profit sharing plan":{"type":"string","description":"Plan that gives employees share of company profits"},"qshr":{"type":"string","description":"Qualifying share account"},"rdsp":{"type":"string","description":"Registered Disability Savings Plan (RDSP) (Canada)"},"resp":{"type":"string","description":"Registered Education Savings Plan (Canada)"},"retirement":{"type":"string","description":"Retirement account not covered by other subtypes"},"rlif":{"type":"string","description":"Restricted Life Income Fund (RLIF) (Canada)"},"roth":{"type":"string","description":"Roth IRA (US)"},"roth 401k":{"type":"string","description":"Employer-sponsored Roth 401(k) plan (US)"},"roth 403B":{"type":"string","description":"Roth 403(b) retirement savings account for non-profits and schools (US)"},"roth 457b":{"type":"string","description":"Roth 457(b) deferred-compensation retirement plan for governments and non-profits (US)"},"roth pension":{"type":"string","description":"Roth version of a standard pension account"},"roth profit sharing plan":{"type":"string","description":"Roth version of a profit sharing plan"},"roth thrift savings plan":{"type":"string","description":"Roth version of the Thrift Savings Plan (US)"},"rrif":{"type":"string","description":"Registered Retirement Income Fund (RRIF) (Canada)"},"rrsp":{"type":"string","description":"Registered Retirement Savings Plan (Canadian, similar to US 401(k))"},"sarsep":{"type":"string","description":"Salary Reduction Simplified Employee Pension Plan (SARSEP), discontinued retirement plan (US)"},"sep ira":{"type":"string","description":"Simplified Employee Pension IRA (SEP IRA), retirement plan for small businesses and self-employed (US)"},"simple ira":{"type":"string","description":"Savings Incentive Match Plan for Employees IRA, retirement plan for small businesses (US)"},"sipp":{"type":"string","description":"Self-Invested Personal Pension (SIPP) (UK)"},"stock plan":{"type":"string","description":"Standard stock plan account"},"tfsa":{"type":"string","description":"Tax-Free Savings Account (TFSA), a retirement plan similar to a Roth IRA (Canada)"},"thrift savings plan":{"type":"string","description":"Thrift Savings Plan, a retirement savings and investment plan for Federal employees and members of the uniformed services."},"trust":{"type":"string","description":"Account representing funds or assets held by a trustee for the benefit of a beneficiary. Includes both revocable and irrevocable trusts."},"ugma":{"type":"string","description":"'Uniform Gift to Minors Act' (brokerage account for minors, US)"},"utma":{"type":"string","description":"'Uniform Transfers to Minors Act' (brokerage account for minors, US)\n"},"variable annuity":{"type":"string","description":"Tax-deferred capital accumulation annuity contract"}},"required":["529","401a","401k","403B","457b","brokerage","cash isa","crypto exchange","education savings account","fhsa","fixed annuity","gic","health reimbursement arrangement","hsa","ira","isa","keogh","lif","life insurance","line of credit","lira","lrif","lrsp","mutual fund","non-custodial wallet","non-taxable brokerage account","other","other annuity","other insurance","pension","prediction market","prif","profit sharing plan","qshr","rdsp","resp","retirement","rlif","roth","roth 401k","roth 403B","roth 457b","roth pension","roth profit sharing plan","roth thrift savings plan","rrif","rrsp","sarsep","sep ira","simple ira","sipp","stock plan","thrift savings plan","tfsa","trust","ugma","utma","variable annuity"]},"PayrollAccount":{"title":"PayrollAccount","type":"string","description":"A payroll account.","properties":{"payroll":{"type":"string","description":"Standard payroll account"}},"required":["payroll"]},"PaymentStatusUpdateWebhook":{"title":"PaymentStatusUpdateWebhook","type":"object","additionalProperties":true,"description":"Fired when the status of a payment has changed. Not fired when the new status is `PAYMENT_STATUS_INPUT_NEEDED`, `PAYMENT_STATUS_AUTHORISING`, or `PAYMENT_STATUS_PROCESSING`. For a full explanation of payment statuses and how to handle each, see the [Payment Status guide](https://plaid.com/docs/payment-initiation/payment-status/).\n\nNote: For standard Payment Initiation, Plaid payment statuses do not constitute proof that funds have arrived in the recipient's account, and you should not use `new_payment_status` to confirm fund settlement. For options that provide confirmation of fund receipt, see [Virtual Accounts](https://plaid.com/docs/payment-initiation/virtual-accounts/payment-confirmation/).","x-examples":{"example-1":{"webhook_type":"PAYMENT_INITIATION","webhook_code":"PAYMENT_STATUS_UPDATE","payment_id":"payment-id-production-2ba30780-d549-4335-b1fe-c2a938aa39d2","new_payment_status":"PAYMENT_STATUS_INITIATED","old_payment_status":"PAYMENT_STATUS_PROCESSING","original_reference":"Account Funding 99744","adjusted_reference":"Account Funding 99","original_start_date":"2017-09-14","adjusted_start_date":"2017-09-15","timestamp":"2017-09-14T14:42:19.350Z","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`PAYMENT_INITIATION`"},"webhook_code":{"type":"string","description":"`PAYMENT_STATUS_UPDATE`"},"payment_id":{"type":"string","description":"The `payment_id` for the payment being updated"},"transaction_id":{"type":["string","null"],"description":"The transaction ID that this payment is associated with, if any. This is present only when a payment was initiated using virtual accounts."},"new_payment_status":{"$ref":"#/components/schemas/PaymentInitiationPaymentStatus"},"old_payment_status":{"$ref":"#/components/schemas/PaymentInitiationPaymentStatus"},"original_reference":{"type":["string","null"],"description":"The original value of the reference when creating the payment."},"adjusted_reference":{"type":["string","null"],"description":"The value of the reference sent to the bank after adjustment to pass bank validation rules."},"original_start_date":{"format":"date","type":["string","null"],"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`."},"adjusted_start_date":{"format":"date","type":["string","null"],"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`."},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the update, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","payment_id","new_payment_status","old_payment_status","original_reference","original_start_date","adjusted_start_date","timestamp","environment"]},"PaymentInitiationConsentStatusUpdateWebhook":{"title":"PaymentInitiationConsentStatusUpdateWebhook","type":"object","additionalProperties":true,"description":"Fired when the status of a payment consent has changed.","x-examples":{"example-1":{"webhook_type":"PAYMENT_INITIATION","webhook_code":"CONSENT_STATUS_UPDATE","consent_id":"payment-consent-id-production-e7258765-69f9-46b1-9c67-d2800448e5ff","old_status":"UNAUTHORISED","new_status":"AUTHORISED","timestamp":"2017-09-14T14:42:19.350Z","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`PAYMENT_INITIATION`"},"webhook_code":{"type":"string","description":"`CONSENT_STATUS_UPDATE`"},"consent_id":{"type":"string","description":"The `id` for the consent being updated"},"old_status":{"$ref":"#/components/schemas/PaymentInitiationConsentStatus"},"new_status":{"$ref":"#/components/schemas/PaymentInitiationConsentStatus"},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the update, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","consent_id","old_status","new_status","timestamp","environment"]},"WalletTransactionStatusUpdateWebhook":{"title":"WalletTransactionStatusUpdateWebhook","type":"object","additionalProperties":true,"description":"Fired when the status of a wallet transaction has changed.","x-examples":{"example-1":{"webhook_type":"WALLET","webhook_code":"WALLET_TRANSACTION_STATUS_UPDATE","transaction_id":"wallet-transaction-id-production-2ba30780-d549-4335-b1fe-c2a938aa39d2","payment_id":"payment-id-production-feca8a7a-5591-4aef-9297-f3062bb735d3","wallet_id":"wallet-id-production-53e58b32-fc1c-46fe-bbd6-e584b27a88","new_status":"SETTLED","old_status":"INITIATED","timestamp":"2017-09-14T14:42:19.350Z","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`WALLET`"},"webhook_code":{"type":"string","description":"`WALLET_TRANSACTION_STATUS_UPDATE`"},"transaction_id":{"type":"string","description":"The `transaction_id` for the wallet transaction being updated"},"payment_id":{"type":["string","null"],"description":"The `payment_id` associated with the transaction. This will be present in case of `REFUND` and `PIS_PAY_IN`."},"wallet_id":{"type":"string","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."},"new_status":{"$ref":"#/components/schemas/WalletTransactionStatus"},"old_status":{"$ref":"#/components/schemas/WalletTransactionStatus"},"failure_reason":{"$ref":"#/components/schemas/WalletTransactionFailureReason"},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the update, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","transaction_id","new_status","old_status","timestamp","environment"]},"Holding":{"title":"Holding","type":"object","additionalProperties":true,"description":"A securities holding at an institution.","properties":{"account_id":{"type":"string","description":"The Plaid `account_id` associated with the holding."},"security_id":{"type":"string","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."},"institution_price":{"type":"number","format":"double","description":"The last price given by the institution for this security."},"institution_price_as_of":{"type":["string","null"],"format":"date","description":"The date at which `institution_price` was current."},"institution_price_datetime":{"type":["string","null"],"format":"date-time","description":"Date and time at which `institution_price` was current, in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ).\n\nThis 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).\n"},"institution_value":{"type":"number","format":"double","description":"The value of the holding, as reported by the institution."},"cost_basis":{"type":["number","null"],"format":"double","description":"The total cost basis of the holding (e.g., the total amount spent to acquire all assets currently in the holding)."},"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.","type":"number","format":"double"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the holding. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.\n"},"vested_quantity":{"type":["number","null"],"format":"double","description":"The total quantity of vested assets held, as reported by the financial institution. Vested assets are only associated with [equities](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-type)."},"vested_value":{"type":["number","null"],"format":"double","description":"The value of the vested holdings as reported by the institution."},"tax_lots":{"description":"Per-lot acquisition data for this holding. An empty array indicates the institution does not provide lot-level data.","type":"array","items":{"$ref":"#/components/schemas/HoldingTaxLot"}}},"required":["account_id","security_id","institution_price","institution_value","cost_basis","quantity","iso_currency_code","unofficial_currency_code"]},"HoldingTaxLot":{"title":"HoldingTaxLot","description":"A single acquisition lot within a holding.","type":"object","additionalProperties":true,"properties":{"institution_lot_id":{"description":"The financial institution's identifier for this lot. Null if the institution does not provide a lot identifier.","type":["string","null"]},"original_purchase_datetime":{"description":"The date and time this lot was acquired, in ISO 8601 format. Null if the institution does not provide acquisition datetime data.","type":["string","null"],"format":"date-time"},"quantity":{"description":"The number of units of the security in this lot.","type":["number","null"],"format":"double"},"purchase_price":{"description":"The price per unit of the security at the time this lot was acquired.","type":["number","null"],"format":"double"},"cost_basis":{"description":"The total cost basis of this lot, inclusive of any fees.","type":["number","null"],"format":"double"},"current_value":{"description":"The current market value of this lot.","type":["number","null"],"format":"double"},"position_type":{"$ref":"#/components/schemas/HoldingTaxLotPositionType"}},"required":["institution_lot_id","original_purchase_datetime","quantity","purchase_price","cost_basis","current_value","position_type"]},"HoldingTaxLotPositionType":{"title":"HoldingTaxLotPositionType","description":"Indicates whether a holding lot position is long or short. Possible values are `LONG` and `SHORT`.","type":["string","null"],"enum":["LONG","SHORT"]},"Security":{"title":"Security","type":"object","additionalProperties":true,"description":"Contains details about a security","properties":{"security_id":{"type":"string","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."},"isin":{"type":["string","null"],"description":"12-character ISIN, a globally unique securities identifier. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please start the verification process [here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform)."},"cusip":{"type":["string","null"],"description":"9-character CUSIP, an identifier assigned to North American securities. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please start the verification process [here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform)."},"sedol":{"type":["string","null"],"deprecated":true,"description":"(Deprecated) 7-character SEDOL, an identifier assigned to securities in the UK."},"institution_security_id":{"type":["string","null"],"description":"An identifier given to the security by the institution"},"institution_id":{"type":["string","null"],"description":"If `institution_security_id` is present, this field indicates the Plaid `institution_id` of the institution to whom the identifier belongs."},"proxy_security_id":{"type":["string","null"],"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."},"name":{"type":["string","null"],"description":"A descriptive name for the security, suitable for display."},"ticker_symbol":{"type":["string","null"],"description":"The security's trading symbol for publicly traded securities, and otherwise a short identifier if available."},"is_cash_equivalent":{"type":["boolean","null"],"description":"Indicates that a security is a highly liquid asset and can be treated like cash."},"type":{"type":["string","null"],"description":"The security type of the holding.\n\nIn rare instances, a null value is returned when institutional data is insufficient to determine the security type.\n\nValid security types are:\n\n`cash`: Cash, currency, and money market funds\n\n`cryptocurrency`: Digital or virtual currencies\n\n`derivative`: Options, warrants, and other derivative instruments\n\n`equity`: Domestic and foreign equities\n\n`etf`: Multi-asset exchange-traded investment funds\n\n`fixed income`: Bonds and certificates of deposit (CDs)\n\n`loan`: Loans and loan receivables\n\n`mutual fund`: Open- and closed-end vehicles pooling funds of multiple investors\n\n`other`: Unknown or other investment types"},"subtype":{"type":["string","null"],"description":"The security subtype of the holding.\n\nIn rare instances, a null value is returned when institutional data is insufficient to determine the security subtype.\n\nPossible values: `asset backed security`, `bill`, `bond`, `bond with warrants`, `cash`, `cash management bill`, `common stock`, `convertible bond`, `convertible equity`, `cryptocurrency`, `depositary receipt`, `depositary receipt on debt`, `etf`, `float rating note`, `fund of funds`, `hedge fund`, `limited partnership unit`, `medium term note`, `money market debt`, `mortgage backed security`, `municipal bond`, `mutual fund`, `note`, `option`, `other`, `preferred convertible`, `preferred equity`, `private equity fund`, `real estate investment trust`, `structured equity product`, `treasury inflation protected securities`, `unit`, `warrant`."},"close_price":{"type":["number","null"],"format":"double","description":"Price of the security at the close of the previous trading session. Null for non-public securities.\n\nIf the security is a foreign currency this field will be updated daily and will be priced in USD.\n\nIf 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.\n"},"close_price_as_of":{"type":["string","null"],"format":"date","description":"Date for which `close_price` is accurate. Always `null` if `close_price` is `null`."},"update_datetime":{"type":["string","null"],"format":"date-time","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`."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the price given. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"market_identifier_code":{"type":["string","null"],"description":"The ISO-10383 Market Identifier Code of the exchange or market in which the security is being traded."},"sector":{"type":["string","null"],"description":"The sector classification of the security, such as Finance, Health Technology, etc.\n\nFor a complete list of possible values, please refer to the [\"Sectors and Industries\" spreadsheet](https://docs.google.com/spreadsheets/d/1L7aXUdqLhxgM8qe7hK67qqKXiUdQqILpwZ0LpxvCVnc)."},"industry":{"type":["string","null"],"description":"The industry classification of the security, such as Biotechnology, Airlines, etc.\n\nFor a complete list of possible values, please refer to the [\"Sectors and Industries\" spreadsheet](https://docs.google.com/spreadsheets/d/1L7aXUdqLhxgM8qe7hK67qqKXiUdQqILpwZ0LpxvCVnc)."},"cfi_code":{"type":["string","null"],"description":"The ISO-10962 Classification of Financial Instruments Code used to classify the security based on its structure and function."},"figi":{"type":["string","null"],"description":"12-character FIGI, a unique Financial Instrument Global Identifier assigned to securities that is immutable and stays consistent across most corporate actions. This is an open data standard issued by the Object Management Group and administered by Bloomberg L.P."},"option_contract":{"$ref":"#/components/schemas/OptionContract"},"fixed_income":{"$ref":"#/components/schemas/FixedIncome"}},"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","market_identifier_code","sector","industry","cfi_code","figi","option_contract","fixed_income"]},"InvestmentTransactionType":{"type":"string","enum":["buy","sell","cancel","cash","fee","transfer"],"description":"Value is one of the following:\n\n`buy`: Buying an investment\n\n`sell`: Selling an investment\n\n`cancel`: A cancellation of a pending transaction\n\n`cash`: Activity that modifies a cash position\n\n`fee`: A fee on the account\n\n`transfer`: Activity which modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer\n\nFor descriptions of possible transaction types and subtypes, see the [Investment transaction types schema](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema)."},"InvestmentTransactionSubtype":{"type":"string","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).","x-override-enum-values-shown":["account fee","adjustment","assignment","buy","buy to cover","contribution","deposit","distribution","dividend","dividend reinvestment","exercise","expire","interest","interest receivable","interest reinvestment","legal fee","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","return of principal","request","sell","sell short","send","short-term capital gain","short-term capital gain reinvestment","spin off","split","tax","tax withheld","trade","transfer","transfer fee","trust fee","unqualified gain","withdrawal"],"enum":["account fee","adjustment","assignment","buy","buy to cover","contribution","deposit","distribution","dividend","dividend reinvestment","exercise","expire","interest","interest receivable","interest reinvestment","legal fee","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","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"]},"OptionContract":{"title":"OptionContract","type":["object","null"],"additionalProperties":true,"description":"Details about the option security.\n\nFor the Sandbox environment, this data is currently only available if the Item is using a [custom Sandbox user](https://plaid.com/docs/sandbox/user-custom/) and the `ticker_symbol` field of the custom security follows the [OCC Option Symbol](https://en.wikipedia.org/wiki/Option_symbol#The_OCC_Option_Symbol) standard with no spaces. For an example of simulating this in Sandbox, see the [custom Sandbox GitHub](https://github.com/plaid/sandbox-custom-users).","properties":{"contract_type":{"type":"string","description":"The type of this option contract. It is one of:\n\n`put`: for Put option contracts\n\n`call`: for Call option contracts"},"expiration_date":{"type":"string","format":"date","description":"The expiration date for this option contract, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"strike_price":{"type":"number","format":"double","description":"The strike price for this option contract, per share of security."},"underlying_security_ticker":{"type":"string","description":"The ticker of the underlying security for this option contract."}},"required":["contract_type","expiration_date","strike_price","underlying_security_ticker"]},"FixedIncome":{"title":"FixedIncome","type":["object","null"],"additionalProperties":true,"description":"Details about the fixed income security.","properties":{"yield_rate":{"$ref":"#/components/schemas/YieldRate"},"maturity_date":{"type":["string","null"],"format":"date","description":"The maturity date for this fixed income security, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"issue_date":{"type":["string","null"],"format":"date","description":"The issue date for this fixed income security, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"face_value":{"type":["number","null"],"format":"double","description":"The face value that is paid upon maturity of the fixed income security, per unit of security."}},"required":["yield_rate","maturity_date","issue_date","face_value"]},"YieldRate":{"title":"YieldRate","type":["object","null"],"additionalProperties":true,"description":"Details about a fixed income security's expected rate of return.","properties":{"percentage":{"type":"number","format":"double","description":"The fixed income security's expected rate of return."},"type":{"$ref":"#/components/schemas/YieldRateType"}},"required":["percentage","type"]},"YieldRateType":{"title":"YieldRateType","type":["string","null"],"enum":["coupon","coupon_equivalent","discount","yield",null],"description":"The type of rate which indicates how the predicted yield was calculated. It is one of:\n\n`coupon`: the annualized interest rate for securities with a one-year term or longer, such as treasury notes and bonds.\n\n`coupon_equivalent`: the calculated equivalent for the annualized interest rate factoring in the discount rate and time to maturity, for shorter term, non-interest-bearing securities such as treasury bills.\n\n`discount`: the rate at which the present value or cost is discounted from the future value upon maturity, also known as the face value.\n\n`yield`: the total predicted rate of return factoring in both the discount rate and the coupon rate, applicable to securities such as exchange-traded bonds which can both be interest-bearing as well as sold at a discount off their face value."},"InvestmentTransaction":{"title":"InvestmentTransaction","type":"object","additionalProperties":true,"description":"A transaction within an investment account.","properties":{"investment_transaction_id":{"type":"string","description":"The ID of the Investment transaction, unique across all Plaid transactions. Like all Plaid identifiers, the `investment_transaction_id` is case sensitive."},"cancel_transaction_id":{"type":["string","null"],"deprecated":true,"description":"A legacy field formerly used internally by Plaid to identify certain canceled transactions.","x-hidden-from-docs":true},"account_id":{"type":"string","description":"The `account_id` of the account against which this transaction posted."},"security_id":{"type":["string","null"],"description":"The `security_id` to which this transaction is related."},"date":{"type":"string","format":"date","description":"The [ISO 8601](https://wikipedia.org/wiki/ISO_8601) posting date for the transaction. This is typically the settlement date."},"transaction_datetime":{"type":["string","null"],"format":"date-time","description":"Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) representing when the order was initiated. This field is returned for select financial institutions and reflects the value provided by the institution. When the institution only provides a date without time-of-day information, this field will reflect the date that the order was initiated with a time component that defaults to `T00:00:00Z`. This does not indicate that the order was initiated at midnight UTC."},"name":{"type":"string","description":"The institution's description of the transaction."},"quantity":{"type":"number","format":"double","description":"The number of units of the security involved in this transaction. Positive for buy transactions; negative for sell transactions."},"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. For transactions representing a simultaneous cash contribution and purchase of a security, the portion of the transaction representing the purchase takes precedence, and the `amount` is represented as positive.","type":"number","format":"double"},"price":{"description":"The price of the security at which this transaction occurred.","type":"number","format":"double"},"fees":{"type":["number","null"],"format":"double","description":"The combined value of all fees applied to this transaction"},"type":{"$ref":"#/components/schemas/InvestmentTransactionType"},"subtype":{"$ref":"#/components/schemas/InvestmentTransactionSubtype"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}},"required":["investment_transaction_id","account_id","security_id","date","name","quantity","amount","price","fees","type","subtype","iso_currency_code","unofficial_currency_code"]},"StandaloneInvestmentTransactionType":{"title":"StandaloneInvestmentTransactionType","type":"object","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"},"sell":{"$ref":"#/components/schemas/StandaloneInvestmentTransactionSellType"},"cancel":{"type":"string","description":"A cancellation of a pending transaction"},"cash":{"$ref":"#/components/schemas/StandaloneInvestmentTransactionCashType"},"fee":{"$ref":"#/components/schemas/StandaloneInvestmentTransactionFeeType"},"transfer":{"$ref":"#/components/schemas/StandaloneInvestmentTransactionTransferType"}},"required":["buy","sell","cancel","cash","fee","transfer"]},"StandaloneInvestmentTransactionBuyType":{"title":"BuyType","description":"Buying an investment","type":"string","properties":{"assignment":{"type":"string","description":"Assignment of short option holding"},"contribution":{"type":"string","description":"Inflow of assets into a tax-advantaged account"},"buy":{"type":"string","description":"Purchase to open or increase a position"},"buy to cover":{"type":"string","description":"Purchase to close a short position"},"dividend reinvestment":{"type":"string","description":"Purchase using proceeds from a cash dividend"},"interest reinvestment":{"type":"string","description":"Purchase using proceeds from a cash interest payment"},"long-term capital gain reinvestment":{"type":"string","description":"Purchase using long-term capital gain cash proceeds"},"short-term capital gain reinvestment":{"type":"string","description":"Purchase using short-term capital gain cash proceeds"}}},"StandaloneInvestmentTransactionCashType":{"title":"CashType","description":"Activity that modifies a cash position","type":"string","properties":{"account fee":{"type":"string","description":"Fees paid for account maintenance"},"contribution":{"type":"string","description":"Inflow of assets into a tax-advantaged account"},"deposit":{"type":"string","description":"Inflow of cash into an account"},"dividend":{"type":"string","description":"Inflow of cash from a dividend"},"interest":{"type":"string","description":"Inflow of cash from interest"},"legal fee":{"type":"string","description":"Fees paid for legal charges or services"},"long-term capital gain":{"type":"string","description":"Long-term capital gain received as cash"},"management fee":{"type":"string","description":"Fees paid for investment management of a mutual fund or other pooled investment vehicle"},"margin expense":{"type":"string","description":"Fees paid for maintaining margin debt"},"non-qualified dividend":{"type":"string","description":"Inflow of cash from a non-qualified dividend"},"non-resident tax":{"type":"string","description":"Taxes paid on behalf of the investor for non-residency in investment jurisdiction"},"pending credit":{"type":"string","description":"Pending inflow of cash"},"pending debit":{"type":"string","description":"Pending outflow of cash"},"qualified dividend":{"type":"string","description":"Inflow of cash from a qualified dividend"},"short-term capital gain":{"type":"string","description":"Short-term capital gain received as cash"},"tax":{"type":"string","description":"Taxes paid on behalf of the investor"},"tax withheld":{"type":"string","description":"Taxes withheld on behalf of the customer"},"transfer fee":{"type":"string","description":"Fees incurred for transfer of a holding or account"},"trust fee":{"type":"string","description":"Fees related to administration of a trust account"},"unqualified gain":{"type":"string","description":"Unqualified capital gain received as cash"},"withdrawal":{"type":"string","description":"Outflow of cash from an account"}}},"StandaloneInvestmentTransactionFeeType":{"title":"FeeType","description":"Fees on the account, e.g. commission, bookkeeping, options-related.","type":"string","properties":{"account fee":{"type":"string","description":"Fees paid for account maintenance"},"adjustment":{"type":"string","description":"Increase or decrease in quantity of item"},"dividend":{"type":"string","description":"Inflow of cash from a dividend"},"interest":{"type":"string","description":"Inflow of cash from interest"},"interest receivable":{"type":"string","description":"Inflow of cash from interest receivable"},"long-term capital gain":{"type":"string","description":"Long-term capital gain received as cash"},"legal fee":{"type":"string","description":"Fees paid for legal charges or services"},"management fee":{"type":"string","description":"Fees paid for investment management of a mutual fund or other pooled investment vehicle"},"margin expense":{"type":"string","description":"Fees paid for maintaining margin debt"},"non-qualified dividend":{"type":"string","description":"Inflow of cash from a non-qualified dividend"},"non-resident tax":{"type":"string","description":"Taxes paid on behalf of the investor for non-residency in investment jurisdiction"},"qualified dividend":{"type":"string","description":"Inflow of cash from a qualified dividend"},"return of principal":{"type":"string","description":"Repayment of loan principal"},"short-term capital gain":{"type":"string","description":"Short-term capital gain received as cash"},"tax":{"type":"string","description":"Taxes paid on behalf of the investor"},"tax withheld":{"type":"string","description":"Taxes withheld on behalf of the customer"},"transfer fee":{"type":"string","description":"Fees incurred for transfer of a holding or account"},"trust fee":{"type":"string","description":"Fees related to administration of a trust account"},"unqualified gain":{"type":"string","description":"Unqualified capital gain received as cash"}}},"StandaloneInvestmentTransactionSellType":{"title":"SellType","description":"Selling an investment","type":"string","properties":{"distribution":{"type":"string","description":"Outflow of assets from a tax-advantaged account"},"exercise":{"type":"string","description":"Exercise of an option or warrant contract"},"sell":{"type":"string","description":"Sell to close or decrease an existing holding"},"sell short":{"type":"string","description":"Sell to open a short position"}}},"StandaloneInvestmentTransactionTransferType":{"title":"TransferType","description":"Activity that modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer","type":"string","properties":{"assignment":{"type":"string","description":"Assignment of short option holding"},"adjustment":{"type":"string","description":"Increase or decrease in quantity of item"},"exercise":{"type":"string","description":"Exercise of an option or warrant contract"},"expire":{"type":"string","description":"Expiration of an option or warrant contract"},"merger":{"type":"string","description":"Stock exchanged at a pre-defined ratio as part of a merger between companies"},"request":{"type":"string","description":"Request fiat or cryptocurrency to an address or email"},"send":{"type":"string","description":"Inflow or outflow of fiat or cryptocurrency to an address or email"},"spin off":{"type":"string","description":"Inflow of stock from spin-off transaction of an existing holding"},"split":{"type":"string","description":"Inflow of stock from a forward split of an existing holding"},"trade":{"type":"string","description":"Trade of one cryptocurrency for another"},"transfer":{"type":"string","description":"Movement of assets into or out of an account"}}},"AccountSubtypes":{"title":"AccountSubtypes","type":"array","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"}},"UserPermissionRevokedWebhook":{"title":"UserPermissionRevokedWebhook","type":"object","additionalProperties":true,"description":"The `USER_PERMISSION_REVOKED` webhook may be fired when an end user has revoked the permission that they previously granted to access an Item. If the end user revoked their permissions through Plaid (such as via the Plaid Portal or by contacting Plaid support), the webhook will fire. If the end user revoked their permissions directly through the institution, this webhook may not always fire, since some institutions' consent portals do not trigger this webhook. To attempt to restore the Item, it can be sent through [update mode](https://plaid.com/docs/link/update-mode). Depending on the exact process the end user used to revoke permissions, it may not be possible to launch update mode for the Item. If you encounter an error when attempting to create a Link token for update mode on an Item with revoked permissions, create a fresh Link token for the user.\n\nNote that when working with tokenized account numbers with Auth or Transfer, the account number provided by Plaid will no longer work for creating transfers once user permission has been revoked, except for US Bank Items.","x-examples":{"example-1":{"webhook_type":"ITEM","webhook_code":"USER_PERMISSION_REVOKED","error":{"error_code":"USER_PERMISSION_REVOKED","error_message":"the holder of this account has revoked their permission for your application to access it","display_message":null,"error_type":"ITEM_ERROR","status":400},"item_id":"gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ","user_id":"usr_9nSp2KuZ2x4JDw","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`ITEM`"},"webhook_code":{"type":"string","description":"`USER_PERMISSION_REVOKED`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","environment"]},"FallbackAuthMicrodepositAutoVerifiedWebhook":{"title":"FallbackAuthMicrodepositAutoVerifiedWebhook","type":"object","description":"Fires when an account is automatically verified using micro-deposits","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`AUTH`"},"webhook_code":{"type":"string","description":"`AUTOMATICALLY_VERIFIED`"},"error":{"type":["string","null"],"description":"The error code associated with the webhook."},"account_id":{"type":"string","description":"The external account ID associated with the micro-deposit"},"item_id":{"$ref":"#/components/schemas/ItemId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","account_id","item_id","environment"]},"FallbackAuthMicrodepositVerificationExpiredWebhook":{"title":"FallbackAuthMicrodepositVerificationExpiredWebhook","type":"object","description":"Fires when an account has an expired verification when using micro-deposits","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`AUTH`"},"webhook_code":{"type":"string","description":"`VERIFICATION_EXPIRED`"},"error":{"type":["string","null"],"description":"The error code associated with the webhook."},"account_id":{"type":"string","description":"The external account ID associated with the micro-deposit"},"item_id":{"$ref":"#/components/schemas/ItemId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","account_id","item_id","environment"]},"TransferGetRequest":{"title":"TransferGetRequest","type":"object","description":"Defines the request schema for `/transfer/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"transfer_id":{"$ref":"#/components/schemas/TransferID"},"authorization_id":{"$ref":"#/components/schemas/TransferAuthorizationID"},"originator_client_id":{"deprecated":true,"x-hidden-from-docs":true,"type":["string","null"],"description":"The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS)."}}},"TransferRecurringGetRequest":{"title":"TransferRecurringGetRequest","type":"object","description":"Defines the request schema for `/transfer/recurring/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"recurring_transfer_id":{"$ref":"#/components/schemas/RecurringTransferID"}},"required":["recurring_transfer_id"]},"BankTransferGetRequest":{"title":"BankTransferGetRequest","type":"object","description":"Defines the request schema for `/bank_transfer/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"bank_transfer_id":{"$ref":"#/components/schemas/BankTransferID"}},"required":["bank_transfer_id"]},"TransferGetResponse":{"title":"TransferGetResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/get`","properties":{"transfer":{"$ref":"#/components/schemas/Transfer"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["transfer","request_id"]},"TransferRecurringGetResponse":{"title":"TransferRecurringGetResponse","type":"object","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"]},"BankTransferGetResponse":{"title":"BankTransferGetResponse","type":"object","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"]},"TransferID":{"type":"string","title":"TransferID","description":"Plaid's unique identifier for a transfer."},"RecurringTransferID":{"type":"string","title":"RecurringTransferID","description":"Plaid's unique identifier for a recurring transfer."},"TransferTestClockID":{"type":"string","title":"TransferTestClockID","description":"Plaid's unique identifier for a test clock. For more details, see [Simulating recurring transfers](https://plaid.com/docs/transfer/sandbox/#simulating-recurring-transfers)."},"TransferSweepID":{"type":"string","title":"TransferSweepID","description":"Plaid's unique identifier for a sweep."},"TransferSweepIDNullable":{"type":["string","null"],"title":"TransferSweepID","description":"Plaid's unique identifier for a sweep."},"TransferRefundID":{"type":"string","title":"TransferRefundID","description":"Plaid's unique identifier for a refund."},"TransferIDForRefund":{"type":"string","title":"TransferID","description":"The ID of the transfer to refund."},"TransferAuthorizationID":{"type":"string","title":"TransferAuthorizationID","description":"Plaid's unique identifier for a transfer authorization."},"TransferLedgerID":{"type":["string","null"],"title":"TransferLedgerID","description":"Plaid's unique identifier for a Plaid Ledger Balance."},"BankTransferID":{"type":"string","title":"BankTransferID","description":"Plaid's unique identifier for a bank transfer."},"TransferExpectedSweepSettlementScheduleItem":{"title":"TransferExpectedSweepSettlementScheduleItem","type":"object","additionalProperties":true,"description":"Defines an expected sweep date and amount.","properties":{"sweep_settlement_date":{"type":"string","description":"The settlement date of a sweep for this transfer.","format":"date"},"swept_settled_amount":{"type":"string","description":"The accumulated amount that has been swept by `sweep_settlement_date`."}},"required":["sweep_settlement_date","swept_settled_amount"]},"Transfer":{"title":"Transfer","type":"object","additionalProperties":true,"description":"Represents a transfer within the Transfers API.","properties":{"id":{"$ref":"#/components/schemas/TransferID"},"authorization_id":{"$ref":"#/components/schemas/TransferAuthorizationID"},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"account_id":{"type":"string","description":"The Plaid `account_id` corresponding to the end-user account that will be debited or credited."},"funding_account_id":{"$ref":"#/components/schemas/TransferFundingAccountIDResponseNullable"},"ledger_id":{"$ref":"#/components/schemas/TransferLedgerID"},"type":{"$ref":"#/components/schemas/TransferType"},"user":{"$ref":"#/components/schemas/TransferUserInResponse"},"amount":{"$ref":"#/components/schemas/TransferAmount"},"description":{"type":"string","description":"The description of the transfer."},"created":{"type":"string","format":"date-time","description":"The datetime when this transfer was created. This will be of the form `2006-01-02T15:04:05Z`"},"status":{"$ref":"#/components/schemas/TransferStatus"},"sweep_status":{"$ref":"#/components/schemas/TransferSweepStatus"},"network":{"$ref":"#/components/schemas/TransferNetwork"},"wire_details":{"$ref":"#/components/schemas/TransferWireDetails"},"cancellable":{"type":"boolean","description":"When `true`, you can still cancel this transfer."},"failure_reason":{"$ref":"#/components/schemas/TransferFailure"},"metadata":{"$ref":"#/components/schemas/TransferMetadata"},"origination_account_id":{"type":"string","description":"Plaid's unique identifier for the origination account that was used for this transfer.","deprecated":true,"x-hidden-from-docs":true},"guarantee_decision":{"deprecated":true,"allOf":[{"$ref":"#/components/schemas/TransferAuthorizationGuaranteeDecision"}]},"guarantee_decision_rationale":{"$ref":"#/components/schemas/TransferAuthorizationGuaranteeDecisionRationale"},"guarantee_details":{"$ref":"#/components/schemas/TransferGuaranteeDetails"},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount, e.g. \"USD\""},"standard_return_window":{"type":["string","null"],"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"},"unauthorized_return_window":{"type":["string","null"],"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, R52, R53. This will be of the form YYYY-MM-DD.","format":"date"},"expected_settlement_date":{"type":["string","null"],"description":"Deprecated for Plaid Ledger clients, use `expected_funds_available_date` instead.","format":"date","deprecated":true},"expected_funds_available_date":{"type":["string","null"],"description":"The expected date when funds from a transfer will be made available and can be withdrawn from the associated ledger balance, assuming the debit does not return before this date. If the transfer does return before this date, this field will be null. Only applies to debit transfers. This will be of the form YYYY-MM-DD.","format":"date"},"originator_client_id":{"type":["string","null"],"description":"The Plaid client ID that is the originator of this transfer. Only present if created on behalf of another client as a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms)."},"refunds":{"type":"array","description":"A list of refunds associated with this transfer.","items":{"$ref":"#/components/schemas/TransferRefund"}},"recurring_transfer_id":{"type":["string","null"],"description":"The id of the recurring transfer if this transfer belongs to a recurring transfer."},"expected_sweep_settlement_schedule":{"type":"array","description":"The expected sweep settlement schedule of this transfer, assuming this transfer is not `returned`. Only applies to ACH debit transfers.","items":{"$ref":"#/components/schemas/TransferExpectedSweepSettlementScheduleItem"}},"credit_funds_source":{"deprecated":true,"allOf":[{"$ref":"#/components/schemas/TransferCreditFundsSource"}]},"facilitator_fee":{"$ref":"#/components/schemas/TransferFacilitatorFee"},"network_trace_id":{"$ref":"#/components/schemas/TransferNetworkTraceID"}},"required":["id","authorization_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","credit_funds_source"]},"RecurringTransfer":{"title":"RecurringTransfer","type":"object","additionalProperties":true,"description":"Represents a recurring transfer within the Transfers API.","properties":{"recurring_transfer_id":{"$ref":"#/components/schemas/RecurringTransferID"},"created":{"type":"string","format":"date-time","description":"The datetime when this transfer was created. This will be of the form `2006-01-02T15:04:05Z`"},"next_origination_date":{"type":["string","null"],"format":"date","description":"A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).\n\nThe next transfer origination date after bank holiday adjustment."},"test_clock_id":{"type":["string","null"],"description":"Plaid's unique identifier for a test clock."},"type":{"$ref":"#/components/schemas/TransferType"},"amount":{"$ref":"#/components/schemas/TransferAmount"},"status":{"$ref":"#/components/schemas/TransferRecurringStatus"},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"network":{"$ref":"#/components/schemas/TransferRecurringNetwork"},"origination_account_id":{"type":"string","description":"Plaid's unique identifier for the origination account that was used for this transfer.","deprecated":true,"x-hidden-from-docs":true},"account_id":{"type":"string","description":"The Plaid `account_id` corresponding to the end-user account that will be debited or credited."},"funding_account_id":{"$ref":"#/components/schemas/TransferFundingAccountIDResponse"},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount, e.g. \"USD\""},"description":{"type":"string","description":"The description of the recurring transfer."},"transfer_ids":{"type":"array","description":"The created transfer instances associated with this `recurring_transfer_id`. If the recurring transfer has been newly created, this array will be empty.","items":{"$ref":"#/components/schemas/TransferID"}},"user":{"$ref":"#/components/schemas/TransferUserInResponse"},"schedule":{"$ref":"#/components/schemas/TransferRecurringSchedule"}},"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"]},"RecurringTransferNullable":{"title":"RecurringTransferNullable","type":"object","additionalProperties":true,"description":"Represents a recurring transfer within the Transfers API.","allOf":[{"$ref":"#/components/schemas/RecurringTransfer"},{"type":["object","null"]}]},"TransferTestClock":{"title":"TransferTestClock","type":"object","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"]},"VirtualTime":{"type":"string","title":"VirtualTime","format":"date-time","description":"The virtual timestamp on the test clock. This will be of the form `2006-01-02T15:04:05Z`."},"BankTransfer":{"title":"BankTransfer","type":"object","additionalProperties":true,"description":"Represents a bank transfer within the Bank Transfers API.","properties":{"id":{"$ref":"#/components/schemas/BankTransferID"},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"account_id":{"type":"string","description":"The account ID that should be credited/debited for this bank transfer."},"type":{"$ref":"#/components/schemas/BankTransferType"},"user":{"$ref":"#/components/schemas/BankTransferUser"},"amount":{"$ref":"#/components/schemas/BankTransferAmount"},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount, e.g. \"USD\""},"description":{"type":"string","description":"The description of the transfer."},"created":{"type":"string","format":"date-time","description":"The datetime when this bank transfer was created. This will be of the form `2006-01-02T15:04:05Z`"},"status":{"$ref":"#/components/schemas/BankTransferStatus"},"network":{"$ref":"#/components/schemas/BankTransferNetwork"},"cancellable":{"type":"boolean","description":"When `true`, you can still cancel this bank transfer."},"failure_reason":{"$ref":"#/components/schemas/BankTransferFailure"},"custom_tag":{"type":["string","null"],"description":"A string containing the custom tag provided by the client in the create request. Will be null if not provided."},"metadata":{"$ref":"#/components/schemas/BankTransferMetadata"},"origination_account_id":{"type":["string","null"],"description":"Plaid's unique identifier for the origination account that was used for this transfer."},"direction":{"$ref":"#/components/schemas/BankTransferDirection"}},"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"]},"DetailedOriginator":{"type":"object","title":"Originator","additionalProperties":true,"description":"Originator and their status.","properties":{"client_id":{"type":"string","description":"Originator's client ID."},"transfer_diligence_status":{"$ref":"#/components/schemas/TransferDiligenceStatus"},"company_name":{"type":"string","description":"The company name of the end customer."},"outstanding_requirements":{"type":"array","description":"List of outstanding requirements that must be submitted before Plaid can approve the originator. Only populated when `transfer_diligence_status` is `more_information_required`.","items":{"$ref":"#/components/schemas/TransferPlatformRequirement"}}},"required":["client_id","transfer_diligence_status","company_name"]},"Originator":{"type":"object","title":"Originator","additionalProperties":true,"description":"Originator and their status.","properties":{"client_id":{"type":"string","description":"Originator's client ID."},"transfer_diligence_status":{"$ref":"#/components/schemas/TransferDiligenceStatus"}},"required":["client_id","transfer_diligence_status"]},"ACHClass":{"type":"string","title":"ACHClass","enum":["ccd","ppd","tel","web"],"description":"Specifies the use case of the transfer. Required for transfers on an ACH network. For more details, see [ACH SEC codes](https://plaid.com/docs/transfer/creating-transfers/#ach-sec-codes).\n\nCodes supported for credits: `ccd`, `ppd`\nCodes supported for debits: `ccd`, `ppd`, `tel`, `web`\n\n`\"ccd\"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts\n\n`\"ppd\"` - Prearranged Payment or Deposit - The transfer is part of a pre-existing relationship with a consumer. Authorization was obtained in writing either in person or via an electronic document signing, e.g. Docusign, by the consumer. Can be used for credits or debits.\n\n`\"web\"` - Internet-Initiated Entry. The transfer debits a consumer's bank account. Authorization from the consumer is obtained over the Internet (e.g. a web or mobile application). Can be used for single debits or recurring debits.\n\n`\"tel\"` - Telephone-Initiated Entry. The transfer debits a consumer. Debit authorization has been received orally over the telephone via a recorded call."},"TransferCreditFundsSource":{"type":["string","null"],"title":"TransferCreditFundsSource","deprecated":true,"enum":["sweep","prefunded_rtp_credits","prefunded_ach_credits",null],"description":"This field is now deprecated. You may ignore it for transfers created on and after 12/01/2023.\n\nSpecifies the source of funds for the transfer. Only valid for `credit` transfers, and defaults to `sweep` if not specified. This field is not specified for `debit` transfers.\n\n`sweep` - Sweep funds from your funding account\n`prefunded_rtp_credits` - Use your prefunded RTP credit balance with Plaid\n`prefunded_ach_credits` - Use your prefunded ACH credit balance with Plaid"},"TransferAmount":{"title":"TransferAmount","type":"string","description":"The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent. If the authorization's `guarantee_details.outcome` is `PARTIAL_INSTANT_ONLY`, this field is required when calling `/transfer/create`."},"TransferSweepAmount":{"title":"TransferSweepAmount","type":["string","null"],"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\")."},"TransferRefundAmount":{"title":"TransferRefundAmount","type":"string","description":"The amount of the refund (decimal string with two digits of precision e.g. \"10.00\")."},"TransferFacilitatorFee":{"title":"TransferFacilitatorFee","type":"string","description":"The amount to deduct from `transfer.amount` and distribute to the platform's Ledger balance as a facilitator fee (decimal string with two digits of precision e.g. \"10.00\"). The remainder will go to the end-customer's Ledger balance. This must be value greater than 0 and less than the `transfer.amount`."},"TransferNetworkTraceID":{"title":"TransferNetworkTraceID","type":["string","null"],"description":"The trace identifier for the transfer based on its network. This will only be set after the transfer has posted.\n\nFor `ach` or `same-day-ach` transfers, this is the ACH trace number.\nFor `rtp` transfers, this is the Transaction Identification number.\nFor `wire` transfers, this is the IMAD (Input Message Accountability Data) number."},"TransferIntentGetFailureReason":{"title":"TransferIntentGetFailureReason","type":["object","null"],"additionalProperties":true,"description":"The reason for a failed transfer intent. Returned only if the transfer intent status is `failed`. Null otherwise.","properties":{"error_type":{"type":"string","description":"A broad categorization of the error."},"error_code":{"type":"string","description":"A code representing the reason for a failed transfer intent (i.e., an API error or the authorization being declined)."},"error_message":{"type":"string","description":"A human-readable description of the code associated with a failed transfer intent."}}},"TransferIntentCreateMode":{"title":"TransferIntentCreateMode","type":"string","enum":["PAYMENT","DISBURSEMENT"],"description":"The direction of the flow of transfer funds.\n\n`PAYMENT`: Transfers funds from an end user's account to your business account.\n\n`DISBURSEMENT`: Transfers funds from your business account to an end user's account."},"BankTransferAmount":{"title":"BankTransferAmount","type":"string","description":"The amount of the bank transfer (decimal string with two digits of precision e.g. \"10.00\")."},"TransferCreateIdempotencyKey":{"title":"TransferCreateIdempotencyKey","type":"string","deprecated":true,"x-hidden-from-docs":true,"maxLength":50,"description":"Deprecated. `authorization_id` is now used as idempotency instead.\n\nA random key provided by the client, per unique transfer. Maximum of 50 characters.\n\nThe 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."},"TransferAuthorizationIdempotencyKey":{"title":"TransferAuthorizationIdempotencyKey","type":["string","null"],"maxLength":50,"description":"A random key provided by the client, per unique authorization, which expires after 48 hours. Maximum of 50 characters.\n\nThe 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.\n\nIdempotency does not apply to authorizations whose decisions are `user_action_required`. Therefore you may re-attempt the authorization after completing the required user action without changing `idempotency_key`.\n\nThis idempotency key expires after 48 hours, after which the same key can be reused. Failure to provide this key may result in duplicate charges."},"TransferRecurringIdempotencyKey":{"title":"TransferRecurringIdempotencyKey","type":"string","maxLength":50,"description":"A random key provided by the client, per unique recurring transfer. Maximum of 50 characters.\n\nThe API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a recurring transfer 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."},"TransferRefundIdempotencyKey":{"title":"TransferRefundIdempotencyKey","type":"string","maxLength":50,"description":"A random key provided by the client, per unique refund. Maximum of 50 characters.\n\nThe 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."},"LedgerDepositIdempotencyKey":{"title":"LedgerDepositIdempotencyKey","type":"string","maxLength":50,"description":"A unique key provided by the client, per unique ledger deposit. Maximum of 50 characters.\n\nThe API supports idempotency for safely retrying the request without accidentally performing the same operation twice. For example, if a request to create a ledger deposit fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single deposit is created."},"LedgerDistributeIdempotencyKey":{"title":"LedgerDistributeIdempotencyKey","type":"string","maxLength":50,"description":"A unique key provided by the client, per unique ledger distribute. Maximum of 50 characters.\n\nThe API supports idempotency for safely retrying the request without accidentally performing the same operation twice. For example, if a request to create a ledger distribute fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single distribute is created."},"LedgerWithdrawIdempotencyKey":{"title":"LedgerWithdrawIdempotencyKey","type":"string","maxLength":50,"description":"A unique key provided by the client, per unique ledger withdraw. Maximum of 50 characters.\n\nThe API supports idempotency for safely retrying the request without accidentally performing the same operation twice. For example, if a request to create a ledger withdraw fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single withdraw is created."},"BankTransferIdempotencyKey":{"title":"BankTransferIdempotencyKey","type":"string","maxLength":50,"description":"A random key provided by the client, per unique bank transfer. Maximum of 50 characters.\n\nThe 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."},"TransferAuthorizationUserInRequest":{"title":"TransferAuthorizationUserInRequest","type":"object","description":"The legal name and other information for the account holder.  If the account has multiple account holders, provide the information for the account holder on whose behalf the authorization is being requested. The `user.legal_name` field is required. Other fields are optional (for `rfp` transfers, `address` is required, including `street`, `city`, `region`, `postal_code`, and `country`), but if provided, they must be validly formatted and may be used in Plaid's risk evaluation.","properties":{"legal_name":{"type":"string","description":"The user's legal name. If the user is a business, provide the business name."},"phone_number":{"type":"string","description":"The user's phone number."},"email_address":{"type":"string","description":"The user's email address."},"address":{"$ref":"#/components/schemas/TransferUserAddressInRequest"}},"required":["legal_name"]},"TransferWireDetails":{"title":"TransferWireDetails","type":["object","null"],"description":"Information specific to wire transfers.","properties":{"message_to_beneficiary":{"type":["string","null"],"description":"Additional information from the wire originator to the beneficiary. Max 140 characters; no single word may exceed 35 characters."},"wire_return_fee":{"type":["string","null"],"description":"The fee amount deducted from the original transfer during a wire return, if applicable."}}},"TransferUserInRequest":{"title":"TransferUserInRequest","type":"object","description":"The legal name and other information for the account holder.","properties":{"legal_name":{"type":"string","description":"The user's legal name."},"phone_number":{"type":"string","description":"The user's phone number. Phone number input may be validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment."},"email_address":{"type":"string","description":"The user's email address."},"address":{"$ref":"#/components/schemas/TransferUserAddressInRequest"}},"required":["legal_name"]},"TransferUserInRequestDeprecated":{"title":"TransferUserInRequestDeprecated","type":["object","null"],"description":"The legal name and other information for the account holder.","deprecated":true,"x-hidden-from-docs":true,"properties":{"legal_name":{"type":"string","description":"The user's legal name."},"phone_number":{"type":"string","description":"The user's phone number."},"email_address":{"type":"string","description":"The user's email address."},"address":{"$ref":"#/components/schemas/TransferUserAddressInRequest"}}},"TransferUserInResponse":{"title":"TransferUserInResponse","type":"object","additionalProperties":true,"description":"The legal name and other information for the account holder.","properties":{"legal_name":{"type":"string","description":"The user's legal name."},"phone_number":{"type":["string","null"],"description":"The user's phone number."},"email_address":{"type":["string","null"],"description":"The user's email address."},"address":{"$ref":"#/components/schemas/TransferUserAddressInResponse"}},"required":["legal_name","phone_number","email_address","address"]},"TransferUserAddressInRequest":{"title":"TransferUserAddressInRequest","type":"object","description":"The address associated with the account holder.","properties":{"street":{"type":"string","description":"The street number and name (i.e., \"100 Market St.\")."},"city":{"type":"string","description":"Ex. \"San Francisco\""},"region":{"type":"string","description":"The state or province (e.g., \"CA\")."},"postal_code":{"type":"string","description":"The postal code (e.g., \"94103\")."},"country":{"type":"string","description":"A two-letter country code (e.g., \"US\")."}}},"TransferUserAddressInResponse":{"title":"TransferUserAddressInResponse","type":["object","null"],"additionalProperties":true,"description":"The address associated with the account holder.","properties":{"street":{"type":["string","null"],"description":"The street number and name (i.e., \"100 Market St.\")."},"city":{"type":["string","null"],"description":"Ex. \"San Francisco\""},"region":{"type":["string","null"],"description":"The state or province (e.g., \"CA\")."},"postal_code":{"type":["string","null"],"description":"The postal code (e.g., \"94103\")."},"country":{"type":["string","null"],"description":"A two-letter country code (e.g., \"US\")."}},"required":["street","city","region","postal_code","country"]},"BankTransferUser":{"title":"BankTransferUser","type":"object","additionalProperties":true,"description":"The legal name and other information for the account holder.","properties":{"legal_name":{"type":"string","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."},"email_address":{"type":["string","null"],"description":"The account holder's email."},"routing_number":{"type":"string","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}},"required":["legal_name"]},"TransferAuthorizationDecisionRationaleCode":{"type":"string","description":"A code representing the rationale for approving or declining the proposed transfer.\n\nIf the `rationale_code` is `null`, the transfer passed the authorization check.\n\nAny non-`null` value for an `approved` transfer indicates that the authorization check could not be run and that you should perform your own risk assessment on the transfer. The code will indicate why the check could not be run. Possible values for an `approved` transfer are:\n\n`MANUALLY_VERIFIED_ITEM` - Item created via a manual entry flow (i.e. Same-Day Micro-deposit, Instant Micro-deposit, or database-based verification), limited information available.\n\n`ITEM_LOGIN_REQUIRED` - Unable to collect the account information due to Item staleness. Can be resolved by using Link and setting [`transfer.authorization_id`](https://plaid.com/docs/api/link/#link-token-create-request-transfer-authorization-id) in the request to `/link/token/create`.\n\n`PAYMENT_PROFILE_LOGIN_REQUIRED` - The Payment Profile associated with the call to `/transfer/authorization/create` is in a state that requires the end user to re-authenticate. Can be resolved by using Link to refresh the Payment Profile.\n\n`MIGRATED_ACCOUNT_ITEM` - Item created via `/transfer/migrate_account` endpoint, limited information available.\n\n`ERROR` - Unable to collect the account information due to an unspecified error.\n\nThese codes can also accompany a `declined` decision, for example when your Signal Rules decline the transfer.\n\nThe following codes indicate that the authorization decision was `declined`:\n\n`NSF` - Transaction has an elevated risk of resulting in a return due to insufficient funds, or, for credit transfers, your available balance (in your Plaid Ledger or prefunded account) is insufficient to cover the transfer.\n\n`RISK` - Transaction is high-risk.\n\n`TRANSFER_LIMIT_REACHED` - One or several transfer limits are reached, e.g. monthly transfer limit. Check the accompanying `description` field to understand which limit has been reached.\n\n`ADMIN` - Transaction has an elevated risk of resulting in an administrative return (for example a closed, invalid, or unauthorized account).\n\n`FRAUD` - Transaction has an elevated risk of being fraudulent.","enum":["NSF","RISK","TRANSFER_LIMIT_REACHED","MANUALLY_VERIFIED_ITEM","ITEM_LOGIN_REQUIRED","PAYMENT_PROFILE_LOGIN_REQUIRED","ERROR","MIGRATED_ACCOUNT_ITEM","ADMIN","FRAUD",null]},"TransferAuthorizationDecisionRationale":{"title":"TransferAuthorizationDecisionRationale","type":["object","null"],"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.","properties":{"code":{"$ref":"#/components/schemas/TransferAuthorizationDecisionRationaleCode"},"description":{"type":"string","description":"A human-readable description of the code associated with a transfer approval or transfer decline."}},"required":["code","description"]},"TransferGuaranteeOutcome":{"type":"string","description":"The adaptive guarantee outcome for a transfer.\n\n`FULL_INSTANT`: The full transfer amount is guaranteed and funds are available instantly.\n\n`PARTIAL_INSTANT_ONLY`: A partial amount is guaranteed and available instantly; the remainder is not guaranteed.\n\n`PARTIAL_INSTANT_WITH_OBSERVATION_WINDOW`: A partial amount is guaranteed instantly; an additional amount is conditionally guaranteed subject to an observation window.\n\n`NOT_GUARANTEED`: Plaid did not provide a guarantee for this transfer.","enum":["FULL_INSTANT","PARTIAL_INSTANT_ONLY","PARTIAL_INSTANT_WITH_OBSERVATION_WINDOW","NOT_GUARANTEED"]},"TransferGuaranteeScheduleItem":{"title":"TransferGuaranteeScheduleItem","description":"A single entry in the adaptive guarantee settlement schedule, describing one tranche of guaranteed funds. Adds `observation_window_expiration_time`, which is only known once a transfer is created.","allOf":[{"$ref":"#/components/schemas/AuthorizationGuaranteeScheduleItem"},{"type":"object","additionalProperties":true,"properties":{"observation_window_expiration_time":{"type":["string","null"],"format":"date-time","description":"The datetime when the observation window for this tranche expires. Present only when the tranche is subject to an observation window. This will be of the form `2006-01-02T15:04:05Z`."}}}]},"AuthorizationGuaranteeScheduleItem":{"title":"AuthorizationGuaranteeScheduleItem","type":"object","additionalProperties":true,"description":"A single entry in an authorization's adaptive guarantee settlement schedule, describing one tranche of guaranteed funds.","properties":{"amount":{"type":"string","description":"The guaranteed amount for this schedule entry (decimal string with two digits of precision e.g. \"10.00\")."},"observation_window_business_days":{"type":"integer","description":"The number of business days in the observation window for this tranche. `0` when the tranche is not subject to an observation window."}},"required":["amount","observation_window_business_days"]},"AuthorizationGuaranteeDetails":{"title":"AuthorizationGuaranteeDetails","type":["object","null"],"additionalProperties":true,"description":"Adaptive guarantee details for a transfer authorization, including the guarantee outcome and settlement schedule. Omitted when no guarantee was attempted.","properties":{"outcome":{"$ref":"#/components/schemas/TransferGuaranteeOutcome"},"schedule":{"type":"array","description":"The adaptive guarantee settlement schedule for this authorization.","items":{"$ref":"#/components/schemas/AuthorizationGuaranteeScheduleItem"}}},"required":["outcome","schedule"]},"TransferGuaranteeDetails":{"title":"TransferGuaranteeDetails","type":["object","null"],"additionalProperties":true,"description":"Adaptive guarantee details for a transfer, including the guaranteed amount and settlement schedule. Omitted when no guarantee was attempted.","properties":{"guaranteed_amount":{"type":"string","description":"The amount currently covered by Plaid's guarantee (decimal string with two digits of precision e.g. \"10.00\"). This may change over time as scheduled tranches reach their observation window expiration and become guaranteed."},"schedule":{"type":"array","description":"The adaptive guarantee settlement schedule for this transfer.","items":{"$ref":"#/components/schemas/TransferGuaranteeScheduleItem"}}},"required":["guaranteed_amount","schedule"]},"TransferAuthorizationGuaranteeDecision":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"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.","enum":["GUARANTEED","NOT_GUARANTEED",null]},"TransferAuthorizationGuaranteeDecisionRationaleCode":{"type":"string","x-hidden-from-docs":true,"description":"A code representing the reason Plaid declined to guarantee this transfer:\n\n`RETURN_BANK`: The risk of a bank-initiated return (for example, an R01/NSF) is too high to guarantee this transfer.\n\n`RETURN_CUSTOMER`: The risk of a customer-initiated return (for example, a R10/Unauthorized) is too high to guarantee this transfer.\n\n`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.\n\n`RISK_ESTIMATE_UNAVAILABLE`: A risk estimate is unavailable for this Item.\n\n`REQUIRED_PARAM_MISSING`: Required fields are missing.","enum":["RETURN_BANK","RETURN_CUSTOMER","GUARANTEE_LIMIT_REACHED","RISK_ESTIMATE_UNAVAILABLE","REQUIRED_PARAM_MISSING"]},"TransferAuthorizationGuaranteeDecisionRationale":{"title":"TransferAuthorizationGuaranteeDecisionRationale","type":["object","null"],"deprecated":true,"additionalProperties":true,"x-hidden-from-docs":true,"description":"The rationale for Plaid's decision to not guarantee a transfer. Will be `null` unless `guarantee_decision` is `NOT_GUARANTEED`.","properties":{"code":{"$ref":"#/components/schemas/TransferAuthorizationGuaranteeDecisionRationaleCode"},"description":{"type":"string","description":"A human-readable description of why the transfer cannot be guaranteed."}},"required":["code","description"]},"TransferAuthorizationProposedTransfer":{"title":"TransferAuthorizationProposedTransfer","type":"object","additionalProperties":true,"description":"Details regarding the proposed transfer.","properties":{"ach_class":{"$ref":"#/components/schemas/ACHClass"},"account_id":{"type":"string","description":"The Plaid `account_id` for the account that will be debited or credited."},"funding_account_id":{"$ref":"#/components/schemas/TransferFundingAccountIDResponseNullable"},"ledger_id":{"$ref":"#/components/schemas/TransferLedgerID"},"type":{"$ref":"#/components/schemas/TransferType"},"user":{"$ref":"#/components/schemas/TransferUserInResponse"},"amount":{"$ref":"#/components/schemas/TransferAmount"},"requested_amount":{"type":"string","description":"The amount originally requested by the client when creating the authorization (decimal string with two digits of precision e.g. \"800.00\"). This may differ from `amount`, the amount Plaid proposes to transfer, when only a partial amount is offered as part of an Adaptive Guarantee."},"network":{"type":"string","description":"The network or rails used for the transfer."},"wire_details":{"$ref":"#/components/schemas/TransferWireDetails"},"origination_account_id":{"type":"string","description":"Plaid's unique identifier for the origination account that was used for this transfer.","deprecated":true,"x-hidden-from-docs":true},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount. The default value is \"USD\"."},"originator_client_id":{"type":["string","null"],"description":"The Plaid client ID that is the originator of this transfer. Only present if created on behalf of another client as a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms)."},"credit_funds_source":{"deprecated":true,"allOf":[{"$ref":"#/components/schemas/TransferCreditFundsSource"}]}},"required":["type","user","amount","requested_amount","network","origination_account_id","iso_currency_code","originator_client_id","funding_account_id","credit_funds_source"]},"TransferAuthorizationDevice":{"title":"TransferAuthorizationDevice","type":"object","additionalProperties":true,"description":"Information about the device being used to initiate the authorization. These fields are not currently incorporated into the risk check.","properties":{"ip_address":{"type":"string","description":"The IP address of the device being used to initiate the authorization."},"user_agent":{"type":"string","description":"The user agent of the device being used to initiate the authorization."}}},"TransferDevice":{"title":"TransferDevice","type":"object","additionalProperties":true,"description":"Information about the device being used to initiate the authorization.","properties":{"ip_address":{"type":"string","description":"The IP address of the device being used to initiate the authorization."},"user_agent":{"type":"string","description":"The user agent of the device being used to initiate the authorization."}},"required":["ip_address","user_agent"]},"TransferRecurringSchedule":{"title":"TransferRecurringSchedule","type":"object","description":"The schedule that the recurring transfer will be executed on.","properties":{"interval_unit":{"$ref":"#/components/schemas/TransferScheduleIntervalUnit"},"interval_count":{"$ref":"#/components/schemas/TransferScheduleIntervalCount"},"interval_execution_day":{"description":"The day of the interval on which to schedule the transfer.\n\nIf the `interval_unit` is `week`, `interval_execution_day` should be an integer from 1 (Monday) to 5 (Friday).\n\nIf 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.\n\nThe transfer will be originated on the next available banking day if the designated day is a non banking day.","type":"integer"},"start_date":{"format":"date","type":"string","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`.\n\nFor `rtp` recurring transfers, `start_date` must be in the future.\nOtherwise, 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."},"end_date":{"format":"date","type":["string","null"],"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`.\nIf 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."}},"required":["interval_unit","interval_count","interval_execution_day","start_date"]},"TransferScheduleIntervalUnit":{"type":"string","title":"TransferScheduleIntervalUnit","enum":["week","month"],"description":"The unit of the recurring interval.","minLength":1},"TransferScheduleIntervalCount":{"type":"integer","title":"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`.\nFor example, to schedule a recurring transfer which originates once every two weeks, set `interval_unit` = `week` and `interval_count` = 2."},"TransferMetadata":{"type":["object","null"],"additionalProperties":{"type":"string"},"title":"TransferMetadata","maxProperties":50,"description":"The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply:\nThe JSON values must be Strings (no nested JSON objects allowed)\nOnly ASCII characters may be used\nMaximum of 50 key/value pairs\nMaximum key length of 40 characters\nMaximum value length of 500 characters\n"},"BankTransferMetadata":{"type":["object","null"],"additionalProperties":{"type":"string"},"title":"BankTransferMetadata","maxProperties":50,"description":"The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply:\nThe JSON values must be Strings (no nested JSON objects allowed)\nOnly ASCII characters may be used\nMaximum of 50 key/value pairs\nMaximum key length of 40 characters\nMaximum value length of 500 characters\n"},"TransferAuthorizationCustomAttributes":{"type":["object","null"],"title":"TransferAuthorizationCustomAttributes","maxProperties":50,"additionalProperties":{"type":"string","maxLength":500},"description":"A free-form map of client-supplied risk-relevant context for this authorization. Plaid may use these attributes to inform future versions of our risk models.\n\nThe following limitations apply:\nKeys must match the regular expression `^[A-Za-z0-9_.-]{1,40}$`\nValues must be strings (no nested objects, arrays, numbers, or booleans allowed; stringify non-string values client-side)\nMaximum of 50 key/value pairs\nMaximum value length of 500 characters\n\nDo not include personally identifiable information or other sensitive data.\n"},"TransferAuthorizationUserAttributes":{"type":["object","null"],"title":"TransferAuthorizationUserAttributes","properties":{"account_created_time":{"type":["string","null"],"format":"date-time","description":"The date and time the end user created their account on your platform, in ISO 8601 format (`YYYY-MM-DDTHH:mm:ssZ`). This is the user's account with you, not a Plaid `account_id`."},"successful_payment_count":{"type":["integer","null"],"format":"int64","minimum":0,"description":"The total number of payments the end user has successfully completed on your platform since their account was created, across all payment methods. Excludes the payment being authorized, and excludes payments that were returned, charged back, or subsequently failed."}},"description":"Typed attributes of the end user that Plaid models directly in transfer authorization decisioning. Use `custom_attributes` for any other risk-relevant context.\n"},"TransferType":{"type":"string","title":"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"]},"OmittableTransferType":{"type":"string","title":"OmittableTransferType","description":"The type of transfer. Valid values are `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. This field is omitted for Plaid Ledger Sweep events.","enum":["debit","credit"]},"BankTransferType":{"type":"string","title":"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"]},"TransferPlatformRequirement":{"title":"TransferPlatformRequirement","type":"object","description":"A piece of information that is required for originator onboarding.","additionalProperties":true,"properties":{"requirement_type":{"type":"string","description":"The type of requirement."},"person_id":{"type":["string","null"],"description":"UUID of the person associated with the requirement. Only present for individual-scoped requirements."}}},"TransferDiligenceStatus":{"type":"string","title":"TransferDiligenceStatus","description":"Originator's diligence status.","enum":["not_submitted","submitted","under_review","approved","denied","more_information_required"]},"TransferStatus":{"type":"string","title":"TransferStatus","description":"The status of the transfer.\n\n`pending`: A new transfer was created; it is in the pending state.\n\n`posted`: The transfer has been successfully submitted to the payment network.\n\n`settled`: The transfer was successfully completed by the payment network. Note that funds from received debits are not available to be moved out of the Ledger until the transfer reaches `funds_available` status. For credit transactions, `settled` means the funds have been delivered to the receiving bank account. This is the terminal state of a successful credit transfer.\n\n`funds_available`: Funds from the transfer have been released from hold and applied to the ledger's available balance. (Only applicable to ACH debits.) This is the terminal state of a successful debit transfer.\n\n`cancelled`: The transfer was cancelled by the client. This is the terminal state of a cancelled transfer.\n\n`failed`: The transfer failed, no funds were moved. This is the terminal state of a failed transfer.\n\n`returned`: A posted transfer was returned. This is the terminal state of a returned transfer.","enum":["pending","posted","settled","funds_available","cancelled","failed","returned"]},"TransferRecurringStatus":{"type":"string","title":"TransferRecurringStatus","description":"The status of the recurring transfer.\n\n`active`: The recurring transfer is currently active.\n\n`cancelled`: The recurring transfer was cancelled by the client or Plaid.\n\n`expired`: The recurring transfer has completed all originations according to its recurring schedule.","enum":["active","cancelled","expired"]},"TransferSweepStatus":{"type":["string","null"],"title":"TransferSweepStatus","description":"The status of the sweep for the transfer.\n\n`unswept`: The transfer hasn't been swept yet. Transfers that are cancelled, fail, or are returned before being swept remain `unswept`.\n\n`swept`: The transfer was swept to the sweep account.\n\n`swept_settled`: Credits are available to be withdrawn or debits have been deducted from the customer's business checking account.\n\n`return_swept`: The transfer was returned, funds were pulled back or pushed back to the sweep account.\n\n`null`: The transfer will never be swept because it is a credit funded from a prefunded balance.","enum":[null,"unswept","swept","swept_settled","return_swept"]},"TransferRefundStatus":{"type":"string","title":"TransferRefundStatus","description":"The status of the refund.\n\n`pending`: A new refund was created; it is in the pending state.\n\n`posted`: The refund has been successfully submitted to the payment network.\n\n`settled`: Credits have been refunded to the Plaid linked account.\n\n`cancelled`: The refund was cancelled by the client.\n\n`failed`: The refund has failed.\n\n`returned`: The refund was returned.","enum":["pending","posted","cancelled","failed","settled","returned"]},"BankTransferStatus":{"type":"string","title":"BankTransferStatus","description":"The status of the transfer.","enum":["pending","posted","cancelled","failed","reversed"]},"TransferIntentCreateNetwork":{"type":"string","title":"TransferIntentCreateNetwork","description":"The network or rails used for the transfer. Defaults to `same-day-ach`.\n\nFor transfers submitted using `ach`, the Standard ACH cutoff is 8:30 PM Eastern Time.\n\nFor transfers submitted using `same-day-ach`, the Same Day ACH cutoff is 3:00 PM Eastern Time. It is recommended to send the request 15 minutes prior to the cutoff to ensure that it will be processed in time for submission before the cutoff. If the transfer is processed after this cutoff but before the Standard ACH cutoff, it will be sent over Standard ACH rails and will not incur same-day charges.\n\nFor transfers submitted using `rtp`, in the case that the account being credited does not support RTP, the transfer will be sent over ACH as long as an `ach_class` is provided in the request. If RTP isn't supported by the account and no `ach_class` is provided, the transfer will fail to be submitted.","enum":["ach","same-day-ach","rtp"],"default":"same-day-ach"},"TransferNetwork":{"type":"string","title":"TransferNetwork","description":"The network or rails used for the transfer.\n\nFor transfers submitted as `ach` or `same-day-ach`, the Standard ACH cutoff is 8:30 PM Eastern Time.\n\nFor transfers submitted as `same-day-ach`, the Same Day ACH cutoff is 3:00 PM Eastern Time.  It is recommended to send the request 15 minutes prior to the cutoff to ensure that it will be processed in time for submission before the cutoff. If the transfer is processed after this cutoff but before the Standard ACH cutoff, it will be sent over Standard ACH rails and will not incur same-day charges; this will apply to both legs of the transfer if applicable. The transaction limit for a Same Day ACH transfer is $1,000,000. Authorization requests sent with an amount greater than $1,000,000 will fail.\n\nFor transfers submitted as `rtp`, Plaid will automatically route between the Real-Time Payments (RTP) rail by TCH or FedNow rails as necessary. If a transfer is submitted as `rtp` and the counterparty account is not eligible for RTP, the `/transfer/authorization/create` request will fail with an `INVALID_FIELD` error code. To pre-check to determine whether a counterparty account can support RTP, call `/transfer/capabilities/get` before calling `/transfer/authorization/create`.\n\nWire transfers are currently in early availability. To request access to `wire` as a payment network, contact your account manager. For transfers submitted as `wire`, the `type` must be `credit`; wire debits are not supported. The cutoff to submit a wire payment is 6:30 PM Eastern Time on a business day; wires submitted after that time will be processed on the next business day. The transaction limit for a wire is $999,999.99. Authorization requests sent with an amount greater than $999,999.99 will fail.\n\nSupport for `rfp` (request for payment) is currently in closed beta. To learn more, contact your Plaid account manager. For transfers submitted as `rfp`, the `type` must be `debit`.","enum":["ach","same-day-ach","rtp","wire","rfp"]},"TransferACHNetwork":{"type":"string","title":"TransferACHNetwork","description":"The ACH networks used for the funds flow.\n\nFor requests submitted as either `ach` or `same-day-ach` the cutoff for Same Day ACH is 3:00 PM Eastern Time and the cutoff for Standard ACH transfers is 8:30 PM Eastern Time. It is recommended to submit a request at least 15 minutes before the cutoff time in order to ensure that it will be processed before the cutoff. Any request that is indicated as `same-day-ach` and that misses the Same Day ACH cutoff, but is submitted in time for the Standard ACH cutoff, will be sent over Standard ACH rails and will not incur same-day charges.","enum":["ach","same-day-ach"]},"TransferRecurringNetwork":{"type":"string","title":"TransferRecurringNetwork","description":"Networks eligible for recurring transfers.","enum":["ach","same-day-ach","rtp"]},"BankTransferNetwork":{"type":"string","title":"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"]},"TransferFailure":{"title":"TransferFailure","type":["object","null"],"additionalProperties":true,"description":"The failure reason if the event type for a transfer is `\"failed\"` or `\"returned\"`, or the adjustment reason if the event type is `\"adjustment\"`. Null value otherwise.","properties":{"failure_code":{"type":["string","null"],"description":"The failure code, e.g. `R01`. A failure code will be provided if the transfer status is `returned`, and may also be provided if the transfer status is `failed`. See [ACH return codes](https://plaid.com/docs/errors/transfer/#ach-return-codes) for a full listing of ACH return codes and [RTP/RfP error codes](https://plaid.com/docs/errors/transfer/#rtprfp-error-codes) for RTP error codes."},"ach_return_code":{"deprecated":true,"type":["string","null"],"description":"The ACH return code, e.g. `R01`. A return code will be provided if the transfer status is `returned`, and may also be provided if the transfer status is `failed`. For a full listing of ACH return codes, see [Transfer errors](https://plaid.com/docs/errors/transfer/#ach-return-codes)."},"description":{"type":"string","description":"A human-readable description of the reason for the failure, reversal, or adjustment."}}},"BankTransferFailure":{"title":"BankTransferFailure","type":["object","null"],"additionalProperties":true,"description":"The failure reason if the type of this transfer is `\"failed\"` or `\"reversed\"`. Null value otherwise.","properties":{"ach_return_code":{"type":["string","null"],"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)."},"description":{"type":["string","null"],"description":"A human-readable description of the reason for the failure or reversal."}}},"TransferAuthorizationCreateRequest":{"title":"TransferAuthorizationCreateRequest","type":"object","description":"Defines the request schema for `/transfer/authorization/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/TransferAccessToken"},"account_id":{"$ref":"#/components/schemas/TransferAccountID"},"funding_account_id":{"$ref":"#/components/schemas/TransferMigratedFundingAccountIDRequest"},"ledger_id":{"type":["string","null"],"description":"Specify which ledger balance should be used to fund the transfer. You can find a list of `ledger_id`s in the Accounts page of your Plaid Dashboard. If this field is left blank, this will default to the id of the default ledger balance."},"payment_profile_token":{"$ref":"#/components/schemas/TransferPaymentProfileToken"},"type":{"$ref":"#/components/schemas/TransferType"},"network":{"$ref":"#/components/schemas/TransferNetwork"},"amount":{"$ref":"#/components/schemas/TransferAmount"},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"wire_details":{"$ref":"#/components/schemas/TransferWireDetails"},"user":{"$ref":"#/components/schemas/TransferAuthorizationUserInRequest"},"user_id":{"allOf":[{"$ref":"#/components/schemas/NewUserIDNullable"}],"description":"The Plaid-generated user ID returned by `/user/create` for the end user associated with this transfer's Item. This identifier is separate from the account-holder details in `user`. Omit or set to `null` if unavailable; otherwise, provide a non-empty string. This field does not currently affect authorization decisions.","examples":["usr_9nSp2KuZ2x4JDw"]},"device":{"$ref":"#/components/schemas/TransferAuthorizationDevice"},"origination_account_id":{"type":"string","description":"Plaid's unique identifier for the origination account for this authorization. If not specified, the default account will be used.","deprecated":true,"x-hidden-from-docs":true},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount. The default value is \"USD\"."},"idempotency_key":{"$ref":"#/components/schemas/TransferAuthorizationIdempotencyKey"},"user_present":{"type":["boolean","null"],"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`. This field is not currently used and is present to support planned future functionality."},"with_guarantee":{"type":["boolean","null"],"default":true,"x-hidden-from-docs":true,"deprecated":true,"description":"If set to `false`, Plaid will not offer a `guarantee_decision` for this request (Guarantee customers only). This field is deprecated in favor of `guarantee`."},"request_guarantee":{"type":["boolean","null"],"description":"Indicates whether the transfer should be evaluated for guarantee coverage. When set to `true`, Plaid assesses the transfer for guarantee coverage and returns a decision in the authorization response. When omitted or set to `false`, the authorization is evaluated without guarantee coverage."},"beacon_session_id":{"x-hidden-from-docs":true,"deprecated":true,"type":["string","null"],"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."},"originator_client_id":{"type":["string","null"],"description":"The Plaid client ID that is the originator of this transfer. Only needed if creating transfers on behalf of another client as a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms)."},"credit_funds_source":{"x-hidden-from-docs":true,"deprecated":true,"allOf":[{"$ref":"#/components/schemas/TransferCreditFundsSource"}]},"test_clock_id":{"type":["string","null"],"description":"Plaid's unique identifier for a test clock. This field may only be used when using `sandbox` environment. If provided, the `authorization` is created at the `virtual_time` on the provided test clock."},"ruleset_key":{"type":["string","null"],"description":"The key of the Ruleset for the transaction. If not provided, Signal will use the `default` ruleset."},"custom_attributes":{"$ref":"#/components/schemas/TransferAuthorizationCustomAttributes"},"user_attributes":{"allOf":[{"$ref":"#/components/schemas/TransferAuthorizationUserAttributes"}]}},"required":["type","network","amount","user","access_token","account_id"]},"TransferAuthorizationCancelRequest":{"title":"TransferAuthorizationCancelRequest","type":"object","description":"Defines the request schema for `/transfer/authorization/cancel`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"authorization_id":{"$ref":"#/components/schemas/TransferAuthorizationID"}},"required":["authorization_id"]},"TransferCapabilitiesGetRequest":{"title":"TransferCapabilitiesGetRequest","type":"object","description":"Defines the request schema for `/transfer/capabilities/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/TransferAccessToken"},"account_id":{"$ref":"#/components/schemas/TransferAccountID"},"payment_profile_token":{"$ref":"#/components/schemas/PaymentProfileToken"}},"required":["access_token","account_id"]},"TransferConfigurationGetRequest":{"title":"TransferConfigurationGetRequest","type":"object","description":"Defines the request schema for `/transfer/configuration/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"type":["string","null"],"description":"The Plaid client ID of the transfer originator. Should only be present if `client_id` is a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms)."}}},"TransferMetricsGetRequest":{"title":"TransferMetricsGetRequest","type":"object","description":"Defines the request schema for `/transfer/metrics/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"type":["string","null"],"description":"The Plaid client ID of the transfer originator. Should only be present if `client_id` is a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms)."}}},"TransferCreateRequest":{"title":"TransferCreateRequest","type":"object","description":"Defines the request schema for `/transfer/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"idempotency_key":{"$ref":"#/components/schemas/TransferCreateIdempotencyKey"},"access_token":{"$ref":"#/components/schemas/TransferAccessToken"},"account_id":{"$ref":"#/components/schemas/TransferAccountID"},"authorization_id":{"type":"string","description":"Plaid's unique identifier for a transfer authorization. This parameter also serves the purpose of acting as an idempotency identifier."},"type":{"x-hidden-from-docs":true,"deprecated":true,"allOf":[{"$ref":"#/components/schemas/TransferType"}]},"network":{"x-hidden-from-docs":true,"deprecated":true,"allOf":[{"$ref":"#/components/schemas/TransferNetwork"}]},"amount":{"$ref":"#/components/schemas/TransferAmount"},"description":{"type":"string","description":"The transfer description, maximum of 15 characters. Should represent why the money is moving, not your company name. For recommendations on setting the `description` field to avoid ACH returns, see [Description field recommendations](https://www.plaid.com/docs/transfer/creating-transfers/#description-field-recommendations).\n\nIf reprocessing a returned transfer, the `description` field must be `\"Retry 1\"` or `\"Retry 2\"`. 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.","maxLength":15},"ach_class":{"x-hidden-from-docs":true,"deprecated":true,"allOf":[{"$ref":"#/components/schemas/ACHClass"}]},"user":{"$ref":"#/components/schemas/TransferUserInRequestDeprecated"},"metadata":{"$ref":"#/components/schemas/TransferMetadata"},"origination_account_id":{"type":["string","null"],"x-hidden-from-docs":true,"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."},"iso_currency_code":{"type":"string","x-hidden-from-docs":true,"deprecated":true,"description":"The currency of the transfer amount. The default value is \"USD\"."},"test_clock_id":{"type":["string","null"],"description":"Plaid's unique identifier for a test clock. This field may only be used when using `sandbox` environment. If provided, the `transfer` is created at the `virtual_time` on the provided `test_clock`."},"facilitator_fee":{"$ref":"#/components/schemas/TransferFacilitatorFee"}},"required":["access_token","account_id","authorization_id","description"]},"TransferRecurringCreateRequest":{"title":"TransferRecurringCreateRequest","type":"object","description":"Defines the request schema for `/transfer/recurring/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/TransferAccessToken"},"idempotency_key":{"$ref":"#/components/schemas/TransferRecurringIdempotencyKey"},"account_id":{"$ref":"#/components/schemas/TransferAccountID"},"funding_account_id":{"type":["string","null"],"description":"Specify the account used to fund the transfer. Customers can find a list of `funding_account_id`s in the Accounts page of your Plaid Dashboard, under the \"Account ID\" column. If this field is left blank, it will default to the default `funding_account_id` specified during onboarding.","deprecated":true,"x-hidden-from-docs":true},"type":{"$ref":"#/components/schemas/TransferType"},"network":{"$ref":"#/components/schemas/TransferRecurringNetwork"},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"amount":{"$ref":"#/components/schemas/TransferAmount"},"user_present":{"type":["boolean","null"],"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`."},"iso_currency_code":{"type":"string","x-hidden-from-docs":true,"deprecated":true,"description":"The currency of the transfer amount. The default value is \"USD\"."},"description":{"type":"string","description":"The description of the recurring transfer."},"test_clock_id":{"type":["string","null"],"description":"Plaid's unique identifier for a test clock. This field may only be used when using the `sandbox` environment. If provided, the created `recurring_transfer` is associated with the `test_clock`. New originations are automatically generated when the associated `test_clock` advances. For more details, see [Simulating recurring transfers](https://plaid.com/docs/transfer/sandbox/#simulating-recurring-transfers)."},"schedule":{"$ref":"#/components/schemas/TransferRecurringSchedule"},"user":{"$ref":"#/components/schemas/TransferUserInRequest"},"device":{"$ref":"#/components/schemas/TransferDevice"}},"required":["access_token","idempotency_key","account_id","type","network","amount","user","schedule","description"]},"BankTransferCreateRequest":{"title":"BankTransferCreateRequest","type":"object","description":"Defines the request schema for `/bank_transfer/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"idempotency_key":{"$ref":"#/components/schemas/BankTransferIdempotencyKey"},"access_token":{"$ref":"#/components/schemas/BankTransferAccessToken"},"account_id":{"type":"string","description":"The Plaid `account_id` for the account that will be debited or credited."},"type":{"$ref":"#/components/schemas/BankTransferType"},"network":{"$ref":"#/components/schemas/BankTransferNetwork"},"amount":{"$ref":"#/components/schemas/BankTransferAmount"},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount - should be set to \"USD\"."},"description":{"type":"string","description":"The transfer description. Maximum of 10 characters.","maxLength":10},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"user":{"$ref":"#/components/schemas/BankTransferUser"},"custom_tag":{"type":["string","null"],"maxLength":100,"description":"An arbitrary string provided by the client for storage with the bank transfer. May be up to 100 characters."},"metadata":{"$ref":"#/components/schemas/BankTransferMetadata"},"origination_account_id":{"type":["string","null"],"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."}},"required":["idempotency_key","access_token","account_id","type","network","amount","iso_currency_code","description","user"]},"TransferAuthorizationCreateResponse":{"title":"TransferAuthorizationCreateResponse","type":"object","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"]},"TransferAuthorizationCancelResponse":{"title":"TransferAuthorizationCancelResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/authorization/cancel`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferCapabilitiesGetResponse":{"title":"TransferCapabilitiesGetResponse","type":"object","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"]},"TransferConfigurationGetResponse":{"title":"TransferConfigurationGetResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/configuration/get`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"max_single_transfer_amount":{"type":"string","description":"The max limit of dollar amount of a single transfer (decimal string with two digits of precision e.g. \"10.00\").","deprecated":true,"x-hidden-from-docs":true},"max_single_transfer_credit_amount":{"type":"string","description":"The max limit of dollar amount of a single credit transfer (decimal string with two digits of precision e.g. \"10.00\")."},"max_single_transfer_debit_amount":{"type":"string","description":"The max limit of dollar amount of a single debit transfer (decimal string with two digits of precision e.g. \"10.00\")."},"max_daily_credit_amount":{"type":"string","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\")."},"max_daily_debit_amount":{"type":"string","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\")."},"max_monthly_amount":{"type":"string","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\").","deprecated":true,"x-hidden-from-docs":true},"max_monthly_credit_amount":{"type":"string","description":"The max limit of sum of dollar amount of credit transfers in one calendar month (decimal string with two digits of precision e.g. \"10.00\")."},"max_monthly_debit_amount":{"type":"string","description":"The max limit of sum of dollar amount of debit transfers in one calendar month (decimal string with two digits of precision e.g. \"10.00\")."},"iso_currency_code":{"type":"string","description":"The currency of the dollar amount, e.g. \"USD\"."}},"required":["request_id","max_single_transfer_amount","max_single_transfer_credit_amount","max_single_transfer_debit_amount","max_daily_credit_amount","max_daily_debit_amount","max_monthly_amount","max_monthly_credit_amount","max_monthly_debit_amount","iso_currency_code"]},"TransferMetricsGetResponse":{"title":"TransferMetricsGetResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/metrics/get`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"daily_debit_transfer_volume":{"type":"string","description":"Sum of dollar amount of debit transfers created so far in the current day, Eastern Time (decimal string with two digits of precision e.g. \"10.00\")."},"daily_credit_transfer_volume":{"type":"string","description":"Sum of dollar amount of credit transfers created so far in the current day, Eastern Time (decimal string with two digits of precision e.g. \"10.00\")."},"monthly_transfer_volume":{"type":"string","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\").","deprecated":true,"x-hidden-from-docs":true},"monthly_debit_transfer_volume":{"type":"string","description":"Sum of dollar amount of debit transfers in current calendar month (decimal string with two digits of precision e.g. \"10.00\")."},"monthly_credit_transfer_volume":{"type":"string","description":"Sum of dollar amount of credit transfers in current calendar month (decimal string with two digits of precision e.g. \"10.00\")."},"iso_currency_code":{"type":"string","description":"The currency of the dollar amount, e.g. \"USD\"."},"return_rates":{"$ref":"#/components/schemas/TransferMetricsGetReturnRates"},"authorization_usage":{"$ref":"#/components/schemas/TransferMetricsGetAuthorizationUsage"}},"required":["request_id","daily_debit_transfer_volume","daily_credit_transfer_volume","monthly_transfer_volume","monthly_debit_transfer_volume","monthly_credit_transfer_volume","iso_currency_code"]},"TransferMetricsGetReturnRates":{"title":"TransferMetricsGetReturnRates","type":["object","null"],"additionalProperties":true,"description":"Details regarding return rates.","properties":{"last_60d":{"$ref":"#/components/schemas/TransferMetricsGetReturnRatesOverInterval"}}},"TransferMetricsGetReturnRatesOverInterval":{"title":"TransferMetricsGetReturnRatesOverInterval","type":["object","null"],"additionalProperties":true,"description":"Details regarding return rates.","properties":{"overall_return_rate":{"type":"string","description":"The overall return rate."},"unauthorized_return_rate":{"type":"string","description":"The unauthorized return rate."},"administrative_return_rate":{"type":"string","description":"The administrative return rate."}}},"TransferMetricsGetAuthorizationUsage":{"title":"TransferMetricsGetAuthorizationUsage","type":["object","null"],"additionalProperties":true,"description":"Details regarding authorization usage.","properties":{"daily_credit_utilization":{"type":"string","description":"The daily credit utilization formatted as a decimal."},"daily_debit_utilization":{"type":"string","description":"The daily debit utilization formatted as a decimal."},"monthly_credit_utilization":{"type":"string","description":"The monthly credit utilization formatted as a decimal."},"monthly_debit_utilization":{"type":"string","description":"The monthly debit utilization formatted as a decimal."}}},"TransferAuthorizationDecision":{"type":"string","description":"\nA decision regarding the proposed transfer.\n\n`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. Refer to the `code` field in the `decision_rationale` object for details.\n\n`declined` - Plaid reviewed the proposed transfer and declined processing. Refer to the `code` field in the `decision_rationale` object for details.\n\n`user_action_required` - An action is required before Plaid can assess the transfer risk and make a decision. The most common scenario is to update authentication for an Item. To complete the required action, initialize Link by setting `transfer.authorization_id` in the request of `/link/token/create`. After Link flow is completed, you may re-attempt the authorization request.\n\nFor `guarantee` requests, `approved` indicates the transfer is eligible for Plaid's guarantee, and `declined` indicates Plaid will not provide guarantee coverage for the transfer. `user_action_required` indicates you should follow the above guidance before re-attempting.","enum":["approved","declined","user_action_required"]},"TransferAuthorization":{"title":"TransferAuthorization","type":"object","additionalProperties":true,"description":"Contains the authorization decision for a proposed transfer.","properties":{"id":{"$ref":"#/components/schemas/TransferAuthorizationID"},"created":{"type":"string","format":"date-time","description":"The datetime representing when the authorization was created, in the format `2006-01-02T15:04:05Z`."},"decision":{"$ref":"#/components/schemas/TransferAuthorizationDecision"},"decision_rationale":{"$ref":"#/components/schemas/TransferAuthorizationDecisionRationale"},"guarantee_decision":{"deprecated":true,"allOf":[{"$ref":"#/components/schemas/TransferAuthorizationGuaranteeDecision"}]},"guarantee_decision_rationale":{"$ref":"#/components/schemas/TransferAuthorizationGuaranteeDecisionRationale"},"guarantee_details":{"$ref":"#/components/schemas/AuthorizationGuaranteeDetails"},"payment_risk":{"$ref":"#/components/schemas/TransferAuthorizationPaymentRisk"},"proposed_transfer":{"$ref":"#/components/schemas/TransferAuthorizationProposedTransfer"}},"required":["id","created","decision","decision_rationale","guarantee_decision","guarantee_decision_rationale","proposed_transfer","payment_risk"]},"InstitutionSupportedNetworks":{"title":"InstitutionSupportedNetworks","type":"object","additionalProperties":true,"description":"Contains the RTP and RfP network and types supported by the linked Item's institution.","properties":{"rtp":{"$ref":"#/components/schemas/TransferCapabilitiesGetRTP"},"rfp":{"$ref":"#/components/schemas/TransferCapabilitiesGetRfP"}},"required":["rtp","rfp"]},"TransferCapabilitiesGetRTP":{"title":"TransferCapabilitiesGetRTP","type":"object","additionalProperties":true,"description":"Contains the supported service types in RTP","properties":{"credit":{"type":"boolean","default":false,"nullable":false,"description":"When `true`, the linked Item's institution supports RTP credit transfer."}}},"TransferCapabilitiesGetRfP":{"title":"TransferCapabilitiesGetRfP","type":"object","additionalProperties":true,"description":"Contains the supported service types in RfP","properties":{"debit":{"type":"boolean","default":false,"nullable":false,"description":"When `true`, the linked Item's institution supports RfP debit transfer."},"max_amount":{"type":["string","null"],"description":"The maximum amount (decimal string with two digits of precision e.g. \"10.00\") for originating RfP transfers with the given institution."},"iso_currency_code":{"type":["string","null"],"description":"The currency of the `max_amount`, e.g. \"USD\"."}}},"TransferCreateResponse":{"title":"TransferCreateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/create`","properties":{"transfer":{"$ref":"#/components/schemas/Transfer"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["transfer","request_id"]},"TransferRecurringCreateResponse":{"title":"TransferRecurringCreateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/recurring/create`","properties":{"recurring_transfer":{"$ref":"#/components/schemas/RecurringTransferNullable"},"decision":{"$ref":"#/components/schemas/TransferAuthorizationDecision"},"decision_rationale":{"$ref":"#/components/schemas/TransferAuthorizationDecisionRationale"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["decision","request_id"]},"BankTransferCreateResponse":{"title":"BankTransferCreateResponse","type":"object","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"]},"TransferListRequest":{"title":"TransferListRequest","type":"object","description":"Defines the request schema for `/transfer/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":["string","null"],"format":"date-time","description":"The start `created` datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"end_date":{"type":["string","null"],"format":"date-time","description":"The end `created` datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"count":{"type":"integer","minimum":1,"maximum":25,"default":25,"description":"The maximum number of transfers to return."},"offset":{"type":"integer","default":0,"minimum":0,"description":"The number of transfers to skip before returning results."},"origination_account_id":{"type":["string","null"],"description":"Filter transfers to only those originated through the specified origination account.","deprecated":true,"x-hidden-from-docs":true},"originator_client_id":{"type":["string","null"],"description":"Filter transfers to only those with the specified originator client."},"funding_account_id":{"type":["string","null"],"description":"Filter transfers to only those with the specified `funding_account_id`."}}},"TransferRecurringListRequest":{"title":"TransferRecurringListRequest","type":"object","description":"Defines the request schema for `/transfer/recurring/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_time":{"type":["string","null"],"format":"date-time","description":"The start `created` datetime of recurring transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"end_time":{"type":["string","null"],"format":"date-time","description":"The end `created` datetime of recurring transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"count":{"type":"integer","minimum":1,"maximum":25,"default":25,"description":"The maximum number of recurring transfers to return."},"offset":{"type":"integer","default":0,"minimum":0,"description":"The number of recurring transfers to skip before returning results."},"funding_account_id":{"type":["string","null"],"description":"Filter recurring transfers to only those with the specified `funding_account_id`."}}},"BankTransferListRequest":{"title":"BankTransferListRequest","type":"object","description":"Defines the request schema for `/bank_transfer/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":["string","null"],"format":"date-time","description":"The start datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"end_date":{"type":["string","null"],"format":"date-time","description":"The end datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"count":{"type":"integer","minimum":1,"maximum":25,"default":25,"description":"The maximum number of bank transfers to return."},"offset":{"type":"integer","default":0,"minimum":0,"description":"The number of bank transfers to skip before returning results."},"origination_account_id":{"type":["string","null"],"description":"Filter bank transfers to only those originated through the specified origination account."},"direction":{"$ref":"#/components/schemas/BankTransferDirection"}}},"TransferListResponse":{"title":"TransferListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/list`","properties":{"transfers":{"type":"array","items":{"$ref":"#/components/schemas/Transfer"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["transfers","request_id"]},"TransferRecurringListResponse":{"title":"TransferRecurringListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/recurring/list`","properties":{"recurring_transfers":{"type":"array","items":{"$ref":"#/components/schemas/RecurringTransfer"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["recurring_transfers","request_id"]},"BankTransferListResponse":{"title":"BankTransferListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/bank_transfer/list`","properties":{"bank_transfers":{"type":"array","items":{"$ref":"#/components/schemas/BankTransfer"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["bank_transfers","request_id"]},"BankTransferDirection":{"type":["string","null"],"title":"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]},"TransferCancelRequest":{"title":"TransferCancelRequest","type":"object","description":"Defines the request schema for `/transfer/cancel`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"transfer_id":{"$ref":"#/components/schemas/TransferID"},"originator_client_id":{"deprecated":true,"x-hidden-from-docs":true,"type":["string","null"],"description":"The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS)."},"reason_code":{"$ref":"#/components/schemas/ReasonCode"}},"required":["transfer_id"]},"ReasonCode":{"type":"string","title":"ReasonCode","enum":["AC03","AM09","CUST","DUPL","FRAD","TECH","UPAY","AC14","AM06","BE05","FOCR","MS02","MS03","RR04","RUTA"],"description":"Specifies the reason for cancelling transfer. This is required for RfP transfers, and will be ignored for other networks.\n\n`\"AC03\"` - Invalid Creditor Account Number\n\n`\"AM09\"` - Incorrect Amount\n\n`\"CUST\"` - Requested By Customer - Cancellation requested\n\n`\"DUPL\"` - Duplicate Payment\n\n`\"FRAD\"` - Fraudulent Payment - Unauthorized or fraudulently induced\n\n`\"TECH\"` - Technical Problem - Cancellation due to system issues\n\n`\"UPAY\"` - Undue Payment - Payment was made through another channel\n\n`\"AC14\"` - Invalid or Missing Creditor Account Type\n\n`\"AM06\"` - Amount Too Low\n\n`\"BE05\"` - Unrecognized Initiating Party\n\n`\"FOCR\"` - Following Refund Request\n\n`\"MS02\"` - No Specified Reason - Customer\n\n`\"MS03\"` - No Specified Reason - Agent\n\n`\"RR04\"` - Regulatory Reason\n\n`\"RUTA\"` - Return Upon Unable To Apply"},"TransferRecurringCancelRequest":{"title":"TransferRecurringCancelRequest","type":"object","description":"Defines the request schema for `/transfer/recurring/cancel`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"recurring_transfer_id":{"$ref":"#/components/schemas/RecurringTransferID"}},"required":["recurring_transfer_id"]},"BankTransferCancelRequest":{"title":"BankTransferCancelRequest","type":"object","description":"Defines the request schema for `/bank_transfer/cancel`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"bank_transfer_id":{"$ref":"#/components/schemas/BankTransferID"}},"required":["bank_transfer_id"]},"TransferCancelResponse":{"title":"TransferCancelResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/cancel`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferRecurringCancelResponse":{"title":"TransferRecurringCancelResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/recurring/cancel`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"BankTransferCancelResponse":{"title":"BankTransferCancelResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/bank_transfer/cancel`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferEventListTransferType":{"type":["string","null"],"title":"TransferType","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]},"TransferEventListRequest":{"title":"TransferEventListRequest","type":"object","description":"Defines the request schema for `/transfer/event/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":["string","null"],"format":"date-time","description":"The start `created` datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"end_date":{"type":["string","null"],"format":"date-time","description":"The end `created` datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"transfer_id":{"type":["string","null"],"title":"TransferID","description":"Plaid's unique identifier for a transfer."},"account_id":{"type":["string","null"],"description":"The account ID to get events for all transactions to/from an account."},"transfer_type":{"$ref":"#/components/schemas/TransferEventListTransferType"},"event_types":{"type":"array","description":"Filter events by event type.","items":{"$ref":"#/components/schemas/TransferEventType"}},"sweep_id":{"type":"string","description":"Plaid's unique identifier for a sweep."},"count":{"type":["integer","null"],"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.","default":25,"maximum":25,"minimum":1},"offset":{"type":["integer","null"],"default":0,"minimum":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."},"origination_account_id":{"type":["string","null"],"description":"The origination account ID to get events for transfers from a specific origination account.","deprecated":true,"x-hidden-from-docs":true},"originator_client_id":{"type":["string","null"],"description":"Filter transfer events to only those with the specified originator client."},"funding_account_id":{"type":["string","null"],"description":"Filter transfer events to only those with the specified `funding_account_id`."}}},"TransferLedgerEventListRequest":{"title":"TransferLedgerEventListRequest","type":"object","description":"Defines the request schema for `/transfer/ledger/event/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"originator_client_id":{"type":["string","null"],"description":"Filter transfer events to only those with the specified originator client. (This field is specifically for resellers. Caller's client ID will be used if this field is not specified.)"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":["string","null"],"format":"date-time","description":"The start created datetime of transfers to list. This should be in RFC 3339 format (i.e. 2019-12-06T22:35:49Z)"},"end_date":{"type":["string","null"],"format":"date-time","description":"The end created datetime of transfers to list. This should be in RFC 3339 format (i.e. 2019-12-06T22:35:49Z)"},"ledger_id":{"type":["string","null"],"description":"Plaid's unique identifier for a Plaid Ledger Balance."},"ledger_event_id":{"type":["string","null"],"description":"Plaid's unique identifier for the ledger event."},"source_type":{"$ref":"#/components/schemas/LedgerEventSourceType"},"source_id":{"type":["string","null"],"description":"Plaid's unique identifier for a transfer, sweep, or refund."},"count":{"type":["integer","null"],"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.","default":25,"maximum":25,"minimum":1},"offset":{"type":["integer","null"],"default":0,"minimum":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."}}},"TransferLedgerEventListResponse":{"title":"TransferLedgerEventListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/ledger/event/list`","properties":{"ledger_events":{"type":"array","items":{"$ref":"#/components/schemas/TransferLedgerEvent"}},"has_more":{"type":"boolean","description":"Whether there are more events to be pulled from the endpoint that have not already been returned"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["ledger_events","has_more","request_id"]},"BankTransferEventListBankTransferType":{"type":["string","null"],"title":"BankTransferType","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]},"BankTransferEventListDirection":{"type":["string","null"],"title":"BankTransferDirection","description":"Indicates the direction of the transfer:\n\n`outbound`: for API-initiated transfers\n\n`inbound`: for payments received by the FBO account.","enum":["inbound","outbound",null]},"BankTransferEventListRequest":{"title":"BankTransferEventListRequest","type":"object","description":"Defines the request schema for `/bank_transfer/event/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":["string","null"],"format":"date-time","description":"The start datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"end_date":{"type":["string","null"],"format":"date-time","description":"The end datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)"},"bank_transfer_id":{"type":["string","null"],"title":"BankTransferID","description":"Plaid's unique identifier for a bank transfer."},"account_id":{"type":["string","null"],"description":"The account ID to get events for all transactions to/from an account."},"bank_transfer_type":{"$ref":"#/components/schemas/BankTransferEventListBankTransferType"},"event_types":{"type":"array","description":"Filter events by event type.","items":{"$ref":"#/components/schemas/BankTransferEventType"}},"count":{"type":["integer","null"],"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.","default":25,"maximum":25,"minimum":1},"offset":{"type":["integer","null"],"default":0,"minimum":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."},"origination_account_id":{"type":["string","null"],"description":"The origination account ID to get events for transfers from a specific origination account."},"direction":{"$ref":"#/components/schemas/BankTransferEventListDirection"}}},"TransferEventType":{"type":"string","title":"TransferEventType","description":"The type of event that this transfer represents. Event types with prefix `sweep` represent events for Plaid Ledger sweeps.\n\n`pending`: A new transfer was created; it is in the pending state.\n\n`cancelled`: The transfer was cancelled by the client.\n\n`failed`: The transfer failed, no funds were moved.\n\n`posted`: The transfer has been successfully submitted to the payment network.\n\n`settled`: The transfer has been successfully completed by the payment network.\n\n`funds_available`: Funds from the transfer have been released from hold and applied to the ledger's available balance. (Only applicable to ACH debits.)\n\n`guaranteed`: The transfer has been fully guaranteed by Plaid.\n\n`returned`: A posted transfer was returned.\n\n`adjustment`: An adjustment was made to the transfer due to rare activity, such as a dishonor. Refer to `event_amount` for the amount adjusted: a positive amount means funds are credited to the ledger, and a negative amount means funds are debited from the ledger. `failure_reason.description` describes the reason for the adjustment.\n\n`guarantee_reimbursed`: Plaid reimbursed the client for the loss on a returned guaranteed transfer. The `event_amount` is the reimbursed amount.\n\n`client_return_recovered`: The client reported recovering the loss on a returned transfer, and Plaid debited the recovered amount from the client's ledger. The `event_amount` is the recovered amount.\n\n`plaid_return_recovered`: Plaid recovered the loss on a returned transfer by successfully reinitiating it. The `event_amount` is the recovered amount. Client should stop their return recovery effort.\n\n`swept`: The transfer was swept to / from the sweep account.\n\n`swept_settled`: Credits are available to be withdrawn or debits have been deducted from the customer's business checking account.\n\n`return_swept`: Due to the transfer being returned, funds were pulled from or pushed back to the sweep account.\n\n`sweep.pending`: A new ledger sweep was created; it is in the pending state.\n\n`sweep.posted`: The ledger sweep has been successfully submitted to the payment network.\n\n`sweep.settled`: The transaction has settled in the funding account. This means that funds withdrawn from Plaid Ledger balance have reached the funding account, or funds to be deposited into the Plaid Ledger Balance have been pulled, and the hold period has begun.\n\n`sweep.returned`: A posted ledger sweep was returned.\n\n`sweep.failed`: The ledger sweep failed, no funds were moved.\n\n`sweep.funds_available`: Funds from the ledger sweep have been released from hold and applied to the ledger's available balance. This is only applicable to debits.\n\n`refund.pending`: A new refund was created; it is in the pending state.\n\n`refund.cancelled`: The refund was cancelled.\n\n`refund.failed`: The refund failed, no funds were moved.\n\n`refund.posted`: The refund has been successfully submitted to the payment network.\n\n`refund.settled`: The refund transaction has settled in the Plaid linked account.\n\n`refund.returned`: A posted refund was returned.\n\n`refund.swept`: The refund was swept from the sweep account.\n\n`refund.return_swept`: Due to the refund being returned, funds were pushed back to the sweep account.","enum":["pending","cancelled","failed","posted","settled","funds_available","guaranteed","returned","adjustment","guarantee_reimbursed","client_return_recovered","plaid_return_recovered","swept","swept_settled","return_swept","sweep.pending","sweep.posted","sweep.settled","sweep.returned","sweep.failed","sweep.funds_available","refund.pending","refund.cancelled","refund.failed","refund.posted","refund.settled","refund.returned","refund.swept","refund.return_swept"]},"TransferLedgerSweepSimulateEventType":{"type":"string","title":"TransferLedgerSweepSimulateEventType","description":"The asynchronous event to be simulated. May be: `sweep.posted`, `sweep.settled`, `sweep.failed`, `sweep.returned`, or `sweep.funds_available` (deposits only).\n\nAn error will be returned if the event type is incompatible with the current ledger sweep status. Compatible status --> event type transitions include:\n\n`sweep.pending` --> `sweep.posted`\n\n`sweep.pending` --> `sweep.failed`\n\n`sweep.posted` --> `sweep.settled`\n\n`sweep.posted` --> `sweep.returned`\n\n`sweep.settled` --> `sweep.returned`\n","enum":["sweep.posted","sweep.settled","sweep.returned","sweep.failed","sweep.funds_available"]},"BankTransferEventType":{"type":"string","title":"BankTransferEventType","description":"The type of event that this bank transfer represents.\n\n`pending`: A new transfer was created; it is in the pending state.\n\n`cancelled`: The transfer was cancelled by the client.\n\n`failed`: The transfer failed, no funds were moved.\n\n`posted`: The transfer has been successfully submitted to the payment network.\n\n`reversed`: A posted transfer was reversed.","enum":["pending","cancelled","failed","posted","reversed"]},"TransferEvent":{"title":"TransferEvent","type":"object","additionalProperties":true,"description":"Represents an event in the Transfers API.","properties":{"event_id":{"type":"integer","description":"Plaid's unique identifier for this event. IDs are sequential unsigned 64-bit integers.","minimum":0},"timestamp":{"type":"string","format":"date-time","description":"The datetime when this event occurred. This will be of the form `2006-01-02T15:04:05Z`."},"event_type":{"$ref":"#/components/schemas/TransferEventType"},"account_id":{"type":"string","description":"The account ID associated with the transfer. This field is omitted for Plaid Ledger Sweep events."},"funding_account_id":{"$ref":"#/components/schemas/TransferFundingAccountIDResponseNullable"},"ledger_id":{"$ref":"#/components/schemas/TransferLedgerID"},"transfer_id":{"type":"string","description":"Plaid's unique identifier for a transfer. This field is an empty string for Plaid Ledger Sweep events."},"origination_account_id":{"type":["string","null"],"description":"The ID of the origination account that this balance belongs to.","deprecated":true,"x-hidden-from-docs":true},"transfer_type":{"$ref":"#/components/schemas/OmittableTransferType"},"transfer_amount":{"title":"TransferAmount","type":"string","description":"The amount of the transfer (decimal string with two digits of precision e.g. \"10.00\"). For refund events and `funds_available` events, this is the amount associated with the event, such as the refund amount, rather than the original transfer amount. This field is omitted for Plaid Ledger Sweep events."},"failure_reason":{"$ref":"#/components/schemas/TransferFailure"},"sweep_id":{"$ref":"#/components/schemas/TransferSweepIDNullable"},"sweep_amount":{"$ref":"#/components/schemas/TransferSweepAmount"},"event_amount":{"type":["string","null"],"description":"A signed amount associated with this event (decimal string with two digits of precision e.g. \"10.00\" or \"-10.00\")."},"refund_id":{"type":["string","null"],"description":"Plaid's unique identifier for a refund. A non-null value indicates the event is for the associated refund of the transfer."},"originator_client_id":{"type":["string","null"],"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)."},"intent_id":{"type":["string","null"],"description":"The `id` returned by the `/transfer/intent/create` endpoint, for transfers created via Transfer UI. For transfers not created by Transfer UI, this field is omitted. This will currently only be populated for RfP transfers."},"wire_return_fee":{"type":["string","null"],"description":"The fee amount deducted from the original transfer during a wire return, if applicable."}},"required":["event_id","timestamp","event_type","transfer_id","origination_account_id","failure_reason","sweep_id","sweep_amount","refund_id","originator_client_id","funding_account_id"]},"TransferLedgerEvent":{"title":"TransferLedgerEvent","type":"object","additionalProperties":true,"description":"Represents a ledger event in the Transfers API.","properties":{"ledger_event_id":{"type":"string","description":"Plaid's unique identifier for this ledger event."},"ledger_id":{"type":"string","description":"The ID of the ledger this event belongs to."},"amount":{"type":"string","description":"The amount of the ledger event as a decimal string."},"transfer_id":{"type":["string","null"],"description":"The ID of the transfer source that triggered this ledger event."},"refund_id":{"type":["string","null"],"description":"The ID of the refund source that triggered this ledger event."},"sweep_id":{"type":["string","null"],"description":"The ID of the sweep source that triggered this ledger event."},"description":{"type":"string","description":"A description of the ledger event."},"pending_balance":{"type":"string","description":"The new pending balance after this event."},"available_balance":{"type":"string","description":"The new available balance after this event."},"type":{"type":"string","description":"The type of ledger event. One of `transfer`, `refund`, `deposit`, `withdrawal`, `distribution`, or `manual_adjustment`."},"timestamp":{"type":"string","format":"date-time","description":"The datetime when this ledger event occurred."}},"required":["ledger_event_id","ledger_id","amount","type","description","pending_balance","available_balance","timestamp"]},"LedgerEventSourceType":{"title":"LedgerEventSourceType","type":["string","null"],"enum":["TRANSFER","SWEEP","REFUND"],"description":"Source of the ledger event.\n\n`\"TRANSFER\"` - The source of the ledger event is a transfer\n\n`\"SWEEP\"` - The source of the ledger event is a sweep\n\n`\"REFUND\"` - The source of the ledger event is a refund"},"BankTransferEvent":{"title":"BankTransferEvent","type":"object","additionalProperties":true,"description":"Represents an event in the Bank Transfers API.","properties":{"event_id":{"type":"integer","description":"Plaid's unique identifier for this event. IDs are sequential unsigned 64-bit integers.","minimum":0},"timestamp":{"type":"string","format":"date-time","description":"The datetime when this event occurred. This will be of the form `2006-01-02T15:04:05Z`."},"event_type":{"$ref":"#/components/schemas/BankTransferEventType"},"account_id":{"type":"string","description":"The account ID associated with the bank transfer."},"bank_transfer_id":{"$ref":"#/components/schemas/BankTransferID"},"origination_account_id":{"type":["string","null"],"description":"The ID of the origination account that this balance belongs to."},"bank_transfer_type":{"$ref":"#/components/schemas/BankTransferType"},"bank_transfer_amount":{"type":"string","description":"The bank transfer amount."},"bank_transfer_iso_currency_code":{"type":"string","description":"The currency of the bank transfer amount."},"failure_reason":{"$ref":"#/components/schemas/BankTransferFailure"},"direction":{"$ref":"#/components/schemas/BankTransferDirection"},"receiver_details":{"$ref":"#/components/schemas/ReceiverDetails"}},"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","receiver_details"]},"ReceiverDetails":{"title":"ReceiverDetails","type":["object","null"],"additionalProperties":true,"description":"Additional details for receiver events. Currently always `null`.","properties":{"available_balance":{"type":["string","null"],"description":"The available balance associated with the receiver event."}},"required":["available_balance"]},"TransferEventListResponse":{"title":"TransferEventListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/event/list`","properties":{"transfer_events":{"type":"array","items":{"$ref":"#/components/schemas/TransferEvent"}},"has_more":{"type":"boolean","description":"Whether there are more events to be pulled from the endpoint that have not already been returned"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["transfer_events","has_more","request_id"]},"BankTransferEventListResponse":{"title":"BankTransferEventListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/bank_transfer/event/list`","properties":{"bank_transfer_events":{"type":"array","items":{"$ref":"#/components/schemas/BankTransferEvent"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["bank_transfer_events","request_id"]},"BankTransferEventSyncRequest":{"title":"BankTransferEventSyncRequest","type":"object","description":"Defines the request schema for `/bank_transfer/event/sync`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"after_id":{"type":"integer","description":"The latest (largest) `event_id` fetched via the sync endpoint, or 0 initially.","minimum":0},"count":{"type":["integer","null"],"default":25,"minimum":1,"maximum":25,"description":"The maximum number of bank transfer events to return."}},"required":["after_id"]},"TransferEventSyncRequest":{"title":"TransferEventSyncRequest","type":"object","description":"Defines the request schema for `/transfer/event/sync`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"after_id":{"type":"integer","description":"The latest (largest) `event_id` fetched via the sync endpoint, or 0 initially.","minimum":0},"count":{"type":["integer","null"],"default":100,"minimum":1,"maximum":500,"description":"The maximum number of transfer events to return."}},"required":["after_id"]},"BankTransferEventSyncResponse":{"title":"BankTransferEventSyncResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/bank_transfer/event/sync`","properties":{"bank_transfer_events":{"type":"array","items":{"$ref":"#/components/schemas/BankTransferEvent"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["bank_transfer_events","request_id"]},"TransferEventSyncResponse":{"title":"TransferEventSyncResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/event/sync`","properties":{"transfer_events":{"type":"array","items":{"$ref":"#/components/schemas/TransferEvent"}},"has_more":{"type":"boolean","description":"Whether there are more events to be pulled from the endpoint that have not already been returned"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["transfer_events","has_more","request_id"]},"BankTransferSweepGetRequest":{"title":"BankTransferSweepGetRequest","type":"object","description":"Defines the request schema for `/bank_transfer/sweep/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"sweep_id":{"type":"string","description":"Identifier of the sweep."}},"required":["sweep_id"]},"TransferSweepGetRequest":{"title":"TransferSweepGetRequest","type":"object","description":"Defines the request schema for `/transfer/sweep/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"sweep_id":{"type":"string","description":"Plaid's unique identifier for the sweep (UUID) or a shortened form consisting of the first 8 characters of the identifier (8-digit hexadecimal string)."}},"required":["sweep_id"]},"BankTransferSweepGetResponse":{"title":"BankTransferSweepGetResponse","type":"object","additionalProperties":true,"description":"BankTransferSweepGetResponse defines the response schema for `/bank_transfer/sweep/get`","properties":{"sweep":{"$ref":"#/components/schemas/BankTransferSweep"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["sweep","request_id"]},"TransferSweepGetResponse":{"title":"TransferSweepGetResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/sweep/get`","properties":{"sweep":{"$ref":"#/components/schemas/TransferSweep"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["sweep","request_id"]},"BankTransferSweepListRequest":{"title":"BankTransferSweepListRequest","type":"object","description":"BankTransferSweepListRequest defines the request schema for `/bank_transfer/sweep/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"origination_account_id":{"type":["string","null"],"description":"If multiple origination accounts are available, `origination_account_id` must be used to specify the account that the sweeps belong to."},"start_time":{"type":["string","null"],"format":"date-time","description":"The start `created` datetime of sweeps to return (RFC 3339 format)."},"end_time":{"type":["string","null"],"format":"date-time","description":"The end `created` datetime of sweeps to return (RFC 3339 format)."},"count":{"type":["integer","null"],"minimum":1,"maximum":25,"default":25,"description":"The maximum number of sweeps to return."}}},"SweepStatus":{"title":"SweepStatus","type":["string","null"],"enum":["pending","posted","settled","funds_available","returned","failed",null],"description":"The status of a sweep transfer\n\n`\"pending\"` - The sweep is currently pending\n\n`\"posted\"` - The sweep has been posted\n\n`\"settled\"` - The sweep has settled. This is the terminal state of a successful credit sweep.\n\n`\"returned\"` - The sweep has been returned. This is the terminal state of a returned sweep. Returns of a sweep are extremely rare, since sweeps are money movement between your own bank account and your own Ledger.\n\n`\"funds_available\"` - Funds from the sweep have been released from hold and applied to the ledger's available balance. (Only applicable to deposits.) This is the terminal state of a successful deposit sweep.\n\n`\"failed\"` - The sweep has failed. This is the terminal state of a failed sweep."},"SweepTrigger":{"title":"SweepTrigger","type":["string","null"],"enum":["manual","incoming","balance_threshold","automatic_aggregate"],"description":"The trigger of the sweep\n\n`\"manual\"` - The sweep is created manually by the customer\n\n`\"incoming\"` - The sweep is created by incoming funds flow (e.g. Incoming Wire)\n\n`\"balance_threshold\"` - The sweep is created by balance threshold setting\n\n`\"automatic_aggregate\"` - The sweep is created by the Plaid automatic aggregation process. These funds did not pass through the Plaid Ledger balance."},"SweepDescription":{"title":"SweepDescription","type":["string","null"],"maxLength":10,"description":"The description of the deposit that will be passed to the receiving bank (up to 10 characters). Note that banks utilize this field differently, and may or may not show it on the bank statement."},"TransferSweepListRequest":{"title":"TransferSweepListRequest","type":"object","description":"Defines the request schema for `/transfer/sweep/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":["string","null"],"format":"date-time","description":"The start `created` datetime of sweeps to return (RFC 3339 format)."},"end_date":{"type":["string","null"],"format":"date-time","description":"The end `created` datetime of sweeps to return (RFC 3339 format)."},"count":{"type":["integer","null"],"minimum":1,"maximum":25,"default":25,"description":"The maximum number of sweeps to return."},"offset":{"type":"integer","default":0,"minimum":0,"description":"The number of sweeps to skip before returning results."},"amount":{"type":["string","null"],"description":"Filter sweeps to only those with the specified amount."},"status":{"$ref":"#/components/schemas/SweepStatus"},"originator_client_id":{"type":["string","null"],"description":"Filter sweeps to only those with the specified originator client."},"funding_account_id":{"type":["string","null"],"description":"Filter sweeps to only those with the specified `funding_account_id`."},"transfer_id":{"type":["string","null"],"description":"Filter sweeps to only those with the included `transfer_id`."},"trigger":{"$ref":"#/components/schemas/SweepTrigger"}}},"TransferSweepListResponse":{"title":"TransferSweepListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/sweep/list`","properties":{"sweeps":{"type":"array","items":{"$ref":"#/components/schemas/TransferSweep"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["sweeps","request_id"]},"BankTransferSweepListResponse":{"title":"BankTransferSweepListResponse","type":"object","additionalProperties":true,"description":"BankTransferSweepListResponse defines the response schema for `/bank_transfer/sweep/list`","properties":{"sweeps":{"type":"array","items":{"$ref":"#/components/schemas/BankTransferSweep"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["sweeps","request_id"]},"BankTransferSweep":{"title":"BankTransferSweep","type":"object","additionalProperties":true,"description":"BankTransferSweep describes a sweep transfer.","properties":{"id":{"type":"string","description":"Identifier of the sweep."},"created_at":{"type":"string","description":"The datetime when the sweep occurred, in RFC 3339 format.","format":"date-time"},"amount":{"type":"string","description":"The amount of the sweep."},"iso_currency_code":{"type":"string","description":"The currency of the sweep, e.g. \"USD\"."}},"required":["id","created_at","amount","iso_currency_code"]},"TransferSweep":{"title":"TransferSweep","type":"object","additionalProperties":true,"description":"Describes a sweep of funds to / from the sweep account.\n\nA 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`.\n\n`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.\n\nThe 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":{"id":{"type":"string","description":"Identifier of the sweep."},"funding_account_id":{"$ref":"#/components/schemas/TransferFundingAccountIDResponse"},"ledger_id":{"$ref":"#/components/schemas/TransferLedgerID"},"created":{"type":"string","description":"The datetime when the sweep occurred, in RFC 3339 format.","format":"date-time"},"amount":{"type":"string","description":"Signed decimal amount of the sweep as it appears on your sweep account ledger (e.g. \"-10.00\")\n\nIf amount is not present, the sweep was net-settled to zero and outstanding debits and credits between the sweep account and Plaid are balanced."},"iso_currency_code":{"type":"string","description":"The currency of the sweep, e.g. \"USD\"."},"settled":{"type":["string","null"],"description":"The date when the sweep settled, in the YYYY-MM-DD format.","format":"date"},"expected_funds_available_date":{"type":["string","null"],"description":"The expected date when funds from a ledger deposit will be made available and can be withdrawn from the associated ledger balance. Only applies to deposits. This will be of the form YYYY-MM-DD.","format":"date"},"status":{"$ref":"#/components/schemas/SweepStatus"},"trigger":{"$ref":"#/components/schemas/SweepTrigger"},"description":{"type":"string","description":"The description of the deposit that will be passed to the receiving bank (up to 10 characters). Note that banks utilize this field differently, and may or may not show it on the bank statement."},"network_trace_id":{"$ref":"#/components/schemas/TransferNetworkTraceID"},"failure_reason":{"$ref":"#/components/schemas/SweepFailure"}},"required":["id","created","amount","iso_currency_code","settled","funding_account_id"]},"SweepFailure":{"title":"SweepFailure","type":["object","null"],"additionalProperties":true,"description":"The failure reason if the status for a sweep is `\"failed\"` or `\"returned\"`. Null value otherwise.","properties":{"failure_code":{"type":["string","null"],"description":"The failure code, e.g. `R01`.  A failure code will be provided if and only if the sweep status is `returned`. See [ACH return codes](https://plaid.com/docs/errors/transfer/#ach-return-codes) for a full listing of ACH return codes and [RTP/RfP error codes](https://plaid.com/docs/errors/transfer/#rtprfp-error-codes) for RTP error codes."},"description":{"type":["string","null"],"description":"A human-readable description of the reason for the failure or reversal."}}},"SimulatedTransferSweep":{"title":"SimulatedTransferSweep","type":"object","additionalProperties":true,"description":"A sweep returned from the `/sandbox/transfer/sweep/simulate` endpoint.\nCan be null if there are no transfers to include in a sweep.","allOf":[{"$ref":"#/components/schemas/TransferSweep"},{"type":["object","null"]}]},"BankTransferBalanceGetRequest":{"title":"BankTransferBalanceGetRequest","type":"object","description":"Defines the request schema for `/bank_transfer/balance/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"origination_account_id":{"type":["string","null"],"description":"If multiple origination accounts are available, `origination_account_id` must be used to specify the account for which balance will be returned."}}},"BankTransferBalanceGetResponse":{"title":"BankTransferBalanceGetResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/bank_transfer/balance/get`","properties":{"balance":{"$ref":"#/components/schemas/BankTransferBalance"},"origination_account_id":{"type":["string","null"],"description":"The ID of the origination account that this balance belongs to."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["balance","origination_account_id","request_id"]},"BankTransferBalance":{"title":"BankTransferBalance","description":"Information about the balance of a bank transfer","type":"object","additionalProperties":true,"properties":{"available":{"type":"string","description":"The total available balance - the sum of all successful debit transfer amounts minus all credit transfer amounts."},"transactable":{"type":"string","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."}},"required":["available","transactable"]},"TransferBalanceGetRequest":{"title":"TransferBalanceGetRequest","type":"object","description":"Defines the request schema for `/transfer/balance/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"originator_client_id":{"deprecated":true,"x-hidden-from-docs":true,"type":["string","null"],"description":"Client ID of the end customer."},"secret":{"$ref":"#/components/schemas/APISecret"},"type":{"$ref":"#/components/schemas/TransferBalanceType"}}},"TransferBalanceGetResponse":{"title":"TransferBalanceGetResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/balance/get`","properties":{"balance":{"$ref":"#/components/schemas/TransferBalance"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["balance","request_id"]},"TransferBalance":{"title":"TransferBalance","description":"Information about the balance held with Plaid.","type":"object","additionalProperties":true,"properties":{"available":{"type":"string","description":"The amount of this balance available for use (decimal string with two digits of precision e.g. \"10.00\")."},"current":{"type":"string","description":"The available balance, plus the amount of pending funds that are in processing (decimal string with two digits of precision e.g. \"10.00\")."},"type":{"$ref":"#/components/schemas/TransferBalanceType"}},"required":["available","type"]},"TransferLedgerGetRequest":{"title":"TransferLedgerGetRequest","type":"object","description":"Defines the request schema for `/transfer/ledger/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"ledger_id":{"type":["string","null"],"description":"Specify which ledger balance to get. Customers can find a list of `ledger_id`s in the Accounts page of your Plaid Dashboard. If this field is left blank, this will default to the id of the default ledger balance."},"originator_client_id":{"type":["string","null"],"description":"Client ID of the end customer."}}},"TransferLedgerGetResponse":{"title":"TransferLedgerGetResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/ledger/get`","properties":{"ledger_id":{"type":"string","description":"The unique identifier of the Ledger that was returned."},"balance":{"$ref":"#/components/schemas/TransferLedgerBalance"},"name":{"type":"string","description":"The name of the Ledger"},"is_default":{"type":"boolean","description":"Whether this Ledger is the client's default ledger."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["ledger_id","balance","name","is_default","request_id"]},"TransferLedgerDistributeRequest":{"title":"TransferLedgerDistributeRequest","type":"object","description":"Defines the request schema for `/transfer/ledger/distribute`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"from_ledger_id":{"type":"string","description":"The Ledger to pull money from."},"to_ledger_id":{"type":"string","description":"The Ledger to credit money to."},"amount":{"type":"string","description":"The amount to move (decimal string with two digits of precision e.g. \"10.00\"). Amount must be positive."},"idempotency_key":{"$ref":"#/components/schemas/LedgerDistributeIdempotencyKey"},"description":{"type":"string","description":"An optional description for the ledger distribute operation."}},"required":["from_ledger_id","to_ledger_id","amount","idempotency_key"]},"TransferLedgerDistributeResponse":{"title":"TransferLedgerDistributeResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/ledger/distribute`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferLedgerBalance":{"title":"TransferLedgerBalance","description":"Information about the balance of the ledger held with Plaid.","type":"object","additionalProperties":true,"properties":{"available":{"type":"string","description":"The amount of this balance available for use (decimal string with two digits of precision e.g. \"10.00\")."},"pending":{"type":"string","description":"The amount of pending funds that are in processing (decimal string with two digits of precision e.g. \"10.00\")."}},"required":["available","pending"]},"TransferLedgerDepositRequest":{"title":"TransferLedgerDepositRequest","type":"object","description":"Defines the request schema for `/transfer/ledger/deposit`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"$ref":"#/components/schemas/TransferOriginatorClientID"},"funding_account_id":{"$ref":"#/components/schemas/TransferLedgerFundingAccountIDRequest"},"ledger_id":{"type":["string","null"],"description":"Specify which ledger balance to deposit to. Customers can find a list of `ledger_id`s in the Accounts page of your Plaid Dashboard. If this field is left blank, this will default to the id of the default ledger balance."},"amount":{"type":"string","description":"A positive amount of how much will be deposited into ledger (decimal string with two digits of precision e.g. \"5.50\")."},"description":{"$ref":"#/components/schemas/SweepDescription"},"idempotency_key":{"$ref":"#/components/schemas/LedgerDepositIdempotencyKey"},"network":{"$ref":"#/components/schemas/TransferACHNetwork"}},"required":["amount","idempotency_key","network"]},"TransferLedgerWithdrawRequest":{"title":"TransferLedgerWithdrawRequest","type":"object","description":"Defines the request schema for `/transfer/ledger/withdraw`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"$ref":"#/components/schemas/TransferOriginatorClientID"},"funding_account_id":{"$ref":"#/components/schemas/TransferLedgerFundingAccountIDRequest"},"ledger_id":{"type":["string","null"],"description":"Specify which ledger balance to withdraw from. Customers can find a list of `ledger_id`s in the Accounts page of your Plaid Dashboard. If this field is left blank, this will default to the id of the default ledger balance."},"amount":{"type":"string","description":"A positive amount of how much will be withdrawn from the ledger balance (decimal string with two digits of precision e.g. \"5.50\")."},"description":{"$ref":"#/components/schemas/SweepDescription"},"idempotency_key":{"$ref":"#/components/schemas/LedgerWithdrawIdempotencyKey"},"network":{"$ref":"#/components/schemas/TransferNetwork"}},"required":["amount","idempotency_key","network"]},"TransferLedgerDepositResponse":{"title":"TransferLedgerDepositResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/ledger/deposit`","properties":{"sweep":{"$ref":"#/components/schemas/TransferSweep"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["sweep","request_id"]},"TransferLedgerWithdrawResponse":{"title":"TransferLedgerWithdrawResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/ledger/withdraw`","properties":{"sweep":{"$ref":"#/components/schemas/TransferSweep"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["sweep","request_id"]},"TransferBalanceType":{"type":"string","title":"TransferBalanceType","enum":["prefunded_rtp_credits","prefunded_ach_credits"],"description":"The type of balance.\n\n`prefunded_rtp_credits` - Your prefunded RTP credit balance with Plaid\n`prefunded_ach_credits` - Your prefunded ACH credit balance with Plaid"},"TransferOriginatorFundingAccountUpdateRequest":{"title":"TransferOriginatorFundingAccountUpdateRequest","type":"object","description":"Defines the request schema for `/transfer/originator/funding_account/update`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"type":"string","description":"The Plaid client ID of the transfer originator."},"funding_account":{"$ref":"#/components/schemas/TransferFundingAccount"}},"required":["funding_account","originator_client_id"]},"TransferOriginatorFundingAccountUpdateResponse":{"title":"TransferOriginatorFundingAccountUpdateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/originator/funding_account/update`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferOriginatorFundingAccountCreateRequest":{"title":"TransferOriginatorFundingAccountCreateRequest","type":"object","description":"Defines the request schema for `/transfer/originator/funding_account/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"type":"string","description":"The Plaid client ID of the transfer originator."},"funding_account":{"$ref":"#/components/schemas/TransferFundingAccountWithDisplayName"}},"required":["funding_account","originator_client_id"]},"TransferOriginatorFundingAccountCreateResponse":{"title":"TransferOriginatorFundingAccountCreateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/originator/funding_account/create`","properties":{"funding_account_id":{"$ref":"#/components/schemas/TransferFundingAccountIDResponse"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"BankTransferMigrateAccountRequest":{"title":"BankTransferMigrateAccountRequest","type":"object","description":"Defines the request schema for `/bank_transfer/migrate_account`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"account_number":{"type":"string","description":"The user's account number."},"routing_number":{"type":"string","description":"The user's routing number."},"wire_routing_number":{"type":"string","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`."},"account_type":{"type":"string","description":"The type of the bank account (`checking` or `savings`)."}},"required":["account_number","routing_number","account_type"]},"BankTransferMigrateAccountResponse":{"title":"BankTransferMigrateAccountResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/bank_transfer/migrate_account`","properties":{"access_token":{"type":"string","description":"The Plaid `access_token` for the newly created Item."},"account_id":{"type":"string","description":"The Plaid `account_id` for the newly created Item."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["access_token","account_id","request_id"]},"TransferMigrateAccountRequest":{"title":"TransferMigrateAccountRequest","type":"object","description":"Defines the request schema for `/transfer/migrate_account`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"account_number":{"type":"string","description":"The user's account number."},"routing_number":{"type":"string","description":"The user's routing number."},"wire_routing_number":{"type":"string","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`. This field must be set for the created item to be eligible for wire transfers."},"account_type":{"type":"string","description":"The type of the bank account (`checking` or `savings`)."}},"required":["account_number","routing_number","account_type"]},"TransferMigrateAccountResponse":{"title":"TransferMigrateAccountResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/migrate_account`","properties":{"access_token":{"type":"string","description":"The Plaid `access_token` for the newly created Item."},"account_id":{"type":"string","description":"The Plaid `account_id` for the newly created Item."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["access_token","account_id","request_id"]},"TransferOriginatorCreateRequest":{"title":"TransferOriginatorCreateRequest","type":"object","description":"Defines the request schema for `/transfer/originator/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"company_name":{"type":"string","description":"The company name of the end customer being created. This will be displayed in public-facing surfaces, e.g. Plaid Dashboard.","minLength":1}},"required":["company_name"]},"TransferOriginatorCreateResponse":{"title":"TransferOriginatorCreateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/originator/create`","properties":{"originator_client_id":{"type":"string","description":"Client ID of the originator. This identifier will be used when creating transfers and should be stored associated with end user information."},"company_name":{"type":"string","description":"The company name of the end customer."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["originator_client_id","company_name","request_id"]},"TransferQuestionnaireCreateRequest":{"title":"TransferQuestionnaireCreateRequest","type":"object","description":"Defines the request schema for `/transfer/questionnaire/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"type":"string","description":"Client ID of the end customer."},"redirect_uri":{"type":"string","description":"URL the end customer will be redirected to after completing questions in Plaid-hosted onboarding flow.","format":"url"}},"required":["originator_client_id","redirect_uri"]},"TransferQuestionnaireCreateResponse":{"title":"TransferQuestionnaireCreateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/questionnaire/create`","properties":{"onboarding_url":{"type":"string","description":"Plaid-hosted onboarding URL that you will redirect the end customer to."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["onboarding_url","request_id"]},"TransferDiligenceSubmitRequest":{"title":"TransferDiligenceSubmitRequest","type":"object","description":"Defines the request schema for `/transfer/diligence/submit`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"type":"string","description":"Client ID of the originator whose diligence that you want to submit."},"originator_diligence":{"$ref":"#/components/schemas/TransferOriginatorDiligence"}},"required":["originator_client_id","originator_diligence"]},"TransferDiligenceSubmitResponse":{"title":"TransferDiligenceSubmitResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/diligence/submit`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferDiligenceDocumentUploadRequest":{"title":"TransferDiligenceDocumentUploadRequest","type":"object","description":"Defines the request schema for `/transfer/diligence/document/upload`","properties":{"originator_client_id":{"type":"string","description":"The Client ID of the originator whose document that you want to upload."},"file":{"contentMediaType":"application/octet-stream","description":"A file to upload. The file size must be less than 20MB. Supported file extensions: .pdf."},"purpose":{"$ref":"#/components/schemas/TransferDocumentPurpose"}},"required":["originator_client_id","file","purpose"]},"TransferDiligenceDocumentUploadResponse":{"title":"TransferDiligenceDocumentUploadResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/diligence/document/upload`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferDocumentPurpose":{"type":"string","title":"purpose","enum":["DUE_DILIGENCE"],"description":"Specifies the purpose of the uploaded file.\n\n`\"DUE_DILIGENCE\"` - The transfer due diligence document of the originator."},"TransferOriginatorDiligence":{"description":"The diligence information for the originator.","type":"object","properties":{"dba":{"description":"The business name of the originator.","type":"string"},"tax_id":{"description":"The tax ID of the originator.","type":"string","minLength":1},"credit_usage_configuration":{"$ref":"#/components/schemas/TransferCreditUsageConfiguration"},"debit_usage_configuration":{"$ref":"#/components/schemas/TransferDebitUsageConfiguration"},"address":{"$ref":"#/components/schemas/TransferOriginatorAddress"},"website":{"description":"The website of the originator.","type":"string","format":"url"},"naics_code":{"description":"The NAICS code of the originator.","type":"string","minLength":6,"maxLength":6},"funding_account":{"$ref":"#/components/schemas/TransferFundingAccount"}},"required":["dba","tax_id","address","website","naics_code","funding_account"]},"TransferOriginatorAddress":{"description":"The originator's address.","type":"object","properties":{"city":{"type":"string","description":"The full city name."},"street":{"type":"string","description":"The full street address."},"region":{"type":"string","description":"The two-letter code for the state or province (e.g., \"CA\")."},"postal_code":{"description":"The postal code (e.g., \"94103\").","type":"string"},"country_code":{"description":"ISO-3166-1 alpha-2 country code standard.","type":"string"}},"required":["city","street","region","postal_code","country_code"]},"TransferCreditUsageConfiguration":{"description":"Specifies the originator's expected usage of credits. For all dollar amounts, use a decimal string with two digits of precision e.g. \"10.00\". This field is required if the originator is expected to process credit transfers.","type":["object","null"],"properties":{"expected_frequency":{"$ref":"#/components/schemas/OriginatorExpectedTransferFrequency"},"expected_highest_amount":{"description":"The originator's expected highest amount for a single credit transfer.","type":"string"},"expected_average_amount":{"description":"The originator's expected average amount per credit.","type":"string"},"expected_monthly_amount":{"description":"The originator's monthly expected ACH credit processing amount for the next 6-12 months.","type":"string"},"sec_codes":{"description":"Specifies the expected use cases for the originator's credit transfers. This should be a list that contains one or more of the following codes:\n\n`\"ccd\"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts\n\n`\"ppd\"` - Prearranged Payment or Deposit. The transfer is part of a pre-existing relationship with a consumer. Authorization was obtained from the consumer in person via writing, or through online authorization, or via an electronic document signing, e.g. Docusign. For example language for online authorization, see the 2025 Nacha Operating Rules -- Section 2.3.2, Authorization of Entries via Electronic Means. Can be used for credits or debits.\n\n`\"web\"` - Internet-Initiated Entry. The transfer debits a consumer's bank account. Authorization from the consumer is obtained over the Internet (e.g. a web or mobile application). Can be used for single debits or recurring debits.","type":"array","items":{"$ref":"#/components/schemas/CreditACHClass"}}},"required":["expected_frequency","expected_highest_amount","expected_average_amount","expected_monthly_amount","sec_codes"]},"CreditACHClass":{"type":"string","title":"CreditACHClass","enum":["ccd","ppd","web"],"description":"Specifies the use case of the transfer. Required for transfers on an ACH network.\n\n`\"ccd\"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts\n\n`\"ppd\"` - Prearranged Payment or Deposit - The transfer is part of a pre-existing relationship with a consumer. Authorization was obtained in writing either in person or via an electronic document signing, e.g. Docusign, by the consumer. Can be used for credits or debits.\n\n`\"web\"` - Internet-Initiated Entry. The transfer debits a consumer's bank account. Authorization from the consumer is obtained over the Internet (e.g. a web or mobile application). Can be used for single debits or recurring debits."},"TransferDebitUsageConfiguration":{"description":"Specifies the originator's expected usage of debits. For all dollar amounts, use a decimal string with two digits of precision e.g. \"10.00\". This field is required if the originator is expected to process debit transfers.","type":["object","null"],"properties":{"expected_frequency":{"$ref":"#/components/schemas/OriginatorExpectedTransferFrequency"},"expected_highest_amount":{"description":"The originator's expected highest amount for a single debit transfer.","type":"string"},"expected_average_amount":{"description":"The originator's expected average amount per debit.","type":"string"},"expected_monthly_amount":{"description":"The originator's monthly expected ACH debit processing amount for the next 6-12 months.","type":"string"},"sec_codes":{"description":"Specifies the expected use cases for the originator's debit transfers. This should be a list that contains one or more of the following codes:\n\n`\"ccd\"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts\n\n`\"ppd\"` - Prearranged Payment or Deposit - The transfer is part of a pre-existing relationship with a consumer. Authorization was obtained in writing either in person or via an electronic document signing, e.g. Docusign, by the consumer. Can be used for credits or debits.\n\n`\"web\"` - Internet-Initiated Entry. The transfer debits a consumer's bank account. Authorization from the consumer is obtained over the Internet (e.g. a web or mobile application). Can be used for single debits or recurring debits.\n\n`\"tel\"` - Telephone-Initiated Entry. The transfer debits a consumer. Debit authorization has been received orally over the telephone via a recorded call.","type":"array","items":{"$ref":"#/components/schemas/ACHClass"}}},"required":["expected_frequency","expected_highest_amount","expected_average_amount","expected_monthly_amount","sec_codes"]},"OriginatorExpectedTransferFrequency":{"type":"string","title":"OriginatorExpectedTransferFrequency","description":"The originator's expected transfer frequency.","enum":["once_per_month","twice_per_month","once_per_week","daily"]},"TransferFundingAccount":{"type":"object","title":"TransferFundingAccount","description":"The originator's funding account, linked with Plaid Link or `/transfer/migrate_account`.","properties":{"access_token":{"$ref":"#/components/schemas/AccessToken"},"account_id":{"type":"string","description":"The Plaid `account_id` for the newly created Item."}},"required":["access_token","account_id"]},"TransferFundingAccountWithDisplayName":{"type":"object","title":"TransferFundingAccount","description":"The originator's funding account, linked with Plaid Link or `/transfer/migrate_account`.","allOf":[{"$ref":"#/components/schemas/TransferFundingAccount"},{"type":"object","properties":{"display_name":{"type":"string","description":"The name for the funding account that is displayed in the Plaid dashboard."}}}]},"TransferOriginatorGetRequest":{"title":"TransferOriginatorGetRequest","type":"object","description":"Defines the request schema for `/transfer/originator/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"type":"string","description":"Client ID of the end customer (i.e. the originator)."}},"required":["originator_client_id"]},"TransferOriginatorGetResponse":{"title":"TransferOriginatorGetResponse","type":"object","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"]},"TransferOriginatorListRequest":{"title":"TransferOriginatorListRequest","type":"object","description":"Defines the request schema for `/transfer/originator/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"count":{"type":["integer","null"],"description":"The maximum number of originators to return.","maximum":25,"minimum":1,"default":25},"offset":{"type":["integer","null"],"description":"The number of originators to skip before returning results.","minimum":0,"default":0}}},"TransferOriginatorListResponse":{"title":"TransferOriginatorListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/originator/list`","properties":{"originators":{"type":"array","items":{"$ref":"#/components/schemas/Originator"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["originators","request_id"]},"TransferRepaymentListRequest":{"title":"TransferRepaymentListRequest","type":"object","description":"Defines the request schema for `/transfer/repayment/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"type":["string","null"],"format":"date-time","description":"The start `created` datetime of repayments to return (RFC 3339 format)."},"end_date":{"type":["string","null"],"format":"date-time","description":"The end `created` datetime of repayments to return (RFC 3339 format)."},"count":{"type":["integer","null"],"minimum":1,"maximum":25,"default":25,"description":"The maximum number of repayments to return."},"offset":{"type":"integer","default":0,"minimum":0,"description":"The number of repayments to skip before returning results."}}},"TransferRepaymentListResponse":{"title":"TransferRepaymentListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/repayment/list`","properties":{"repayments":{"type":"array","items":{"$ref":"#/components/schemas/TransferRepayment"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["repayments","request_id"]},"TransferRepayment":{"title":"TransferRepayment","type":"object","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.\n\nRepayments are sent over ACH, with funds typically available on the next banking day.","properties":{"repayment_id":{"type":"string","description":"Identifier of the repayment."},"created":{"type":"string","description":"The datetime when the repayment occurred, in RFC 3339 format.","format":"date-time"},"amount":{"type":"string","description":"Decimal amount of the repayment as it appears on your account ledger."},"iso_currency_code":{"type":"string","description":"The currency of the repayment, e.g. \"USD\"."}},"required":["repayment_id","created","amount","iso_currency_code"]},"TransferRepaymentReturnListRequest":{"title":"TransferRepaymentReturnListRequest","type":"object","description":"Defines the request schema for `/transfer/repayment/return/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"repayment_id":{"type":"string","description":"Identifier of the repayment to query."},"count":{"type":["integer","null"],"minimum":1,"maximum":25,"default":25,"description":"The maximum number of repayments to return."},"offset":{"type":"integer","default":0,"minimum":0,"description":"The number of repayments to skip before returning results."}},"required":["repayment_id"]},"TransferRepaymentReturnListResponse":{"title":"TransferRepaymentReturnListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/repayment/return/list`","properties":{"repayment_returns":{"type":"array","items":{"$ref":"#/components/schemas/TransferRepaymentReturn"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["repayment_returns","request_id"]},"TransferRepaymentReturn":{"title":"TransferRepaymentReturn","type":"object","additionalProperties":true,"description":"Represents a return on a Guaranteed ACH transfer that is included in the specified repayment.","properties":{"transfer_id":{"type":"string","description":"The unique identifier of the guaranteed transfer that was returned."},"event_id":{"type":"integer","description":"The unique identifier of the corresponding `returned` transfer event.","minimum":0},"amount":{"type":"string","description":"The value of the returned transfer."},"iso_currency_code":{"type":"string","description":"The currency of the repayment, e.g. \"USD\"."}},"required":["transfer_id","event_id","amount","iso_currency_code"]},"TransferPlatformRequirementSubmitRequest":{"title":"TransferPlatformRequirementSubmitRequest","type":"object","description":"Defines the request schema for `/transfer/platform/requirement/submit`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"type":"string","description":"The client ID of the originator"},"requirement_submissions":{"type":"array","description":"Use the `/transfer/platform/requirement/submit` endpoint to submit a list of requirement submissions that all relate to the originator. Must contain between 1 and 50 requirement submissions. See [Requirement type schema documentation](https://docs.google.com/document/d/1NEQkTD0sVK50iAQi6xHigrexDUxZ4QxXqSEfV_FFTiU/) for a list of requirements and possible values.","items":{"$ref":"#/components/schemas/TransferPlatformRequirementSubmission"},"maxItems":50,"minItems":1}},"required":["originator_client_id","requirement_submissions"]},"TransferPlatformRequirementSubmission":{"title":"RequirementSubmission","type":"object","description":"A single requirement submission","properties":{"requirement_type":{"type":"string","description":"The type of requirement being submitted. See [Requirement type schema documentation](https://docs.google.com/document/d/1NEQkTD0sVK50iAQi6xHigrexDUxZ4QxXqSEfV_FFTiU/) for a list of requirement types and possible values."},"value":{"type":"string","description":"The value of the requirement, which can be a string or an object depending on the `requirement_type`. If it is an object, the object should be JSON marshaled into a string. See [Requirement type schema documentation](https://docs.google.com/document/d/1NEQkTD0sVK50iAQi6xHigrexDUxZ4QxXqSEfV_FFTiU/) for a list of requirement types and possible values."},"person_id":{"type":"string","format":"uuid","description":"The `person_id` of the person the requirement submission is related to. A `person_id` is returned by `/transfer/platform/person/create`. This field should not be included for requirements that are not related to a person."}},"required":["requirement_type","value"]},"TransferPlatformRequirementSubmitResponse":{"title":"TransferPlatformRequirementSubmitResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/platform/requirement/submit`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferIntentCreateRequest":{"title":"TransferIntentCreateRequest","type":"object","description":"Defines the request schema for `/transfer/intent/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"account_id":{"type":["string","null"],"description":"The Plaid `account_id` corresponding to the end-user account that will be debited or credited."},"funding_account_id":{"$ref":"#/components/schemas/TransferMigratedFundingAccountIDRequest"},"mode":{"$ref":"#/components/schemas/TransferIntentCreateMode"},"network":{"$ref":"#/components/schemas/TransferIntentCreateNetwork"},"amount":{"$ref":"#/components/schemas/TransferAmount"},"description":{"type":"string","description":"A description for the underlying transfer. Maximum of 15 characters.","minLength":1,"maxLength":15},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"origination_account_id":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Plaid's unique identifier for the origination account for the intent. If not provided, the default account will be used."},"user":{"$ref":"#/components/schemas/TransferUserInRequest"},"metadata":{"$ref":"#/components/schemas/TransferMetadata"},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount, e.g. \"USD\""},"require_guarantee":{"type":["boolean","null"],"default":false,"x-hidden-from-docs":true,"description":"When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only)."}},"required":["mode","amount","description","user"]},"TransferIntentStatus":{"type":"string","enum":["PENDING","SUCCEEDED","FAILED"],"description":"The status of the transfer intent.\n\n`PENDING`: The transfer intent is pending.\n\n`SUCCEEDED`: The transfer intent was successfully created.\n\n`FAILED`: The transfer intent was unable to be created."},"TransferIntentCreate":{"title":"TransferIntentCreate","type":"object","additionalProperties":true,"description":"Represents a transfer intent within Transfer UI.","properties":{"id":{"type":"string","description":"Plaid's unique identifier for the transfer intent object."},"created":{"type":"string","format":"date-time","description":"The datetime the transfer was created. This will be of the form `2006-01-02T15:04:05Z`."},"status":{"$ref":"#/components/schemas/TransferIntentStatus"},"account_id":{"type":["string","null"],"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."},"origination_account_id":{"type":"string","description":"Plaid's unique identifier for the origination account for the intent. If not provided, the default account will be used.","deprecated":true,"x-hidden-from-docs":true},"funding_account_id":{"$ref":"#/components/schemas/TransferFundingAccountIDResponse"},"amount":{"$ref":"#/components/schemas/TransferAmount"},"mode":{"$ref":"#/components/schemas/TransferIntentCreateMode"},"network":{"$ref":"#/components/schemas/TransferIntentCreateNetwork"},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"user":{"$ref":"#/components/schemas/TransferUserInResponse"},"description":{"type":"string","description":"A description for the underlying transfer. Maximum of 15 characters."},"metadata":{"$ref":"#/components/schemas/TransferMetadata"},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount, e.g. \"USD\""},"require_guarantee":{"type":["boolean","null"],"x-hidden-from-docs":true,"description":"When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only)."}},"required":["id","created","status","origination_account_id","funding_account_id","amount","mode","user","description","iso_currency_code"]},"TransferIntentCreateResponse":{"title":"TransferIntentCreateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/intent/create`","properties":{"transfer_intent":{"$ref":"#/components/schemas/TransferIntentCreate"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["transfer_intent","request_id"]},"TransferIntentGetRequest":{"title":"TransferIntentGetRequest","type":"object","description":"Defines the request schema for `/transfer/intent/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"transfer_intent_id":{"type":"string","description":"Plaid's unique identifier for a transfer intent object."}},"required":["transfer_intent_id"]},"TransferIntentAuthorizationDecision":{"type":["string","null"],"enum":["APPROVED","DECLINED"],"description":"\nA decision regarding the proposed transfer.\n\n`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 mode 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.\n\n`DECLINED` - Plaid reviewed the proposed transfer and declined processing. Refer to the `code` field in the `decision_rationale` object for details."},"TransferIntentGet":{"title":"TransferIntentGet","type":"object","additionalProperties":true,"description":"Represents a transfer intent within Transfer UI.","properties":{"id":{"type":"string","description":"Plaid's unique identifier for a transfer intent object."},"created":{"type":"string","format":"date-time","description":"The datetime the transfer was created. This will be of the form `2006-01-02T15:04:05Z`."},"status":{"$ref":"#/components/schemas/TransferIntentStatus"},"transfer_id":{"type":["string","null"],"description":"Plaid's unique identifier for the transfer created through the UI. Returned only if the transfer was successfully created. Null value otherwise."},"failure_reason":{"$ref":"#/components/schemas/TransferIntentGetFailureReason"},"authorization_decision":{"$ref":"#/components/schemas/TransferIntentAuthorizationDecision"},"authorization_decision_rationale":{"$ref":"#/components/schemas/TransferAuthorizationDecisionRationale"},"account_id":{"type":["string","null"],"description":"The Plaid `account_id` for the account that will be debited or credited. Returned only if `account_id` was set on intent creation."},"origination_account_id":{"type":"string","description":"Plaid's unique identifier for the origination account used for the transfer.","deprecated":true,"x-hidden-from-docs":true},"funding_account_id":{"$ref":"#/components/schemas/TransferFundingAccountIDResponse"},"amount":{"$ref":"#/components/schemas/TransferAmount"},"mode":{"$ref":"#/components/schemas/TransferIntentCreateMode"},"network":{"$ref":"#/components/schemas/TransferIntentCreateNetwork"},"ach_class":{"$ref":"#/components/schemas/ACHClass"},"user":{"$ref":"#/components/schemas/TransferUserInResponse"},"description":{"type":"string","description":"A description for the underlying transfer. Maximum of 15 characters."},"metadata":{"$ref":"#/components/schemas/TransferMetadata"},"iso_currency_code":{"type":"string","description":"The currency of the transfer amount, e.g. \"USD\""},"require_guarantee":{"type":["boolean","null"],"x-hidden-from-docs":true,"description":"When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only)."},"guarantee_decision":{"$ref":"#/components/schemas/TransferAuthorizationGuaranteeDecision"},"guarantee_decision_rationale":{"$ref":"#/components/schemas/TransferAuthorizationGuaranteeDecisionRationale"}},"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"]},"TransferIntentGetResponse":{"title":"TransferIntentGetResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/intent/get`","properties":{"transfer_intent":{"$ref":"#/components/schemas/TransferIntentGet"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["transfer_intent","request_id"]},"TransferRefundCreateRequest":{"title":"TransferRefundCreateRequest","type":"object","description":"Defines the request schema for `/transfer/refund/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"transfer_id":{"$ref":"#/components/schemas/TransferIDForRefund"},"amount":{"$ref":"#/components/schemas/TransferRefundAmount"},"idempotency_key":{"$ref":"#/components/schemas/TransferRefundIdempotencyKey"}},"required":["transfer_id","idempotency_key","amount"]},"TransferRefundCreateResponse":{"title":"TransferRefundCreateResponse","type":"object","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"]},"TransferReturnRecoverTransferID":{"title":"TransferReturnRecoverTransferID","type":"string","description":"The ID of the returned transfer that was recovered."},"TransferReturnRecoverAmount":{"title":"TransferReturnRecoverAmount","type":"string","description":"The amount being recovered (decimal string with two digits of precision e.g. \"10.00\"). The sum of recovered amounts across calls cannot exceed the guaranteed amount of the original transfer."},"TransferReturnRecoverIdempotencyKey":{"title":"TransferReturnRecoverIdempotencyKey","type":"string","maxLength":50,"description":"A random key provided by the client, per unique recovery. Maximum of 50 characters.\n\nThe API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to report a recovery fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single recovery is recorded."},"TransferReturnRecoverRequest":{"title":"TransferReturnRecoverRequest","type":"object","description":"Defines the request schema for `/transfer/return/recover`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"transfer_id":{"$ref":"#/components/schemas/TransferReturnRecoverTransferID"},"amount":{"$ref":"#/components/schemas/TransferReturnRecoverAmount"},"idempotency_key":{"$ref":"#/components/schemas/TransferReturnRecoverIdempotencyKey"}},"required":["transfer_id","amount","idempotency_key"]},"TransferReturnRecoverResponse":{"title":"TransferReturnRecoverResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/return/recover`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferRefundFailure":{"title":"TransferRefundFailure","type":["object","null"],"additionalProperties":true,"description":"The failure reason if the status for a refund is `\"failed\"` or `\"returned\"`. Null value otherwise.","properties":{"failure_code":{"type":["string","null"],"description":"The failure code, e.g. `R01`.  A failure code will be provided if and only if the refund status is `returned`. See [ACH return codes](https://plaid.com/docs/errors/transfer/#ach-return-codes) for a full listing of ACH return codes and [RTP/RfP error codes](https://plaid.com/docs/errors/transfer/#rtprfp-error-codes) for RTP error codes."},"ach_return_code":{"deprecated":true,"type":["string","null"],"description":"The ACH return code, e.g. `R01`.  A return code will be provided if and only if the refund status is `returned`. For a full listing of ACH return codes, see [Transfer errors](https://plaid.com/docs/errors/transfer/#ach-return-codes). This field is deprecated in favor of the more versatile `failure_code`, which encompasses non-ACH failure codes as well."},"description":{"type":"string","description":"A human-readable description of the reason for the failure or reversal."}}},"TransferRefund":{"title":"TransferRefund","type":"object","additionalProperties":true,"description":"Represents a refund within the Transfers API.","properties":{"id":{"$ref":"#/components/schemas/TransferRefundID"},"transfer_id":{"$ref":"#/components/schemas/TransferIDForRefund"},"amount":{"$ref":"#/components/schemas/TransferRefundAmount"},"status":{"$ref":"#/components/schemas/TransferRefundStatus"},"failure_reason":{"$ref":"#/components/schemas/TransferRefundFailure"},"ledger_id":{"$ref":"#/components/schemas/TransferLedgerID"},"created":{"type":"string","format":"date-time","description":"The datetime when this refund was created. This will be of the form `2006-01-02T15:04:05Z`"},"network_trace_id":{"$ref":"#/components/schemas/TransferNetworkTraceID"}},"required":["id","transfer_id","amount","status","created","failure_reason"]},"TransferRefundGetRequest":{"title":"TransferRefundGetRequest","type":"object","description":"Defines the request schema for `/transfer/refund/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"refund_id":{"$ref":"#/components/schemas/TransferRefundID"}},"required":["refund_id"]},"TransferRefundGetResponse":{"title":"TransferRefundGetResponse","type":"object","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"]},"TransferRefundCancelRequest":{"title":"TransferRefundCancelRequest","type":"object","description":"Defines the request schema for `/transfer/refund/cancel`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"refund_id":{"$ref":"#/components/schemas/TransferRefundID"}},"required":["refund_id"]},"TransferRefundCancelResponse":{"title":"TransferRefundCancelResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/refund/cancel`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferPlatformOriginatorCreateRequest":{"title":"TransferPlatformOriginatorCreateRequest","type":"object","description":"Defines the request schema for `/transfer/platform/originator/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"$ref":"#/components/schemas/TransferPlatformOriginatorClientID"},"tos_acceptance_metadata":{"$ref":"#/components/schemas/TransferPlatformTOSAcceptanceMetadata"},"originator_reviewed_at":{"type":"string","format":"date-time","description":"ISO8601 timestamp indicating the most recent time the platform collected onboarding data from the originator"},"webhook":{"type":"string","description":"The webhook URL to which a `PLATFORM_ONBOARDING_UPDATE` webhook should be sent.","format":"url"}},"required":["originator_client_id","tos_acceptance_metadata","originator_reviewed_at"]},"TransferPlatformOriginatorCreateResponse":{"title":"TransferPlatformOriginatorCreateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/platform/originator/create`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"TransferPlatformTOSAcceptanceMetadata":{"title":"TOSAcceptanceMetadata","type":"object","description":"Metadata related to the acceptance of Terms of Service","properties":{"agreement_accepted":{"type":"boolean","description":"Indicates whether the TOS agreement was accepted"},"originator_ip_address":{"type":"string","description":"The IP address of the originator when they accepted the TOS. Formatted as an IPv4 or IPv6 IP address"},"agreement_accepted_at":{"type":"string","format":"date-time","description":"ISO8601 timestamp indicating when the originator accepted the TOS"}},"required":["agreement_accepted","originator_ip_address","agreement_accepted_at"]},"TransferPlatformOriginatorClientID":{"type":"string","description":"The client ID of the originator"},"TransferPlatformOnboardingUpdateWebhook":{"title":"TransferPlatformOnboardingUpdateWebhook","type":"object","additionalProperties":true,"description":"Fired when the status of an onboarding originator has been updated. Call `/transfer/originator/get` to check the latest status","x-examples":{"example-1":{"webhook_type":"TRANSFER","webhook_code":"PLATFORM_ONBOARDING_UPDATE","originator_client_id":"5fd92e38107d160013b02a37","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`\"TRANSFER\"`"},"webhook_code":{"type":"string","description":"`\"PLATFORM_ONBOARDING_UPDATE\"`"},"originator_client_id":{"$ref":"#/components/schemas/TransferPlatformOriginatorClientID"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","originator_client_id","environment"]},"TransferPlatformPersonCreateRequest":{"type":"object","description":"Defines the request schema for `/transfer/platform/person/create`","required":["originator_client_id"],"properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"originator_client_id":{"$ref":"#/components/schemas/TransferPlatformOriginatorClientID"},"name":{"$ref":"#/components/schemas/TransferPlatformPersonName"},"email_address":{"type":"string","description":"A valid email address. Must not have leading or trailing spaces.","examples":["user@example.com"]},"phone_number":{"type":"string","description":"A valid phone number in E.164 format. Phone number input may be validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment.","examples":["+12345678909"]},"address":{"$ref":"#/components/schemas/TransferPlatformPersonAddress"},"id_number":{"$ref":"#/components/schemas/TransferPlatformPersonIDNumber"},"date_of_birth":{"type":"string","description":"The date of birth of the person. Formatted as YYYY-MM-DD.","format":"date"},"relationship_to_originator":{"type":"string","description":"The relationship between this person and the originator they are related to."},"ownership_percentage":{"type":"integer","minimum":25,"maximum":100,"description":"The percentage of ownership this person has in the onboarding business. Only applicable to beneficial owners with 25% or more ownership."},"title":{"type":"string","description":"The title of the person at the business. Only applicable to control persons - for example, \"CEO\", \"President\", \"Owner\", etc."}}},"TransferPlatformPersonIDNumber":{"description":"ID number of the person","type":"object","properties":{"value":{"type":"string","title":"IDNumberValue","description":"Value of the person's ID Number. Alpha-numeric, with all formatting characters stripped.","examples":["123456789"]},"type":{"$ref":"#/components/schemas/IDNumberType"}},"required":["value","type"]},"TransferPlatformPersonCreateResponse":{"title":"TransferPlatformPersonCreateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/transfer/platform/person/create`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"person_id":{"type":"string","description":"An ID that should be used when submitting additional requirements that are associated with this person."}},"required":["request_id","person_id"]},"TransferPlatformPersonAddress":{"title":"TransferPlatformPersonAddress","description":"Home address of a person","type":"object","properties":{"city":{"type":"string","description":"The full city name."},"country":{"type":"string","description":"Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form."},"postal_code":{"type":"string","description":"The postal code of the address."},"region":{"type":"string","description":"An ISO 3166-2 subdivision code.\nRelated terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc."},"street":{"type":"string","description":"The primary street portion of an address. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters."},"street2":{"type":"string","description":"Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters."}},"required":["city","country","postal_code","region","street"]},"TransferPlatformPersonName":{"type":"object","properties":{"given_name":{"$ref":"#/components/schemas/GivenNameField"},"family_name":{"$ref":"#/components/schemas/FamilyNameField"}},"required":["given_name","family_name"],"description":"The person's legal name"},"SandboxBankTransferSimulateRequest":{"title":"SandboxBankTransferSimulateRequest","type":"object","description":"Defines the request schema for `/sandbox/bank_transfer/simulate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"bank_transfer_id":{"$ref":"#/components/schemas/BankTransferID"},"event_type":{"type":"string","description":"The asynchronous event to be simulated. May be: `posted`, `failed`, or `reversed`.\n\nAn error will be returned if the event type is incompatible with the current transfer status. Compatible status --> event type transitions include:\n\n`pending` --> `failed`\n\n`pending` --> `posted`\n\n`posted` --> `reversed`\n"},"failure_reason":{"$ref":"#/components/schemas/BankTransferFailure"}},"required":["bank_transfer_id","event_type"]},"SandboxTransferSimulateRequest":{"title":"SandboxTransferSimulateRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/simulate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"transfer_id":{"$ref":"#/components/schemas/TransferID"},"test_clock_id":{"type":["string","null"],"description":"Plaid's unique identifier for a test clock. If provided, the event to be simulated is created at the `virtual_time` on the provided `test_clock`."},"event_type":{"type":"string","description":"The asynchronous event to be simulated. May be: `posted`, `settled`, `failed`, `funds_available`, or `returned`.\n\nAn error will be returned if the event type is incompatible with the current transfer status. Compatible status --> event type transitions include:\n\n`pending` --> `failed`\n\n`pending` --> `posted`\n\n`posted` --> `returned`\n\n`posted` --> `settled`\n\n`settled` --> `funds_available` (only applicable to ACH debits.)\n"},"failure_reason":{"$ref":"#/components/schemas/TransferFailure"},"webhook":{"type":"string","description":"The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.","format":"url"}},"required":["transfer_id","event_type"]},"SandboxTransferRefundSimulateRequest":{"title":"SandboxTransferRefundSimulateRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/refund/simulate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"refund_id":{"$ref":"#/components/schemas/TransferRefundID"},"test_clock_id":{"type":["string","null"],"description":"Plaid's unique identifier for a test clock. If provided, the event to be simulated is created at the `virtual_time` on the provided `test_clock`."},"event_type":{"type":"string","description":"The asynchronous event to be simulated. May be: `refund.posted`, `refund.settled`, `refund.failed`, or `refund.returned`.\n\nAn error will be returned if the event type is incompatible with the current refund status. Compatible status --> event type transitions include:\n\n`refund.pending` --> `refund.failed`\n\n`refund.pending` --> `refund.posted`\n\n`refund.posted` --> `refund.returned`\n\n`refund.posted` --> `refund.settled`\n\n`refund.posted` events can only be simulated if the refunded transfer has been transitioned to settled. This mimics the ordering of events in Production.\n"},"failure_reason":{"$ref":"#/components/schemas/TransferFailure"},"webhook":{"type":"string","description":"The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.","format":"url"}},"required":["refund_id","event_type"]},"SandboxTransferLedgerDepositSimulateRequest":{"title":"SandboxTransferLedgerDepositSimulateRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/ledger/deposit/simulate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"sweep_id":{"$ref":"#/components/schemas/TransferSweepID"},"event_type":{"$ref":"#/components/schemas/TransferLedgerSweepSimulateEventType"},"failure_reason":{"$ref":"#/components/schemas/TransferFailure"}},"required":["sweep_id","event_type"]},"SandboxTransferLedgerWithdrawSimulateRequest":{"title":"SandboxTransferLedgerWithdrawSimulateRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/ledger/withdraw/simulate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"sweep_id":{"$ref":"#/components/schemas/TransferSweepID"},"event_type":{"$ref":"#/components/schemas/TransferLedgerSweepSimulateEventType"},"failure_reason":{"$ref":"#/components/schemas/TransferFailure"}},"required":["sweep_id","event_type"]},"SandboxTransferSweepSimulateRequest":{"title":"SandboxTransferSweepSimulateRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/sweep/simulate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"test_clock_id":{"type":["string","null"],"description":"Plaid's unique identifier for a test clock. If provided, the sweep to be simulated is created on the day of the `virtual_time` on the `test_clock`. If the date of `virtual_time` is on weekend or a federal holiday, the next available banking day is used."},"webhook":{"type":"string","description":"The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.","format":"url"}}},"SandboxTransferLedgerSimulateAvailableRequest":{"title":"SandboxTransferLedgerSimulateAvailableRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/ledger/simulate_available`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"ledger_id":{"type":["string","null"],"description":"Specify which ledger balance to simulate converting pending balance to available balance. If this field is left blank, pending balance is converted to available balance for all of your ledgers (or all of the given originator's ledgers)."},"originator_client_id":{"type":["string","null"],"description":"Client ID of the end customer (i.e. the originator). Only applicable to Transfer for Platforms customers."},"test_clock_id":{"type":["string","null"],"description":"Plaid's unique identifier for a test clock. If provided, only the pending balance that is due before the `virtual_time` on the test clock will be converted."},"webhook":{"type":"string","description":"The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.","format":"url"}}},"SandboxTransferTestClockCreateRequest":{"title":"SandboxTransferTestClockCreateRequest","type":"object","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":{"type":["string","null"],"title":"VirtualTime","format":"date-time","description":"The virtual timestamp on the test clock. If not provided, the current timestamp will be used. This will be of the form `2006-01-02T15:04:05Z`."}}},"SandboxTransferTestClockAdvanceRequest":{"title":"SandboxTransferTestClockAdvanceRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/test_clock/advance`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"test_clock_id":{"$ref":"#/components/schemas/TransferTestClockID"},"new_virtual_time":{"$ref":"#/components/schemas/VirtualTime"}},"required":["test_clock_id","new_virtual_time"]},"SandboxTransferTestClockGetRequest":{"title":"SandboxTransferTestClockGetRequest","type":"object","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"]},"SandboxTransferTestClockListRequest":{"title":"SandboxTransferTestClockListRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/test_clock/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_virtual_time":{"type":["string","null"],"format":"date-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`)"},"end_virtual_time":{"type":["string","null"],"format":"date-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`)"},"count":{"type":["integer","null"],"minimum":1,"maximum":25,"default":25,"description":"The maximum number of test clocks to return."},"offset":{"type":"integer","default":0,"minimum":0,"description":"The number of test clocks to skip before returning results."}}},"SandboxBankTransferSimulateResponse":{"title":"SandboxBankTransferSimulateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/bank_transfer/simulate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransferSimulateResponse":{"title":"SandboxTransferSimulateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/simulate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransferRefundSimulateResponse":{"title":"SandboxTransferRefundSimulateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/refund/simulate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransferLedgerSimulateAvailableResponse":{"title":"SandboxTransferLedgerSimulateAvailableResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/ledger/simulate_available`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransferLedgerDepositSimulateResponse":{"title":"SandboxTransferLedgerDepositSimulateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/ledger/deposit/simulate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransferLedgerWithdrawSimulateResponse":{"title":"SandboxTransferLedgerWithdrawSimulateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/ledger/withdraw/simulate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransferSweepSimulateResponse":{"title":"SandboxTransferSweepSimulateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/sweep/simulate`","properties":{"sweep":{"$ref":"#/components/schemas/SimulatedTransferSweep"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransferTestClockCreateResponse":{"title":"SandboxTransferTestClockCreateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/test_clock/create`","properties":{"test_clock":{"$ref":"#/components/schemas/TransferTestClock"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["test_clock","request_id"]},"SandboxTransferTestClockAdvanceResponse":{"title":"SandboxTransferTestClockAdvanceResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/test_clock/advance`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransferTestClockGetResponse":{"title":"SandboxTransferTestClockGetResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/test_clock/get`","properties":{"test_clock":{"$ref":"#/components/schemas/TransferTestClock"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["test_clock","request_id"]},"SandboxTransferTestClockListResponse":{"title":"SandboxTransferTestClockListResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/test_clock/list`","properties":{"test_clocks":{"type":"array","items":{"$ref":"#/components/schemas/TransferTestClock"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["test_clocks","request_id"]},"SandboxTransferRfpSimulateRequest":{"title":"SandboxTransferRfpSimulateRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/rfp/simulate`","properties":{"transfer_id":{"$ref":"#/components/schemas/TransferID"},"action":{"$ref":"#/components/schemas/SandboxTransferRfpSimulateAction"},"amount":{"type":"string","description":"The transfer amount provided by the caller for validation purposes, must match the amount on the transfer associated with the provided `transfer_id`.\n"},"client_name":{"type":"string","description":"The client name provided by the caller for validation purposes, must match the sender client name on the transfer associated with the provided `transfer_id`.\n"}},"required":["transfer_id","action","amount","client_name"]},"SandboxTransferRfpSimulateAction":{"title":"SandboxTransferRfpSimulateAction","description":"The action to simulate. Must be either `approve` or `reject`.\n\n- `approve`: Simulates bank approval, transitioning the transfer to `settled` status\n- `reject`: Simulates bank rejection, transitioning the transfer to `failed` status\n","type":"string","enum":["approve","reject"]},"SandboxTransferRfpSimulateResponse":{"title":"SandboxTransferRfpSimulateResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/sandbox/transfer/rfp/simulate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"AccountFiltersResponse":{"title":"AccountFiltersResponse","description":"The `account_filters` specified in the original call to `/link/token/create`.\n","type":"object","additionalProperties":true,"properties":{"depository":{"anyOf":[{"$ref":"#/components/schemas/DepositoryFilter"},{"type":"null"}]},"credit":{"anyOf":[{"$ref":"#/components/schemas/CreditFilter"},{"type":"null"}]},"loan":{"anyOf":[{"$ref":"#/components/schemas/LoanFilter"},{"type":"null"}]},"investment":{"anyOf":[{"$ref":"#/components/schemas/InvestmentFilter"},{"type":"null"}]}}},"InstitutionsSearchAccountFilter":{"title":"InstitutionsSearchAccountFilter","description":"An account filter to apply to institutions search requests","type":"object","additionalProperties":true,"properties":{"loan":{"type":"array","items":{"$ref":"#/components/schemas/AccountSubtype"}},"depository":{"type":"array","items":{"$ref":"#/components/schemas/AccountSubtype"}},"credit":{"type":"array","items":{"$ref":"#/components/schemas/AccountSubtype"}},"investment":{"type":"array","items":{"$ref":"#/components/schemas/AccountSubtype"}}}},"AccountIdentity":{"description":"Identity information about an account","title":"AccountIdentity","allOf":[{"$ref":"#/components/schemas/AccountBase"},{"type":"object","additionalProperties":true,"properties":{"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","type":["string","null"]},"mask":{"description":"The last 2-4 alphanumeric characters of either the account's displayed mask or the account's official account number. Note that the mask may be non-unique between an Item's accounts.","type":["string","null"]},"verification_name":{"description":"The account holder name that was used for micro-deposit and/or database verification. Only returned for Auth Items created via micro-deposit or database verification. This name was manually-entered by the user during Link, unless it was otherwise provided via the `user.legal_name` request field in `/link/token/create` for the Link session that created the Item.","type":"string"},"owners":{"type":"array","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. To determine whether the linked account is a business account, use the `holder_category` field on the account object. 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"}}},"required":["owners"]}]},"AccountIdentityMatchScore":{"description":"Identity match scores for an account","title":"AccountIdentityMatchScore","allOf":[{"$ref":"#/components/schemas/AccountBase"},{"type":"object","additionalProperties":true,"properties":{"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","type":["string","null"]},"mask":{"description":"The last 2-4 alphanumeric characters of either the account's displayed mask or the account's official account number. Note that the mask may be non-unique between an Item's accounts.","type":["string","null"]},"verification_name":{"description":"The account holder name that was used for micro-deposit and/or database verification. Only returned for Auth Items created via micro-deposit or database verification. This name was manually-entered by the user during Link, unless it was otherwise provided via the `user.legal_name` request field in `/link/token/create` for the Link session that created the Item.","type":"string"},"legal_name":{"$ref":"#/components/schemas/NameMatchScore"},"phone_number":{"$ref":"#/components/schemas/PhoneNumberMatchScore"},"email_address":{"$ref":"#/components/schemas/EmailAddressMatchScore"},"address":{"$ref":"#/components/schemas/AddressMatchScore"}},"required":["legal_name","phone_number","email_address","address"]}]},"NameMatchScore":{"title":"NameMatchScore","type":"object","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.","properties":{"score":{"type":["integer","null"],"description":"Match score for name. 100 is a perfect score, 99-85 means a strong match, 84-70 is a partial match, any score less than 70 is a mismatch. Typically, the match threshold should be set to a score of 70 or higher. If the name is missing from either the API or financial institution, this is null."},"is_first_name_or_last_name_match":{"type":["boolean","null"],"description":"first or last name completely matched, likely a family member"},"is_nickname_match":{"type":["boolean","null"],"description":"nickname matched, example Jennifer and Jenn."},"is_business_name_detected":{"type":["boolean","null"],"description":"Is `true` if Plaid determined that one of the names being compared is a business name and scored the pair using its business name matching algorithm. Detection is based on business keywords (such as `LLC`, `INC`, `LTD`, `DBA`, `COMPANY`, or `BUSINESS`) appearing in either name, or on either name matching a known business name."}},"required":["score","is_first_name_or_last_name_match","is_nickname_match","is_business_name_detected"]},"PhoneNumberMatchScore":{"title":"PhoneNumberMatchScore","type":"object","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.","properties":{"score":{"type":["integer","null"],"description":"Match score for normalized phone number. 100 is a perfect match, 99-70 is a partial match (matching the same phone number with extension against one without extension, etc.), anything below 70 is considered a mismatch. Typically, the match threshold should be set to a score of 70 or higher. If the phone number is missing from either the API or financial institution, this is null."}},"required":["score"]},"EmailAddressMatchScore":{"title":"EmailAddressMatchScore","type":"object","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.","properties":{"score":{"type":["integer","null"],"description":"Match score for normalized email. 100 is a perfect match, 99-70 is a partial match (matching the same email with different '+' extensions), anything below 70 is considered a mismatch. Typically, the match threshold should be set to a score of 70 or higher. If the email is missing from either the API or financial institution, this is null."}},"required":["score"]},"AddressMatchScore":{"title":"AddressMatchScore","type":"object","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.","properties":{"score":{"type":["integer","null"],"description":"Match score for address. 100 is a perfect match, 99-90 is a strong match, 89-70 is a partial match, anything below 70 is considered a weak match. Typically, the match threshold should be set to a score of 70 or higher. If the address is missing from either the API or financial institution, this is null."},"is_postal_code_match":{"type":["boolean","null"],"description":"postal code was provided for both and was a match"}},"required":["score","is_postal_code_match"]},"DepositoryFilter":{"title":"DepositoryFilter","description":"A filter to apply to `depository`-type accounts","type":"object","additionalProperties":true,"properties":{"account_subtypes":{"$ref":"#/components/schemas/DepositoryAccountSubtypes"},"limited_purpose_types":{"$ref":"#/components/schemas/LimitedPurposeTypes"}},"required":["account_subtypes"]},"CreditFilter":{"title":"CreditFilter","description":"A filter to apply to `credit`-type accounts","type":"object","additionalProperties":true,"properties":{"account_subtypes":{"$ref":"#/components/schemas/CreditAccountSubtypes"}},"required":["account_subtypes"]},"LoanFilter":{"title":"LoanFilter","description":"A filter to apply to `loan`-type accounts","type":"object","additionalProperties":true,"properties":{"account_subtypes":{"$ref":"#/components/schemas/LoanAccountSubtypes"}},"required":["account_subtypes"]},"InvestmentFilter":{"title":"InvestmentFilter","description":"A filter to apply to `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier).","type":"object","additionalProperties":true,"properties":{"account_subtypes":{"$ref":"#/components/schemas/InvestmentAccountSubtypes"}},"required":["account_subtypes"]},"OtherFilter":{"title":"OtherFilter","description":"A filter to apply to `other`-type accounts","type":"object","additionalProperties":true,"properties":{"account_subtypes":{"$ref":"#/components/schemas/OtherAccountSubtypes"}},"required":["account_subtypes"]},"DepositoryAccountSubtypes":{"title":"DepositoryAccountSubtypes","type":"array","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"}},"CreditAccountSubtypes":{"title":"CreditAccountSubtypes","type":"array","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"}},"LoanAccountSubtypes":{"title":"LoanAccountSubtypes","type":"array","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"}},"InvestmentAccountSubtypes":{"title":"InvestmentAccountSubtypes","type":"array","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"}},"OtherAccountSubtypes":{"title":"OtherAccountSubtypes","type":"array","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/OtherAccountSubtype"}},"DepositoryAccountSubtype":{"type":"string","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","limited purpose checking","all"]},"LimitedPurposeTypes":{"title":"LimitedPurposeTypes","type":"array","description":"An array of limited purpose types. Restricts which kinds of limited purpose checking accounts may be connected in Link to prevent users from connecting them for unsupported use cases. Required when 'limited purpose checking' is in the subtypes filter.","items":{"$ref":"#/components/schemas/LimitedPurposeType"}},"LimitedPurposeType":{"type":"string","description":"A specific use case for a limited purpose checking account. Limited purpose checking accounts will reject or return ACH transactions that aren't for eligible use cases. For example, a `RENT_MORTGAGE` limited purpose checking account will reject ACH transactions that are not specifically rent or mortgage payments.","enum":["RENT_MORTGAGE"]},"CreditAccountSubtype":{"type":"string","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"]},"LoanAccountSubtype":{"type":"string","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","commercial line of credit","construction","consumer","home equity","home equity loan","loan","mortgage","overdraft","line of credit","student","other","all"]},"InvestmentAccountSubtype":{"type":"string","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","fhsa","fixed annuity","gic","health reimbursement arrangement","hsa","ira","isa","keogh","lif","life insurance","line of credit","lira","lrif","lrsp","mutual fund","non-custodial wallet","non-taxable brokerage account","other","other annuity","other insurance","pension","prediction market","prif","profit sharing plan","qshr","rdsp","resp","retirement","rlif","roth","roth 401k","roth 403B","roth 457b","roth pension","roth profit sharing plan","roth thrift savings plan","rrif","rrsp","sarsep","sep ira","simple ira","sipp","stock plan","thrift savings plan","tfsa","trust","ugma","utma","variable annuity","all"]},"OtherAccountSubtype":{"type":"string","description":"Valid account subtypes for other accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-other).","enum":["other","all"]},"EmployersSearchRequest":{"title":"EmployersSearchRequest","type":"object","description":"EmployersSearchRequest defines the request schema for `/employers/search`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"query":{"type":"string","description":"The employer name to be searched for."},"products":{"type":"array","description":"The Plaid products the returned employers should support. Currently, this field must be set to `\"deposit_switch\"`.","items":{"type":"string"}}},"required":["query","products"]},"EmployersSearchResponse":{"title":"EmployersSearchResponse","type":"object","additionalProperties":true,"description":"EmployersSearchResponse defines the response schema for `/employers/search`.","properties":{"employers":{"type":"array","description":"A list of employers matching the search criteria.","items":{"$ref":"#/components/schemas/Employer"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["employers","request_id"]},"Employer":{"title":"Employer","type":"object","additionalProperties":true,"description":"Data about the employer.","properties":{"employer_id":{"type":"string","description":"Plaid's unique identifier for the employer."},"name":{"type":"string","description":"The name of the employer"},"address":{"$ref":"#/components/schemas/AddressDataNullable"},"confidence_score":{"type":"number","format":"double","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)."}},"required":["employer_id","name","address","confidence_score"]},"IncomeVerificationCreateRequest":{"title":"IncomeVerificationCreateRequest","type":"object","description":"IncomeVerificationCreateRequest defines the request schema for `/income/verification/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"webhook":{"type":"string","description":"The URL endpoint to which Plaid should send webhooks related to the progress of the income verification process."},"precheck_id":{"type":"string","description":"The ID of a precheck created with `/income/verification/precheck`. Will be used to improve conversion of the income verification flow."},"options":{"$ref":"#/components/schemas/IncomeVerificationCreateRequestOptions"}},"required":["webhook"]},"IncomeVerificationCreateRequestOptions":{"title":"IncomeVerificationCreateRequestOptions","type":"object","description":"Optional arguments for `/income/verification/create`","properties":{"access_tokens":{"type":"array","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. 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"}}}},"IncomeVerificationCreateResponse":{"title":"IncomeVerificationCreateResponse","type":"object","additionalProperties":true,"description":"IncomeVerificationCreateResponse defines the response schema for `/income/verification/create`.","properties":{"income_verification_id":{"type":"string","description":"ID of the verification. This ID is persisted throughout the lifetime of the verification."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["income_verification_id","request_id"]},"IncomeVerificationPrecheckRequest":{"title":"IncomeVerificationPrecheckRequest","type":"object","description":"IncomeVerificationPrecheckRequest defines the request schema for `/income/verification/precheck`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user":{"$ref":"#/components/schemas/IncomeVerificationPrecheckUser"},"employer":{"$ref":"#/components/schemas/IncomeVerificationPrecheckEmployer"},"payroll_institution":{"$ref":"#/components/schemas/IncomeVerificationPrecheckPayrollInstitution"},"transactions_access_token":{"deprecated":true,"allOf":[{"$ref":"#/components/schemas/AccessTokenNullable"}]},"transactions_access_tokens":{"type":"array","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"}},"us_military_info":{"$ref":"#/components/schemas/IncomeVerificationPrecheckMilitaryInfo"}}},"IncomeVerificationPrecheckEmployer":{"title":"IncomeVerificationPrecheckEmployer","type":["object","null"],"description":"Information about the end user's employer","properties":{"name":{"type":["string","null"],"description":"The employer's name"},"address":{"$ref":"#/components/schemas/IncomeVerificationPrecheckEmployerAddress"},"tax_id":{"type":["string","null"],"description":"The employer's tax id"},"url":{"type":["string","null"],"format":"url","description":"The URL for the employer's public website"}}},"IncomeVerificationPrecheckEmployerAddress":{"title":"IncomeVerificationPrecheckEmployerAddress","description":"The address of the employer","type":["object","null"],"allOf":[{"$ref":"#/components/schemas/IncomeVerificationPrecheckEmployerAddressData"},{"type":"object","additionalProperties":true}]},"IncomeVerificationPrecheckPayrollInstitution":{"title":"IncomeVerificationPrecheckPayrollInstitution","type":["object","null"],"description":"Information about the end user's payroll institution","properties":{"name":{"type":["string","null"],"description":"The name of payroll institution"}}},"IncomeVerificationPrecheckEmployerAddressData":{"title":"AddressData","type":"object","additionalProperties":true,"description":"Data about the components comprising an address.","properties":{"city":{"type":"string","description":"The full city name"},"country":{"type":"string","description":"The ISO 3166-1 alpha-2 country code"},"postal_code":{"type":"string","description":"The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`."},"region":{"type":"string","description":"The region or state. In API versions 2018-05-22 and earlier, this field is called `state`.\nExample: `\"NC\"`"},"street":{"type":"string","description":"The full street address\nExample: `\"564 Main Street, APT 15\"`"}}},"IncomeVerificationPrecheckMilitaryInfo":{"title":"IncomeVerificationPrecheckMilitaryInfo","description":"Data about military info in the income verification precheck.","type":["object","null"],"properties":{"is_active_duty":{"type":["boolean","null"],"description":"Is the user currently active duty in the US military"},"branch":{"type":["string","null"],"description":"If the user is currently serving in the US military, the branch of the military in which they are serving\nValid values: 'AIR FORCE', 'ARMY', 'COAST GUARD', 'MARINES', 'NAVY', 'UNKNOWN'"}}},"IncomeVerificationPrecheckUser":{"title":"IncomeVerificationPrecheckUser","type":["object","null"],"description":"Information about the user whose eligibility is being evaluated.","properties":{"first_name":{"type":["string","null"],"description":"The user's first name"},"last_name":{"type":["string","null"],"description":"The user's last name"},"email_address":{"type":["string","null"],"description":"The user's email address"},"home_address":{"$ref":"#/components/schemas/SignalAddressData"}}},"IncomeVerificationPrecheckResponse":{"title":"IncomeVerificationPrecheckResponse","additionalProperties":true,"type":"object","description":"IncomeVerificationPrecheckResponse defines the response schema for `/income/verification/precheck`.","properties":{"precheck_id":{"type":"string","description":"ID of the precheck. Provide this value when calling `/link/token/create` in order to optimize Link conversion."},"request_id":{"$ref":"#/components/schemas/RequestID"},"confidence":{"$ref":"#/components/schemas/IncomeVerificationPrecheckConfidence"}},"required":["precheck_id","confidence","request_id"]},"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:\n\n`\"HIGH\"`: It is very likely that this user can use the digital income verification flow.\n\n\"`LOW`\": It is unlikely that this user can use the digital income verification flow.\n\n`\"UNKNOWN\"`: It was not possible to determine if the user is supportable with the information passed.","type":"string","enum":["HIGH","LOW","UNKNOWN"]},"LinkTokenCreateRequestIncomeVerification":{"title":"LinkTokenCreateRequestIncomeVerification","type":"object","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":{"income_verification_id":{"type":"string","deprecated":true,"x-hidden-from-docs":true,"description":"The `income_verification_id` of the verification instance, as provided by `/income/verification/create`. Replaced by the user token."},"asset_report_id":{"type":"string","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."},"access_tokens":{"type":["array","null"],"items":{"$ref":"#/components/schemas/AccessToken"},"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.\n\nThis field should only be used with the `payroll` income source type."},"income_source_types":{"type":"array","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"}},"bank_income":{"$ref":"#/components/schemas/LinkTokenCreateRequestIncomeVerificationBankIncome"},"payroll_income":{"$ref":"#/components/schemas/LinkTokenCreateRequestIncomeVerificationPayrollIncome"},"stated_income_sources":{"type":"array","description":"A list of user stated income sources","items":{"$ref":"#/components/schemas/LinkTokenCreateRequestUserStatedIncomeSource"}}}},"IncomeVerificationSourceType":{"title":"IncomeVerificationSourceType","enum":["bank","payroll"],"description":"The types of source income data that users should be able to share","type":"string"},"LinkTokenCreateRequestIncomeVerificationBankIncome":{"title":"LinkTokenCreateRequestIncomeVerificationBankIncome","type":"object","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":{"type":"integer","description":"The number of days of data to request for the Bank Income product","minimum":1,"maximum":731},"enable_multiple_items":{"type":["boolean","null"],"default":false,"deprecated":true,"description":"Whether to enable multiple Items to be added in the Link session. This setting is deprecated and has been replaced by the more general `enable_multi_item_link` setting, which supports all products."}},"required":["days_requested"]},"LinkTokenCreateRequestIncomeVerificationPayrollIncome":{"title":"LinkTokenCreateRequestIncomeVerificationPayrollIncome","type":"object","description":"Specifies options for initializing Link for use with Payroll Income (including Document Income). Further customization options for Document Income, such as customizing which document types may be uploaded, are also available via the [Link Customization pane](https://dashboard.plaid.com/link) in the Dashboard. (Requires Production enablement.)","properties":{"flow_types":{"type":["array","null"],"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"}},"is_update_mode":{"type":"boolean","description":"An identifier to indicate whether the income verification Link token will be used for update mode. This field is only relevant for participants in the Payroll Income Refresh beta.","default":false},"item_id_to_update":{"type":["string","null"],"description":"Uniquely identify a payroll income Item to update with.  This field is only relevant for participants in the Payroll Income Refresh beta."},"parsing_config":{"type":["array","null"],"description":"The types of analysis to enable for document uploads. If this field is not provided, then docs will undergo OCR parsing only.","items":{"$ref":"#/components/schemas/IncomeVerificationDocParsingConfig"}}}},"IncomeVerificationPayrollFlowType":{"title":"IncomeVerificationPayrollFlowType","enum":["payroll_digital_income","payroll_document_income"],"description":"Flow types to retrieve payroll income data","type":"string"},"IncomeVerificationDocParsingConfig":{"title":"IncomeVerificationDocParsingConfig","enum":["ocr","risk_signals"],"description":"Analysis options to enable for document parsing","type":"string"},"IncomeVerificationStatusWebhook":{"title":"IncomeVerificationStatusWebhook","type":"object","additionalProperties":true,"description":"Fired when the status of an income verification instance has changed. This webhook is fired for both the Document and Payroll Income flows, but not the Bank Income flow. It will typically take several minutes for this webhook to fire after the end user has uploaded their documents in the Document Income flow.","x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"INCOME_VERIFICATION","item_id":"gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ","user_id":"9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334","verification_status":"VERIFICATION_STATUS_PROCESSING_COMPLETE","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`\"INCOME\"`"},"webhook_code":{"type":"string","description":"`INCOME_VERIFICATION`"},"item_id":{"type":"string","description":"The Item ID associated with the verification."},"user_id":{"$ref":"#/components/schemas/UserId"},"verification_status":{"type":"string","description":"`VERIFICATION_STATUS_PROCESSING_COMPLETE`:  The income verification processing has completed. This indicates that the documents have been parsed successfully or that the documents were not parsable. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the `/credit/payroll_income/get` endpoint and check the document metadata to see which documents were successfully parsed.\n\n`VERIFICATION_STATUS_PROCESSING_FAILED`: An unexpected internal error occurred when attempting to process the verification documentation.\n\n`VERIFICATION_STATUS_PENDING_APPROVAL`: (deprecated) The income verification has been sent to the user for review."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","verification_status","environment"]},"UserIncomeVerificationStatusWebhook":{"title":"UserIncomeVerificationStatusWebhook","type":"object","additionalProperties":true,"description":"Fired when the status of an income verification instance has changed. This webhook is fired for both the Document and Payroll Income flows, but not the Bank Income flow. It will typically take several minutes for this webhook to fire after the end user has uploaded their documents in the Document Income flow.","x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"USER_INCOME_VERIFICATION","item_id":"gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ","user_id":"usr_8c3ZbDBYjaqUXZ","verification_status":"VERIFICATION_STATUS_PROCESSING_COMPLETE","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`\"INCOME\"`"},"webhook_code":{"type":"string","description":"`USER_INCOME_VERIFICATION`"},"item_id":{"type":"string","description":"The Item ID associated with the verification."},"user_id":{"$ref":"#/components/schemas/NewUserID"},"verification_status":{"type":"string","description":"`VERIFICATION_STATUS_PROCESSING_COMPLETE`:  The income verification processing has completed. This indicates that the documents have been parsed successfully or that the documents were not parsable. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the `/credit/payroll_income/get` endpoint and check the document metadata to see which documents were successfully parsed.\n\n`VERIFICATION_STATUS_PROCESSING_FAILED`: An unexpected internal error occurred when attempting to process the verification documentation.\n\n`VERIFICATION_STATUS_PENDING_APPROVAL`: (deprecated) The income verification has been sent to the user for review."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","verification_status","environment"]},"IncomeVerificationRiskSignalsStatusWebhook":{"title":"IncomeVerificationRiskSignalsStatusWebhook","type":"object","additionalProperties":true,"description":"Fired when risk signals have been processed for documents uploaded via Document Income. It will typically take a minute or two for this webhook to fire after the end user has uploaded their documents in the Document Income flow. Once this webhook has fired, `/credit/payroll_income/risk_signals/get` may then be called to determine whether the documents were successfully processed and to retrieve risk data.","x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"INCOME_VERIFICATION_RISK_SIGNALS","item_id":"gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ","user_id":"9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334","risk_signals_status":"RISK_SIGNALS_PROCESSING_COMPLETE","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`\"INCOME\"`"},"webhook_code":{"type":"string","description":"`INCOME_VERIFICATION_RISK_SIGNALS`"},"item_id":{"type":"string","description":"The Item ID associated with the verification."},"user_id":{"$ref":"#/components/schemas/UserId"},"risk_signals_status":{"type":"string","description":"`RISK_SIGNALS_PROCESSING_COMPLETE`: The income verification fraud detection processing has completed. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the `/credit/payroll_income/risk_signals/get` endpoint to get all risk signal data."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","risk_signals_status","environment"]},"UserIncomeVerificationRiskSignalsStatusWebhook":{"title":"UserIncomeVerificationRiskSignalsStatusWebhook","type":"object","additionalProperties":true,"description":"Fired when risk signals have been processed for documents uploaded via Document Income. It will typically take a minute or two for this webhook to fire after the end user has uploaded their documents in the Document Income flow. Once this webhook has fired, `/credit/payroll_income/risk_signals/get` may then be called to determine whether the documents were successfully processed and to retrieve risk data.","x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"USER_INCOME_VERIFICATION_RISK_SIGNALS","item_id":"gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ","user_id":"usr_8c3ZbDBYjaqUXZ","risk_signals_status":"RISK_SIGNALS_PROCESSING_COMPLETE","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`\"INCOME\"`"},"webhook_code":{"type":"string","description":"`USER_INCOME_VERIFICATION_RISK_SIGNALS`"},"item_id":{"type":"string","description":"The Item ID associated with the verification."},"user_id":{"$ref":"#/components/schemas/NewUserID"},"risk_signals_status":{"type":"string","description":"`RISK_SIGNALS_PROCESSING_COMPLETE`: The income verification fraud detection processing has completed. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the `/credit/payroll_income/risk_signals/get` endpoint to get all risk signal data."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","risk_signals_status","environment"]},"LinkTokenCreateRequestBaseReport":{"title":"LinkTokenCreateRequestBaseReport","type":"object","x-hidden-from-docs":true,"deprecated":true,"description":"Specifies options for initializing Link for use with the Base Report product. This field is required if `assets` is included in the `products` array and the client is CRA-enabled.","properties":{"days_requested":{"type":"integer","description":"The maximum integer number of days of history to include in the Base Report.","minimum":1,"maximum":730},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."}},"required":["days_requested"]},"LinkTokenCreateRequestCraOptions":{"title":"LinkTokenCreateRequestCraOptions","type":"object","description":"Specifies options for initializing Link for use with Plaid Check products","properties":{"days_requested":{"type":"integer","description":"The number of days of history to include in Plaid Check products. Maximum is 731; minimum is 180. If a value lower than 180 is provided, a minimum of 180 days of history will be requested.","maximum":731},"days_required":{"type":"integer","description":"The minimum number of days of data required for the report to be successfully generated.","maximum":184},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"partner_insights":{"$ref":"#/components/schemas/LinkTokenCreateRequestCraOptionsPartnerInsights"},"base_report":{"$ref":"#/components/schemas/LinkTokenCreateRequestCraOptionsBaseReport"},"cashflow_insights":{"$ref":"#/components/schemas/LinkTokenCreateRequestCraOptionsCashflowInsights"},"lend_score":{"$ref":"#/components/schemas/LinkTokenCreateRequestCraOptionsLendScore"},"network_insights":{"$ref":"#/components/schemas/LinkTokenCreateRequestCraOptionsNetworkInsights"},"include_investments":{"type":["boolean","null"],"description":"Indicates that investment data should be extracted from the linked account(s)."},"income_insights":{"$ref":"#/components/schemas/LinkTokenCreateRequestCraOptionsIncomeInsights"}},"required":["days_requested"]},"LinkTokenCreateRequestCraOptionsPartnerInsights":{"title":"LinkTokenCreateRequestCraOptionsPartnerInsights","type":"object","description":"Specifies options for initializing Link for use with the Credit Partner Insights product.","properties":{"prism_versions":{"$ref":"#/components/schemas/PrismVersions"},"fico":{"$ref":"#/components/schemas/CraPartnerInsightsFicoInput"}}},"LinkTokenCreateRequestCraOptionsBaseReport":{"title":"LinkTokenCreateRequestCraOptionsBaseReport","type":"object","description":"Specifies options for initializing Link for use with the Base Report product, specifically the `client_report_id`.","properties":{"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"gse_options":{"$ref":"#/components/schemas/LinkTokenCreateRequestCraOptionsBaseReportGSEOptions"},"require_identity":{"type":["boolean","null"],"description":"Indicates that the report must include identity information. If identity information is not available, the report will fail."},"home_lending_report_options":{"$ref":"#/components/schemas/CraCheckReportHomeLendingReportOptions"},"exclude_transactions":{"x-hidden-from-docs":true,"type":["boolean","null"],"default":false,"description":"When set to `true`, this option excludes account transaction records from the Base Report before it is stored. In the `/cra/check_report/base_report/get` response, each account's `transactions` field remains present as an empty array. This option does not affect insight calculations.\n\nOmitting this option or setting it to `null` or `false` preserves existing behavior. These values do not override any client configuration that excludes transactions.\n\nRequests with `exclude_transactions` set to `true` are rejected with an `INVALID_FIELD` error if they also request GSE or Home Lending reports. A Base Report created with this option set to `true` cannot be used to generate those reports later."}}},"LinkTokenCreateRequestCraOptionsBaseReportGSEOptions":{"title":"LinkTokenCreateRequestCraOptionsBaseReportGSEOptions","type":["object","null"],"description":"Specifies options for initializing Link to create reports that can be shared with GSEs for mortgage verification.","properties":{"report_types":{"type":"array","items":{"$ref":"#/components/schemas/GSEReportType"},"description":"Specifies which types of reports should be made available to GSEs."}},"required":["report_types"]},"LinkTokenCreateRequestCraOptionsCashflowInsights":{"title":"LinkTokenCreateRequestCraOptionsCashflowInsights","type":"object","description":"Specifies options for initializing Link for use with the Cashflow Insights product.","properties":{"attributes_version":{"$ref":"#/components/schemas/CashflowAttributesVersion"}}},"LinkTokenCreateRequestCraOptionsIncomeInsights":{"title":"LinkTokenCreateRequestCraOptionsIncomeInsights","type":"object","description":"Specifies options for initializing Link for use with the CRA Income Insights product.","properties":{"income_insights_filter":{"$ref":"#/components/schemas/IncomeInsightsFilter"},"income_insights_version":{"$ref":"#/components/schemas/IncomeInsightsVersion"}},"required":["income_insights_version"]},"LinkTokenCreateRequestCraOptionsLendScore":{"title":"LinkTokenCreateRequestCraOptionsLendScore","type":"object","description":"Specifies options for initializing Link for use with the CRA LendScore product.","properties":{"lend_score_version":{"$ref":"#/components/schemas/PlaidLendScoreVersion"}}},"LinkTokenCreateRequestCraOptionsNetworkInsights":{"title":"LinkTokenCreateRequestCraOptionsNetworkInsights","type":"object","description":"Specifies options for initializing Link for use with the CRA Network Insights product.","properties":{"network_insights_version":{"$ref":"#/components/schemas/NetworkInsightsVersion"}}},"LinkTokenCreateRequestCraReportParameter":{"title":"LinkTokenCreateRequestCraReportParameter","type":"object","description":"Specifies the report parameters for Plaid Check products, mirroring the parameters accepted on `/cra/report/create`.","properties":{"scope":{"x-override-enum-values-shown":["CLIENT_USER"],"allOf":[{"$ref":"#/components/schemas/CraReportScope"},{"description":"Determines whose Items are used to generate the report. Only `CLIENT_USER` is supported on `/link/token/create`; the report is generated from the Items the user links through your application. To generate a report from the user's Plaid Network profile, use `/cra/report/create` or `/cra/report/get` with a `scope` of `PLAID_NETWORK`."}]},"decision_stage":{"$ref":"#/components/schemas/CraReportDecisionStage"},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"days_requested":{"type":["integer","null"],"description":"The number of days of history to include in Plaid Check products. Maximum is 731. If a value lower than 180 is provided, a minimum of 180 days of history will be requested.","minimum":0,"maximum":731},"days_required":{"type":["integer","null"],"description":"The minimum number of days of data required for the report to be successfully generated.","minimum":0,"maximum":184},"include_investments":{"type":["boolean","null"],"description":"Indicates that investment data should be extracted from the linked account(s)."},"include_identity_match":{"type":["boolean","null"],"description":"Indicates that identity match results should be included for all products in the report that contain identity information. Defaults to `false`."},"products":{"type":"array","description":"The Plaid Check products, versions, and options to generate for the report.","items":{"$ref":"#/components/schemas/CraReportProduct"},"x-override-enum-values-shown":["cra_base_report","cra_income_insights","cra_cashflow_insights","cra_lend_score","cra_network_insights","cra_home_lending","cra_lend_score_complete","cra_income_complete"]}},"required":["scope","decision_stage"]},"LinkTokenCreateRequestCreditPartnerInsights":{"title":"LinkTokenCreateRequestCreditPartnerInsights","type":"object","x-hidden-from-docs":true,"description":"Specifies options for initializing Link for use with the Credit Partner Insights product.","properties":{"days_requested":{"type":"integer","description":"The maximum integer number of days of history to compute Credit Partner Insights. Defaults to 180 if not specified","minimum":1,"maximum":730}}},"LinkTokenCreateRequestEmployment":{"title":"LinkTokenCreateRequestEmployment","type":"object","x-hidden-from-docs":true,"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":{"employment_source_types":{"type":"array","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"}},"bank_employment":{"$ref":"#/components/schemas/LinkTokenCreateRequestEmploymentBankIncome"}}},"EmploymentSourceType":{"title":"EmploymentSourceType","enum":["bank","payroll"],"description":"The types of source employment data that users should be able to share","type":"string"},"LinkTokenCreateRequestEmploymentBankIncome":{"title":"LinkTokenCreateRequestEmploymentBankIncome","type":"object","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":{"type":"integer","description":"The number of days of data to request for the Bank Employment product."}},"required":["days_requested"]},"IncomeSummary":{"title":"IncomeSummary","type":"object","additionalProperties":true,"description":"The verified fields from a paystub verification. All fields are provided as reported on the paystub.","properties":{"employer_name":{"$ref":"#/components/schemas/EmployerIncomeSummaryFieldString"},"employee_name":{"$ref":"#/components/schemas/EmployeeIncomeSummaryFieldString"},"ytd_gross_income":{"$ref":"#/components/schemas/YTDGrossIncomeSummaryFieldNumber"},"ytd_net_income":{"$ref":"#/components/schemas/YTDNetIncomeSummaryFieldNumber"},"pay_frequency":{"$ref":"#/components/schemas/PayFrequency"},"projected_wage":{"$ref":"#/components/schemas/ProjectedIncomeSummaryFieldNumber"},"verified_transaction":{"$ref":"#/components/schemas/TransactionData"}},"required":["employer_name","employee_name","ytd_gross_income","ytd_net_income","pay_frequency","projected_wage","verified_transaction"]},"TransactionData":{"title":"TransactionData","type":["object","null"],"additionalProperties":true,"description":"Information about the matched direct deposit transaction used to verify a user's payroll information.","properties":{"description":{"type":"string","description":"The description of the transaction."},"amount":{"type":"number","format":"double","description":"The amount of the transaction."},"date":{"type":"string","format":"date","description":"The date of the transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"account_id":{"type":"string","description":"A unique identifier for the end user's account."},"transaction_id":{"type":"string","description":"A unique identifier for the transaction."}},"required":["description","amount","date","account_id","transaction_id"]},"IncomeSummaryFieldString":{"title":"IncomeSummaryFieldString","description":"Data about the income summary","type":["object","null"],"additionalProperties":true,"properties":{"value":{"type":"string","description":"The value of the field."},"verification_status":{"$ref":"#/components/schemas/VerificationStatus"}},"required":["value","verification_status"]},"EmployerIncomeSummaryFieldString":{"description":"The name of the employer, as reported on the paystub.","allOf":[{"$ref":"#/components/schemas/IncomeSummaryFieldString"},{"type":"object","additionalProperties":true}]},"EmployeeIncomeSummaryFieldString":{"description":"The name of the employee, as reported on the paystub.","allOf":[{"$ref":"#/components/schemas/IncomeSummaryFieldString"},{"type":"object","additionalProperties":true}]},"IncomeSummaryFieldNumber":{"title":"IncomeSummaryFieldNumber","description":"Field number for income summary","type":["object","null"],"additionalProperties":true,"properties":{"value":{"type":"number","format":"double","description":"The value of the field."},"verification_status":{"$ref":"#/components/schemas/VerificationStatus"}},"required":["value","verification_status"]},"YTDGrossIncomeSummaryFieldNumber":{"description":"Year-to-date pre-tax earnings, as reported on the paystub.","allOf":[{"$ref":"#/components/schemas/IncomeSummaryFieldNumber"},{"type":"object","additionalProperties":true,"description":"Year-to-date pre-tax earnings, as reported on the paystub."}]},"YTDNetIncomeSummaryFieldNumber":{"description":"Year-to-date earnings after any tax withholdings, benefit payments or deductions, as reported on the paystub.","allOf":[{"$ref":"#/components/schemas/IncomeSummaryFieldNumber"},{"type":"object","additionalProperties":true,"description":"Year-to-date earnings after any tax withholdings, benefit payments or deductions, as reported on the paystub."}]},"ProjectedIncomeSummaryFieldNumber":{"description":"The employee's estimated annual salary, as derived from information reported on the paystub.","allOf":[{"$ref":"#/components/schemas/IncomeSummaryFieldNumber"},{"type":"object","additionalProperties":true,"description":"The employee's estimated annual salary, as derived from information reported on the paystub."}]},"PayFrequency":{"title":"PayFrequency","description":"The frequency of the pay period.","type":["object","null"],"additionalProperties":true,"properties":{"value":{"$ref":"#/components/schemas/PayFrequencyValue"},"verification_status":{"$ref":"#/components/schemas/VerificationStatus"}},"required":["value","verification_status"]},"PayFrequencyValue":{"type":"string","title":"PayFrequencyValue","enum":["monthly","semimonthly","weekly","biweekly","unknown",null],"description":"The frequency of the pay period."},"VerificationStatus":{"type":"string","title":"VerificationStatus","description":"The verification status. One of the following:\n\n`\"VERIFIED\"`: The information was successfully verified.\n\n`\"UNVERIFIED\"`: The verification has not yet been performed.\n\n`\"NEEDS_INFO\"`: The verification was attempted but could not be completed due to missing information.\n\n\"`UNABLE_TO_VERIFY`\": The verification was performed and the information could not be verified.\n\n`\"UNKNOWN\"`: The verification status is unknown.","enum":["VERIFIED","UNVERIFIED","NEEDS_INFO","UNABLE_TO_VERIFY","UNKNOWN"]},"VerificationRefreshStatus":{"type":"string","title":"VerificationRefreshStatus","description":"The verification refresh status. One of the following:\n\n`\"VERIFICATION_REFRESH_STATUS_USER_PRESENCE_REQUIRED\"` User presence is required to refresh an income verification.\n`\"VERIFICATION_REFRESH_SUCCESSFUL\"` The income verification refresh was successful.\n`\"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"]},"CreditPayrollIncomeRefreshStatus":{"type":"string","title":"CreditPayrollIncomeRefreshStatus","description":"The verification refresh status. One of the following:\n\n`\"VERIFICATION_REFRESH_SUCCESSFUL\"` The income verification refresh was successful.\n\n`\"VERIFICATION_REFRESH_NOT_FOUND\"` No new data was found after the income verification refresh.","x-override-enum-values-shown":["VERIFICATION_REFRESH_SUCCESSFUL","VERIFICATION_REFRESH_NOT_FOUND"]},"IncomeVerificationPaystubsGetRequest":{"title":"IncomeVerificationPaystubsGetRequest","type":"object","description":"IncomeVerificationPaystubsGetRequest defines the request schema for `/income/verification/paystubs/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"income_verification_id":{"type":["string","null"],"deprecated":true,"description":"The ID of the verification for which to get paystub information.","x-hidden-from-docs":true},"access_token":{"$ref":"#/components/schemas/AccessTokenNullable"}}},"IncomeVerificationPaystubsGetResponse":{"title":"IncomeVerificationPaystubsGetResponse","type":"object","additionalProperties":true,"description":"IncomeVerificationPaystubsGetResponse defines the response schema for `/income/verification/paystubs/get`.","properties":{"document_metadata":{"description":"Metadata for an income document.","type":"array","items":{"$ref":"#/components/schemas/DocumentMetadata"}},"paystubs":{"type":"array","items":{"$ref":"#/components/schemas/Paystub"}},"error":{"$ref":"#/components/schemas/PlaidError"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["paystubs","request_id"]},"DocumentMetadata":{"title":"DocumentMetadata","type":"object","additionalProperties":true,"description":"An object representing metadata from the end user's uploaded document.","properties":{"name":{"type":"string","description":"The name of the document."},"status":{"type":["string","null"],"description":"The processing status of the document.\n\n`PROCESSING_COMPLETE`: The document was successfully processed.\n\n`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.\n\n`UNKNOWN` or `null`: An internal error occurred. If this happens repeatedly, contact support or your Plaid account manager.","x-override-enum-values-shown":["UNKNOWN","PROCESSING_COMPLETE","DOCUMENT_ERROR",null]},"doc_id":{"type":"string","description":"An identifier of the document that is also present in the paystub response."},"doc_type":{"$ref":"#/components/schemas/DocType"}}},"DocType":{"title":"DocType","type":"string","description":"The type of document.\n\n`DOCUMENT_TYPE_PAYSTUB`: A paystub.\n\n`DOCUMENT_TYPE_BANK_STATEMENT`: A bank statement.\n\n`DOCUMENT_TYPE_US_TAX_W2`: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.\n\n`DOCUMENT_TYPE_US_MILITARY_ERAS`: An electronic Retirement Account Statement (eRAS) issued by the US military.\n\n`DOCUMENT_TYPE_US_MILITARY_LES`: A Leave and Earnings Statement (LES) issued by the US military.\n\n`DOCUMENT_TYPE_US_MILITARY_CLES`: A Civilian Leave and Earnings Statement (CLES) issued by the US military.\n\n`DOCUMENT_TYPE_GIG`: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.\n\n`DOCUMENT_TYPE_NONE`: Used to indicate that there is no underlying document for the data.\n\n`DOCUMENT_TYPE_US_TAX_1099_MISC`: A Form 1099-MISC information return reporting miscellaneous income.\n\n`DOCUMENT_TYPE_US_TAX_1099_K`: A Form 1099-K information return reporting payment card and third-party network transactions.\n\n`DOCUMENT_TYPE_PLAID_GENERATED_PAYSTUB_PDF`: Used to indicate that the PDF for the paystub was generated by Plaid.\n\n`DOCUMENT_TYPE_US_STUDENT_I20`: A Form I-20 Certificate of Eligibility for Nonimmigrant Student Status.\n\n`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","DOCUMENT_TYPE_US_STUDENT_I20"]},"Paystub":{"title":"Paystub","type":"object","additionalProperties":true,"description":"An object representing data extracted from the end user's paystub.","properties":{"deductions":{"$ref":"#/components/schemas/Deductions"},"doc_id":{"type":"string","description":"An identifier of the document referenced by the document metadata."},"earnings":{"$ref":"#/components/schemas/Earnings"},"employee":{"$ref":"#/components/schemas/Employee"},"employer":{"$ref":"#/components/schemas/PaystubEmployer"},"employment_details":{"$ref":"#/components/schemas/EmploymentDetails"},"net_pay":{"$ref":"#/components/schemas/NetPay"},"pay_period_details":{"$ref":"#/components/schemas/PayPeriodDetails"},"paystub_details":{"$ref":"#/components/schemas/PaystubDetails"},"income_breakdown":{"type":"array","deprecated":true,"items":{"$ref":"#/components/schemas/IncomeBreakdown"}},"ytd_earnings":{"$ref":"#/components/schemas/PaystubYTDDetails"}},"required":["deductions","doc_id","earnings","employee","employer","net_pay","pay_period_details"]},"Deductions":{"title":"Deductions","type":"object","description":"An object with the deduction information found on a paystub.","additionalProperties":true,"properties":{"subtotals":{"deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Total"}},"breakdown":{"type":"array","items":{"$ref":"#/components/schemas/DeductionsBreakdown"}},"totals":{"deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Total"}},"total":{"$ref":"#/components/schemas/DeductionsTotal"}},"required":["breakdown","total"]},"DeductionsBreakdown":{"title":"DeductionsBreakdown","type":"object","additionalProperties":true,"description":"An object representing the deduction line items for the pay period","properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the deduction"},"description":{"type":["string","null"],"description":"Description of the deduction line item"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount of the deduction"}}},"DeductionsTotal":{"title":"DeductionsTotal","type":"object","description":"An object representing the total deductions for the pay period","additionalProperties":true,"properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the deduction"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date total amount of the deductions"}}},"Total":{"title":"Total","type":"object","deprecated":true,"description":"An object representing both the current pay period and year to date amount for a category.","additionalProperties":true,"properties":{"canonical_description":{"$ref":"#/components/schemas/TotalCanonicalDescription"},"description":{"type":["string","null"],"description":"Text of the line item as printed on the paystub."},"current_pay":{"$ref":"#/components/schemas/Pay"},"ytd_pay":{"$ref":"#/components/schemas/Pay"}}},"TotalCanonicalDescription":{"type":["string","null"],"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]},"Pay":{"title":"Pay","type":"object","deprecated":true,"description":"An object representing a monetary amount.","additionalProperties":true,"properties":{"amount":{"type":["number","null"],"format":"double","description":"A numerical amount of a specific currency."},"currency":{"type":["string","null"],"description":"Currency code, e.g. USD"}}},"Earnings":{"title":"Earnings","type":"object","description":"An object representing both a breakdown of earnings on a paystub and the total earnings.","additionalProperties":true,"properties":{"subtotals":{"deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/EarningsTotal"}},"totals":{"deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/EarningsTotal"}},"breakdown":{"type":"array","items":{"$ref":"#/components/schemas/EarningsBreakdown"}},"total":{"$ref":"#/components/schemas/EarningsTotal"}}},"EarningsBreakdown":{"title":"EarningsBreakdown","type":"object","additionalProperties":true,"description":"An object representing the earnings line items for the pay period.","properties":{"canonical_description":{"$ref":"#/components/schemas/EarningsBreakdownCanonicalDescription"},"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the earning line item."},"description":{"type":["string","null"],"description":"Description of the earning line item."},"hours":{"type":["number","null"],"description":"Number of hours applicable for this earning."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null."},"rate":{"type":["number","null"],"format":"double","description":"Hourly rate applicable for this earning."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount of the line item."}}},"EarningsBreakdownCanonicalDescription":{"type":["string","null"],"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]},"EarningsTotal":{"title":"EarningsTotal","type":"object","description":"An object representing both the current pay period and year to date amount for an earning category.","additionalProperties":true,"properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Total amount of the earnings for this pay period"},"current_pay":{"$ref":"#/components/schemas/Pay"},"ytd_pay":{"$ref":"#/components/schemas/Pay"},"hours":{"type":["number","null"],"description":"Total number of hours worked for this pay period"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The total year-to-date amount of the earnings"}}},"EmploymentDetails":{"title":"EmploymentDetails","type":"object","deprecated":true,"description":"An object representing employment details found on a paystub.","additionalProperties":true,"properties":{"annual_salary":{"$ref":"#/components/schemas/Pay"},"hire_date":{"type":["string","null"],"format":"date","description":"Date on which the employee was hired, in the YYYY-MM-DD format."}}},"NetPay":{"title":"NetPay","type":"object","description":"An object representing information about the net pay amount on the paystub.","additionalProperties":true,"properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the net pay for the pay period"},"description":{"type":["string","null"],"description":"Description of the net pay"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount of the net pay"},"total":{"$ref":"#/components/schemas/Total"}}},"PaystubDetails":{"title":"PaystubDetails","type":"object","deprecated":true,"description":"An object representing details that can be found on the paystub.","additionalProperties":true,"properties":{"pay_period_start_date":{"type":["string","null"],"format":"date","description":"Beginning date of the pay period on the paystub in the 'YYYY-MM-DD' format."},"pay_period_end_date":{"type":["string","null"],"format":"date","description":"Ending date of the pay period on the paystub in the 'YYYY-MM-DD' format."},"pay_date":{"type":["string","null"],"format":"date","description":"Pay date on the paystub in the 'YYYY-MM-DD' format."},"paystub_provider":{"type":["string","null"],"description":"The name of the payroll provider that generated the paystub, e.g. ADP"},"pay_frequency":{"$ref":"#/components/schemas/PaystubPayFrequency"}}},"PaystubPayFrequency":{"type":["string","null"],"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]},"IncomeBreakdown":{"title":"IncomeBreakdown","type":"object","description":"An object representing a breakdown of the different income types on the paystub.","additionalProperties":true,"deprecated":true,"properties":{"type":{"$ref":"#/components/schemas/IncomeBreakdownType"},"rate":{"type":["number","null"],"format":"double","description":"The hourly rate at which the income is paid."},"hours":{"type":["number","null"],"description":"The number of hours logged for this income for this pay period."},"total":{"type":["number","null"],"format":"double","description":"The total pay for this pay period."}},"required":["type","rate","hours","total"]},"IncomeBreakdownType":{"type":["string","null"],"description":"The type of income. Possible values include:\n  `\"regular\"`: regular income\n  `\"overtime\"`: overtime income\n  `\"bonus\"`: bonus income","enum":["bonus","overtime","regular",null]},"Employee":{"title":"Employee","type":"object","additionalProperties":true,"description":"Data about the employee.","properties":{"address":{"$ref":"#/components/schemas/PaystubAddress"},"name":{"type":["string","null"],"description":"The name of the employee."},"marital_status":{"type":["string","null"],"description":"Marital status of the employee - either `single` or `married`.","x-override-enum-values-shown":["single","married"]},"taxpayer_id":{"$ref":"#/components/schemas/TaxpayerID"}},"required":["name","address"]},"TaxpayerID":{"title":"TaxpayerID","type":"object","additionalProperties":true,"description":"Taxpayer ID of the individual receiving the paystub.","properties":{"id_type":{"type":["string","null"],"description":"Type of ID, e.g. 'SSN'"},"id_mask":{"type":["string","null"],"description":"ID mask; i.e. last 4 digits of the taxpayer ID"},"last_4_digits":{"deprecated":true,"type":["string","null"],"description":"Last 4 digits of unique number of ID.","minLength":4,"maxLength":4}}},"PaystubEmployer":{"title":"Employer","description":"Information about the employer on the paystub","type":"object","additionalProperties":true,"properties":{"address":{"$ref":"#/components/schemas/PaystubAddress"},"name":{"type":["string","null"],"description":"The name of the employer on the paystub."}},"required":["name"]},"PaystubAddress":{"title":"Address","description":"Address on the paystub","type":"object","additionalProperties":true,"properties":{"city":{"type":["string","null"],"description":"The full city name."},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code."},"postal_code":{"type":["string","null"],"description":"The postal code of the address."},"region":{"type":["string","null"],"description":"The region or state\nExample: `\"NC\"`"},"street":{"type":["string","null"],"description":"The full street address."},"line1":{"deprecated":true,"type":["string","null"],"description":"Street address line 1."},"line2":{"deprecated":true,"type":["string","null"],"description":"Street address line 2."},"state_code":{"deprecated":true,"type":["string","null"],"description":"The region or state\nExample: `\"NC\"`"}}},"PayPeriodDetails":{"title":"PayPeriodDetails","type":"object","additionalProperties":true,"description":"Details about the pay period.","properties":{"check_amount":{"type":["number","null"],"format":"double","description":"The amount of the paycheck."},"distribution_breakdown":{"type":"array","items":{"$ref":"#/components/schemas/DistributionBreakdown"}},"end_date":{"type":["string","null"],"format":"date","description":"The pay period end date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: \"yyyy-mm-dd\"."},"gross_earnings":{"type":["number","null"],"format":"double","description":"Total earnings before tax/deductions."},"pay_date":{"type":["string","null"],"format":"date","description":"The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"pay_frequency":{"$ref":"#/components/schemas/PayPeriodDetailsPayFrequency"},"pay_day":{"deprecated":true,"type":["string","null"],"format":"date","description":"The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"start_date":{"type":["string","null"],"format":"date","description":"The pay period start date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: \"yyyy-mm-dd\"."}}},"PayPeriodDetailsPayFrequency":{"title":"PayPeriodDetailsPayFrequency","type":["string","null"],"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]},"DistributionBreakdown":{"title":"DistributionBreakdown","type":"object","description":"Information about the accounts that the payment was distributed to.","additionalProperties":true,"properties":{"account_name":{"type":["string","null"],"description":"Name of the account for the given distribution."},"bank_name":{"type":["string","null"],"description":"The name of the bank that the payment is being deposited to."},"current_amount":{"type":["number","null"],"format":"double","description":"The amount distributed to this account."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null."},"mask":{"type":["string","null"],"description":"The last 2-4 alphanumeric characters of an account's official account number."},"type":{"type":["string","null"],"description":"Type of the account that the paystub was sent to (e.g. 'checking')."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"current_pay":{"$ref":"#/components/schemas/Pay"}}},"PaystubDeduction":{"title":"PaystubDeduction","description":"Deduction on the paystub","type":"object","additionalProperties":true,"properties":{"type":{"type":["string","null"],"description":"The type of the deduction, as provided on the paystub. For example: `\"401(k)\"`, `\"FICA MED TAX\"`."},"is_pretax":{"type":["boolean","null"],"description":"`true` if the deduction is pre-tax; `false` otherwise."},"total":{"type":["number","null"],"format":"double","description":"The amount of the deduction."}},"required":["type","is_pretax","total"]},"PaystubYTDDetails":{"title":"PaystubYTDDetails","type":"object","deprecated":true,"additionalProperties":true,"properties":{"gross_earnings":{"type":["number","null"],"format":"double","description":"Year-to-date gross earnings."},"net_earnings":{"type":["number","null"],"format":"double","description":"Year-to-date net (take home) earnings."}},"description":"The amount of income earned year to date, as based on paystub data."},"IncomeVerificationDocumentsDownloadRequest":{"title":"IncomeVerificationDocumentsDownloadRequest","type":"object","description":"IncomeVerificationDocumentsDownloadRequest defines the request schema for `/income/verification/documents/download`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"income_verification_id":{"type":["string","null"],"deprecated":true,"description":"The ID of the verification."},"access_token":{"$ref":"#/components/schemas/AccessTokenNullable"},"document_id":{"type":["string","null"],"description":"The document ID to download. If passed, a single document will be returned in the resulting zip file, rather than all document"}}},"IncomeVerificationTaxformsGetRequest":{"title":"IncomeVerificationTaxformsGetRequest","type":"object","description":"IncomeVerificationTaxformsGetRequest defines the request schema for `/income/verification/taxforms/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"income_verification_id":{"type":["string","null"],"description":"The ID of the verification.","deprecated":true},"access_token":{"$ref":"#/components/schemas/AccessTokenNullable"}}},"IncomeVerificationTaxformsGetResponse":{"title":"IncomeVerificationTaxformsGetResponse","type":"object","additionalProperties":true,"description":"IncomeVerificationTaxformsGetResponse defines the response schema for `/income/verification/taxforms/get`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"document_metadata":{"type":"array","items":{"$ref":"#/components/schemas/DocumentMetadata"}},"taxforms":{"type":"array","description":"A list of forms.","items":{"$ref":"#/components/schemas/Taxform"}},"error":{"$ref":"#/components/schemas/PlaidError"}},"required":["taxforms","document_metadata"]},"Taxform":{"title":"Taxform","type":"object","description":"Data about an official document used to report the user's income to the IRS.","additionalProperties":true,"properties":{"doc_id":{"type":"string","description":"An identifier of the document referenced by the document metadata."},"document_type":{"type":"string","description":"The type of tax document. Currently, the only supported value is `w2`."},"w2":{"$ref":"#/components/schemas/W2"}},"required":["document_type"]},"W2":{"title":"W2","type":"object","additionalProperties":true,"description":"W2 is an object that represents income data taken from a W2 tax document.","properties":{"employer":{"$ref":"#/components/schemas/PaystubEmployer"},"employee":{"$ref":"#/components/schemas/Employee"},"tax_year":{"type":["string","null"],"description":"The tax year of the W2 document."},"employer_id_number":{"type":["string","null"],"description":"An employer identification number or EIN."},"wages_tips_other_comp":{"type":["string","null"],"description":"Wages from tips and other compensation."},"federal_income_tax_withheld":{"type":["string","null"],"description":"Federal income tax withheld for the tax year."},"social_security_wages":{"type":["string","null"],"description":"Wages from Social Security."},"social_security_tax_withheld":{"type":["string","null"],"description":"Social Security tax withheld for the tax year."},"medicare_wages_and_tips":{"type":["string","null"],"description":"Wages and tips from medicare."},"medicare_tax_withheld":{"type":["string","null"],"description":"Medicare tax withheld for the tax year."},"social_security_tips":{"type":["string","null"],"description":"Tips from Social Security."},"allocated_tips":{"type":["string","null"],"description":"Allocated tips."},"box_9":{"type":["string","null"],"description":"Contents from box 9 on the W2."},"dependent_care_benefits":{"type":["string","null"],"description":"Dependent care benefits."},"nonqualified_plans":{"type":["string","null"],"description":"Nonqualified plans."},"box_12":{"type":"array","items":{"$ref":"#/components/schemas/W2Box12"}},"statutory_employee":{"type":["string","null"],"description":"Statutory employee."},"retirement_plan":{"type":["string","null"],"description":"Retirement plan."},"third_party_sick_pay":{"type":["string","null"],"description":"Third party sick pay."},"other":{"type":["string","null"],"description":"Other."},"state_and_local_wages":{"type":"array","items":{"$ref":"#/components/schemas/W2StateAndLocalWages"}}}},"W2Box12":{"title":"W2Box12","description":"Data on the W2 Box 12","type":"object","additionalProperties":true,"properties":{"code":{"type":["string","null"],"description":"W2 Box 12 code."},"amount":{"type":["string","null"],"description":"W2 Box 12 amount."}}},"W2StateAndLocalWages":{"title":"W2StateAndLocalWages","description":"W2 state and local wages","type":"object","additionalProperties":true,"properties":{"state":{"type":["string","null"],"description":"State associated with the wage."},"employer_state_id_number":{"type":["string","null"],"description":"State identification number of the employer."},"state_wages_tips":{"type":["string","null"],"description":"Wages and tips from the specified state."},"state_income_tax":{"type":["string","null"],"description":"Income tax from the specified state."},"local_wages_tips":{"type":["string","null"],"description":"Wages and tips from the locality."},"local_income_tax":{"type":["string","null"],"description":"Income tax from the locality."},"locality_name":{"type":["string","null"],"description":"Name of the locality."}}},"IncomeVerificationWebhookStatus":{"title":"IncomeVerificationWebhookStatus","description":"Status of the income verification webhook","type":"object","additionalProperties":true,"properties":{"id":{"type":"string"}},"required":["id"]},"EmploymentVerificationGetRequest":{"title":"EmploymentVerificationGetRequest","type":"object","description":"EmploymentVerificationGetRequest defines the request schema for `/employment/verification/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"}},"required":["access_token"]},"EmploymentVerificationGetResponse":{"title":"EmploymentVerificationGetResponse","type":"object","additionalProperties":true,"description":"EmploymentVerificationGetResponse defines the response schema for `/employment/verification/get`.","properties":{"employments":{"type":"array","description":"A list of employment verification summaries.","items":{"$ref":"#/components/schemas/EmploymentVerification"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["employments","request_id"]},"EmploymentVerification":{"title":"EmploymentVerification","type":"object","additionalProperties":true,"description":"An object containing proof of employment data for an individual","properties":{"status":{"$ref":"#/components/schemas/EmploymentVerificationStatus"},"start_date":{"format":"date","type":["string","null"],"description":"Start of employment in ISO 8601 format (YYYY-MM-DD)."},"end_date":{"format":"date","type":["string","null"],"description":"End of employment, if applicable. Provided in ISO 8601 format (YYY-MM-DD)."},"employer":{"$ref":"#/components/schemas/EmployerVerification"},"title":{"type":["string","null"],"description":"Current title of employee."},"platform_ids":{"$ref":"#/components/schemas/PlatformIds"}}},"EmploymentVerificationStatus":{"type":["string","null"],"description":"Current employment status.","enum":["EMPLOYMENT_STATUS_ACTIVE","EMPLOYMENT_STATUS_INACTIVE",null]},"EmployerVerification":{"title":"EmployerVerification","type":"object","additionalProperties":true,"description":"An object containing employer data.","properties":{"name":{"type":["string","null"],"description":"Name of employer."}}},"PlatformIds":{"title":"PlatformIds","type":"object","additionalProperties":true,"description":"An object containing a set of ids related to an employee","properties":{"employee_id":{"type":["string","null"],"description":"The ID of an employee as given by their employer"},"payroll_id":{"type":["string","null"],"description":"The ID of an employee as given by their payroll"},"position_id":{"type":["string","null"],"description":"The ID of the position of the employee"}}},"HealthIncident":{"title":"HealthIncident","description":"A status health incident","type":"object","additionalProperties":true,"properties":{"start_date":{"type":"string","format":"date-time","description":"The start date of the incident, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2020-10-30T15:26:48Z\"`."},"end_date":{"type":["string","null"],"format":"date-time","description":"The end date of the incident, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2020-10-30T15:26:48Z\"`."},"title":{"type":"string","description":"The title of the incident"},"incident_updates":{"type":["array","null"],"description":"Updates on the health incident.","items":{"$ref":"#/components/schemas/IncidentUpdate"}}},"required":["start_date","title","incident_updates"]},"IncidentUpdate":{"title":"IncidentUpdate","description":"An update on the health incident","type":"object","additionalProperties":true,"properties":{"description":{"type":"string","description":"The content of the update."},"status":{"type":"string","description":"The status of the incident.","enum":["INVESTIGATING","IDENTIFIED","SCHEDULED","RESOLVED","UNKNOWN"]},"updated_date":{"type":"string","format":"date-time","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\"`."}}},"CreditBankEmploymentGetRequest":{"title":"CreditBankEmploymentGetRequest","type":"object","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"]},"CreditBankEmploymentGetResponse":{"title":"CreditBankEmploymentGetResponse","additionalProperties":true,"type":"object","description":"CreditBankEmploymentGetResponse defines the response schema for `/beta/credit/v1/bank_employment/get`.","properties":{"bank_employment_reports":{"type":"array","description":"Bank Employment data. Each entry in the array will be a distinct bank employment report.","items":{"$ref":"#/components/schemas/CreditBankEmploymentReport"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id","bank_employment_reports"]},"CreditBankEmploymentReport":{"type":"object","description":"The report of the Bank Employment data for an end user.","properties":{"bank_employment_report_id":{"type":"string","description":"The unique identifier associated with the Bank Employment Report."},"generated_time":{"type":"string","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"},"days_requested":{"type":"integer","description":"The number of days requested by the customer for the Bank Employment Report."},"items":{"type":"array","description":"The list of Items in the report along with the associated metadata about the Item.","items":{"$ref":"#/components/schemas/CreditBankEmploymentItem"}},"warnings":{"type":"array","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"}}},"required":["bank_employment_report_id","generated_time","days_requested","items","warnings"]},"CreditBankEmploymentItem":{"type":"object","description":"The details and metadata for an end user's Item.","properties":{"item_id":{"type":"string","description":"The unique identifier for the Item."},"last_updated_time":{"type":"string","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"},"institution_id":{"type":"string","description":"The unique identifier of the institution associated with the Item."},"institution_name":{"type":"string","description":"The name of the institution associated with the Item."},"bank_employments":{"type":"array","description":"The bank employment information for this Item. Each entry in the array is a different employer found.","items":{"$ref":"#/components/schemas/CreditBankEmployment"}},"bank_employment_accounts":{"type":"array","description":"The Item's accounts that have Bank Employment data.","items":{"$ref":"#/components/schemas/CreditBankIncomeAccount"}}},"required":["item_id","last_updated_time","institution_id","institution_name","bank_employments","bank_employment_accounts"]},"CreditBankEmployment":{"type":"object","description":"Detailed information for the bank employment.","properties":{"bank_employment_id":{"type":"string","description":"A unique identifier for the bank employment."},"account_id":{"type":"string","description":"Plaid's unique identifier for the account."},"employer":{"$ref":"#/components/schemas/CreditBankEmployer"},"latest_deposit_date":{"type":"string","description":"The date of the most recent deposit from this employer.","format":"date"},"earliest_deposit_date":{"type":"string","description":"The date of the earliest deposit from this employer from within the period of the days requested.","format":"date"}},"required":["bank_employment_id","account_id","employer","latest_deposit_date","earliest_deposit_date"]},"CreditBankEmployer":{"type":"object","description":"Object containing employer data.","properties":{"name":{"type":"string","description":"Name of the employer."}},"required":["name"]},"CreditBankEmploymentWarning":{"type":"object","description":"The warning associated with the data that was unavailable for the Bank Employment Report.","properties":{"warning_type":{"$ref":"#/components/schemas/CreditBankEmploymentWarningType"},"warning_code":{"$ref":"#/components/schemas/CreditBankIncomeWarningCode"},"cause":{"$ref":"#/components/schemas/CreditBankIncomeCause"}},"required":["warning_type","warning_code","cause"]},"CreditBankEmploymentWarningType":{"type":"string","description":"The warning type which will always be `BANK_EMPLOYMENT_WARNING`.","enum":["BANK_EMPLOYMENT_WARNING"]},"CreditBankIncomeGetRequest":{"title":"CreditBankIncomeGetRequest","type":"object","description":"CreditBankIncomeGetRequest defines the request schema for `/credit/bank_income/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"options":{"$ref":"#/components/schemas/CreditBankIncomeGetRequestOptions"}}},"CreditBankIncomeGetRequestOptions":{"description":"An optional object for `/credit/bank_income/get` request options.","type":"object","properties":{"count":{"type":"integer","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."}}},"CreditBankIncomeGetResponse":{"title":"CreditBankIncomeGetResponse","additionalProperties":true,"type":"object","description":"CreditBankIncomeGetResponse defines the response schema for `/credit/bank_income/get`","properties":{"bank_income":{"type":"array","items":{"$ref":"#/components/schemas/CreditBankIncome"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CreditBankIncomePDFGetRequest":{"title":"CreditBankIncomePDFGetRequest","type":"object","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"},"user_id":{"$ref":"#/components/schemas/NewUserID"}}},"CreditBankIncomePDFGetResponse":{"contentMediaType":"application/octet-stream","title":"CreditBankIncomePDFGetResponse","description":"CreditBankIncomePDFGetResponse defines the response schema for `/credit/bank_income/pdf/get`"},"CreditBankIncome":{"type":"object","description":"The report of the Bank Income data for an end user.","properties":{"bank_income_id":{"type":"string","description":"The unique identifier associated with the Bank Income Report."},"generated_time":{"type":"string","description":"The time when the report was generated.","format":"date-time"},"days_requested":{"type":"integer","description":"The number of days requested by the customer for the report."},"items":{"type":"array","description":"The list of Items in the report along with the associated metadata about the Item.","items":{"$ref":"#/components/schemas/CreditBankIncomeItem"}},"bank_income_summary":{"$ref":"#/components/schemas/CreditBankIncomeSummary"},"warnings":{"type":"array","description":"If data from the report was unable to be retrieved, the warnings will contain information about the error that caused the data to be incomplete.","items":{"$ref":"#/components/schemas/CreditBankIncomeWarning"}}}},"CreditBankIncomeItem":{"type":"object","description":"The details and metadata for an end user's Item.","properties":{"bank_income_accounts":{"type":"array","description":"The Item's accounts that have Bank Income data.","items":{"$ref":"#/components/schemas/CreditBankIncomeAccount"}},"bank_income_sources":{"type":"array","description":"The income sources for this Item. Each entry in the array is a single income source.","items":{"$ref":"#/components/schemas/CreditBankIncomeSource"}},"last_updated_time":{"type":"string","description":"The time when this Item's data was last retrieved from the financial institution.","format":"date-time"},"institution_id":{"type":"string","description":"The unique identifier of the institution associated with the Item."},"institution_name":{"type":"string","description":"The name of the institution associated with the Item."},"item_id":{"type":"string","description":"The unique identifier for the Item."}}},"CreditBankIncomeAccount":{"type":"object","description":"The Item's bank accounts that have the selected data.","properties":{"account_id":{"type":"string","description":"Plaid's unique identifier for the account."},"mask":{"type":["string","null"],"description":"The last 2-4 alphanumeric characters of an account's official account number.\nNote that the mask may be non-unique between an Item's accounts, and it may also not match the mask that the bank displays to the user."},"name":{"type":"string","description":"The name of the bank account."},"official_name":{"type":["string","null"],"description":"The official name of the bank account."},"subtype":{"$ref":"#/components/schemas/DepositoryAccountSubtype"},"type":{"$ref":"#/components/schemas/CreditBankIncomeAccountType"},"owners":{"type":"array","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"}}},"required":["account_id","mask","name","official_name","subtype","type","owners"]},"CreditBankIncomeAccountType":{"type":"string","description":"The account type. This will always be `depository`.","enum":["depository"]},"CreditBankIncomeSource":{"type":"object","description":"Detailed information for the income source.","properties":{"income_source_id":{"type":"string","description":"A unique identifier for an income source."},"income_description":{"type":"string","description":"The most common name or original description for the underlying income transactions."},"income_category":{"$ref":"#/components/schemas/CreditBankIncomeCategory"},"account_id":{"type":"string","description":"Plaid's unique identifier for the account."},"start_date":{"type":"string","format":"date","description":"Minimum of all dates within the specific income sources in the user's bank account for days requested by the client.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"Maximum of all dates within the specific income sources in the user's bank account for days requested by the client.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"pay_frequency":{"$ref":"#/components/schemas/CreditBankIncomePayFrequency"},"total_amount":{"type":"number","description":"Total amount of earnings in the user's bank account for the specific income source for days requested by the client."},"transaction_count":{"type":"integer","description":"Number of transactions for the income source within the start and end date."},"historical_summary":{"type":"array","items":{"$ref":"#/components/schemas/CreditBankIncomeHistoricalSummary"}}}},"CreditBankIncomeCategory":{"type":"string","description":"The income category.\n\n`BANK_INTEREST`: Interest earned from a bank account.\n\n`BENEFIT_OTHER`: Government benefits other than retirement, unemployment, child support, or disability. Currently used only in the UK, to represent benefits such as Cost of Living Payments.\n\n`CASH`: Deprecated and used only for existing legacy implementations. Has been replaced by `CASH_DEPOSIT` and `TRANSFER_FROM_APPLICATION`.\n\n`CASH_DEPOSIT`: A cash or check deposit.\n\n`CHILD_SUPPORT`: Child support payments received.\n\n`GIG_ECONOMY`: Income earned as a gig economy worker, e.g. driving for Uber, Lyft, Postmates, DoorDash, etc.\n\n`LONG_TERM_DISABILITY`: Disability payments, including Social Security disability benefits.\n\n`OTHER`: Income that could not be categorized as any other income category.\n\n`MILITARY`: Veterans benefits. Income earned as salary for serving in the military (e.g. through DFAS) will be classified as `SALARY` rather than `MILITARY`.\n\n`RENTAL`: Income earned from a rental property. Income may be identified as rental when the payment is received through a rental platform, e.g. Airbnb; rent paid directly by the tenant to the property owner (e.g. via cash, check, or ACH) will typically not be classified as rental income.\n\n`RETIREMENT`: Payments from private retirement systems, pensions, and government retirement programs, including Social Security retirement benefits.\n\n`SALARY`: Payment from an employer to an earner or other form of permanent employment.\n\n`TAX_REFUND`: A tax refund.\n\n`TRANSFER_FROM_APPLICATION`: Deposits from a money transfer app, such as Venmo, Cash App, or Zelle.\n\n`UNEMPLOYMENT`: Unemployment benefits. In the UK, includes certain low-income benefits such as the Universal Credit.","enum":["SALARY","UNEMPLOYMENT","CASH","GIG_ECONOMY","RENTAL","CHILD_SUPPORT","MILITARY","RETIREMENT","LONG_TERM_DISABILITY","BANK_INTEREST","CASH_DEPOSIT","TRANSFER_FROM_APPLICATION","TAX_REFUND","BENEFIT_OTHER","OTHER"]},"CreditBankIncomePayFrequency":{"type":"string","description":"The income pay frequency.","enum":["WEEKLY","BIWEEKLY","SEMI_MONTHLY","MONTHLY","DAILY","UNKNOWN"]},"CreditIsoCurrencyCode":{"type":["string","null"],"description":"The ISO 4217 currency code of the amount or balance."},"CreditUnofficialCurrencyCode":{"type":["string","null"],"description":"The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null.\nUnofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries."},"CreditAmountWithCurrency":{"type":"object","description":"This contains an amount, denominated in the currency specified by either `iso_currency_code` or `unofficial_currency_code`","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"CreditBankIncomeSummary":{"type":"object","description":"Summary for bank income across all income sources and items (max history of 730 days).","additionalProperties":true,"properties":{"total_amount":{"type":"number","description":"Total amount of earnings across all the income sources in the end user's Items for the days requested by the client.\nThis may return an incorrect value if the summary includes income sources in multiple currencies.\nPlease use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-bank-income-summary-total-amounts) instead.","deprecated":true},"iso_currency_code":{"type":["string","null"],"description":"The ISO 4217 currency code of the amount or balance.\nPlease use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-bank-income-summary-total-amounts) instead.","deprecated":true},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null.\nUnofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.\nPlease use [`total_amounts`](https://plaid.com/docs/api/products/income/#credit-bank_income-get-response-bank-income-bank-income-summary-total-amounts) instead.","deprecated":true},"total_amounts":{"type":"array","description":"Total amount of earnings across all the income sources in the end user's Items for the days requested by the client.\nThis can contain multiple amounts, with each amount denominated in one unique currency.","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"start_date":{"type":"string","format":"date","description":"The earliest date within the days requested in which all income sources identified by Plaid appear in a user's account.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The latest date in which all income sources identified by Plaid appear in the user's account.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"income_sources_count":{"type":"integer","description":"Number of income sources per end user."},"income_categories_count":{"type":"integer","description":"Number of income categories per end user."},"income_transactions_count":{"type":"integer","description":"Number of income transactions per end user."},"historical_summary":{"type":"array","items":{"$ref":"#/components/schemas/CreditBankIncomeHistoricalSummary"}}}},"CreditBankIncomeHistoricalSummary":{"type":"object","description":"The end user's monthly summary for the income source(s).","additionalProperties":true,"properties":{"total_amount":{"type":"number","description":"Total amount of earnings for the income source(s) of the user for the month in the summary.\nThis may return an incorrect value if the summary includes income sources in multiple currencies.\nPlease 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.","deprecated":true},"iso_currency_code":{"type":["string","null"],"description":"The ISO 4217 currency code of the amount or balance.\nPlease 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.","deprecated":true},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount or balance. Always `null` if `iso_currency_code` is non-null.\nUnofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.\nPlease 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.","deprecated":true},"total_amounts":{"type":"array","description":"Total amount of earnings for the income source(s) of the user for the month in the summary.\nThis can contain multiple amounts, with each amount denominated in one unique currency.","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"start_date":{"type":"string","format":"date","description":"The start date of the period covered in this monthly summary.\nThis 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.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The end date of the period included in this monthly summary.\nThis 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.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/CreditBankIncomeTransaction"}}}},"CreditBankIncomeTransaction":{"type":"object","description":"The transactions data for the end user's income source(s).","additionalProperties":true,"properties":{"amount":{"type":"number","description":"The settled value of the transaction, denominated in the transaction's currency as stated in `iso_currency_code` or `unofficial_currency_code`.\nPositive values when money moves out of the account; negative values when money moves in.\nFor example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative."},"date":{"type":"string","format":"date","description":"For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted.\nBoth dates are returned in an ISO 8601 format (YYYY-MM-DD)."},"name":{"type":"string","description":"The merchant name or transaction description."},"original_description":{"type":["string","null"],"description":"The string returned by the financial institution to describe the transaction."},"pending":{"type":"boolean","description":"When true, identifies the transaction as pending or unsettled.\nPending transaction details (name, type, amount, category ID) may change before they are settled."},"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."},"check_number":{"type":["string","null"],"description":"The check number of the transaction. This field is only populated for check transactions."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}}},"CreditBankIncomeRefreshRequest":{"title":"CreditBankIncomeRefreshRequest","type":"object","description":"CreditBankIncomeRefreshRequest defines the request schema for `/credit/bank_income/refresh`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/NewUserID"}]},"options":{"$ref":"#/components/schemas/CreditBankIncomeRefreshRequestOptions"}},"required":["user_token"]},"CreditBankIncomeRefreshRequestOptions":{"description":"An optional object for `/credit/bank_income/refresh` request options.","type":"object","properties":{"days_requested":{"type":"integer","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."}}},"CreditBankIncomeRefreshResponse":{"title":"CreditBankIncomeRefreshResponse","type":"object","additionalProperties":true,"description":"CreditBankIncomeRefreshResponse defines the response schema for `/credit/bank_income/refresh`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CreditBankIncomeWebhookUpdateRequest":{"title":"CreditBankIncomeWebhookUpdateRequest","type":"object","description":"CreditBankIncomeWebhookUpdateRequest defines the request schema for `/credit/bank_income/webhook/update`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/NewUserID"}]},"enable_webhooks":{"description":"Whether the user should be enabled for proactive webhook notifications when their income changes","type":"boolean"}},"required":["user_token","enable_webhooks"]},"CreditBankIncomeWebhookUpdateResponse":{"title":"CreditBankIncomeWebhookUpdateResponse","type":"object","additionalProperties":true,"description":"CreditBankIncomeWebhookUpdateResponse defines the response schema for `/credit/bank_income/webhook/update`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CreditBankStatementsUploadsGetRequest":{"title":"CreditBankStatementsUploadsGetRequest","type":"object","description":"CreditBankStatementsUploadsGetRequest defines the request schema for `/credit/bank_statements/uploads/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"options":{"$ref":"#/components/schemas/CreditBankStatementsUploadsGetRequestOptions"}}},"CreditBankStatementsUploadsGetRequestOptions":{"description":"An optional object for `/credit/bank_statements/uploads/get` request options.","type":"object","properties":{"item_ids":{"type":"array","description":"An array of `item_id`s whose bank statements information is returned. Each `item_id` should uniquely identify a bank statements uploaded item. If this field is not provided, all `item_id`s associated with the user will be returned in the response.","items":{"type":"string"}}}},"CreditPayrollIncomeParsingConfigUpdateRequest":{"title":"CreditPayrollIncomeParsingConfigUpdateRequest","type":"object","additionalProperties":true,"description":"CreditPayrollIncomeParsingConfigUpdateRequest defines the request schema for `/credit/payroll_income/parsing_config/update`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"item_id":{"$ref":"#/components/schemas/ItemId"},"parsing_config":{"type":"array","description":"The types of analysis to enable for the document income verification session","items":{"$ref":"#/components/schemas/IncomeVerificationDocParsingConfig"}}},"required":["parsing_config"]},"CreditPayrollIncomeParsingConfigUpdateResponse":{"title":"CreditPayrollIncomeParsingConfigUpdateResponse","type":"object","additionalProperties":true,"description":"CreditPayrollIncomeParsingConfigUpdateResponse defines the response schema for `/credit/payroll_income/parsing_config/update`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CreditBankStatementsUploadsGetResponse":{"title":"CreditBankStatementsUploadsGetResponse","type":"object","additionalProperties":true,"description":"CreditBankStatementsUploadsGetResponse defines the response schema for `/credit/bank_statements/uploads/get`","properties":{"items":{"description":"Array of bank statement upload items.","type":"array","items":{"$ref":"#/components/schemas/CreditBankStatementUploadItem"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["items","request_id"]},"CreditPayrollIncomeRiskSignalsGetRequest":{"title":"CreditPayrollIncomeRiskSignalsGetRequest","type":"object","description":"CreditPayrollIncomeRiskSignalsGetRequest defines the request schema for `/credit/payroll_income/risk_signals/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"}}},"CreditPayrollIncomeRiskSignalsGetResponse":{"title":"CreditPayrollIncomeRiskSignalsGetResponse","type":"object","additionalProperties":true,"description":"CreditPayrollIncomeRiskSignalsGetResponse defines the response schema for `/credit/payroll_income/risk_signals/get`","properties":{"items":{"description":"Array of payroll items.","type":"array","items":{"$ref":"#/components/schemas/PayrollRiskSignalsItem"}},"error":{"$ref":"#/components/schemas/PlaidError"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["items","request_id"]},"PayrollRiskSignalsItem":{"title":"PayrollRiskSignalsItem","type":"object","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.","type":"array","items":{"$ref":"#/components/schemas/DocumentRiskSignalsObject"}}},"required":["item_id","verification_risk_signals"]},"DocumentRiskSignalsObject":{"title":"DocumentRiskSignalsObject","type":"object","additionalProperties":true,"description":"Object containing fraud risk data for a set of income documents.","properties":{"account_id":{"type":["string","null"],"description":"ID of the payroll provider account."},"single_document_risk_signals":{"type":"array","description":"Array of document metadata and associated risk signals per document","items":{"$ref":"#/components/schemas/SingleDocumentRiskSignal"}},"multi_document_risk_signals":{"type":"array","description":"Array of risk signals computed from a set of uploaded documents and the associated documents' metadata","items":{"$ref":"#/components/schemas/MultiDocumentRiskSignal"}}},"required":["account_id","single_document_risk_signals","multi_document_risk_signals"]},"RiskSignalDocumentReference":{"title":"RiskSignalDocumentReference","type":"object","additionalProperties":true,"description":"Object containing metadata for the document","properties":{"document_id":{"type":["string","null"],"description":"An identifier of the document referenced by the document metadata."},"document_name":{"type":"string","description":"The name of the document"},"status":{"$ref":"#/components/schemas/RiskSignalDocumentStatus"},"document_type":{"$ref":"#/components/schemas/RiskSignalDocumentType"},"file_type":{"$ref":"#/components/schemas/RiskSignalFileType"}}},"RiskSignalDocumentType":{"title":"RiskSignalDocumentType","type":["string","null"],"description":"Type of a document for risk signal analysis","enum":["UNKNOWN","BANK_STATEMENT","BENEFITS_STATEMENT","BUSINESS_FILING","CHECK","DRIVING_LICENSE","FINANCIAL_STATEMENT","INVOICE","PAYSLIP","SOCIAL_SECURITY_CARD","TAX_FORM","UTILITY_BILL"]},"RiskSignalFileType":{"title":"RiskSignalFileType","type":["string","null"],"description":"The file type for risk signal analysis","enum":["UNKNOWN","IMAGE_PDF","SCAN_OCR","TRUE_PDF","IMAGE","MIXED_PAGE_PDF","EMPTY_PDF","FLATTENED_PDF"]},"RiskSignalDocumentStatus":{"title":"RiskSignalDocumentStatus","type":"string","description":"Status of a document for risk signal analysis","enum":["PROCESSING","PROCESSING_COMPLETE","PROCESSING_ERROR","PASSWORD_PROTECTED","VIRUS_DETECTED"]},"DocumentRiskSummary":{"title":"DocumentRiskSummary","type":"object","additionalProperties":true,"description":"A summary across all risk signals associated with a document","properties":{"risk_score":{"type":["number","null"],"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. You can automatically reject documents with a high risk score, automatically accept documents with a low risk score, and manually review documents in between. We suggest starting with a threshold of 80 for auto-rejection and 20 for auto-acceptance. As you gather more data points on typical risk scores for your use case, you can tune these parameters to reduce the number of documents undergoing manual review."}},"required":["risk_score"]},"SingleDocumentRiskSignal":{"title":"SingleDocumentRiskSignal","type":"object","additionalProperties":true,"description":"Object containing all risk signals and relevant metadata for a single document","properties":{"document_reference":{"$ref":"#/components/schemas/RiskSignalDocumentReference"},"risk_signals":{"type":"array","description":"Array of attributes that indicate whether or not there is fraud risk with a document","items":{"$ref":"#/components/schemas/DocumentRiskSignal"}},"risk_summary":{"$ref":"#/components/schemas/DocumentRiskSummary"}},"required":["document_reference","risk_signals","risk_summary"]},"MultiDocumentRiskSignal":{"title":"MultiDocumentRiskSignal","type":"object","additionalProperties":true,"description":"Object containing risk signals and relevant metadata for a set of uploaded documents","properties":{"document_references":{"type":"array","description":"Array of objects containing attributes that could indicate if a document is fraudulent","items":{"$ref":"#/components/schemas/RiskSignalDocumentReference"}},"risk_signals":{"type":"array","description":"Array of attributes that indicate whether or not there is fraud risk with a set of documents","items":{"$ref":"#/components/schemas/DocumentRiskSignal"}}},"required":["document_references","risk_signals"]},"CreditAuditCopyTokenCreateRequest":{"type":"object","description":"CreditAuditCopyTokenCreateRequest defines the request schema for `/credit/audit_copy_token/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"report_tokens":{"type":"array","description":"List of report tokens; can include at most one VOA/standard Asset Report tokens and one VOE Asset Report Token.","items":{"type":"string","description":"The report token. It can be an VOA Asset Report token or a VOE Asset Report token.","nullable":false}}},"required":["report_tokens"]},"CreditAuditCopyTokenCreateResponse":{"type":"object","additionalProperties":true,"description":"CreditAuditCopyTokenCreateResponse defines the response schema for `/credit/audit_copy_token/create`","properties":{"audit_copy_token":{"type":"string","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."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["audit_copy_token","request_id"]},"CreditAuditCopyTokenRemoveRequest":{"type":"object","description":"CreditAuditCopyTokenRemoveRequest defines the request schema for `/credit/audit_copy_token/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"audit_copy_token":{"type":"string","description":"The `audit_copy_token` granting access to the Audit Copy you would like to revoke."}},"required":["audit_copy_token"]},"CreditAuditCopyTokenRemoveResponse":{"type":"object","additionalProperties":true,"description":"CreditAuditCopyTokenRemoveResponse defines the response schema for `/credit/audit_copy_token/remove`","properties":{"removed":{"type":"boolean","description":"`true` if the Audit Copy was successfully removed."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["removed","request_id"]},"CreditPayrollIncomeGetRequest":{"title":"CreditPayrollIncomeGetRequest","type":"object","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"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"options":{"$ref":"#/components/schemas/CreditPayrollIncomeGetRequestOptions"}}},"CreditPayrollIncomeGetRequestOptions":{"description":"An optional object for `/credit/payroll_income/get` request options.","type":"object","properties":{"item_ids":{"type":"array","description":"An array of `item_id`s whose payroll information is returned. Each `item_id` should uniquely identify a payroll income item. If this field is not provided, all `item_id`s associated with the user will be returned in the response.","items":{"type":"string"}}}},"CreditPayrollIncomeGetResponse":{"title":"CreditPayrollIncomeGetResponse","type":"object","additionalProperties":true,"description":"Defines the response body for `/credit/payroll_income/get`.","properties":{"items":{"description":"Array of payroll items.","type":"array","items":{"$ref":"#/components/schemas/PayrollItem"}},"error":{"$ref":"#/components/schemas/PlaidError"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["items","request_id"]},"CreditDocumentMetadata":{"title":"CreditDocumentMetadata","type":"object","additionalProperties":true,"description":"Object representing metadata pertaining to the document.","properties":{"name":{"type":"string","description":"The name of the document."},"document_type":{"$ref":"#/components/schemas/CreditDocumentType"},"download_url":{"type":["string","null"],"description":"Signed URL to retrieve the document(s). The payload will be a .zip file containing the document(s).\n\nFor Payroll Income, the file type of the documents will always be PDF, and the documents may not be available, in which case the field will be `null`. If you would like Plaid to generate a PDF if the original is not available, contact your account manager. [Example generated pay stub](https://plaid.com/documents/plaid-generated-mock-paystub.pdf).\n\nFor Document Income, this field will not be `null`, and the file type of the underlying document(s) will be the original file type uploaded by the user. For more details on available file types, see the [Document Income](https://plaid.com/docs/income/document-income) documentation.\n\nThis download URL can only be used once and expires after two minutes. To generate a new download URL, call `/credit/payroll_income/get` again."},"status":{"type":["string","null"],"description":"The processing status of the document.\n\n`PROCESSING_COMPLETE`: The document was successfully processed.\n\n`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.\n\n`UNKNOWN` or `null`: An internal error occurred. If this happens repeatedly, contact support or your Plaid account manager.","x-override-enum-values-shown":["UNKNOWN","PROCESSING_COMPLETE","DOCUMENT_ERROR",null]},"page_count":{"type":["integer","null"],"description":"The number of pages of the uploaded document (if available)."},"error_message":{"type":["string","null"],"description":"The reason why a failure occurred during document processing (if available)."}},"required":["name","document_type","download_url","status"]},"IdentityDocumentMetadata":{"title":"IdentityDocumentMetadata","type":"object","additionalProperties":true,"description":"In closed beta. Object representing metadata pertaining to the document.","properties":{"is_account_number_match":{"type":"boolean","description":"Boolean field indicating if the uploaded document's account number matches the account number we have on file"},"last_updated":{"type":"string","format":"date-time"},"uploaded_at":{"type":"string","format":"date-time"}}},"CreditDocumentType":{"title":"CreditDocumentType","type":["string","null"],"description":"The type of document.\n\n`PAYSTUB`: A paystub.\n\n`BANK_STATEMENT`: A bank statement.\n\n`US_TAX_W2`: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.\n\n`US_TAX_1099_MISC`: A 1099-MISC tax form reporting miscellaneous income.\n\n`US_TAX_1099_K`: A 1099-K tax form reporting payment card and third-party network transactions.\n\n`US_STUDENT_I20`: A Certificate of Eligibility for Nonimmigrant Student Status (Form I-20) issued by a US school.\n\n`US_MILITARY_ERAS`: An electronic Retirement Account Statement (eRAS) issued by the US military.\n\n`US_MILITARY_LES`: A Leave and Earnings Statement (LES) issued by the US military.\n\n`US_MILITARY_CLES`: A Civilian Leave and Earnings Statement (CLES) issued by the US military.\n\n`GIG`: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.\n\n`PLAID_GENERATED_PAYSTUB_PDF`: Used to indicate that the PDF for the paystub was generated by Plaid.\n\n`NONE`: Used to indicate that there is no underlying document for the data.\n\n`UNKNOWN`: Document type could not be determined.","x-override-enum-values-shown":["UNKNOWN","PAYSTUB","BANK_STATEMENT","US_TAX_W2","US_TAX_1099_MISC","US_TAX_1099_K","US_STUDENT_I20","US_MILITARY_ERAS","US_MILITARY_LES","US_MILITARY_CLES","GIG","PLAID_GENERATED_PAYSTUB_PDF","NONE"]},"CreditBankStatementUploadItem":{"title":"CreditBankStatementUploadItem","type":"object","description":"An object containing information about the bank statement upload Item.","properties":{"item_id":{"$ref":"#/components/schemas/ItemId"},"bank_statements":{"type":"array","items":{"$ref":"#/components/schemas/CreditBankStatementUploadObject"}},"status":{"$ref":"#/components/schemas/PayrollItemStatus"},"updated_at":{"type":["string","null"],"format":"date-time","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."}},"required":["item_id","bank_statements","status","updated_at"]},"CreditBankStatementUploadObject":{"title":"CreditBankStatementUploadObject","type":"object","additionalProperties":true,"description":"An object containing data that has been parsed from a user-uploaded bank statement.","properties":{"transactions":{"type":"array","description":"An array of transactions appearing on the bank statement.","items":{"$ref":"#/components/schemas/CreditBankStatementUploadTransaction"}},"document_metadata":{"$ref":"#/components/schemas/CreditDocumentMetadata"},"document_id":{"type":["string","null"],"description":"An identifier of the document referenced by the document metadata."},"bank_accounts":{"type":"array","description":"An array of bank accounts associated with the uploaded bank statement.","items":{"$ref":"#/components/schemas/CreditBankStatementUploadBankAccount"}}},"required":["transactions","document_metadata","document_id","bank_accounts"]},"CreditBankStatementUploadTransaction":{"title":"CreditBankStatementUploadTransaction","type":"object","description":"An object containing data about a transaction appearing on a user-uploaded bank statement.","properties":{"amount":{"type":["number","null"],"description":"The value of the transaction. A negative amount indicates that money moved into the account (such as a paycheck being deposited)."},"date":{"type":["string","null"],"format":"date","description":"The date of when the transaction was made, in ISO 8601 format (YYYY-MM-DD)."},"original_description":{"type":["string","null"],"description":"The raw description of the transaction as it appears on the bank statement."},"account_id":{"type":["string","null"],"description":"The unique id of the bank account that this transaction occurs in"}},"required":["amount","date","original_description","account_id"]},"CreditBankStatementUploadBankAccount":{"title":"CreditBankStatementUploadBankAccount","type":"object","additionalProperties":true,"description":"An object containing data about a user's bank account related to an uploaded bank statement.","properties":{"name":{"type":["string","null"],"description":"The name of the bank account"},"bank_name":{"type":["string","null"],"description":"The name of the bank institution."},"account_type":{"type":["string","null"],"description":"The type of the bank account."},"account_number":{"type":["string","null"],"description":"The bank account number."},"owner":{"$ref":"#/components/schemas/CreditBankStatementUploadAccountOwner"},"periods":{"type":"array","description":"An array of period objects, containing more data on the overall period of the statement.","items":{"$ref":"#/components/schemas/CreditBankStatementUploadBankAccountPeriod"}},"account_id":{"type":["string","null"],"description":"The unique id of the bank account"}},"required":["name","bank_name","account_type","account_number","owner","periods","account_id"]},"CreditBankStatementUploadAccountOwner":{"title":"CreditBankStatementUploadAccountOwner","type":"object","description":"An object containing data about the owner of the bank account for the uploaded bank statement.","additionalProperties":true,"properties":{"name":{"type":["string","null"],"description":"The name of the account owner"},"address":{"$ref":"#/components/schemas/CreditBankStatementUploadAccountOwnerAddress"}},"required":["name","address"]},"CreditBankStatementUploadAccountOwnerAddress":{"title":"CreditBankStatementUploadAccountOwnerAddress","description":"Address on the uploaded bank statement","type":"object","additionalProperties":true,"properties":{"city":{"type":["string","null"],"description":"The full city name."},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code."},"postal_code":{"type":["string","null"],"description":"The postal code of the address."},"region":{"type":["string","null"],"description":"The region or state.\nExample: `\"NC\"`"},"street":{"type":["string","null"],"description":"The full street address."}},"required":["city","country","postal_code","region","street"]},"CreditBankStatementUploadBankAccountPeriod":{"title":"CreditBankStatementUploadBankAccountPeriod","type":"object","description":"An object containing data on the overall period of the statement.","properties":{"start_date":{"type":["string","null"],"format":"date","description":"The start date of the statement period in ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":["string","null"],"format":"date","description":"The end date of the statement period in ISO 8601 format (YYYY-MM-DD)."},"starting_balance":{"type":["number","null"],"description":"The starting balance of the bank account for the period."},"ending_balance":{"type":["number","null"],"description":"The ending balance of the bank account for the period."}},"required":["start_date","end_date","starting_balance","ending_balance"]},"PayrollItem":{"title":"PayrollItem","type":"object","description":"An object containing information about the payroll item.","properties":{"item_id":{"$ref":"#/components/schemas/ItemId"},"institution_id":{"type":"string","description":"The unique identifier of the institution associated with the Item."},"institution_name":{"type":"string","description":"The name of the institution associated with the Item."},"accounts":{"type":"array","items":{"$ref":"#/components/schemas/PayrollIncomeAccountData"}},"payroll_income":{"type":"array","items":{"$ref":"#/components/schemas/PayrollIncomeObject"}},"status":{"$ref":"#/components/schemas/PayrollItemStatus"},"updated_at":{"type":["string","null"],"format":"date-time","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."}},"required":["item_id","institution_id","institution_name","payroll_income","status","accounts","updated_at"]},"PayrollIncomeAccountData":{"title":"PayrollIncomeAccountData","type":["object","null"],"additionalProperties":true,"description":"An object containing account level data.","properties":{"account_id":{"type":["string","null"],"description":"ID of the payroll provider account."},"rate_of_pay":{"$ref":"#/components/schemas/PayrollIncomeRateOfPay"},"pay_frequency":{"type":["string","null"],"description":"The frequency at which an individual is paid.","x-override-enum-values-shown":["DAILY","WEEKLY","BIWEEKLY","SEMI_MONTHLY","MONTHLY","CONTRACT","QUARTERLY","SEMI_ANNUALLY","ANNUALLY","OTHER",null]}},"required":["account_id","rate_of_pay","pay_frequency"]},"PayrollIncomeObject":{"title":"PayrollIncomeObject","type":"object","additionalProperties":true,"description":"An object representing payroll data.","properties":{"account_id":{"type":["string","null"],"description":"ID of the payroll provider account."},"pay_stubs":{"description":"Array of pay stubs for the user.","type":"array","items":{"$ref":"#/components/schemas/CreditPayStub"}},"w2s":{"description":"Array of tax form W-2s.","type":"array","items":{"$ref":"#/components/schemas/CreditW2"}},"form1099s":{"description":"Array of tax form 1099s.","type":"array","items":{"$ref":"#/components/schemas/Credit1099"}},"i20s":{"description":"Array of Form I-20 US immigration student documents.","type":"array","items":{"$ref":"#/components/schemas/CreditI20"}}},"required":["account_id","pay_stubs","w2s","form1099s","i20s"]},"Credit1099":{"title":"Credit1099","type":"object","additionalProperties":true,"description":"An object representing an end user's 1099 tax form","properties":{"document_id":{"type":["string","null"],"description":"An identifier of the document referenced by the document metadata."},"document_metadata":{"$ref":"#/components/schemas/CreditDocumentMetadata"},"form_1099_type":{"$ref":"#/components/schemas/Form1099Type"},"recipient":{"$ref":"#/components/schemas/Credit1099Recipient"},"payer":{"$ref":"#/components/schemas/Credit1099Payer"},"filer":{"$ref":"#/components/schemas/Credit1099Filer"},"tax_year":{"type":["string","null"],"description":"Tax year of the tax form."},"rents":{"type":["number","null"],"format":"double","description":"Amount in rent by payer."},"royalties":{"type":["number","null"],"format":"double","description":"Amount in royalties by payer."},"other_income":{"type":["number","null"],"format":"double","description":"Amount in other income by payer."},"federal_income_tax_withheld":{"type":["number","null"],"format":"double","description":"Amount of federal income tax withheld from payer."},"fishing_boat_proceeds":{"type":["number","null"],"format":"double","description":"Amount of fishing boat proceeds from payer."},"medical_and_healthcare_payments":{"type":["number","null"],"format":"double","description":"Amount of medical and healthcare payments from payer."},"nonemployee_compensation":{"type":["number","null"],"format":"double","description":"Amount of nonemployee compensation from payer."},"substitute_payments_in_lieu_of_dividends_or_interest":{"type":["number","null"],"format":"double","description":"Amount of substitute payments made by payer."},"payer_made_direct_sales_of_5000_or_more_of_consumer_products_to_buyer":{"type":["string","null"],"description":"Whether or not payer made direct sales over $5000 of consumer products."},"crop_insurance_proceeds":{"type":["number","null"],"format":"double","description":"Amount of crop insurance proceeds."},"excess_golden_parachute_payments":{"type":["number","null"],"format":"double","description":"Amount of golden parachute payments made by payer."},"gross_proceeds_paid_to_an_attorney":{"type":["number","null"],"format":"double","description":"Amount of gross proceeds paid to an attorney by payer."},"section_409a_deferrals":{"type":["number","null"],"format":"double","description":"Amount of 409A deferrals earned by payer."},"section_409a_income":{"type":["number","null"],"format":"double","description":"Amount of 409A income earned by payer."},"state_tax_withheld":{"type":["number","null"],"format":"double","description":"Amount of state tax withheld of payer for primary state."},"state_tax_withheld_lower":{"type":["number","null"],"format":"double","description":"Amount of state tax withheld of payer for secondary state."},"payer_state_number":{"type":["string","null"],"description":"Primary state ID."},"payer_state_number_lower":{"type":["string","null"],"description":"Secondary state ID."},"state_income":{"type":["number","null"],"format":"double","description":"State income reported for primary state."},"state_income_lower":{"type":["number","null"],"format":"double","description":"State income reported for secondary state."},"transactions_reported":{"type":["string","null"],"description":"One of the values will be provided Payment card Third party network","x-override-enum-values-shown":["Payment card","Third party network"]},"pse_name":{"type":["string","null"],"description":"Name of the PSE (Payment Settlement Entity)."},"pse_telephone_number":{"type":["string","null"],"description":"Formatted (XXX) XXX-XXXX. Phone number of the PSE (Payment Settlement Entity)."},"gross_amount":{"type":["number","null"],"format":"double","description":"Gross amount reported."},"card_not_present_transaction":{"type":["number","null"],"format":"double","description":"Amount in card not present transactions."},"merchant_category_code":{"type":["string","null"],"description":"Merchant category of filer."},"number_of_payment_transactions":{"type":["string","null"],"description":"Number of payment transactions made."},"january_amount":{"type":["number","null"],"format":"double","description":"Amount reported for January."},"february_amount":{"type":["number","null"],"format":"double","description":"Amount reported for February."},"march_amount":{"type":["number","null"],"format":"double","description":"Amount reported for March."},"april_amount":{"type":["number","null"],"format":"double","description":"Amount reported for April."},"may_amount":{"type":["number","null"],"format":"double","description":"Amount reported for May."},"june_amount":{"type":["number","null"],"format":"double","description":"Amount reported for June."},"july_amount":{"type":["number","null"],"format":"double","description":"Amount reported for July."},"august_amount":{"type":["number","null"],"format":"double","description":"Amount reported for August."},"september_amount":{"type":["number","null"],"format":"double","description":"Amount reported for September."},"october_amount":{"type":["number","null"],"format":"double","description":"Amount reported for October."},"november_amount":{"type":["number","null"],"format":"double","description":"Amount reported for November."},"december_amount":{"type":["number","null"],"format":"double","description":"Amount reported for December."},"primary_state":{"type":["string","null"],"description":"Primary state of business."},"secondary_state":{"type":["string","null"],"description":"Secondary state of business."},"primary_state_id":{"type":["string","null"],"description":"Primary state ID."},"secondary_state_id":{"type":["string","null"],"description":"Secondary state ID."},"primary_state_income_tax":{"type":["number","null"],"format":"double","description":"State income tax reported for primary state."},"secondary_state_income_tax":{"type":["number","null"],"format":"double","description":"State income tax reported for secondary state."}},"required":["document_id"]},"Form1099Type":{"title":"Form1099Type","type":"string","description":"Form 1099 Type","enum":["FORM_1099_TYPE_UNKNOWN","FORM_1099_TYPE_MISC","FORM_1099_TYPE_K"]},"Credit1099Payer":{"title":"Credit1099Payer","type":"object","additionalProperties":true,"description":"An object representing a payer used by 1099-MISC tax documents.","properties":{"address":{"$ref":"#/components/schemas/CreditPayStubAddress"},"name":{"type":["string","null"],"description":"Name of payer."},"tin":{"type":["string","null"],"description":"Tax identification number of payer."},"telephone_number":{"type":["string","null"],"description":"Telephone number of payer."}}},"Credit1099Recipient":{"title":"Credit1099Recipient","type":"object","additionalProperties":true,"description":"An object representing a recipient used in both 1099-K and 1099-MISC tax documents.","properties":{"address":{"$ref":"#/components/schemas/CreditPayStubAddress"},"name":{"type":["string","null"],"description":"Name of recipient."},"tin":{"type":["string","null"],"description":"Tax identification number of recipient."},"account_number":{"type":["string","null"],"description":"Account number of recipient."},"facta_filing_requirement":{"type":["string","null"],"description":"Checked if FATCA is a filing requirement.","x-override-enum-values-shown":["CHECKED","NOT CHECKED"]},"second_tin_exists":{"type":["string","null"],"description":"Checked if 2nd TIN exists.","x-override-enum-values-shown":["CHECKED","NOT CHECKED"]}}},"Credit1099Filer":{"title":"Credit1099Filer","type":"object","additionalProperties":true,"description":"An object representing a filer used by 1099-K tax documents.","properties":{"address":{"$ref":"#/components/schemas/CreditPayStubAddress"},"name":{"type":["string","null"],"description":"Name of filer."},"tin":{"type":["string","null"],"description":"Tax identification number of filer."},"type":{"type":["string","null"],"description":"One of the following values will be provided: Payment Settlement Entity (PSE), Electronic Payment Facilitator (EPF), Other Third Party","x-override-enum-values-shown":["Payment Settlement Entity (PSE)","Electronic Payment Facilitator (EPF)","Other Third Party"]}}},"CreditI20":{"title":"CreditI20","type":"object","additionalProperties":true,"description":"An object representing an end user's Form I-20 US immigration student document.","properties":{"document_id":{"type":["string","null"],"description":"An identifier of the document referenced by the document metadata."},"document_metadata":{"$ref":"#/components/schemas/CreditDocumentMetadata"},"student":{"$ref":"#/components/schemas/CreditI20Student"},"personal_funds":{"type":["number","null"],"format":"double","description":"Amount of the student's personal funds."},"on_campus_employment":{"type":["number","null"],"format":"double","description":"Amount of funds from on-campus employment."},"funds_from_this_school":{"type":["number","null"],"format":"double","description":"Amount of funds provided by the issuing school."},"students_funding_total":{"type":["number","null"],"format":"double","description":"Total amount of funds available to the student."},"funds_from_another_source":{"type":["number","null"],"format":"double","description":"Amount of funds from another source."},"estimated_average_costs_total":{"type":["number","null"],"format":"double","description":"Estimated total average costs for the program period."},"estimated_average_living_expenses":{"type":["number","null"],"format":"double","description":"Estimated average living expenses."},"students_funding_period_months":{"type":["integer","null"],"format":"int64","description":"Number of months the student's funding covers."},"estimated_average_costs_period_months":{"type":["integer","null"],"format":"int64","description":"Number of months the estimated average costs cover."}}},"CreditI20Student":{"title":"CreditI20Student","type":"object","additionalProperties":true,"description":"An object representing the student named on a Form I-20.","properties":{"given_name":{"type":["string","null"],"description":"Given name of the student."},"surname_primary_name":{"type":["string","null"],"description":"Surname or primary name of the student."},"passport_name":{"type":["string","null"],"description":"Name of the student as it appears on their passport."},"preferred_name":{"type":["string","null"],"description":"Preferred name of the student."},"school_name":{"type":["string","null"],"description":"Name of the school issuing the Form I-20."},"program_start_date":{"type":["string","null"],"format":"date","description":"Start date of the program in ISO 8601 format (YYYY-MM-DD)."},"program_end_date":{"type":["string","null"],"format":"date","description":"End date of the program in ISO 8601 format (YYYY-MM-DD)."}}},"CreditPayStub":{"title":"CreditPayStub","type":"object","additionalProperties":true,"description":"An object representing an end user's pay stub.","properties":{"deductions":{"$ref":"#/components/schemas/CreditPayStubDeductions"},"document_id":{"type":["string","null"],"description":"An identifier of the document referenced by the document metadata."},"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"]},"CreditPayStubDeductions":{"title":"CreditPayStubDeductions","type":"object","description":"An object with the deduction information found on a pay stub.","additionalProperties":true,"properties":{"breakdown":{"type":"array","items":{"$ref":"#/components/schemas/PayStubDeductionsBreakdown"}},"total":{"$ref":"#/components/schemas/PayStubDeductionsTotal"}},"required":["breakdown","total"]},"PayStubDeductionsBreakdown":{"title":"PayStubDeductionsBreakdown","type":"object","additionalProperties":true,"description":"An object representing the deduction line items for the pay period","properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the deduction"},"description":{"type":["string","null"],"description":"Description of the deduction line item"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount of the deduction"}},"required":["current_amount","description","iso_currency_code","unofficial_currency_code","ytd_amount"]},"PayStubDeductionsTotal":{"title":"PayStubDeductionsTotal","type":"object","description":"An object representing the total deductions for the pay period","additionalProperties":true,"properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the deduction"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date total amount of the deductions"}},"required":["current_amount","iso_currency_code","unofficial_currency_code","ytd_amount"]},"CreditPayStubEarnings":{"title":"CreditPayStubEarnings","type":"object","description":"An object representing both a breakdown of earnings on a pay stub and the total earnings.","additionalProperties":true,"properties":{"breakdown":{"type":"array","items":{"$ref":"#/components/schemas/PayStubEarningsBreakdown"}},"total":{"$ref":"#/components/schemas/PayStubEarningsTotal"}},"required":["breakdown","total"]},"PayStubEarningsBreakdown":{"title":"PayStubEarningsBreakdown","type":"object","additionalProperties":true,"description":"An object representing the earnings line items for the pay period.","properties":{"canonical_description":{"$ref":"#/components/schemas/PayStubEarningsBreakdownCanonicalDescription"},"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the earning line item."},"description":{"type":["string","null"],"description":"Description of the earning line item."},"hours":{"type":["number","null"],"description":"Number of hours applicable for this earning."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null."},"rate":{"type":["number","null"],"format":"double","description":"Hourly rate applicable for this earning."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount of the line item."}},"required":["canonical_description","current_amount","description","hours","iso_currency_code","rate","unofficial_currency_code","ytd_amount"]},"PayStubEarningsBreakdownCanonicalDescription":{"type":["string","null"],"description":"Commonly used term to describe the earning line item.","x-override-enum-values-shown":["BONUS","COMMISSION","OVERTIME","PAID_TIME_OFF","REGULAR_PAY","VACATION","BASIC_ALLOWANCE_HOUSING","BASIC_ALLOWANCE_SUBSISTENCE","OTHER","ALLOWANCE","BEREAVEMENT","HOLIDAY_PAY","JURY_DUTY","LEAVE","LONG_TERM_DISABILITY_PAY","MILITARY_PAY","PER_DIEM","REFERRAL_BONUS","REIMBURSEMENTS","RETENTION_BONUS","RETROACTIVE_PAY","SEVERANCE_PAY","SHIFT_DIFFERENTIAL","SHORT_TERM_DISABILITY_PAY","SICK_PAY","SIGNING_BONUS","TIPS_INCOME","RETIREMENT","GIG_ECONOMY","STOCK_COMPENSATION",null]},"PayStubEarningsTotal":{"title":"PayStubEarningsTotal","type":"object","description":"An object representing both the current pay period and year to date amount for an earning category.","additionalProperties":true,"properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Total amount of the earnings for this pay period."},"hours":{"type":["number","null"],"description":"Total number of hours worked for this pay period."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the line item. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The total year-to-date amount of the earnings."}},"required":["current_amount","hours","iso_currency_code","unofficial_currency_code","ytd_amount"]},"CreditPayStubEmployee":{"title":"CreditPayStubEmployee","type":"object","additionalProperties":true,"description":"Data about the employee.","properties":{"address":{"$ref":"#/components/schemas/CreditPayStubAddress"},"name":{"type":["string","null"],"description":"The name of the employee."},"marital_status":{"type":["string","null"],"description":"Marital status of the employee - one of `SINGLE`, `MARRIED`, or `NOT LISTED`.","x-override-enum-values-shown":["SINGLE","MARRIED","NOT LISTED",null]},"taxpayer_id":{"$ref":"#/components/schemas/PayStubTaxpayerID"}},"required":["name","address","marital_status","taxpayer_id"]},"CreditPayStubAddress":{"title":"CreditPayStubAddress","description":"Address on the pay stub.","type":"object","additionalProperties":true,"properties":{"city":{"type":["string","null"],"description":"The full city name."},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code."},"postal_code":{"type":["string","null"],"description":"The postal code of the address."},"region":{"type":["string","null"],"description":"The region or state.\nExample: `\"NC\"`"},"street":{"type":["string","null"],"description":"The full street address."}},"required":["city","country","postal_code","region","street"]},"PayStubTaxpayerID":{"title":"PayStubTaxpayerID","type":"object","additionalProperties":true,"description":"Taxpayer ID of the individual receiving the paystub.","properties":{"id_type":{"type":["string","null"],"description":"Type of ID, e.g. 'SSN'."},"id_mask":{"type":["string","null"],"description":"ID mask; i.e. last 4 digits of the taxpayer ID."}},"required":["id_type","id_mask"]},"CreditPayStubEmployer":{"title":"CreditPayStubEmployer","description":"Information about the employer on the pay stub.","type":"object","additionalProperties":true,"properties":{"address":{"$ref":"#/components/schemas/CreditPayStubAddress"},"name":{"type":["string","null"],"description":"The name of the employer on the pay stub."}},"required":["address","name"]},"CreditPayStubNetPay":{"title":"CreditPayStubNetPay","type":"object","description":"An object representing information about the net pay amount on the pay stub.","additionalProperties":true,"properties":{"current_amount":{"type":["number","null"],"format":"double","description":"Raw amount of the net pay for the pay period."},"description":{"type":["string","null"],"description":"Description of the net pay."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"ytd_amount":{"type":["number","null"],"format":"double","description":"The year-to-date amount of the net pay."}},"required":["current_amount","description","iso_currency_code","unofficial_currency_code","ytd_amount"]},"PayStubPayPeriodDetails":{"title":"PayStubPayPeriodDetails","type":"object","additionalProperties":true,"description":"Details about the pay period.","properties":{"pay_amount":{"type":["number","null"],"format":"double","description":"The amount of the paycheck."},"distribution_breakdown":{"type":"array","items":{"$ref":"#/components/schemas/PayStubDistributionBreakdown"}},"end_date":{"type":["string","null"],"format":"date","description":"The date on which the pay period ended, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"gross_earnings":{"type":["number","null"],"format":"double","description":"Total earnings before tax/deductions."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null."},"pay_date":{"type":["string","null"],"format":"date","description":"The date on which the pay stub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"pay_frequency":{"type":["string","null"],"description":"The frequency at which an individual is paid.","x-override-enum-values-shown":["UNKNOWN","WEEKLY","BIWEEKLY","SEMI_MONTHLY","MONTHLY",null]},"pay_basis":{"$ref":"#/components/schemas/CreditPayStubPayBasisType"},"start_date":{"type":["string","null"],"format":"date","description":"The date on which the pay period started, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}},"required":["pay_amount","distribution_breakdown","end_date","gross_earnings","iso_currency_code","pay_date","pay_frequency","start_date","unofficial_currency_code"]},"PayStubDistributionBreakdown":{"title":"PayStubDistributionBreakdown","type":"object","description":"Information about the accounts that the payment was distributed to.","additionalProperties":true,"properties":{"account_name":{"type":["string","null"],"description":"Name of the account for the given distribution."},"bank_name":{"type":["string","null"],"description":"The name of the bank that the payment is being deposited to."},"current_amount":{"type":["number","null"],"format":"double","description":"The amount distributed to this account."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null."},"mask":{"type":["string","null"],"description":"The last 2-4 alphanumeric characters of an account's official account number."},"type":{"type":["string","null"],"description":"Type of the account that the paystub was sent to (e.g. 'checking')."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}},"required":["account_name","bank_name","current_amount","iso_currency_code","mask","type","unofficial_currency_code"]},"ReportType":{"title":"ReportType","type":"string","description":"The report type. It can be `asset`. Income report types are not yet supported.","enum":["asset"],"nullable":false},"DocumentRiskSignal":{"title":"DocumentRiskSignal","description":"Details about a certain reason as to why a document could potentially be fraudulent.","type":["object","null"],"additionalProperties":true,"properties":{"type":{"title":"DocumentRiskSignalResultType","type":["string","null"],"description":"The type of risk found in the risk signal check.","x-override-enum-values-shown":["FONT","MASKING","OVERLAID_TEXT","EDITED_TEXT","TEXT_COMPRESSION","ADDRESS_FORMAT_ANOMALY","DATE_FORMAT_ANOMALY","FONT_ANOMALY","NAME_FORMAT_ANOMALY","PDF_ALIGNMENT","BRUSH_DETECTION","METADATA_DATES_OUTSIDE_WINDOW","METADATA_DATES_INSIDE_WINDOW","METADATA_DATES_MISSING","METADATA_DATES_MATCH","ADOBE_FONTS","ANNOTATION_DATES","ANNOTATIONS","EDITED_WHILE_SCANNED","EXIF_DATA_MODIFIED","HIGH_USER_ACCESS","MALFORMED_DATE","QPDF","TEXT_LAYER_TEXT","TOUCHUP_TEXT","FLATTENED_PDF","BLACKLISTS","COPYCAT_IMAGE","COPYCAT_TEXT","REJECTED_CUSTOMER","TEMPLATES","SOFTWARE_BLACKLIST"]},"field":{"title":"DocumentRiskSignalField","type":["string","null"],"description":"The field which the risk signal was computed for"},"has_fraud_risk":{"title":"DocumentRiskSignalHasFraudRisk","type":["boolean","null"],"description":"A flag used to quickly identify if the signal indicates that this field is authentic or fraudulent"},"institution_metadata":{"$ref":"#/components/schemas/DocumentRiskSignalInstitutionMetadata"},"expected_value":{"title":"DocumentRiskSignalExpectedValue","type":["string","null"],"description":"The expected value of the field, as seen on the document"},"actual_value":{"title":"DocumentRiskSignalActualValue","type":["string","null"],"description":"The derived value obtained in the risk signal calculation process for this field"},"signal_description":{"title":"DocumentRiskSignalDescription","type":["string","null"],"description":"A human-readable explanation providing more detail into the particular risk signal"},"page_number":{"title":"DocumentRiskPageNumber","type":["integer","null"],"description":"The relevant page associated with the risk signal. If the risk signal is not associated with a specific page, the value will be 0."}},"required":["type","field","has_fraud_risk","institution_metadata","expected_value","actual_value","signal_description","page_number"]},"DocumentRiskSignalInstitutionMetadata":{"title":"DocumentRiskSignalInstitutionMetadata","type":["object","null"],"additionalProperties":true,"description":"An object which contains additional metadata about the institution used to compute the verification attribute","properties":{"item_id":{"$ref":"#/components/schemas/ItemId"}},"required":["item_id"]},"PayrollItemStatus":{"title":"PayrollItemStatus","description":"Details about the status of the payroll item.","type":["object","null"],"additionalProperties":true,"properties":{"processing_status":{"title":"PayrollItemStatusProcessingStatus","type":["string","null"],"description":"Denotes the processing status for the verification.\n\n`UNKNOWN`: The processing status could not be determined.\n\n`PROCESSING_COMPLETE`: The processing has completed and the user has approved for sharing. The data is available to be retrieved.\n\n`PROCESSING`: The verification is still processing. The data is not available yet.\n\n`FAILED`: The processing failed to complete successfully.\n\n`APPROVAL_STATUS_PENDING`: The processing has completed but the user has not yet approved the sharing of the data.","x-override-enum-values-shown":["UNKNOWN","PROCESSING_COMPLETE","PROCESSING","FAILED","APPROVAL_STATUS_PENDING"]}}},"CreditW2":{"title":"CreditW2","type":"object","additionalProperties":true,"description":"W2 is an object that represents income data taken from a W2 tax document.","properties":{"document_metadata":{"$ref":"#/components/schemas/CreditDocumentMetadata"},"document_id":{"type":"string","description":"An identifier of the document referenced by the document metadata."},"employer":{"$ref":"#/components/schemas/CreditPayStubEmployer"},"employee":{"$ref":"#/components/schemas/CreditPayStubEmployee"},"tax_year":{"type":["string","null"],"description":"The tax year of the W2 document."},"employer_id_number":{"type":["string","null"],"description":"An employer identification number or EIN."},"wages_tips_other_comp":{"type":["string","null"],"description":"Wages from tips and other compensation."},"federal_income_tax_withheld":{"type":["string","null"],"description":"Federal income tax withheld for the tax year."},"social_security_wages":{"type":["string","null"],"description":"Wages from Social Security."},"social_security_tax_withheld":{"type":["string","null"],"description":"Social Security tax withheld for the tax year."},"medicare_wages_and_tips":{"type":["string","null"],"description":"Wages and tips from medicare."},"medicare_tax_withheld":{"type":["string","null"],"description":"Medicare tax withheld for the tax year."},"social_security_tips":{"type":["string","null"],"description":"Tips from Social Security."},"allocated_tips":{"type":["string","null"],"description":"Allocated tips."},"box_9":{"type":["string","null"],"description":"Contents from box 9 on the W2."},"dependent_care_benefits":{"type":["string","null"],"description":"Dependent care benefits."},"nonqualified_plans":{"type":["string","null"],"description":"Nonqualified plans."},"box_12":{"type":"array","items":{"$ref":"#/components/schemas/W2Box12"}},"statutory_employee":{"type":["string","null"],"description":"Statutory employee."},"retirement_plan":{"type":["string","null"],"description":"Retirement plan."},"third_party_sick_pay":{"type":["string","null"],"description":"Third party sick pay."},"other":{"type":["string","null"],"description":"Other."},"state_and_local_wages":{"type":"array","items":{"$ref":"#/components/schemas/W2StateAndLocalWages"}}},"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"]},"PayrollIncomeRateOfPay":{"title":"PayrollIncomeRateOfPay","type":"object","additionalProperties":true,"description":"An object representing the rate at which an individual is paid.","properties":{"pay_rate":{"type":["string","null"],"description":"The rate at which an employee is paid.","x-override-enum-values-shown":["ANNUAL","HOURLY","CONTRACT","WEEKLY","BIWEEKLY","MONTHLY","SEMI_MONTHLY","DAILY","COMMISSION","OTHER",null]},"pay_amount":{"type":["number","null"],"format":"double","description":"The amount at which an employee is paid."}}},"CreditPayrollIncomePrecheckRequest":{"title":"CreditPayrollIncomePrecheckRequest","type":"object","description":"Defines the request schema for `/credit/payroll_income/precheck`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/NewUserID"}]},"access_tokens":{"type":"array","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"}},"employer":{"$ref":"#/components/schemas/IncomeVerificationPrecheckEmployer"},"us_military_info":{"$ref":"#/components/schemas/IncomeVerificationPrecheckMilitaryInfo"},"payroll_institution":{"$ref":"#/components/schemas/IncomeVerificationPrecheckPayrollInstitution"}}},"CreditPayrollIncomePrecheckResponse":{"title":"CreditPayrollIncomePrecheckResponse","additionalProperties":true,"type":"object","description":"Defines the response schema for `/credit/payroll_income/precheck`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"confidence":{"$ref":"#/components/schemas/IncomeVerificationPrecheckConfidence"}},"required":["confidence","request_id"]},"CreditPayrollIncomeRefreshRequest":{"title":"CreditPayrollIncomeRefreshRequest","type":"object","description":"CreditPayrollIncomeRefreshRequest defines the request schema for `/credit/payroll_income/refresh`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"options":{"$ref":"#/components/schemas/CreditPayrollIncomeRefreshRequestOptions"}}},"CreditPayrollIncomeRefreshRequestOptions":{"description":"An optional object for `/credit/payroll_income/refresh` request options.","type":"object","properties":{"item_ids":{"type":"array","items":{"type":"string"},"description":"An array of `item_id`s to be refreshed. Each `item_id` should uniquely identify a payroll income item. If this field is not provided, all `item_id`s associated with the user will be refreshed."},"webhook":{"type":"string","description":"The URL where Plaid will send the payroll income refresh webhook."}}},"CreditPayrollIncomeRefreshResponse":{"title":"CreditPayrollIncomeRefreshResponse","type":"object","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"]},"CreditEmploymentGetRequest":{"title":"CreditEmploymentGetRequest","type":"object","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"},"user_id":{"$ref":"#/components/schemas/NewUserID"}}},"CreditEmploymentGetResponse":{"title":"CreditEmploymentGetResponse","type":"object","additionalProperties":true,"description":"CreditEmploymentGetResponse defines the response schema for `/credit/employment/get`.","properties":{"items":{"description":"Array of employment items.","type":"array","items":{"$ref":"#/components/schemas/CreditEmploymentItem"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["items","request_id"]},"CreditEmploymentItem":{"title":"CreditEmploymentItem","type":"object","additionalProperties":true,"description":"The object containing employment items.","properties":{"item_id":{"$ref":"#/components/schemas/ItemId"},"employments":{"type":"array","items":{"$ref":"#/components/schemas/CreditEmploymentVerification"}},"employment_report_token":{"title":"EmploymentReportToken","type":"string","description":"Token to represent the underlying Employment data","x-hidden-from-docs":true}},"required":["item_id","employments"]},"CreditEmploymentVerification":{"title":"CreditEmploymentVerification","type":"object","additionalProperties":true,"description":"The object containing proof of employment data for an individual.","properties":{"account_id":{"type":["string","null"],"description":"ID of the payroll provider account."},"status":{"$ref":"#/components/schemas/CreditEmploymentVerificationStatus"},"start_date":{"format":"date","type":["string","null"],"description":"Start of employment in ISO 8601 format (YYYY-MM-DD)."},"end_date":{"format":"date","type":["string","null"],"description":"End of employment, if applicable. Provided in ISO 8601 format (YYY-MM-DD)."},"employer":{"$ref":"#/components/schemas/CreditEmployerVerification"},"title":{"type":["string","null"],"description":"Current title of employee."},"platform_ids":{"$ref":"#/components/schemas/CreditPlatformIds"},"employee_type":{"$ref":"#/components/schemas/CreditEmploymentEmployeeType"},"last_paystub_date":{"format":"date","type":["string","null"],"description":"The date of the employee's most recent paystub in ISO 8601 format (YYYY-MM-DD)."}},"required":["account_id","status","start_date","end_date","employer","title","platform_ids","employee_type","last_paystub_date"]},"CreditEmploymentEmployeeType":{"type":["string","null"],"title":"CreditEmploymentEmployeeType","description":"The type of employment for the individual.\n\n`\"FULL_TIME\"`: A full-time employee.\n\n`\"PART_TIME\"`: A part-time employee.\n\n`\"CONTRACTOR\"`: An employee typically hired externally through a contracting group.\n\n`\"TEMPORARY\"`: A temporary employee.\n\n`\"OTHER\"`: The employee type is not one of the above defined types.","x-override-enum-values-shown":["FULL_TIME","PART_TIME","CONTRACTOR","TEMPORARY","OTHER",null]},"CreditEmploymentVerificationStatus":{"type":["string","null"],"title":"CreditEmploymentVerificationStatus","description":"Current employment status.","x-override-enum-values-shown":["ACTIVE","INACTIVE",null]},"CreditEmployerVerification":{"title":"CreditEmployerVerification","type":"object","additionalProperties":true,"description":"An object containing employer data.","properties":{"name":{"type":["string","null"],"description":"Name of employer."}},"required":["name"]},"CreditPlatformIds":{"title":"CreditPlatformIds","type":"object","additionalProperties":true,"description":"The object containing a set of ids related to an employee.","properties":{"employee_id":{"type":["string","null"],"description":"The ID of an employee as given by their employer."},"payroll_id":{"type":["string","null"],"description":"The ID of an employee as given by their payroll."},"position_id":{"type":["string","null"],"description":"The ID of the position of the employee."}},"required":["employee_id","payroll_id","position_id"]},"CreditBankIncomeWarning":{"type":"object","description":"The warning associated with the data that was unavailable for the Bank Income Report.","properties":{"warning_type":{"$ref":"#/components/schemas/CreditBankIncomeWarningType"},"warning_code":{"$ref":"#/components/schemas/CreditBankIncomeWarningCode"},"cause":{"$ref":"#/components/schemas/CreditBankIncomeCause"}}},"CreditBankIncomeWarningType":{"type":"string","description":"The warning type which will always be `BANK_INCOME_WARNING`.","enum":["BANK_INCOME_WARNING"]},"CreditBankIncomeWarningCode":{"type":"string","description":"The warning code identifies a specific kind of warning.\n\n`IDENTITY_UNAVAILABLE`: Unable to extract identity for the Item\n\n`TRANSACTIONS_UNAVAILABLE`: Unable to extract transactions for the Item\n\n`ITEM_UNAPPROVED`: User exited flow before giving permission to share data for the Item\n\n`REPORT_DELETED`: Report deleted due to customer or consumer request\n\n`DATA_UNAVAILABLE`: No relevant data was found for the Item","enum":["IDENTITY_UNAVAILABLE","TRANSACTIONS_UNAVAILABLE","ITEM_UNAPPROVED","REPORT_DELETED","DATA_UNAVAILABLE"]},"CreditBankIncomeCause":{"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.","properties":{"error_type":{"$ref":"#/components/schemas/CreditBankIncomeErrorType"},"error_code":{"type":"string","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."},"error_message":{"type":"string","description":"A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use."},"display_message":{"type":"string","description":"A user-friendly representation of the error code. null if the error is not related to user action.\nThis may change over time and is not safe for programmatic use."},"item_id":{"type":"string","description":"The `item_id` of the Item associated with this warning."}},"required":["error_type","error_code","error_message","display_message","item_id"]},"CreditBankIncomeErrorType":{"type":"string","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"]},"CreditRelayCreateRequest":{"type":"object","description":"CreditRelayCreateRequest defines the request schema for `/credit/relay/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"report_tokens":{"type":"array","description":"List of report token strings, with at most one token of each report type. Currently only Asset Report token is supported.","items":{"type":"string","description":"The report token. It can only be an asset report token.","nullable":false}},"secondary_client_id":{"type":"string","description":"The `secondary_client_id` is the client id of the third party with whom you would like to share the relay token."},"webhook":{"type":["string","null"],"description":"URL to which Plaid will send webhooks when the Secondary Client successfully retrieves an Asset Report by calling `/credit/relay/get`.","format":"url"}},"required":["report_tokens","secondary_client_id"]},"CreditRelayCreateResponse":{"type":"object","additionalProperties":true,"description":"CreditRelayCreateResponse defines the response schema for `/credit/relay/create`","properties":{"relay_token":{"type":"string","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."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["relay_token","request_id"]},"CreditRelayGetRequest":{"title":"CreditRelayGetRequest","type":"object","description":"CreditRelayGetRequest defines the request schema for `/credit/relay/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"relay_token":{"type":"string","description":"The `relay_token` granting access to the report you would like to get."},"report_type":{"$ref":"#/components/schemas/ReportType"},"include_insights":{"type":"boolean","default":false,"description":"`true` if you would like to retrieve the Asset Report with Insights, `false` otherwise. This field defaults to `false` if omitted."}},"required":["relay_token","report_type"]},"CreditRelayPDFGetRequest":{"title":"CreditRelayPDFGetRequest","type":"object","description":"CreditRelayPDFGetRequest defines the request schema for `/credit/relay/pdf/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"relay_token":{"type":"string","description":"The `relay_token` granting access to the report you would like to get."},"report_type":{"$ref":"#/components/schemas/ReportType"}},"required":["relay_token","report_type"]},"CreditRelayPDFGetResponse":{"contentMediaType":"application/octet-stream","title":"CreditRelayPDFGetResponse","description":"CreditRelayPDFGetResponse defines the response schema for `/credit/relay/pdf/get`"},"CreditRelayRefreshRequest":{"type":"object","description":"CreditRelayRefreshRequest defines the request schema for `/credit/relay/refresh`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"relay_token":{"type":"string","description":"The `relay_token` granting access to the report you would like to refresh."},"report_type":{"$ref":"#/components/schemas/ReportType"},"webhook":{"type":["string","null"],"description":"The URL registered to receive webhooks when the report of a relay token has been refreshed.","format":"url"}},"required":["relay_token","report_type"]},"CreditRelayRefreshResponse":{"type":"object","additionalProperties":true,"description":"CreditRelayRefreshResponse defines the response schema for `/credit/relay/refresh`","properties":{"relay_token":{"type":"string"},"asset_report_id":{"$ref":"#/components/schemas/AssetReportId"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["relay_token","request_id"]},"CreditRelayRemoveRequest":{"type":"object","description":"CreditRelayRemoveRequest defines the request schema for `/credit/relay/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"relay_token":{"type":"string","description":"The `relay_token` you would like to revoke."}},"required":["relay_token"]},"CreditRelayRemoveResponse":{"type":"object","additionalProperties":true,"description":"CreditRelayRemoveResponse defines the response schema for `/credit/relay/remove`","properties":{"removed":{"type":"boolean","description":"`true` if the relay token was successfully removed."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["removed","request_id"]},"SandboxBankTransferFireWebhookRequest":{"title":"SandboxBankTransferFireWebhookRequest","type":"object","description":"Defines the request schema for `/sandbox/bank_transfer/fire_webhook`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"webhook":{"type":"string","description":"The URL to which the webhook should be sent.","format":"url"}},"required":["webhook"]},"SandboxBankTransferFireWebhookResponse":{"title":"SandboxBankTransferFireWebhookResponse","additionalProperties":true,"type":"object","description":"Defines the response schema for `/sandbox/bank_transfer/fire_webhook`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxTransferFireWebhookRequest":{"title":"SandboxTransferFireWebhookRequest","type":"object","description":"Defines the request schema for `/sandbox/transfer/fire_webhook`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"webhook":{"type":"string","description":"The URL to which the webhook should be sent.","format":"url"}},"required":["webhook"]},"SandboxTransferFireWebhookResponse":{"title":"SandboxTransferFireWebhookResponse","additionalProperties":true,"type":"object","description":"Defines the response schema for `/sandbox/transfer/fire_webhook`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ApplicationID":{"title":"ApplicationID","type":"string","description":"This field will map to the application ID that is returned from `/item/application/list`, or provided to the institution in an oauth redirect."},"Application":{"type":"object","description":"Metadata about the application","properties":{"application_id":{"$ref":"#/components/schemas/ApplicationID"},"name":{"type":"string","description":"The name of the application"},"display_name":{"type":["string","null"],"description":"A human-readable name of the application for display purposes"},"join_date":{"type":"string","format":"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."},"logo_url":{"type":["string","null"],"description":"A URL that links to the application logo image."},"application_url":{"type":["string","null"],"description":"The URL for the application's website"},"reason_for_access":{"type":["string","null"],"description":"A string provided by the connected app stating why they use their respective enabled products."},"use_case":{"type":["string","null"],"description":"A string representing client's broad use case as assessed by Plaid."},"company_legal_name":{"type":["string","null"],"description":"A string representing the name of client's legal entity."},"city":{"type":["string","null"],"description":"A string representing the city of the client's headquarters."},"region":{"type":["string","null"],"description":"A string representing the region of the client's headquarters."},"postal_code":{"type":["string","null"],"description":"A string representing the postal code of the client's headquarters."},"country_code":{"type":["string","null"],"description":"A string representing the country code of the client's headquarters."}},"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"]},"ApplicationGetRequest":{"description":"ApplicationGetRequest defines the schema for `/application/get`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"application_id":{"$ref":"#/components/schemas/ApplicationID"}},"required":["client_id","secret","application_id"]},"ApplicationGetResponse":{"description":"ApplicationGetResponse defines the response schema for `/application/get`","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"application":{"$ref":"#/components/schemas/Application"}},"required":["request_id","application"]},"ProductAccess":{"description":"The product access being requested. Used to allow or disallow product access across all accounts. If unset, defaults to all products allowed.","type":"object","additionalProperties":true,"properties":{"statements":{"description":"Allow access to statements. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true},"identity":{"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`.","type":["boolean","null"],"default":true},"auth":{"description":"Allow access to account number details. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true},"transactions":{"description":"Allow access to transaction details. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true},"accounts_details_transactions":{"description":"Allow access to `accounts_details_transactions`. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true},"accounts_routing_number":{"description":"Allow access to `accounts_routing_number`. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true},"accounts_statements":{"description":"Allow access to `accounts_statements`. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true},"accounts_tax_statements":{"description":"Allow access to `accounts_tax_statements`. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true},"customers_profiles":{"description":"Allow access to `customers_profiles`. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true}}},"AccountAccess":{"description":"Allow or disallow product access by account. Unlisted (e.g. missing) accounts will be considered `new_accounts`.","type":"object","properties":{"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"},"authorized":{"description":"Allow the application to see this account (and associated details, including balance) in the list of accounts. If unset, defaults to `true`.","type":["boolean","null"],"default":true},"account_product_access":{"$ref":"#/components/schemas/AccountProductAccessNullable"}},"required":["unique_id"]},"AccountProductAccessNullable":{"description":"Allow the application to access specific products on this account","anyOf":[{"allOf":[{"$ref":"#/components/schemas/AccountProductAccess"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"AccountProductAccess":{"description":"Allow the application to access specific products on this account","type":"object","properties":{"account_data":{"description":"Allow the application to access account data. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true},"statements":{"description":"Allow the application to access bank statements. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true},"tax_documents":{"description":"Allow the application to access tax documents. Only used by certain partners. If relevant to the partner and unset, defaults to `true`.","type":["boolean","null"],"default":true}}},"ScopesNullable":{"description":"The scopes object","anyOf":[{"allOf":[{"$ref":"#/components/schemas/Scopes"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"Scopes":{"description":"The scopes object","type":"object","properties":{"product_access":{"$ref":"#/components/schemas/ProductAccess"},"accounts":{"type":"array","items":{"$ref":"#/components/schemas/AccountAccess"}},"new_accounts":{"description":"Allow access to newly opened accounts as they are opened. If unset, defaults to `true`.","type":["boolean","null"],"default":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"},"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`.","type":"string","enum":["ENROLLMENT","PORTAL"]},"ItemApplicationUnlinkRequest":{"description":"ItemApplicationUnlinkRequest defines the request schema for `/item/application/unlink`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"application_id":{"$ref":"#/components/schemas/ApplicationID"}},"required":["application_id","access_token"]},"ItemApplicationUnlinkResponse":{"description":"ItemApplicationUnlinkResponse defines the response schema for `/item/application/unlink`","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ItemApplicationScopesUpdateRequest":{"description":"ItemApplicationScopesUpdateRequest defines the request schema for `/item/application/scopes/update`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"application_id":{"$ref":"#/components/schemas/ApplicationID"},"scopes":{"$ref":"#/components/schemas/Scopes"},"state":{"$ref":"#/components/schemas/ScopesState"},"context":{"$ref":"#/components/schemas/ScopesContext"}},"required":["application_id","access_token","scopes","context"]},"ItemApplicationScopesUpdateResponse":{"description":"ItemApplicationScopesUpdateResponse defines the response schema for `/item/application/scopes/update`","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ItemApplicationListRequest":{"description":"Request to list connected applications for a user.","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessTokenNullable"}}},"ItemApplicationListResponse":{"description":"Describes the connected application for a particular end user.","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"applications":{"type":"array","description":"A list of connected applications.","items":{"$ref":"#/components/schemas/ConnectedApplication"}},"disconnected_applications":{"type":"array","description":"A list of applications that the user previously connected and has since disconnected. Disconnected applications carry no `scopes` or `created_at`, since the user has revoked their access.","items":{"$ref":"#/components/schemas/DisconnectedApplication"}}},"required":["applications"]},"ConnectedApplication":{"description":"Describes the connected application for a particular end user.","type":"object","properties":{"application_id":{"$ref":"#/components/schemas/ApplicationID"},"name":{"type":"string","description":"The name of the application"},"display_name":{"type":["string","null"],"description":"A human-readable name of the application for display purposes"},"logo_url":{"type":["string","null"],"description":"A URL that links to the application logo image."},"application_url":{"type":["string","null"],"description":"The URL for the application's website"},"reason_for_access":{"type":["string","null"],"description":"A string provided by the connected app stating why they use their respective enabled products."},"created_at":{"type":"string","format":"date-time","description":"The date and time this application was linked, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC (e.g. `\"2020-01-01T00:00:00Z\"`). Note that older, legacy integrations instead receive this value as a date only, in `YYYY-MM-DD` format (e.g. `\"2020-01-01\"`).","examples":["2020-01-01T00:00:00Z"]},"scopes":{"$ref":"#/components/schemas/ScopesNullable"}},"required":["application_id","name","created_at"]},"DisconnectedApplication":{"description":"Describes an application that a particular end user previously connected and has since disconnected.","type":"object","properties":{"application_id":{"$ref":"#/components/schemas/ApplicationID"},"name":{"type":"string","description":"The name of the application"},"display_name":{"type":["string","null"],"description":"A human-readable name of the application for display purposes"},"logo_url":{"type":["string","null"],"description":"A URL that links to the application logo image."},"application_url":{"type":["string","null"],"description":"The URL for the application's website"},"reason_for_access":{"type":["string","null"],"description":"A string provided by the connected app stating why they use their respective enabled products."}},"required":["application_id","name"]},"AccountSelectionCardinality":{"type":"string","description":"The application requires that accounts be limited to a specific cardinality.\n\n`MULTI_SELECT`: indicates that the user should be allowed to pick multiple accounts.\n\n`SINGLE_SELECT`: indicates that the user should be allowed to pick only a single account.\n\n`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"]},"AccountFilter":{"type":"object","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":{"depository":{"$ref":"#/components/schemas/AccountFilterSubtypes"},"credit":{"$ref":"#/components/schemas/AccountFilterSubtypes"},"loan":{"$ref":"#/components/schemas/AccountFilterSubtypes"},"investment":{"$ref":"#/components/schemas/AccountFilterSubtypes"}}},"AccountFilterSubtypes":{"type":"array","description":"A list of account subtypes to be filtered.","items":{"type":"string","description":"List of account subtypes."}},"ConsentEventsGetRequest":{"description":"Request to list a historical log of item consent events.","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"}},"required":["access_token"]},"ConsentEventsGetResponse":{"description":"Describes a historical log of item consent events.","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"consent_events":{"type":"array","description":"A list of consent events.","items":{"$ref":"#/components/schemas/ConsentEvent"}}},"required":["consent_events","request_id"]},"ItemActivityListRequest":{"description":"Request to list a historical log of user consent events.","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"cursor":{"type":"string","description":"Cursor used for pagination."},"count":{"type":"integer","minimum":1,"maximum":50,"default":50}}},"ItemActivityListResponse":{"description":"Describes a historical log of user consent events.","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"activities":{"type":"array","description":"A list of activities.","items":{"$ref":"#/components/schemas/Activity"}},"last_data_access_times":{"type":"array","description":"An array of objects containing timestamps for the last time each data type was accessed per application.","items":{"$ref":"#/components/schemas/ApplicationLastDataAccessTimes"}},"cursor":{"type":"string","description":"Cursor used for pagination."}},"required":["activities","last_data_access_times","request_id"]},"ApplicationLastDataAccessTimes":{"description":"Describes the last time each datatype was accessed by an application.","type":"object","additionalProperties":true,"properties":{"application_id":{"type":"string","description":"ID of the application accessing data."},"account_balance_info":{"type":["string","null"],"format":"date-time","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.","examples":["2023-02-08T10:00:00Z"]},"account_routing_number":{"type":["string","null"],"format":"date-time","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.","examples":["2023-02-08T10:00:00Z"]},"contact_info":{"type":["string","null"],"format":"date-time","description":"The last time `contact_info` was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.","examples":["2023-02-08T10:00:00Z"]},"transactions":{"type":["string","null"],"format":"date-time","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.","examples":["2023-02-08T10:00:00Z"]},"credit_loan_info":{"type":["string","null"],"format":"date-time","description":"The last time `credit_loan_info` was accessed by this application in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format in UTC. null if never accessed.","examples":["2023-02-08T10:00:00Z"]},"investments":{"type":["string","null"],"format":"date-time","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.","examples":["2023-02-08T10:00:00Z"]}},"required":["application_id","account_balance_info","account_routing_number","contact_info","transactions","credit_loan_info","investments"]},"ConsentEvent":{"description":"Describes a consent event.","additionalProperties":true,"type":"object","properties":{"item_id":{"type":"string","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."},"created_at":{"type":"string","format":"date-time","description":"The date and time when the consent event occurred, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."},"event_type":{"$ref":"#/components/schemas/ConsentEventType"},"event_code":{"$ref":"#/components/schemas/ConsentEventCode"},"institution_id":{"description":"Unique identifier for the institution associated with the Item.","type":["string","null"]},"institution_name":{"description":"The full name of the institution associated with the Item.","type":["string","null"]},"initiator":{"$ref":"#/components/schemas/ConsentEventInitiator"},"consented_use_cases":{"description":"A list of strings containing the full list of use cases the end user has consented to for the Item.\n\nSee the [full list](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/#updating-link-customizations) of use cases.","type":"array","items":{"type":"string"}},"consented_data_scopes":{"description":"A list of strings containing the full list of data scopes the end user has consented to for the Item. Each value is the data scope's display name, as shown to the end user in Link (for example, `account and balance info`, `contact details`, or `transactions`); these differ from the values returned in `consented_data_scopes` by `/item/get`. The scopes correspond to consented products; see the [full mapping](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/#data-scopes-by-product) of data scopes and products.","type":"array","items":{"type":"string"}},"consented_accounts":{"description":"An array containing the accounts associated with the Item for which authorizations are granted.","type":"array","items":{"$ref":"#/components/schemas/ConsentedAccount"}}}},"ConsentEventInitiator":{"type":"string","description":"The entity that initiated collection of consent.","enum":["PLAID","DATA_PROVIDER","CUSTOMER","END_USER"]},"ConsentEventType":{"type":"string","description":"A broad categorization of the consent event.","enum":["CONSENT_GRANTED","CONSENT_REVOKED","CONSENT_UPDATED"]},"ConsentEventCode":{"type":"string","description":"Codes describing the object of a consent event.","enum":["USER_AGREEMENT","USE_CASES","DATA_SCOPES","ACCOUNT_SCOPES","REVOCATION"]},"ConsentedAccount":{"type":"object","additionalProperties":true,"description":"A financial institution account.","properties":{"account_id":{"type":"string","description":"Plaid's unique identifier for the account. Like all Plaid identifiers, the `account_id` is case sensitive."},"mask":{"type":"string","description":"The last 2-4 alphanumeric characters of an account's official account number"},"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself"},"official_name":{"type":"string","description":"The official name of the account as given by the financial institution"},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"}}},"Activity":{"description":"Describes a consent activity.","type":"object","properties":{"activity":{"$ref":"#/components/schemas/ActivityType"},"initiated_date":{"type":"string","format":"date","description":"The date this activity was initiated [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format in UTC.","examples":["2020-01-01"]},"id":{"type":"string","description":"A unique identifier for the activity"},"initiator":{"type":"string","description":"Application ID of the client who initiated the activity."},"state":{"$ref":"#/components/schemas/ActionState"},"target_application_id":{"$ref":"#/components/schemas/ApplicationID"},"scopes":{"$ref":"#/components/schemas/ScopesNullable"},"authentication":{"$ref":"#/components/schemas/ItemCreateAuthentication"}},"required":["activity","initiated_date","id","initiator","state"]},"ActivityType":{"type":"string","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"]},"ActionState":{"type":"string","description":"Enum representing the state of the action/activity.","enum":["UNKNOWN","ATTEMPT","SUCCESS","FAILURE","SKIPPED"]},"ItemCreateAuthentication":{"type":"string","description":"Enum representing the entity authenticating the user.","enum":["UNKNOWN","DATA_PARTNER","PLAID"]},"SandboxIncomeFireWebhookRequest":{"title":"SandboxIncomeFireWebhookRequest","type":"object","description":"SandboxIncomeFireWebhookRequest defines the request schema for `/sandbox/income/fire_webhook`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"item_id":{"type":"string","description":"The Item ID associated with the verification."},"user_id":{"type":"string","description":"The user identifier to include in the test webhook. For `USER_INCOME_VERIFICATION` and `USER_INCOME_VERIFICATION_RISK_SIGNALS`, use the `user_id` returned by `/user/create`, which begins with `usr_`. For `INCOME_VERIFICATION` and `INCOME_VERIFICATION_RISK_SIGNALS`, use the legacy webhook `user_id` associated with the user token."},"webhook":{"type":"string","description":"The URL to which the webhook should be sent.","format":"url"},"verification_status":{"type":"string","enum":["VERIFICATION_STATUS_PROCESSING_COMPLETE","VERIFICATION_STATUS_PROCESSING_FAILED","VERIFICATION_STATUS_DOCUMENT_REJECTED"],"description":"Required when `webhook_code` is `INCOME_VERIFICATION` or `USER_INCOME_VERIFICATION`.\n\n`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.\n\n`VERIFICATION_STATUS_PROCESSING_FAILED`: A failure occurred when attempting to process the verification documentation.\n\n`VERIFICATION_STATUS_DOCUMENT_REJECTED`: The documentation was rejected."},"webhook_code":{"$ref":"#/components/schemas/SandboxIncomeWebhookFireRequestWebhookCode"}},"required":["item_id","webhook","webhook_code"]},"SandboxIncomeWebhookFireRequestWebhookCode":{"type":"string","enum":["INCOME_VERIFICATION","USER_INCOME_VERIFICATION","INCOME_VERIFICATION_RISK_SIGNALS","USER_INCOME_VERIFICATION_RISK_SIGNALS"],"description":"The webhook codes that can be fired by this test endpoint."},"SandboxIncomeFireWebhookResponse":{"title":"SandboxIncomeFireWebhookResponse","additionalProperties":true,"type":"object","description":"SandboxIncomeFireWebhookResponse defines the response schema for `/sandbox/income/fire_webhook`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxBankIncomeFireWebhookRequest":{"title":"SandboxBankIncomeFireWebhookRequest","type":"object","description":"SandboxBankIncomeFireWebhookRequest defines the request schema for `/sandbox/bank_income/fire_webhook`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"webhook_override":{"type":"string","description":"The URL to which the webhook should be sent. If provided, this will override the URL set in the dashboard.","format":"url"},"webhook_code":{"$ref":"#/components/schemas/SandboxBankIncomeWebhookFireRequestWebhookCode"},"webhook_fields":{"$ref":"#/components/schemas/SandboxBankIncomeWebhookFireRequestWebhookFields"}},"required":["webhook_code","webhook_fields"]},"SandboxBankIncomeWebhookFireRequestWebhookCode":{"type":"string","enum":["BANK_INCOME_REFRESH_UPDATE","BANK_INCOME_REFRESH_COMPLETE"],"description":"The webhook codes this endpoint can be used to test"},"SandboxBankIncomeWebhookFireRequestWebhookFields":{"type":"object","properties":{"user_id":{"type":"string","description":"The user id to be returned in INCOME webhooks"},"bank_income_refresh_complete_result":{"$ref":"#/components/schemas/BankIncomeRefreshCompleteResult"}},"description":"Optional fields which will be populated in the simulated webhook","required":["user_id"]},"SandboxBankIncomeFireWebhookResponse":{"title":"SandboxBankIncomeFireWebhookResponse","additionalProperties":true,"type":"object","description":"SandboxBankIncomeFireWebhookResponse defines the response schema for `/sandbox/bank_income/fire_webhook`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxCraCashflowUpdatesUpdateRequest":{"title":"SandboxCraCashflowUpdatesUpdateRequest","type":"object","description":"SandboxCraCashflowUpdatesUpdateRequest defines the request schema for `/sandbox/cra/cashflow_updates/update`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"webhook_codes":{"type":["array","null"],"description":"Webhook codes corresponding to the Cash Flow Updates events to be simulated.","items":{"$ref":"#/components/schemas/CashFlowUpdatesEventWebhookCodes"}},"user_id":{"$ref":"#/components/schemas/NewUserID"}}},"SandboxCraCashflowUpdatesUpdateResponse":{"title":"SandboxCraCashflowUpdatesUpdateResponse","additionalProperties":true,"type":"object","description":"SandboxCraCashflowUpdatesUpdateResponse defines the response schema for `/sandbox/cra/cashflow_updates/update`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SandboxCraServicingSimulateRequest":{"title":"SandboxCraServicingSimulateRequest","type":"object","description":"SandboxCraServicingSimulateRequest defines the request schema for `/sandbox/cra/servicing/simulate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"subscription_id":{"type":"string","description":"The Servicing subscription to simulate an update for. Upon calling this endpoint, Plaid will simulate a report creation for all products referenced by this subscription ID."},"user_id":{"type":"string","x-hidden-from-docs":true,"description":"The user to simulate an update for, in place of a `subscription_id`."},"options":{"$ref":"#/components/schemas/SandboxCraServicingSimulateRequestOptions"}},"required":["subscription_id"]},"SandboxCraServicingSimulateRequestOptions":{"title":"SandboxCraServicingSimulateRequestOptions","type":["object","null"],"description":"Optional parameters controlling the simulated report.","properties":{"transactions_end_date":{"type":["string","null"],"format":"date","description":"The end of the synthesized transaction window (\"the present\"), as a YYYY-MM-DD date. Accepts past or future dates up to 180 days ahead; defaults to today. A later value appends newer transactions without churning earlier ones."},"error_webhook_code":{"$ref":"#/components/schemas/SandboxCraServicingSimulateErrorWebhookCode"}}},"SandboxCraServicingSimulateErrorWebhookCode":{"type":["string","null"],"enum":["USER_NOT_FOUND","PRODUCT_GENERATION_FAILED","UNMATCH","DATA_UNAVAILABLE","NO_ELIGIBLE_ITEMS_ON_PROFILE"],"description":"If set, skip report generation and instead fire a `CRA_REPORT_UPDATED` error webhook carrying this code. The accepted values depend on the `scope` of the subscription being simulated, since a simulation can only fire a webhook that scope would send in Production. A `CLIENT_USER` subscription accepts `USER_NOT_FOUND` and `PRODUCT_GENERATION_FAILED`; a `PLAID_NETWORK` subscription accepts `UNMATCH`, `DATA_UNAVAILABLE`, `NO_ELIGIBLE_ITEMS_ON_PROFILE`, and `PRODUCT_GENERATION_FAILED`. Supplying a code that does not match the subscription's scope returns an `INVALID_FIELD` error."},"SandboxCraServicingSimulateResponse":{"title":"SandboxCraServicingSimulateResponse","additionalProperties":true,"type":"object","description":"SandboxCraServicingSimulateResponse defines the response schema for `/sandbox/cra/servicing/simulate`","properties":{"report_id":{"type":["string","null"],"description":"The `cra-report` token for the seeded snapshot. Pin as `report_id` on `/cra/check_report/base_report/get` or `/cra/check_report/income_insights/get`. Omitted when `error_webhook_code` was used."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ItemApplicationListUserAuth":{"type":["object","null"],"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.","properties":{"user_id":{"type":["string","null"],"description":"Account username."},"fi_username_hash":{"type":["string","null"],"description":"Account username hashed by FI."}}},"RiskReason":{"title":"RiskReason","deprecated":true,"type":"object","description":"This object includes a code and description to describe medium risk transactions and above on `/accounts/balance/get`.","additionalProperties":true,"properties":{"code":{"description":"A code that represents the type of risk associated with the proposed transaction.\n\nThe codes are from PL01 to PL08 and from BK01 to BK07. For a full listing of risk reason codes, see [Risk codes](https://plaid.com/docs/balance/balance-plus/#risk-codes).","type":"string"},"description":{"description":"A human-readable description explaining the risk code associated with the proposed transaction and some recommended actions. This field is subject to change; any programmatic logic should be based on the `code` field instead.","type":"string"}},"required":["code","description"]},"TransferAuthorizationPaymentRisk":{"title":"TransferAuthorizationPaymentRisk","description":"This object includes the scores and risk level. This response is offered as an add-on to `/transfer/authorization/create`. To request access to these fields, please contact your Plaid account manager.","type":["object","null"],"additionalProperties":true,"x-hidden-from-docs":true,"deprecated":true,"properties":{"bank_initiated_return_score":{"description":"A score from 1-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood.\n\nThe score evaluates the transaction return risk because an account is overdrawn or because an ineligible account is used and covers return codes: \"R01\", \"R02\", \"R03\", \"R04\", \"R06\", \"R08\",  \"R09\", \"R13\",\n\"R16\", \"R17\", \"R20\", \"R23\". These returns have a turnaround time of 2 banking days.","type":["integer","null"],"minimum":1,"maximum":99},"customer_initiated_return_score":{"description":"A score from 1-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood.\n\nThe score evaluates the transaction return risk of an unauthorized debit and covers return codes: \"R05\", \"R07\", \"R10\", \"R11\", \"R29\".\nThese returns typically have a return time frame of up to 60 calendar days. During this period, customers of financial institutions can dispute a transaction as unauthorized.","type":["integer","null"],"minimum":1,"maximum":99},"risk_level":{"$ref":"#/components/schemas/TransferAuthorizationRiskLevel"},"warnings":{"type":"array","description":"If bank information was not available to be used, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of scores in the case of missing bank data, file a support ticket or contact your Plaid account manager.","items":{"$ref":"#/components/schemas/SignalWarning"}}},"required":["bank_initiated_return_score","customer_initiated_return_score","risk_level","warnings"]},"TransferAuthorizationRiskLevel":{"type":["string","null"],"description":"Comprises five risk categories (high risk, medium-high risk, medium risk, medium-low risk, low risk) based on the probability of return","enum":["HIGH_RISK","MEDIUM_HIGH_RISK","MEDIUM_RISK","MEDIUM_LOW_RISK","LOW_RISK"]},"SandboxOauthSelectAccountsRequest":{"title":"SandboxOauthSelectAccountsRequest","type":"object","description":"Defines the request schema for `/sandbox/oauth/select_accounts`","properties":{"oauth_state_id":{"type":"string"},"accounts":{"type":"array","items":{"type":"string"}}},"required":["oauth_state_id","accounts"]},"SandboxOauthSelectAccountsResponse":{"title":"SandboxOauthSelectAccountsResponse","additionalProperties":true,"type":"object","description":"Defines the response schema for `/sandbox/oauth/select_accounts`"},"NewAccountsAvailableWebhook":{"title":"NewAccountsAvailableWebhook","type":"object","description":"Fired when Plaid detects a new account. Upon receiving this webhook, you can prompt your users to share new accounts with you through [update mode](https://plaid.com/docs/link/update-mode/#using-update-mode-to-request-new-accounts) (US/CA only). If the end user has opted not to share new accounts with Plaid via their institution's OAuth settings, Plaid will not detect new accounts and this webhook will not fire. For end user accounts in the EU and UK, upon receiving this webhook, you can prompt your user to re-link their account and then delete the old Item via `/item/remove`.","x-examples":{"example-1":{"webhook_type":"ITEM","webhook_code":"NEW_ACCOUNTS_AVAILABLE","item_id":"gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ","user_id":"usr_9nSp2KuZ2x4JDw","error":null,"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`ITEM`"},"webhook_code":{"type":"string","description":"`NEW_ACCOUNTS_AVAILABLE`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"error":{"$ref":"#/components/schemas/PlaidError"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}}},"WalletCreateRequest":{"type":"object","description":"WalletCreateRequest defines the request schema for `/wallet/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"iso_currency_code":{"$ref":"#/components/schemas/WalletISOCurrencyCode"}},"required":["iso_currency_code"]},"WalletCreateResponse":{"type":"object","additionalProperties":true,"description":"WalletCreateResponse defines the response schema for `/wallet/create`","allOf":[{"$ref":"#/components/schemas/Wallet"},{"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}}}],"required":["wallet_id","balance","request_id"]},"WalletGetRequest":{"type":"object","description":"WalletGetRequest defines the request schema for `/wallet/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"wallet_id":{"type":"string","description":"The ID of the e-wallet","minLength":1}},"required":["wallet_id"]},"WalletGetResponse":{"type":"object","additionalProperties":true,"description":"WalletGetResponse defines the response schema for `/wallet/get`","allOf":[{"$ref":"#/components/schemas/Wallet"},{"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}}}],"required":["wallet_id","balance","request_id"]},"WalletListRequest":{"type":"object","description":"WalletListRequest defines the request schema for `/wallet/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"iso_currency_code":{"$ref":"#/components/schemas/WalletISOCurrencyCode"},"cursor":{"type":"string","maxLength":1024,"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."},"count":{"type":"integer","description":"The number of e-wallets to fetch","minimum":1,"maximum":20,"default":10}}},"WalletListResponse":{"type":"object","additionalProperties":true,"description":"WalletListResponse defines the response schema for `/wallet/list`","properties":{"wallets":{"type":"array","description":"An array of e-wallets","items":{"$ref":"#/components/schemas/Wallet"}},"next_cursor":{"type":"string","description":"Cursor used for fetching e-wallets created before the latest e-wallet provided in this response"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["wallets","request_id"]},"Wallet":{"title":"Wallet","type":"object","additionalProperties":true,"description":"An object representing the e-wallet","properties":{"wallet_id":{"type":"string","description":"A unique ID identifying the e-wallet"},"balance":{"$ref":"#/components/schemas/WalletBalance"},"numbers":{"$ref":"#/components/schemas/WalletNumbers"},"recipient_id":{"type":"string","description":"The ID of the recipient that corresponds to the e-wallet account numbers"},"status":{"$ref":"#/components/schemas/WalletStatus"}},"required":["wallet_id","balance","numbers","status"]},"WalletNumbers":{"title":"WalletNumbers","type":"object","additionalProperties":true,"description":"An object representing the e-wallet account numbers","properties":{"bacs":{"$ref":"#/components/schemas/RecipientBACS"},"international":{"$ref":"#/components/schemas/NumbersInternationalIBAN"}}},"WalletBalance":{"title":"WalletBalance","type":"object","additionalProperties":true,"description":"An object representing the e-wallet balance","properties":{"iso_currency_code":{"type":"string","description":"The ISO-4217 currency code of the balance"},"current":{"type":"number","format":"double","description":"The total amount of funds in the account"},"available":{"type":"number","format":"double","description":"The total amount of funds in the account after subtracting pending debit transaction amounts"}},"required":["iso_currency_code","current","available"]},"WalletISOCurrencyCode":{"type":"string","title":"ISO Currency Code","enum":["GBP","EUR"],"description":"An ISO-4217 currency code, used with e-wallets and transactions.","minLength":3,"maxLength":3},"WalletStatus":{"type":"string","enum":["UNKNOWN","ACTIVE","CLOSED","BLOCKED"],"description":"The status of the wallet.\n\n`UNKNOWN`: The wallet status is unknown.\n\n`ACTIVE`: The wallet is active and ready to send money to and receive money from.\n\n`CLOSED`: The wallet is closed. Transactions to or from this wallet will fail.\n\n`BLOCKED`: The wallet is blocked by the payment provider. Transactions to or from this wallet will fail."},"WalletTransactionExecuteRequest":{"type":"object","description":"WalletTransactionExecuteRequest defines the request schema for `/wallet/transaction/execute`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"idempotency_key":{"$ref":"#/components/schemas/WalletTransactionIdempotencyKey"},"wallet_id":{"type":"string","description":"The ID of the e-wallet to debit from","minLength":1},"counterparty":{"$ref":"#/components/schemas/WalletTransactionCounterparty"},"amount":{"$ref":"#/components/schemas/WalletTransactionAmount"},"user_id":{"type":"string","description":"The `user_id` of the end user the transaction is for, as returned by [`/user/create`](https://plaid.com/docs/api/users/#usercreate). The user must have a `name` and either an email address or a phone number. Required for new integrations."},"reference":{"type":"string","maxLength":18,"minLength":6,"description":"A reference for the transaction. This must be a string of 6 to 18 characters containing only letters, numbers, and spaces.\nEnsure that the `reference` field is unique for each transaction."},"originating_fund_source":{"$ref":"#/components/schemas/OriginatingFundSource"}},"required":["idempotency_key","wallet_id","counterparty","amount","reference"]},"WalletTransactionIdempotencyKey":{"title":"WalletTransactionIdempotencyKey","type":"string","maxLength":128,"minLength":1,"description":"A random key provided by the client, per unique wallet transaction. Maximum of 128 characters.\n\nThe 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 48 hours of the first request, from being processed."},"WalletTransactionCounterparty":{"title":"WalletTransactionCounterparty","type":"object","additionalProperties":true,"description":"An object representing the e-wallet transaction's counterparty","properties":{"name":{"type":"string","description":"The name of the counterparty","minLength":1},"numbers":{"$ref":"#/components/schemas/WalletTransactionCounterpartyNumbers"},"address":{"$ref":"#/components/schemas/PaymentInitiationAddress"},"date_of_birth":{"type":["string","null"],"format":"date","description":"The counterparty's birthdate, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format."},"holder_category":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/WalletTransactionCounterpartyHolderCategory"}]},"is_verified":{"x-hidden-from-docs":true,"type":"boolean","description":"Set to `true` if you have already verified that this counterparty owns the account, either through your own checks or through Plaid Auth or Identity. Plaid then skips its payee verification check.\n\nWhether Plaid runs a check is determined by Plaid configuration, so this field can only suppress a check and never request one. Only applies to GBP payouts.\n\nAccepted on `/wallet/transaction/execute` and not returned on read endpoints."}},"required":["name","numbers"]},"WalletTransactionCounterpartyHolderCategory":{"title":"WalletTransactionCounterpartyHolderCategory","type":"string","description":"Whether the counterparty is a personal or a business account holder. Payee verification schemes match a different set of identifiers for a natural person and a legal entity.\n\n`personal`: the counterparty is an individual.\n\n`business`: the counterparty is a company.\n\nIf this is omitted, a payee verification check on a GBP payout returns `CHECK_NOT_POSSIBLE`. Accepted on `/wallet/transaction/execute` and not returned on read endpoints.","enum":["personal","business"]},"WalletTransactionCounterpartyNumbers":{"title":"WalletTransactionCounterpartyNumbers","additionalProperties":true,"type":"object","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"}}},"WalletTransactionCounterpartyBACS":{"description":"The account number and sort code of the counterparty's account. The account number must be exactly 8 characters.","allOf":[{"$ref":"#/components/schemas/RecipientBACS"},{"type":"object","additionalProperties":true}]},"WalletTransactionCounterpartyInternational":{"description":"International Bank Account Number for a Wallet Transaction","type":["object","null"],"additionalProperties":true,"properties":{"iban":{"$ref":"#/components/schemas/NumbersIBAN"}}},"WalletTransactionAmount":{"title":"WalletTransactionAmount","type":"object","additionalProperties":true,"properties":{"iso_currency_code":{"$ref":"#/components/schemas/WalletISOCurrencyCode"},"value":{"type":"number","format":"double","minimum":0.01,"description":"The amount of the transaction. Must contain at most two digits of precision e.g. `1.23`."}},"required":["iso_currency_code","value"],"description":"The amount and currency of a transaction"},"OriginatingFundSource":{"type":["object","null"],"title":"OriginatingFundSource","description":"The original source of the funds. This field is required by local regulation for certain businesses (e.g. money remittance) to send payouts to recipients in the EU and UK.","required":["full_name","address","account_number","bic"],"properties":{"full_name":{"type":"string","description":"The full name associated with the source of the funds."},"address":{"$ref":"#/components/schemas/PaymentInitiationAddress"},"account_number":{"type":"string","description":"The account number from which the funds are sourced."},"bic":{"type":"string","description":"The Business Identifier Code, also known as SWIFT code, for this bank account.","minLength":8,"maxLength":11}}},"WalletTransactionExecuteResponse":{"type":"object","additionalProperties":true,"description":"WalletTransactionExecuteResponse defines the response schema for `/wallet/transaction/execute`","properties":{"transaction_id":{"type":"string","description":"A unique ID identifying the transaction"},"status":{"$ref":"#/components/schemas/WalletTransactionStatus"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["transaction_id","status","request_id"]},"WalletTransactionRelation":{"title":"WalletTransactionRelation","type":"object","additionalProperties":true,"description":"Transactions are related when they have a logical connection.\n\nFor example, a `PAYOUT` transaction can be returned by the sender, creating a `RETURN` transaction. Each `PAYOUT` transaction can have at most one corresponding `RETURN` transaction in case of reversal.\n\nThese relationships are bi-directional, meaning that both entities have references to each other. For instance, when a transaction of type RETURN occurs, it is linked to the original transaction being returned. Likewise, the original transaction has a reference back to the RETURN transaction that represents the return.\n\nThis field is only populated for transactions of type `RETURN`, `FUNDS_SWEEP`, `REFUND` and `PAYOUT`.\n\nThe relationship between a `PIS_PAY_IN` payment and its corresponding `REFUND` transactions is only available through the `refund_ids` property in the payment object. See [`/payment_initiation/payment/get`](https://plaid.com/docs/api/products/payment-initiation/#payment_initiation-payment-get-response-refund-ids).","properties":{"id":{"type":"string","description":"The ID of the related transaction."},"type":{"type":"string","description":"The type of the transaction.","enum":["PAYOUT","RETURN","REFUND","FUNDS_SWEEP"]}}},"WalletTransactionStatus":{"type":"string","enum":["AUTHORISING","INITIATED","EXECUTED","SETTLED","BLOCKED","FAILED"],"description":"The status of the transaction.\n\n`AUTHORISING`: The transaction is being processed for validation and compliance.\n\n`INITIATED`: The transaction has been initiated and is currently being processed.\n\n`EXECUTED`: The transaction has been successfully executed and is considered complete. This is only applicable for debit transactions.\n\n`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.\n\n`FAILED`: The transaction failed to process successfully. This is a terminal status.\n\n`BLOCKED`: The transaction has been blocked for violating compliance rules. This is a terminal status."},"WalletTransactionFailureReason":{"type":["string","null"],"description":"The error code of a failed transaction. Error codes include:\n\n`EXTERNAL_SYSTEM`: The transaction was declined by an external system.\n\n`EXPIRED`: The transaction request has expired.\n\n`CANCELLED`: The transaction request was rescinded.\n\n`INVALID`: The transaction did not meet certain criteria, such as an inactive account or no valid counterparty, etc.\n\n`ACCOUNT_INVALID`: The transaction could not be processed because the wallet account is invalid or inactive.\n\n`AUTHENTICATION_FAILED`: The transaction could not be processed because authentication with the wallet provider failed.\n\n`UNKNOWN`: The transaction was unsuccessful, but the exact cause is unknown.","enum":["EXTERNAL_SYSTEM","EXPIRED","CANCELLED","INVALID","ACCOUNT_INVALID","AUTHENTICATION_FAILED","UNKNOWN"]},"WalletTransactionPayeeVerificationStatus":{"type":["string","null"],"description":"Result of payee verification check for EUR and GBP payouts. Payee verification checks whether the payee name provided matches the account holder name at the destination institution.\n\n`FULL_MATCH`: The payee name fully matches the account holder.\n\n`PARTIAL_MATCH`: The payee name partially matches the account holder.\n\n`NO_MATCH`: The payee name does not match the account holder.\n\n`ERROR`: An error occurred during payee verification.\n\n`CHECK_NOT_POSSIBLE`: Payee verification could not be performed.\n\nThis field is only populated for applicable EUR and GBP payout transactions and will be `null` for other transaction types.","enum":["FULL_MATCH","PARTIAL_MATCH","NO_MATCH","ERROR","CHECK_NOT_POSSIBLE"]},"WalletTransactionGetRequest":{"type":"object","description":"WalletTransactionGetRequest defines the request schema for `/wallet/transaction/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"transaction_id":{"type":"string","description":"The ID of the transaction to fetch","minLength":1}},"required":["transaction_id"]},"WalletTransactionGetResponse":{"title":"WalletTransactionGetResponse","type":"object","additionalProperties":true,"description":"WalletTransactionGetResponse defines the response schema for `/wallet/transaction/get`","allOf":[{"$ref":"#/components/schemas/WalletTransaction"},{"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}}}],"required":["transaction_id","reference","type","amount","counterparty","status","created_at","request_id"]},"WalletTransactionListRequest":{"type":"object","description":"WalletTransactionListRequest defines the request schema for `/wallet/transaction/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"wallet_id":{"type":"string","description":"The ID of the e-wallet to fetch transactions from","minLength":1},"cursor":{"type":"string","maxLength":256,"description":"A value representing the latest transaction to be included in the response. Set this from `next_cursor` received in the previous `/wallet/transaction/list` request. If provided, the response will only contain that transaction and transactions created before it. If omitted, the response will contain transactions starting from the most recent, and in descending order by the `created_at` time."},"count":{"type":"integer","description":"The number of transactions to fetch","minimum":1,"maximum":200,"default":10},"options":{"$ref":"#/components/schemas/WalletTransactionListRequestOptions"}},"required":["wallet_id"]},"WalletTransactionsListRequest":{"type":"object","description":"WalletTransactionListRequest defines the request schema for `/wallet/transaction/list`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"wallet_id":{"type":"string","description":"The ID of the e-wallet to fetch transactions from","minLength":1},"cursor":{"type":"string","maxLength":256,"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."},"count":{"type":"integer","description":"The number of transactions to fetch","minimum":1,"maximum":200,"default":10},"options":{"$ref":"#/components/schemas/WalletTransactionListRequestOptions"}},"required":["wallet_id"]},"WalletTransactionListRequestOptions":{"type":["object","null"],"description":"Additional wallet transaction options","properties":{"start_time":{"type":"string","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"},"end_time":{"type":"string","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"}}},"WalletTransactionListResponse":{"type":"object","additionalProperties":true,"description":"WalletTransactionListResponse defines the response schema for `/wallet/transaction/list`","properties":{"transactions":{"type":"array","description":"An array of transactions of an e-wallet, associated with the given `wallet_id`","items":{"$ref":"#/components/schemas/WalletTransaction"}},"next_cursor":{"type":"string","description":"The value that, when used as the optional `cursor` parameter to `/wallet/transaction/list`, will return the corresponding transaction as its first entry."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["transactions","request_id"]},"WalletTransaction":{"title":"WalletTransaction","type":"object","additionalProperties":true,"properties":{"transaction_id":{"type":"string","description":"A unique ID identifying the transaction"},"wallet_id":{"type":"string","description":"The ID of the e-wallet that this transaction is associated with."},"reference":{"type":"string","description":"A reference for the transaction"},"type":{"type":"string","enum":["BANK_TRANSFER","PAYOUT","PIS_PAY_IN","REFUND","FUNDS_SWEEP","RETURN","RECALL","ACCOUNT_FUNDING","AUTO_REFUND","TRANSFER_OUT"],"description":"The type of the transaction. The supported transaction types that are returned are:\n`BANK_TRANSFER:` a transaction which credits an e-wallet through an external bank transfer.\n\n`PAYOUT:` a transaction which debits an e-wallet by disbursing funds to a counterparty.\n\n`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/).\n\n`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/).\n\n`FUNDS_SWEEP`: an automated transaction which debits funds from an e-wallet to a designated client-owned account.\n\n`RETURN`: an automated transaction where a debit transaction was reversed and money moved back to originating account.\n\n`RECALL`: a transaction where the sending bank has requested the return of funds due to a fraud claim, technical error, or other issue associated with the payment.\n\n`ACCOUNT_FUNDING`: an incoming transfer from an allowlisted account. Not automatically refunded.\n\n`AUTO_REFUND`: an outgoing refund automatically initiated by Plaid in response to an unexpected `BANK_TRANSFER`.\n\n`TRANSFER_OUT`: a transaction that debits an e-wallet and cannot be classified under another category, typically initiated by a non-Plaid flow due to technical errors, FPS timeouts, or other payment-related issues."},"scheme":{"$ref":"#/components/schemas/WalletPaymentScheme"},"amount":{"$ref":"#/components/schemas/WalletTransactionAmount"},"counterparty":{"$ref":"#/components/schemas/WalletTransactionCounterparty"},"status":{"$ref":"#/components/schemas/WalletTransactionStatus"},"created_at":{"type":"string","description":"Timestamp when the transaction was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.","format":"date-time"},"last_status_update":{"format":"date-time","type":"string","description":"The date and time of the last time the `status` was updated, in ISO 8601 format"},"payee_verification_status":{"$ref":"#/components/schemas/WalletTransactionPayeeVerificationStatus"},"payment_id":{"type":["string","null"],"description":"The payment id that this transaction is associated with, if any. This is present only for transaction types `PIS_PAY_IN` and `REFUND`."},"failure_reason":{"$ref":"#/components/schemas/WalletTransactionFailureReason"},"error":{"$ref":"#/components/schemas/PlaidError"},"related_transactions":{"type":"array","description":"A list of wallet transactions that this transaction is associated with, if any.","items":{"$ref":"#/components/schemas/WalletTransactionRelation"}}},"required":["transaction_id","wallet_id","reference","type","amount","counterparty","status","created_at","last_status_update"],"description":"The transaction details"},"TransactionsEnrichRequest":{"type":"object","description":"TransactionsEnrichRequest defines the request schema for `/transactions/enrich`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"account_type":{"type":"string","description":"The account type for the requested transactions (either `depository` or `credit`)."},"transactions":{"type":"array","description":"An array of transaction objects to be enriched by Plaid. Maximum of 100 transactions per request.","items":{"$ref":"#/components/schemas/ClientProvidedTransaction"}},"options":{"$ref":"#/components/schemas/TransactionsEnrichRequestOptions"}},"required":["account_type","transactions"]},"TransactionsEnrichRequestOptions":{"type":"object","description":"An optional object to be used with the request.","properties":{"include_legacy_category":{"type":"boolean","default":false,"description":"Include `legacy_category` and `legacy_category_id` in the response (in addition to the default `personal_finance_category`).\n\nCategories 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)."},"personal_finance_category_version":{"$ref":"#/components/schemas/PersonalFinanceCategoryVersion"}}},"ClientProvidedTransaction":{"title":"ClientProvidedTransaction","type":"object","description":"A client-provided transaction for Plaid to enrich.","additionalProperties":true,"properties":{"id":{"type":"string","description":"A unique ID for the transaction used to help you tie data back to your systems."},"user_id":{"x-hidden-from-docs":true,"type":"string","description":"The Plaid generated ID that identifies the end user for whom you would like to enrich transactions."},"client_user_id":{"x-hidden-from-docs":true,"type":"string","description":"A unique user id used to group transactions for a given user, as a unique identifier from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`."},"client_account_id":{"x-hidden-from-docs":true,"type":"string","description":"A unique account id used to group transactions for a given account, as a unique identifier from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_account_id`."},"account_type":{"x-hidden-from-docs":true,"type":"string","description":"The account type associated with the transaction. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema)."},"account_subtype":{"x-hidden-from-docs":true,"type":"string","description":"The account subtype associated with the transaction. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema)."},"description":{"type":"string","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."},"amount":{"type":"number","format":"double","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."},"direction":{"$ref":"#/components/schemas/EnrichTransactionDirection"},"iso_currency_code":{"type":"string","description":"The ISO-4217 currency code of the transaction e.g. USD."},"location":{"$ref":"#/components/schemas/ClientProvidedTransactionLocation"},"mcc":{"type":"string","description":"Merchant category codes (MCCs) are four-digit numbers that describe a merchant's primary business activities."},"date_posted":{"type":"string","format":"date","description":"The date the transaction posted, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format."}},"required":["id","description","amount","direction","iso_currency_code"]},"EnrichTransactionDirection":{"title":"EnrichTransactionDirection","type":"string","enum":["INFLOW","OUTFLOW"],"description":"The direction of the transaction from the perspective of the account holder:\n\n`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.)\n\n`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.)"},"ClientProvidedTransactionLocation":{"title":"ClientProvidedTransactionLocation","type":"object","description":"A representation of where a transaction took place.\n\nUse 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.","additionalProperties":true,"properties":{"country":{"type":"string","description":"The country where the transaction occurred, formatted as an ISO 3166-1 alpha-2 country code (\"US\" or \"CA\")."},"region":{"type":"string","description":"The region or state where the transaction occurred, formatted as the official two-letter US state or Canadian province postal code, e.g. \"CT\" or \"QC\"."},"city":{"type":"string","description":"The city where the transaction occurred."},"address":{"type":"string","description":"The street address where the transaction occurred."},"postal_code":{"type":"string","description":"The postal code where the transaction occurred."}}},"TransactionsEnrichResponse":{"type":"object","description":"TransactionsEnrichResponse defines the response schema for `/transactions/enrich`.","x-examples":{},"additionalProperties":true,"properties":{"enriched_transactions":{"type":"array","description":"A list of enriched transactions.","items":{"$ref":"#/components/schemas/ClientProvidedEnrichedTransaction"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["enriched_transactions"]},"ClientProvidedEnrichedTransaction":{"title":"ClientProvidedEnrichedTransaction","type":"object","description":"A client-provided transaction that Plaid has enriched.","x-examples":{},"additionalProperties":true,"properties":{"id":{"type":"string","description":"The unique ID for the transaction as provided by you in the request."},"client_user_id":{"x-hidden-from-docs":true,"type":"string","description":"A unique user id used to group transactions for a given user, as a unique identifier from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`."},"client_account_id":{"x-hidden-from-docs":true,"type":"string","description":"A unique account id used to group transactions for a given account, as a unique identifier from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_account_id`."},"account_type":{"x-hidden-from-docs":true,"type":"string","description":"The account type associated with the transaction. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema)."},"account_subtype":{"x-hidden-from-docs":true,"type":"string","description":"The account subtype associated with the transaction. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema)."},"description":{"type":"string","description":"The raw description of the transaction."},"amount":{"type":"number","format":"double","description":"The absolute value of the transaction (>= 0)"},"direction":{"$ref":"#/components/schemas/EnrichTransactionDirection"},"iso_currency_code":{"type":"string","description":"The ISO-4217 currency code of the transaction e.g. USD."},"enrichments":{"$ref":"#/components/schemas/Enrichments"},"client_customization":{"$ref":"#/components/schemas/ClientCustomization"}},"required":["id","description","amount","iso_currency_code","enrichments"]},"PaymentChannel":{"title":"Transaction Payment Channel","type":"string","enum":["online","in store","other"],"description":"The channel used to make a payment.\n`online:` transactions that took place online.\n\n`in store:` transactions that were made at a physical location.\n\n`other:` transactions that relate to banks, e.g. fees or deposits."},"Enrichments":{"title":"Enrichments","type":"object","description":"A grouping of the Plaid produced transaction enrichment fields.","additionalProperties":true,"properties":{"check_number":{"x-hidden-from-docs":true,"type":["string","null"],"description":"The check number of the transaction. This field is only populated for check transactions."},"counterparties":{"type":"array","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"}},"entity_id":{"type":["string","null"],"description":"A unique, stable, Plaid-generated ID that maps to the primary counterparty."},"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).\n\nWe recommend using the `personal_finance_category` for transaction categorization to obtain the best results.","type":["string","null"]},"legacy_category":{"deprecated":true,"type":["array","null"],"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).\n\nWe recommend using the `personal_finance_category` for transaction categorization to obtain the best results.","items":{"type":"string"}},"location":{"$ref":"#/components/schemas/Location"},"logo_url":{"type":["string","null"],"description":"The URL of a logo associated with this transaction, if available. The logo will always be a 100×100 pixel PNG file."},"merchant_name":{"type":["string","null"],"description":"The name of the primary counterparty, such as the merchant or the financial institution, as extracted by Plaid from the raw description."},"payment_channel":{"$ref":"#/components/schemas/PaymentChannel"},"phone_number":{"type":["string","null"],"description":"The phone number associated with the counterparty in E.164 format. If there is a location match (i.e. a street address is returned in the location object), the phone number will be location specific."},"personal_finance_category":{"$ref":"#/components/schemas/PersonalFinanceCategory"},"personal_finance_category_icon_url":{"type":"string","description":"The URL of an icon associated with the primary personal finance category. The icon will always be a 100×100 pixel PNG file."},"website":{"type":["string","null"],"description":"The website associated with this transaction."}},"required":["payment_channel","location","personal_finance_category","personal_finance_category_icon_url","logo_url","website","counterparties","merchant_name","phone_number"]},"TransactionsUserInsightsGetRequest":{"type":"object","description":"TransactionsUserInsightsGetRequest defines the request schema for `/beta/transactions/user_insights/v1/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_user_id":{"type":"string","description":"A unique client-provided `client_user_id` to retrieve insights for."}},"required":["client_user_id"]},"TransactionsUserInsightsGetResponse":{"type":"object","description":"TransactionsUserInsightsGetResponse defines the response schema for `/beta/transactions/user_insights/v1/get`.","additionalProperties":true,"properties":{"user_data_overview":{"$ref":"#/components/schemas/UserDataOverview"},"counterparty_insights":{"$ref":"#/components/schemas/CounterpartyInsights"},"category_insights":{"$ref":"#/components/schemas/CategoryInsights"},"recurring_transactions":{"$ref":"#/components/schemas/RecurringTransactions"}},"required":["user_data_overview"]},"UserDataOverview":{"type":"object","description":"metadata for the set of insights provided in `TransactionsUserInsightsGetResponse`","additionalProperties":true,"properties":{"transaction_count":{"type":"integer","description":"The total number of transactions."},"oldest_transaction_date":{"type":"string","format":"date","description":"The date of the oldest transaction processed to generate insights."},"newest_transaction_date":{"type":"string","format":"date","description":"The date of the newest transaction processed to generate insights."},"days_available":{"type":"integer","description":"The range of days of transactions available."},"total_outflows":{"type":"number","format":"double","description":"Sum of outflow amounts."},"total_inflows":{"type":"number","format":"double","description":"Sum of inflow amounts."}},"required":["transaction_count","days_available","total_outflows","total_inflows"]},"CounterpartyInsights":{"type":"object","description":"Insights around a user's counterparties","additionalProperties":true,"properties":{"financial_institution_insights":{"type":"array","description":"Insights related to a user's transactions with other financial institutions, including detected account types.","items":{"$ref":"#/components/schemas/FinancialInstitutionInsights"}},"merchant_insights":{"type":"array","description":"Insights about a user's top merchants, ranked by spend.","items":{"$ref":"#/components/schemas/MerchantInsights"}}}},"FinancialInstitutionInsights":{"type":"object","description":"Insights surrounding external financial institution counterparties associated with a user.","properties":{"name":{"type":"string","description":"Name of the financial institution counterparty."},"entity_id":{"type":["string","null"],"description":"A unique, stable, Plaid-generated id that maps to the counterparty."},"website":{"type":["string","null"],"description":"The website associated with the counterparty."},"detected_accounts":{"type":"array","description":"Associated accounts, detected based on the nature of transfers to/from this institution.","items":{"$ref":"#/components/schemas/DetectedAccount"}}},"required":["name","website","detected_accounts"]},"DetectedAccount":{"type":"object","description":"A possible account detected to be associated with a transaction user.","additionalProperties":true,"properties":{"account_type":{"type":["string","null"],"description":"The detected account type (depository, credit, loan, investment etc.)."},"account_subtype":{"type":["string","null"],"description":"The detected subtype of the account, based on the transactions to/from the institution."},"transaction_count":{"type":"integer","description":"The number of transactions associated with this detected account type at this financial institution."},"oldest_transaction_date":{"type":"string","format":"date","description":"The date of the oldest transaction associated with this detected account type at this financial institution."},"newest_transaction_date":{"type":"string","format":"date","description":"The date of the newest transaction associated with this detected account type at this financial institution."},"newest_transaction_amount":{"type":"number","format":"double","description":"Amount of the most recent transaction associated with this detected account type at this financial institution."},"total_outflows":{"type":"number","format":"double","description":"Sum of outflow amounts associated with this detected account type at this financial institution."},"total_inflows":{"type":"number","format":"double","description":"Sum of inflow amounts associated with this detected account type at this financial institution."}},"required":["account_type","account_subtype","transaction_count","total_outflows","total_inflows"]},"MerchantInsights":{"type":"object","description":"Insights into a user's top merchants.","properties":{"name":{"type":"string","description":"The counterparty name."},"entity_id":{"type":["string","null"],"description":"A unique, stable, Plaid-generated id that maps to the merchant."},"website":{"type":["string","null"],"description":"The website associated with the merchant."},"transaction_count":{"type":"integer","description":"The number of transactions associated with merchant of this type."},"personal_finance_category_primary":{"type":["string","null"],"description":"The primary personal finance category associated with this merchant."},"personal_finance_category_detailed":{"type":["string","null"],"description":"The detailed personal finance category associated with this merchant."},"total_outflows":{"type":"number","format":"double","description":"Sum of outflow amounts."},"total_inflows":{"type":"number","format":"double","description":"Sum of inflow amounts."}},"required":["name","website","transaction_count","personal_finance_category_primary","personal_finance_category_detailed","total_outflows","total_inflows"]},"CategoryInsights":{"type":"object","description":"Insights on a user's top personal finance categories.","additionalProperties":true,"properties":{"primary_category_insights":{"type":"array","description":"List of insights of top primary personal finance categories ranked by outflow.","items":{"$ref":"#/components/schemas/CategoryInsightDetails"}},"detailed_category_insights":{"type":"array","description":"List of insights of top detailed personal finance categories ranked by outflow.","items":{"$ref":"#/components/schemas/CategoryInsightDetails"}}}},"CategoryInsightDetails":{"type":"object","description":"Insights object for categories.","additionalProperties":true,"properties":{"name":{"type":"string","description":"Category name."},"transaction_count":{"type":"integer","description":"The number of transactions associated with this category."},"total_outflows":{"type":"number","format":"double","description":"Sum of outflow amounts."},"total_inflows":{"type":"number","format":"double","description":"Sum of inflow amounts."},"top_counterparties":{"type":"array","description":"The most common counterparties associated with this category sorted by outflow.","items":{"type":"string"}}},"required":["name","transaction_count","total_outflows","total_inflows"]},"RecurringTransactions":{"type":"object","description":"Insights object for recurring transactions for `/beta/transactions/user_insights/v1/get` endpoint","additionalProperties":true,"properties":{"inflow_streams":{"type":"array","description":"An array of inflow transaction streams (e.g., income).","items":{"$ref":"#/components/schemas/RecurringInsightsStream"}},"outflow_streams":{"type":"array","description":"An array of outflow transaction streams (e.g., subscriptions, bills, loan payments).","items":{"$ref":"#/components/schemas/RecurringInsightsStream"}}},"required":["inflow_streams","outflow_streams"]},"RecurringInsightsStream":{"type":"object","description":"Insights object for recurring transactions streams.","additionalProperties":true,"properties":{"stream_id":{"type":"string","description":"A unique id for the stream."},"description":{"type":"string","description":"The client-provided raw description of the most recent transaction in the stream."},"merchant_name":{"type":"string","description":"The merchant or primary counterparty associated with the transaction stream."},"oldest_transaction_date":{"type":"string","format":"date","description":"The posted date of the earliest transaction in the stream."},"newest_transaction_date":{"type":"string","format":"date","description":"The posted date of the latest transaction in the stream."},"average_days_apart":{"type":"number","format":"double","description":"The average number of days between each of the recurring transactions."},"frequency":{"$ref":"#/components/schemas/RecurringTransactionFrequency"},"transaction_count":{"type":"integer","description":"The number of transactions in this stream."},"transaction_ids":{"type":"array","description":"An array of Plaid transaction IDs belonging to the stream, sorted by posted date.","items":{"type":"string"}},"average_amount":{"$ref":"#/components/schemas/TransactionStreamAmount"},"newest_transaction_amount":{"$ref":"#/components/schemas/TransactionStreamAmount"},"is_active":{"type":"boolean","description":"Indicates whether the transaction stream is still live."},"status":{"$ref":"#/components/schemas/TransactionStreamStatus"},"personal_finance_category_primary":{"type":"string","description":"The primary category associated with the transaction stream."},"personal_finance_category_detailed":{"type":"string","description":"The detailed category associated with the transaction stream."}},"required":["stream_id","merchant_name","average_days_apart","is_active"]},"BetaCashAdvanceIncomeInsightsV1GetRequest":{"x-hidden-from-docs":true,"type":"object","description":"BetaCashAdvanceIncomeInsightsV1GetRequest defines the request schema for `/beta/cash_advance/income_insights/v1/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["user_id"]},"BetaCashAdvanceIncomeInsightsV1GetResponse":{"x-hidden-from-docs":true,"type":"object","description":"BetaCashAdvanceIncomeInsightsV1GetResponse defines the response schema for `/beta/cash_advance/income_insights/v1/get`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"next_payment_date":{"type":["string","null"],"format":"date","description":"The next payment date of the highest-ranked income stream, in ISO 8601 format (YYYY-MM-DD). `null` if the user has no income streams."},"next_payment_amount":{"type":["number","null"],"format":"double","description":"The historical net monthly income of the highest-ranked income stream. `null` if the user has no income streams."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of `next_payment_amount`. Always `USD` when `next_payment_amount` is set, and `null` otherwise."},"income_streams":{"type":"array","description":"The user's top income streams, ranked by historical net monthly income. Contains at most three streams, and is empty if the user has no income.","items":{"$ref":"#/components/schemas/CashAdvanceIncomeStream"},"maxItems":3}},"required":["request_id","next_payment_date","next_payment_amount","iso_currency_code","income_streams"],"additionalProperties":true},"CashAdvanceIncomeStream":{"x-hidden-from-docs":true,"type":"object","description":"An income stream returned by `/beta/cash_advance/income_insights/v1/get`.","properties":{"provider_name":{"type":["string","null"],"description":"The name of the income provider, such as an employer or benefits agency. `null` if the provider could not be identified."},"category":{"$ref":"#/components/schemas/CashAdvanceIncomeCategory"},"pay_frequency":{"$ref":"#/components/schemas/CashAdvancePayFrequency"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the income stream. Always `USD`."}},"required":["provider_name","category","pay_frequency","iso_currency_code"],"additionalProperties":true},"CashAdvanceIncomeCategory":{"x-hidden-from-docs":true,"type":["object","null"],"description":"The category of an income stream.","properties":{"primary":{"type":["string","null"],"description":"The primary income category, for example `EARNED_INCOME`, `RETIREMENT`, or `BENEFITS`. `null` if the category could not be determined."}},"required":["primary"],"additionalProperties":true},"CashAdvancePayFrequency":{"x-hidden-from-docs":true,"type":["string","null"],"description":"The pay cadence of an income stream. `DYNAMIC` means the income recurs, but not on a regular schedule. `null` if the pay frequency could not be determined.","enum":["WEEKLY","BIWEEKLY","SEMI_MONTHLY","MONTHLY","ANNUALLY","DAILY","DYNAMIC",null]},"BetaEwaReportV1GetRequest":{"x-hidden-from-docs":true,"type":"object","description":"BetaEwaReportV1GetRequest defines the request schema for `/beta/ewa_report/v1/get`","properties":{"access_token":{"$ref":"#/components/schemas/AccessToken"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["access_token"]},"BetaEwaReportV1GetResponse":{"x-hidden-from-docs":true,"type":"object","description":"BetaEwaReportV1GetResponse defines the response schema for `/beta/ewa_report/v1/get`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"ewa_report_id":{"type":"string","description":"Unique identifier for the generated EWA score group."},"generation_time":{"type":"string","format":"date-time","description":"The date and time when `ewa_scores` was generated, in ISO 8601 format (e.g. \"2018-04-12T03:32:11Z\")."},"ewa_scores":{"type":"array","description":"A list of earned wage access (EWA) scoring entries that map potential advance amounts to repayment likelihood scores. The predefined advance amount ranges are `[0, 25)`, `[25, 50)`, `[50, 100)`, `[100, 200)`, `[200, 300)`, `[300, 400)`, and `[400, 500)`.","items":{"$ref":"#/components/schemas/EwaScore"}},"ewa_attributes":{"$ref":"#/components/schemas/EwaAttributes"}},"additionalProperties":true},"BetaIssuesV1GetRequest":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1GetRequest defines the request schema for `/beta/issues/v1/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"issue_id":{"type":"string","description":"The KI- or INC-prefixed identifier of the issue to retrieve."}},"required":["issue_id"]},"BetaIssuesV1GetResponse":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1GetResponse defines the response schema for `/beta/issues/v1/get`.","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/BetaIssuesV1Issue"},{"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}}}],"required":["issue_id","issue_type","severity","institution_id","institution_name","behaviors","issue_error_type","issue_error_code","description","attribution","status","user_guidance","estimated_resolution_time","start_time","end_time","impact","affected_products","resolution_log","request_id"]},"BetaIssuesV1ListRequest":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1ListRequest defines the request schema for `/beta/issues/v1/list`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"institution_id":{"type":"string","description":"The identifier of the institution whose issues should be returned."}},"required":["institution_id"]},"BetaIssuesV1ListResponse":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1ListResponse defines the response schema for `/beta/issues/v1/list`.","additionalProperties":true,"properties":{"issues":{"type":"array","description":"Critical and high-severity issues that are active or were resolved in the past 14 days. An empty list indicates that no matching issues were found.","items":{"$ref":"#/components/schemas/BetaIssuesV1Issue"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["issues","request_id"]},"BetaIssuesV1MatchRequest":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1MatchRequest defines the request schema for `/beta/issues/v1/match`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"identifier_type":{"$ref":"#/components/schemas/BetaIssuesV1MatchIdentifierType"},"identifier":{"type":"string","description":"The Item, request, Link session, or Account identifier to match."}},"required":["identifier_type","identifier"]},"BetaIssuesV1MatchResponse":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1MatchResponse defines the response schema for `/beta/issues/v1/match`.","additionalProperties":true,"properties":{"item_id":{"type":"string","description":"The identifier of the Item used to match issues."},"issues":{"type":"array","description":"Issues matched to the Item. An empty list indicates that no matching issues were found.","items":{"$ref":"#/components/schemas/BetaIssuesV1Issue"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["item_id","issues","request_id"]},"BetaIssuesV1MatchIdentifierType":{"x-hidden-from-docs":true,"type":"string","description":"The type of identifier supplied to `/beta/issues/v1/match`.","enum":["ITEM_ID","REQUEST_ID","LINK_SESSION_ID","ACCOUNT_ID"]},"BetaIssuesV1SubscribeRequest":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1SubscribeRequest defines the request schema for `/beta/issues/v1/subscribe`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"issue_id":{"type":"string","description":"The KI- or INC-prefixed identifier of the issue to subscribe to."},"webhook":{"type":"string","format":"url","description":"The URL that will receive issue resolution webhooks."}},"required":["issue_id","webhook"]},"BetaIssuesV1SubscribeResponse":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1SubscribeResponse defines the response schema for `/beta/issues/v1/subscribe`.","additionalProperties":true,"properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"BetaIssuesV1UnsubscribeRequest":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1UnsubscribeRequest defines the request schema for `/beta/issues/v1/unsubscribe`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"issue_id":{"type":"string","description":"The customer-visible KI- or INC-prefixed identifier of the issue to unsubscribe from."}},"required":["issue_id"]},"BetaIssuesV1UnsubscribeResponse":{"x-hidden-from-docs":true,"type":"object","description":"BetaIssuesV1UnsubscribeResponse defines the response schema for `/beta/issues/v1/unsubscribe`.","additionalProperties":true,"properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"BetaIssuesV1Issue":{"x-hidden-from-docs":true,"type":"object","description":"A customer-facing institution issue.","additionalProperties":true,"properties":{"issue_id":{"type":"string","description":"The customer-visible identifier of the issue."},"issue_type":{"$ref":"#/components/schemas/BetaIssuesV1IssueType"},"severity":{"$ref":"#/components/schemas/BetaIssuesV1IssueSeverity"},"institution_id":{"type":"string","description":"The identifier of the institution affected by the issue."},"institution_name":{"type":"string","description":"The name of the institution affected by the issue."},"behaviors":{"type":"array","description":"The customer-visible effects of the issue.","items":{"$ref":"#/components/schemas/BetaIssuesV1IssueBehavior"}},"issue_error_type":{"type":["string","null"],"description":"The API error type associated with the issue if available. Mirrors the `error_type` field on `PlaidError` returned on error responses and is safe for programmatic use. Always null or non-null together with `issue_error_code`.","examples":["INSTITUTION_ERROR"]},"issue_error_code":{"type":["string","null"],"description":"The API error code associated with the issue if available. Always null or non-null together with `issue_error_type`.","examples":["INSTITUTION_NOT_RESPONDING"]},"description":{"type":"string","description":"A customer-facing explanation of the issue."},"attribution":{"$ref":"#/components/schemas/BetaIssuesV1IssueAttribution"},"status":{"$ref":"#/components/schemas/BetaIssuesV1IssueStatus"},"user_guidance":{"type":["string","null"],"description":"Guidance for an end user affected by the issue, or null when no guidance is available."},"estimated_resolution_time":{"type":["string","null"],"format":"date-time","description":"The estimated resolution time, or null when no estimate is available."},"start_time":{"type":["string","null"],"format":"date-time","description":"The time the issue began, or null when it is unknown. Only populated for incidents."},"end_time":{"type":["string","null"],"format":"date-time","description":"The time the issue ended, or null while it remains active."},"impact":{"$ref":"#/components/schemas/BetaIssuesV1IssueImpact"},"affected_products":{"type":"array","description":"The Plaid products affected by the issue.","items":{"$ref":"#/components/schemas/Products"}},"resolution_log":{"type":"array","description":"Resolution events recorded for the issue.","items":{"$ref":"#/components/schemas/BetaIssuesV1IssueResolutionEvent"}}},"required":["issue_id","issue_type","severity","institution_id","institution_name","behaviors","issue_error_type","issue_error_code","description","attribution","status","user_guidance","estimated_resolution_time","start_time","end_time","impact","affected_products","resolution_log"]},"BetaIssuesV1IssueType":{"x-hidden-from-docs":true,"type":"string","description":"The customer-facing category of an issue.","enum":["ERROR"]},"BetaIssuesV1IssueSeverity":{"x-hidden-from-docs":true,"type":"string","description":"The customer-facing severity of an issue.","enum":["CRITICAL","HIGH","MEDIUM","LOW"]},"BetaIssuesV1IssueBehavior":{"x-hidden-from-docs":true,"type":"string","description":"A customer-visible effect of an issue.","enum":["NEW_CONNECTIONS_CANNOT_BE_ESTABLISHED","EXISTING_CONNECTIONS_WILL_NOT_RECEIVE_UPDATES","EXISTING_CONNECTIONS_WILL_BE_DISCONNECTED"]},"BetaIssuesV1IssueAttribution":{"x-hidden-from-docs":true,"type":"string","description":"The party responsible for resolving an issue.","enum":["USER","PLAID","DATA_PARTNER"]},"BetaIssuesV1IssueStatus":{"x-hidden-from-docs":true,"type":"string","description":"The customer-facing resolution state of an issue.","enum":["USER_ACTION_REQUIRED","BACKLOGGED","LIKELY_TO_BE_PRIORITIZED","IN_PROGRESS","RESOLVED","PENDING_NOTIFICATION","DATA_PARTNER_NOTIFIED","DATA_PARTNER_FIX_IN_PROGRESS"]},"BetaIssuesV1IssueImpact":{"x-hidden-from-docs":true,"type":["object","null"],"description":"The client-specific impact of an error issue.","properties":{"affected_new_item_count":{"type":"integer"},"affected_existing_item_count":{"type":"integer"}},"required":["affected_new_item_count","affected_existing_item_count"]},"BetaIssuesV1IssueResolutionEvent":{"x-hidden-from-docs":true,"type":"object","description":"A recorded reduction in the impact of an issue.","properties":{"resolution_time":{"type":"string","format":"date-time"},"type":{"$ref":"#/components/schemas/BetaIssuesV1IssueResolutionType"}},"required":["resolution_time","type"]},"BetaIssuesV1IssueResolutionType":{"x-hidden-from-docs":true,"type":"string","description":"How an issue was considered resolved. `MANUAL_RESOLUTION` indicates Plaid's engineering team has reviewed the issue and mitigated its impact. Issues that are manually resolved may still have a small number of occurrences. `AUTOMATED_RESOLUTION` indicates the error has not recently occurred and was automatically closed.","enum":["MANUAL_RESOLUTION","AUTOMATED_RESOLUTION"]},"EwaAttributes":{"x-hidden-from-docs":true,"type":["object","null"],"additionalProperties":{"type":["number","null"]},"description":"A set of attributes providing context about the factors that contributed to the EWA scores. Each key is the attribute name and the value is its numeric score, or null if the attribute could not be computed."},"EwaScore":{"x-hidden-from-docs":true,"type":"object","description":"EwaScore represents an earned wage access score for a specific advance amount range.","properties":{"lowest_amount":{"type":"number","format":"float","description":"Float value representing the lower bound (inclusive) of the advance amount range associated with a specific EWA score."},"highest_amount":{"type":"number","format":"float","description":"Float value representing the upper bound (exclusive) of the advance amount range associated with a specific EWA score."},"score":{"type":"integer","description":"EWA score for the corresponding amount bucket. Scores range from 1-99, where a higher score indicates a higher likelihood of repayment."}},"additionalProperties":true},"IssuesSearchRequest":{"type":"object","description":"IssuesSearchRequest defines the request schema for `/issues/search`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"item_id":{"type":"string","description":"A unique identifier for the Plaid Item."},"link_session_id":{"type":"string","description":"A unique identifier for the Link session."},"link_session_request_id":{"type":"string","description":"The `request_id` for the Link session that might have had an institution connection issue."}}},"IssuesSearchResponse":{"type":"object","description":"IssuesSearchResponse defines the response schema for `/issues/search`.","additionalProperties":true,"properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/Issue"},"description":"A list of issues affecting the Item, session, or request passed in, conforming to the Issues data model. Omitted if no matching issues were found."},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"IssuesSubscribeRequest":{"type":"object","description":"IssuesSubscribeRequest defines the request schema for `/issues/subscribe`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"issue_id":{"type":"string","description":"The unique identifier of the issue to subscribe to."},"webhook":{"type":"string","description":"The webhook URL where notifications should be sent when the issue status changes."}},"required":["issue_id","webhook"]},"IssuesSubscribeResponse":{"type":"object","description":"IssuesSubscribeResponse defines the response schema for `/issues/subscribe`.","additionalProperties":true,"properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"IssuesStatus":{"type":"string","enum":["REPORTED","AWAITING_RESOLUTION","FIX_IN_PROGRESS","FIX_PENDING_VALIDATION","CANNOT_FIX","RESOLVED"],"description":"The current status of the issue."},"Issue":{"type":"object","description":"Information on an issue encountered with financial institution interactions during Linking.","additionalProperties":true,"properties":{"issue_id":{"type":"string","description":"The unique identifier of the issue."},"institution_names":{"type":"array","items":{"type":"string"},"description":"A list of names of the financial institutions affected."},"institution_ids":{"type":"array","items":{"type":"string"},"description":"A list of ids of the financial institutions affected."},"created_at":{"type":"string","format":"date-time","description":"The creation time of the record tracking this issue."},"summary":{"type":"string","description":"A simple summary of the error for the end user."},"detailed_description":{"type":"string","description":"A more detailed description for the customer."},"status":{"$ref":"#/components/schemas/IssuesStatus"}}},"IssuesGetRequest":{"type":"object","description":"IssuesGetRequest defines the request schema for `/issues/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"issue_id":{"type":"string","description":"The unique identifier of the issue to retrieve."}},"required":["issue_id"]},"IssuesGetResponse":{"type":"object","description":"IssuesGetResponse defines the response schema for `/issues/get`.","additionalProperties":true,"properties":{"issue":{"$ref":"#/components/schemas/Issue"},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"UserTransactionsRefreshRequest":{"type":"object","description":"UserTransactionsRefreshRequest defines the request schema for `/user/transactions/refresh`","properties":{"user_id":{"type":"string","description":"A Plaid-generated ID that identifies the end user."},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["user_id"]},"UserTransactionsRefreshResponse":{"type":"object","description":"UserTransactionsRefreshResponse defines the response schema for `/user/transactions/refresh`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"user_id":{"type":"string","description":"The user ID associated with the refresh request."},"results":{"type":"array","items":{"$ref":"#/components/schemas/RefreshResult"}}},"additionalProperties":true},"UserFinancialDataRefreshRequest":{"type":"object","description":"UserFinancialDataRefreshRequest defines the request schema for `/user/financial_data/refresh`","properties":{"user_id":{"type":"string","description":"A Plaid-generated ID that identifies the end user."},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["user_id"]},"UserFinancialDataRefreshResponse":{"type":"object","description":"UserFinancialDataRefreshResponse defines the response schema for `/user/financial_data/refresh`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"user_id":{"type":"string","description":"The user ID associated with the refresh request."},"results":{"type":"array","items":{"$ref":"#/components/schemas/RefreshResult"}}},"additionalProperties":true},"RefreshResult":{"type":"object","description":"RefreshResult represents the result status of a user refresh for a specific item.","properties":{"item_id":{"type":"string","description":"A unique identifier for the Plaid Item."},"product":{"type":"string","description":"The product for which the refresh was attempted."},"error":{"$ref":"#/components/schemas/PlaidError"}},"additionalProperties":true},"PaymentProfileCreateRequest":{"type":"object","description":"PaymentProfileCreateRequest defines the request schema for `/payment_profile/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}}},"PaymentProfileCreateResponse":{"type":"object","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"]},"PaymentProfileToken":{"type":"string","title":"PaymentProfileToken","description":"A payment profile token associated with the Payment Profile data that is being requested.","x-hidden-from-docs":true},"PaymentProfileGetRequest":{"type":"object","description":"PaymentProfileGetRequest defines the request schema for `/payment_profile/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"payment_profile_token":{"$ref":"#/components/schemas/PaymentProfileToken"}},"required":["payment_profile_token"]},"PaymentProfileGetResponse":{"type":"object","additionalProperties":true,"description":"PaymentProfileGetResponse defines the response schema for `/payment_profile/get`","properties":{"updated_at":{"type":"string","format":"date-time","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"},"created_at":{"type":"string","format":"date-time","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"},"deleted_at":{"type":["string","null"],"format":"date-time","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"},"status":{"$ref":"#/components/schemas/PaymentProfileStatus"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id","status","created_at","updated_at","deleted_at"]},"PaymentProfileStatus":{"type":"string","enum":["PENDING","READY","REMOVED"],"description":"The status of the given Payment Profile.\n\n`READY`: This Payment Profile is ready to be used to create transfers using `/transfer/authorization/create` and `/transfer/create`.\n\n`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.\n\n`REMOVED`: This Payment Profile has been removed."},"PaymentProfileRemoveRequest":{"type":"object","description":"PaymentProfileRemoveRequest defines the request schema for `/payment_profile/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"payment_profile_token":{"$ref":"#/components/schemas/PaymentProfileToken"}},"required":["payment_profile_token"]},"PaymentProfileRemoveResponse":{"type":"object","additionalProperties":true,"description":"PaymentProfileRemoveResponse defines the response schema for `/payment_profile/remove`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"PartnerCustomerCreateRequest":{"description":"Request schema for `/partner/customer/create`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"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"},"is_diligence_attested":{"description":"Denotes whether or not the partner has completed attestation of diligence for the end customer to be created.","type":"boolean"},"products":{"description":"The products to be enabled for the end customer. If empty or `null`, this field will default to the products enabled for the reseller at the time this endpoint is called.","type":"array","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["assets","auth","balance","identity","income_verification","investments","investments_auth","liabilities","transactions","employment","cra_base_report","cra_income_insights","cra_partner_insights"]},"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. If you require the ability to programmatically create end customers using multiple different Link customization profiles, contact your Plaid account manager for assistance.\n\nImportant: Data Transparency Messaging (DTM) use cases will not be copied to the end customer's Link customization unless the **Publish changes** button is clicked after the use cases are applied. Link will not work in Production unless the end customer's DTM use cases are configured. For more details, see [Data Transparency Messaging](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/).","type":"boolean"},"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, the partner's logo will be used if one exists, otherwise a stock logo will be used.","type":"string"},"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"},"website":{"description":"The end customer's website.","type":"string"},"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. The application name must be unique and cannot match the name of another application already registered with Plaid.","type":"string"},"technical_contact":{"$ref":"#/components/schemas/PartnerEndCustomerTechnicalContact"},"billing_contact":{"$ref":"#/components/schemas/PartnerEndCustomerBillingContact"},"customer_support_info":{"$ref":"#/components/schemas/PartnerEndCustomerCustomerSupportInfo"},"address":{"$ref":"#/components/schemas/PartnerEndCustomerAddress"},"is_bank_addendum_completed":{"description":"Denotes whether the partner has forwarded the Plaid bank addendum to the end customer.","type":"boolean"},"assets_under_management":{"$ref":"#/components/schemas/PartnerEndCustomerAssetsUnderManagement"},"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 another app. URIs should not contain any query parameters. When used in Production, URIs must use https. 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.","type":"array","items":{"type":"string"}},"registration_number":{"description":"The unique identifier assigned to a financial institution by regulatory authorities, if applicable. For banks, this is the FDIC Certificate Number. For credit unions, this is the Credit Union Charter Number.","type":"string"}},"required":["company_name","is_diligence_attested","legal_entity_name","website","application_name","address","is_bank_addendum_completed"]},"PartnerCustomerCreateResponse":{"description":"Response schema for `/partner/customer/create`.","type":"object","additionalProperties":true,"properties":{"end_customer":{"$ref":"#/components/schemas/PartnerEndCustomerWithSecrets"},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"PartnerCustomerGetRequest":{"description":"Request schema for `/partner/customer/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"end_customer_client_id":{"type":"string"}},"required":["end_customer_client_id"]},"PartnerCustomerGetResponse":{"description":"Response schema for `/partner/customer/get`.","type":"object","additionalProperties":true,"properties":{"end_customer":{"$ref":"#/components/schemas/PartnerEndCustomer"},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"PartnerCustomerEnableRequest":{"description":"Request schema for `/partner/customer/enable`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"end_customer_client_id":{"type":"string"}},"required":["end_customer_client_id"]},"PartnerCustomerEnableResponse":{"description":"Response schema for `/partner/customer/enable`.","type":"object","additionalProperties":true,"properties":{"production_secret":{"description":"The end customer's secret key for the Production environment.","type":"string"},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"PartnerCustomerRemoveRequest":{"description":"Request schema for `/partner/customer/remove`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"end_customer_client_id":{"type":"string","description":"The `client_id` of the end customer to be removed."}},"required":["end_customer_client_id"]},"PartnerCustomerRemoveResponse":{"description":"Response schema for `/partner/customer/remove`.","type":"object","additionalProperties":true,"properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}}},"PartnerCustomerOAuthInstitutionsGetRequest":{"description":"Request schema for `/partner/customer/oauth_institutions/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"end_customer_client_id":{"type":"string"}},"required":["end_customer_client_id"]},"PartnerCustomerOAuthInstitutionsGetResponse":{"description":"Response schema for `/partner/customer/oauth_institutions/get`.","type":"object","additionalProperties":true,"properties":{"flowdown_status":{"$ref":"#/components/schemas/PartnerEndCustomerFlowdownStatus"},"questionnaire_status":{"$ref":"#/components/schemas/PartnerEndCustomerQuestionnaireStatus"},"institutions":{"type":"array","description":"The OAuth institutions with which the end customer's application is being registered.","items":{"$ref":"#/components/schemas/PartnerEndCustomerOAuthInstitution"}},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"PartnerEndCustomerFlowdownStatus":{"type":"string","enum":["NOT_STARTED","IN_REVIEW","NEGOTIATION","COMPLETE"],"description":"The status of the addendum to the Plaid MSA (\"flowdown\") for the end customer."},"PartnerEndCustomerQuestionnaireStatus":{"type":"string","enum":["NOT_STARTED","RECEIVED","COMPLETE"],"description":"The status of the end customer's security questionnaire."},"PartnerEndCustomerOAuthInstitution":{"description":"The OAuth registration information for an institution.","type":"object","additionalProperties":true,"properties":{"name":{"type":"string"},"institution_id":{"type":"string"},"environments":{"$ref":"#/components/schemas/PartnerEndCustomerOAuthInstitutionEnvironments"},"production_enablement_date":{"type":["string","null"],"description":"The date on which the end customer's application was approved by the institution, or `null` if their application has not yet been approved."},"classic_disablement_date":{"type":["string","null"],"description":"The date on which non-OAuth Item adds will no longer be supported for this institution, or `null` if no such date has been set by the institution."},"errors":{"type":"array","description":"The errors encountered while registering the end customer's application with the institutions.","items":{"$ref":"#/components/schemas/PlaidError"}}}},"PartnerEndCustomerOAuthInstitutionEnvironments":{"description":"Registration statuses by environment.","type":"object","additionalProperties":true,"properties":{"development":{"$ref":"#/components/schemas/PartnerEndCustomerOAuthInstitutionApplicationStatus"},"production":{"$ref":"#/components/schemas/PartnerEndCustomerOAuthInstitutionApplicationStatus"}}},"PartnerEndCustomerOAuthInstitutionApplicationStatus":{"type":"string","enum":["NOT_STARTED","PROCESSING","APPROVED","ENABLED","ATTENTION_REQUIRED"],"description":"The registration status for the end customer's application."},"PartnerEndCustomer":{"description":"The details for an end customer.","type":"object","additionalProperties":true,"properties":{"client_id":{"type":"string","description":"The `client_id` of the end customer."},"company_name":{"type":"string","description":"The company name associated with the end customer."},"status":{"$ref":"#/components/schemas/PartnerEndCustomerStatus"}}},"PartnerEndCustomerWithSecrets":{"description":"The details for the newly created end customer, including secrets for non-Production environments.","type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/PartnerEndCustomer"},{"type":"object","properties":{"secrets":{"$ref":"#/components/schemas/PartnerEndCustomerSecrets"}}}]},"PartnerEndCustomerStatus":{"type":"string","enum":["UNDER_REVIEW","PENDING_ENABLEMENT","ACTIVE","DENIED","MORE_INFORMATION_NEEDED"],"x-override-enum-values-shown":["UNDER_REVIEW","PENDING_ENABLEMENT","ACTIVE","DENIED"],"description":"The status of the given end customer.\n\n`UNDER_REVIEW`: The end customer has been created and enabled in the Sandbox environment. 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`.\n\n`PENDING_ENABLEMENT`: The end customer is ready to be fully enabled in the Production environment. Call the `/partner/customer/enable` endpoint to enable the end customer in full Production.\n\n`ACTIVE`: The end customer has been fully enabled in all environments.\n\n`DENIED`: The end customer has been created and enabled in the Sandbox environment, but it did not pass review by the Plaid team and therefore cannot be enabled for Production access. Talk to your account manager for more information."},"PartnerEndCustomerSecrets":{"description":"The secrets for the newly created end customer.","type":"object","additionalProperties":true,"properties":{"sandbox":{"description":"The end customer's secret key for the Sandbox environment.","type":"string"},"development":{"description":"The end customer's secret key for the Development environment. The Development environment has been removed.","type":"string","deprecated":true,"x-hidden-from-docs":true},"production":{"description":"The end customer's secret key for the Production environment. The end customer will be provided with a limited number of credits to test in the Production environment before full enablement.","type":"string"}}},"PartnerEndCustomerTechnicalContact":{"description":"The technical contact for the end customer. Defaults to partner's technical contact if omitted.","type":"object","additionalProperties":true,"properties":{"given_name":{"type":"string"},"family_name":{"type":"string"},"email":{"type":"string"}}},"PartnerEndCustomerCustomerSupportInfo":{"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. This field is mandatory for partners whose Plaid accounts were created after November 26, 2024 and will be mandatory for all partners by the 1033 compliance deadline.","type":"object","additionalProperties":true,"properties":{"email":{"type":"string","description":"This field is mandatory for partners whose Plaid accounts were created after November 26, 2024 and will be mandatory for all partners by the 1033 compliance deadline."},"phone_number":{"type":"string"},"contact_url":{"type":"string"},"link_update_url":{"type":"string"}}},"PartnerEndCustomerAssetsUnderManagement":{"description":"Assets under management for the given end customer. Required for end customers with monthly service commitments.","type":"object","additionalProperties":true,"properties":{"amount":{"type":"number","format":"double"},"iso_currency_code":{"type":"string"}},"required":["amount","iso_currency_code"]},"PartnerEndCustomerBillingContact":{"description":"The billing contact for the end customer. Defaults to partner's billing contact if omitted.","type":"object","additionalProperties":true,"properties":{"given_name":{"type":"string"},"family_name":{"type":"string"},"email":{"type":"string"}}},"PartnerEndCustomerAddress":{"description":"The end customer's address.","type":"object","additionalProperties":true,"properties":{"city":{"type":"string"},"street":{"type":"string"},"region":{"type":"string"},"postal_code":{"type":"string"},"country_code":{"description":"ISO-3166-1 alpha-2 country code standard.","type":"string"}}},"BetaPartnerCustomerV1CreateRequest":{"description":"Request schema for `/beta/partner/customer/v1/create`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"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"},"is_diligence_attested":{"description":"Denotes whether or not the partner has completed attestation of diligence for the end customer to be created.","type":"boolean"},"products":{"description":"The products to be enabled for the end customer. If empty or `null`, this field will default to the products enabled for the reseller at the time this endpoint is called.","type":"array","items":{"$ref":"#/components/schemas/Products"}},"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. If you require the ability to programmatically create end customers using multiple different Link customization profiles, contact your Plaid account manager for assistance.\n\nImportant: Data Transparency Messaging (DTM) use cases will not be copied to the end customer's Link customization unless the **Publish changes** button is clicked after the use cases are applied. Link will not work in Production unless the end customer's DTM use cases are configured. For more details, see [Data Transparency Messaging](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/).","type":"boolean"},"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, the partner's logo will be used if one exists, otherwise a stock logo will be used.","type":"string"},"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"},"website":{"description":"The end customer's website.","type":"string"},"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. The application name must be unique and cannot match the name of another application already registered with Plaid.","type":"string"},"technical_contact":{"$ref":"#/components/schemas/PartnerEndCustomerTechnicalContact"},"billing_contact":{"$ref":"#/components/schemas/PartnerEndCustomerBillingContact"},"customer_support_info":{"$ref":"#/components/schemas/PartnerEndCustomerCustomerSupportInfo"},"address":{"$ref":"#/components/schemas/PartnerEndCustomerAddress"},"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 another app. URIs should not contain any query parameters. When used in Production, URIs must use https. 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.","type":"array","items":{"type":"string"}},"bank_addendum_acceptance":{"$ref":"#/components/schemas/PartnerEndCustomerBankAddendumAcceptance"},"questionnaires":{"$ref":"#/components/schemas/PartnerEndCustomerQuestionnaires"}},"required":["company_name","website","application_name","address","customer_support_info"]},"BetaPartnerCustomerV1CreateResponse":{"description":"Response schema for `/beta/partner/customer/v1/create`.","type":"object","additionalProperties":true,"properties":{"end_customer":{"$ref":"#/components/schemas/BetaPartnerEndCustomerWithSecrets"},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"BetaPartnerEndCustomerWithSecrets":{"description":"The details for the newly created end customer, including secrets for non-Production environments.","type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/BetaPartnerEndCustomer"},{"type":"object","properties":{"secrets":{"$ref":"#/components/schemas/PartnerEndCustomerSecrets"}}}]},"BetaPartnerEndCustomer":{"description":"The details for an end customer.","type":"object","additionalProperties":true,"properties":{"client_id":{"type":"string","description":"The `client_id` of the end customer."},"company_name":{"type":"string","description":"The company name associated with the end customer."},"status":{"$ref":"#/components/schemas/PartnerEndCustomerStatus"},"product_statuses":{"$ref":"#/components/schemas/PartnerEndCustomerProductStatuses"},"requirements_due":{"$ref":"#/components/schemas/PartnerEndCustomerRequirementsDue"}}},"PartnerEndCustomerProductStatuses":{"description":"Mapping of product names to their current status.","type":"object","additionalProperties":{}},"PartnerEndCustomerRequirementsDue":{"description":"A list of fields that are still required to be submitted.","type":"array","items":{"$ref":"#/components/schemas/PartnerEndCustomerRequirementDue"}},"PartnerEndCustomerRequirementDue":{"description":"A field that may be required to be submitted for enablement.","type":"string","enum":["legal_entity_name","website","application_name","is_diligence_attested","technical_contact","billing_contact","address","bank_addendum_acceptance","questionnaires.cra"]},"PartnerEndCustomerBankAddendumAcceptance":{"description":"The bank addendum acceptance for the end customer.","type":"object","additionalProperties":true,"properties":{"customer_accepted":{"type":"boolean","description":"Denotes whether the end customer has accepted the bank addendum terms."},"customer_ip_address":{"type":"string","description":"The IP address of the end customer when they accepted the bank addendum."},"customer_agreement_timestamp":{"type":"string","format":"date-time","description":"The timestamp of when the end customer accepted the bank addendum in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`)."}}},"PartnerEndCustomerQuestionnaires":{"description":"The questionnaires for the end customer.","type":"object","additionalProperties":true,"properties":{"cra":{"$ref":"#/components/schemas/PartnerEndCustomerCRAQuestionnaire"}}},"PartnerEndCustomerCRAQuestionnaire":{"description":"The CRA questionnaire for the end customer.","type":"object","additionalProperties":true,"properties":{"purposes":{"$ref":"#/components/schemas/PartnerEndCustomerCRAPurposes"},"is_third_party_involved":{"type":"boolean","description":"Denotes whether the third party is involved."},"is_technical_service_provider_involved":{"type":"boolean","description":"Denotes whether the technical service provider is involved."}}},"PartnerEndCustomerCRAPurposes":{"description":"A map of permissible purposes to their corresponding use cases.","type":"object","additionalProperties":true,"properties":{"WRITTEN_INSTRUCTION":{"$ref":"#/components/schemas/PartnerEndCustomerCRAUseCases"},"EXTENSION_OF_CREDIT_OR_ACCOUNT_REVIEW":{"$ref":"#/components/schemas/PartnerEndCustomerCRAUseCases"},"EMPLOYMENT":{"$ref":"#/components/schemas/PartnerEndCustomerCRAUseCases"},"INSURANCE_UNDERWRITING":{"$ref":"#/components/schemas/PartnerEndCustomerCRAUseCases"},"LICENSE_ELIGIBILITY":{"$ref":"#/components/schemas/PartnerEndCustomerCRAUseCases"},"RISK_ASSESSMENT":{"$ref":"#/components/schemas/PartnerEndCustomerCRAUseCases"},"BUSINESS_NEED_TRANSACTION":{"$ref":"#/components/schemas/PartnerEndCustomerCRAUseCases"},"BUSINESS_NEED_ACCOUNT_REVIEW":{"$ref":"#/components/schemas/PartnerEndCustomerCRAUseCases"}}},"PartnerEndCustomerCRAUseCases":{"description":"The list of use cases associated with a given permissible purpose.","type":"object","properties":{"use_cases":{"type":"array","description":"List of use cases for the given permissible purpose.","items":{"$ref":"#/components/schemas/PartnerEndCustomerCRAUseCase"}}}},"PartnerEndCustomerCRAUseCase":{"description":"A CRA use case under a permissible purpose.","type":"string","enum":["CREDIT_UNDERWRITING","TENANT_SCREENING","INVESTOR_OR_SERVICER_OF_CREDIT","UTILITIES","BANK_ACCOUNT_OPENING","IDENTITY_VERIFICATION_FRAUD_PREVENTION","COLLECTIONS_DEBT_RECOVERY"]},"BetaPartnerCustomerV1GetRequest":{"description":"Request schema for `/beta/partner/customer/v1/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"end_customer_client_id":{"type":"string"}},"required":["end_customer_client_id"]},"BetaPartnerCustomerV1GetResponse":{"description":"Response schema for `/beta/partner/customer/v1/get`.","type":"object","additionalProperties":true,"properties":{"end_customer":{"$ref":"#/components/schemas/BetaPartnerEndCustomer"},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"BetaPartnerCustomerV1UpdateRequest":{"description":"Request schema for `/beta/partner/customer/v1/update`.","type":"object","additionalProperties":true,"properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"end_customer_client_id":{"type":"string"},"legal_entity_name":{"type":"string"},"redirect_uris":{"type":"array","items":{"type":"string"}},"bank_addendum_acceptance":{"$ref":"#/components/schemas/PartnerEndCustomerBankAddendumAcceptance"},"questionnaires":{"$ref":"#/components/schemas/PartnerEndCustomerQuestionnaires"}},"required":["end_customer_client_id"]},"BetaPartnerCustomerV1UpdateResponse":{"description":"Response schema for `/beta/partner/customer/v1/update`.","type":"object","additionalProperties":true,"properties":{"end_customer":{"$ref":"#/components/schemas/BetaPartnerEndCustomer"},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"BetaPartnerCustomerV1EnableRequest":{"description":"Request schema for `/beta/partner/customer/v1/enable`.","type":"object","additionalProperties":true,"properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"end_customer_client_id":{"type":"string"},"products":{"type":"array","items":{"$ref":"#/components/schemas/Products"}}},"required":["end_customer_client_id"]},"BetaPartnerCustomerV1EnableResponse":{"description":"Response schema for `/beta/partner/customer/v1/enable`.","type":"object","additionalProperties":true,"properties":{"end_customer_client_id":{"type":"string"},"status":{"$ref":"#/components/schemas/PartnerEndCustomerStatus"},"product_statuses":{"$ref":"#/components/schemas/PartnerEndCustomerProductStatuses"},"production_secret":{"type":"string"},"request_id":{"$ref":"#/components/schemas/RequestID"}}},"LinkUserDeliveryStatusWebhook":{"title":"LinkUserDeliveryStatusWebhook","x-hidden-from-docs":true,"description":"Webhook indicating that the status of the delivery of the Hosted Link session to a user","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`LINK_DELIVERY`"},"webhook_code":{"type":"string","description":"`DELIVERY_STATUS`"},"link_delivery_session_id":{"type":"string","description":"The ID of the Hosted Link session."},"timestamp":{"type":"string","description":"Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"link_delivery_metadata":{"$ref":"#/components/schemas/LinkDeliveryMetadata"}},"required":["webhook_type","webhook_code","link_delivery_session_id","timestamp","link_delivery_metadata"],"x-examples":{}},"LinkDeliveryCallbackWebhook":{"title":"LinkDeliveryCallbackWebhook","x-hidden-from-docs":true,"description":"Webhook containing metadata proxied over from Link callback e.g. `onEvent`, `onExit`, `onSuccess`.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`LINK_DELIVERY`"},"webhook_code":{"type":"string","description":"`LINK_CALLBACK`"},"link_delivery_session_id":{"type":"string","description":"The ID of the Hosted Link session."},"timestamp":{"type":"string","description":"Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"error":{"$ref":"#/components/schemas/PlaidError"},"link_callback_metadata":{"$ref":"#/components/schemas/LinkCallbackMetadata"}},"required":["webhook_type","webhook_code","link_delivery_session_id","timestamp","link_callback_metadata"],"x-examples":{}},"CreditCategory":{"title":"CreditCategory","type":["object","null"],"additionalProperties":true,"description":"Information describing the intent of the transaction. Most relevant for credit use cases, but not limited to such use cases.\n\nSee the [`taxonomy csv file`](https://plaid.com/documents/credit-category-taxonomy.csv) for a full list of credit categories.","properties":{"primary":{"type":["string","null"],"description":"A high level category that communicates the broad category of the transaction. Can be `null` when no credit category is available."},"detailed":{"type":["string","null"],"description":"A granular category conveying the transaction's intent. This field can also be used as a unique identifier for the category. Can be `null` when no credit category is available."}},"required":["primary","detailed"]},"UserAccountRevokedWebhook":{"title":"UserAccountRevokedWebhook","type":"object","additionalProperties":true,"description":"The `USER_ACCOUNT_REVOKED` webhook is fired when an end user has revoked access to their account on the Data Provider's portal. This webhook is currently sent only for Chase, PNC, and Truist Items, but may be sent in the future for other financial institutions that allow account-level permissions revocation through their portals. Upon receiving this webhook, it is recommended to delete any Plaid-derived data you have stored that is associated with the revoked account.\n\nIf you are using Auth and receive this webhook, this webhook indicates that the TAN associated with the revoked account is no longer valid and cannot be used to create new transfers. You should not create new ACH transfers for the account that was revoked until access has been re-granted.\n\nYou can request the user to re-grant access to their account by sending them through [update mode](https://plaid.com/docs/link/update-mode). Alternatively, they may re-grant access directly through the Data Provider's portal.\n\nAfter the user has re-granted access, Auth customers should call the auth endpoint again to obtain the new TAN.","x-examples":{"example-1":{"webhook_type":"ITEM","webhook_code":"USER_ACCOUNT_REVOKED","item_id":"gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ","account_id":"BxBXxLj1m4HMXBm9WZJyUg9XLd4rKEhw8Pb1J","user_id":"usr_9nSp2KuZ2x4JDw","environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`ITEM`"},"webhook_code":{"type":"string","description":"`USER_ACCOUNT_REVOKED`"},"item_id":{"$ref":"#/components/schemas/ItemId"},"user_id":{"$ref":"#/components/schemas/UserId"},"account_id":{"type":"string","description":"The external account ID of the affected account"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","account_id","environment"]},"StatementsRefreshCompleteWebhook":{"type":"object","title":"StatementsRefreshCompleteWebhook","description":"Fired when refreshed statements extraction is completed or failed to be completed. Triggered by calling `/statements/refresh`.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`STATEMENTS`"},"webhook_code":{"type":"string","description":"`STATEMENTS_REFRESH_COMPLETE`"},"item_id":{"type":"string","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."},"result":{"$ref":"#/components/schemas/StatementsRefreshCompleteResult"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","item_id","result","environment"],"x-examples":{"example-1":{"webhook_type":"STATEMENTS","webhook_code":"STATEMENTS_REFRESH_COMPLETE","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","result":"SUCCESS","environment":"production"}}},"StatementsRefreshCompleteResult":{"type":"string","enum":["SUCCESS","FAILURE"],"description":"The result of the statement refresh extraction\n\n`SUCCESS`: The statements were successfully extracted and can be listed via `/statements/list` and downloaded via `/statements/download`.\n\n`FAILURE`: The statements failed to be extracted."},"CashFlowUpdatesEventWebhookCodes":{"type":"string","enum":["LARGE_DEPOSIT_DETECTED","LOW_BALANCE_DETECTED","NEW_LOAN_PAYMENT_DETECTED","NSF_OVERDRAFT_DETECTED"],"description":"Webhook code for a Cash Flow Updates event."},"CashFlowUpdatesInsightsWebhook":{"title":"CashFlowUpdatesInsightsWebhook","type":"object","deprecated":true,"additionalProperties":true,"description":"For each user's Item enabled for Cash Flow Updates, this webhook will fire between one and four times a day with information on the status of the update. This webhook will not fire immediately upon enrollment in Cash Flow Updates. Upon receiving the webhook, call `/cra/monitoring_insights/get` to retrieve the updated insights. At approximately the same time as the `INSIGHTS_UPDATED` webhook, any event-driven `CASH_FLOW_UPDATES` webhooks (e.g. `LOW_BALANCE_DETECTED`, `LARGE_DEPOSIT_DETECTED`) that were triggered by the update will also fire. This webhook has been replaced by the `CASH_FLOW_INSIGHTS_UPDATED` webhook for all customers who began using Plaid Check on or after December 10, 2025.","properties":{"webhook_type":{"type":"string","description":"`CASH_FLOW_UPDATES`"},"webhook_code":{"type":"string","description":"`INSIGHTS_UPDATED`"},"status":{"$ref":"#/components/schemas/MonitoringInsightsStatus"},"user_id":{"type":"string","description":"The `user_id` that the report is associated with"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CASH_FLOW_UPDATES","webhook_code":"INSIGHTS_UPDATED","status":"AVAILABLE","user_id":"9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334","environment":"production"}}},"CashFlowUpdatesNSFWebhook":{"title":"CashFlowUpdatesNSFWebhook","deprecated":true,"type":"object","additionalProperties":true,"description":"For each user's Item enabled for Cash Flow Updates, this webhook will fire when an update includes an NSF overdraft transaction. Upon receiving the webhook, call `/cra/monitoring_insights/get` to retrieve the updated insights.","properties":{"webhook_type":{"type":"string","description":"`CASH_FLOW_UPDATES`"},"webhook_code":{"type":"string","description":"`NSF_OVERDRAFT_DETECTED`"},"status":{"$ref":"#/components/schemas/MonitoringInsightsStatus"},"user_id":{"type":"string","description":"The `user_id` that the report is associated with"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CASH_FLOW_UPDATES","webhook_code":"NSF_OVERDRAFT_DETECTED","status":"AVAILABLE","user_id":"9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334","environment":"production"}}},"CashFlowUpdatesNewIncomeStreamWebhook":{"title":"CashFlowUpdatesNewIncomeStreamWebhook","deprecated":true,"type":"object","additionalProperties":true,"description":"For each user's Item enabled for Cash Flow Updates, this webhook will fire when an update includes a new income stream. Upon receiving the webhook, call `/cra/monitoring_insights/get` to retrieve the updated insights.","properties":{"webhook_type":{"type":"string","description":"`CASH_FLOW_UPDATES`"},"webhook_code":{"type":"string","description":"`NEW_INCOME_STREAM_DETECTED`"},"status":{"$ref":"#/components/schemas/MonitoringInsightsStatus"},"user_id":{"type":"string","description":"The `user_id` that the report is associated with"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CASH_FLOW_UPDATES","webhook_code":"NEW_INCOME_STREAM_DETECTED","status":"AVAILABLE","user_id":"9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334","environment":"production"}}},"CashFlowUpdatesExpectedDepositMissedWebhook":{"title":"CashFlowUpdatesExpectedDepositMissedWebhook","deprecated":true,"type":"object","additionalProperties":true,"description":"For each user's Item enabled for Cash Flow Updates, this webhook will fire when an update detects that an expected deposit was missed. Upon receiving the webhook, call `/cra/monitoring_insights/get` to retrieve the updated insights.","properties":{"webhook_type":{"type":"string","description":"`CASH_FLOW_UPDATES`"},"webhook_code":{"type":"string","description":"`EXPECTED_DEPOSIT_MISSED`"},"status":{"$ref":"#/components/schemas/MonitoringInsightsStatus"},"user_id":{"type":"string","description":"The `user_id` that the report is associated with"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CASH_FLOW_UPDATES","webhook_code":"EXPECTED_DEPOSIT_MISSED","status":"AVAILABLE","user_id":"9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334","environment":"production"}}},"CashFlowUpdatesLowBalanceWebhook":{"title":"CashFlowUpdatesLowBalanceWebhook","deprecated":true,"type":"object","additionalProperties":true,"description":"For each user's Item enabled for Cash Flow Updates, this webhook will fire when an update detects a balance below $100. Upon receiving the webhook, call `/cra/monitoring_insights/get` to retrieve the updated insights.","properties":{"webhook_type":{"type":"string","description":"`CASH_FLOW_UPDATES`"},"webhook_code":{"type":"string","description":"`LOW_BALANCE_DETECTED`"},"status":{"$ref":"#/components/schemas/MonitoringInsightsStatus"},"user_id":{"type":"string","description":"The `user_id` that the report is associated with"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CASH_FLOW_UPDATES","webhook_code":"LOW_BALANCE_DETECTED","status":"AVAILABLE","user_id":"9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334","environment":"production"}}},"CashFlowUpdatesLargeDepositWebhook":{"title":"CashFlowUpdatesLargeDepositWebhook","deprecated":true,"type":"object","additionalProperties":true,"description":"For each user's Item enabled for Cash Flow Updates, this webhook will fire when an update detects a deposit over $5,000. Upon receiving the webhook, call `/cra/monitoring_insights/get` to retrieve the updated insights.","properties":{"webhook_type":{"type":"string","description":"`CASH_FLOW_UPDATES`"},"webhook_code":{"type":"string","description":"`LARGE_DEPOSIT_DETECTED`"},"status":{"$ref":"#/components/schemas/MonitoringInsightsStatus"},"user_id":{"type":"string","description":"The `user_id` that the report is associated with"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CASH_FLOW_UPDATES","webhook_code":"LARGE_DEPOSIT_DETECTED","status":"AVAILABLE","user_id":"9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334","environment":"production"}}},"CashFlowUpdatesNewLoanPaymentWebhook":{"title":"CashFlowUpdatesNewLoanPaymentWebhook","deprecated":true,"type":"object","additionalProperties":true,"description":"For each user's Item enabled for Cash Flow Updates, this webhook will fire when an update detects a new loan payment. Upon receiving the webhook, call `/cra/monitoring_insights/get` to retrieve the updated insights.","properties":{"webhook_type":{"type":"string","description":"`CASH_FLOW_UPDATES`"},"webhook_code":{"type":"string","description":"`NEW_LOAN_PAYMENT_DETECTED`"},"status":{"$ref":"#/components/schemas/MonitoringInsightsStatus"},"user_id":{"type":"string","description":"The `user_id` that the report is associated with"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CASH_FLOW_UPDATES","webhook_code":"NEW_LOAN_PAYMENT_DETECTED","status":"AVAILABLE","user_id":"9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334","environment":"production"}}},"CashFlowUpdatesInsightsV2Webhook":{"title":"CashFlowUpdatesInsightsV2Webhook","type":"object","additionalProperties":true,"description":"For each item on an enabled user, this webhook will fire up to four times a day with status information. This webhook will not fire immediately upon enrollment in Cash Flow Updates. The payload may contain an `insights` array with insights that have been detected, if any (e.g. `LOW_BALANCE_DETECTED`, `LARGE_DEPOSIT_DETECTED`). Upon receiving the webhook, call `/cra/monitoring_insights/get` to retrieve the updated insights.","properties":{"webhook_type":{"type":"string","description":"`CASH_FLOW_UPDATES`"},"webhook_code":{"type":"string","description":"`CASH_FLOW_INSIGHTS_UPDATED`"},"status":{"$ref":"#/components/schemas/MonitoringInsightsStatus"},"user_id":{"type":"string","description":"The `user_id` associated with the user whose data is being requested. This is received by calling `/user/create`."},"insights":{"type":"array","items":{"$ref":"#/components/schemas/CashFlowInsight"},"description":"Array containing the insights detected within the generated report, if any. Possible values include:\n\n  `LARGE_DEPOSIT_DETECTED`: signaling a deposit over $5,000\n\n  `LOW_BALANCE_DETECTED`: signaling a balance below $100\n\n  `NEW_LOAN_PAYMENT_DETECTED`: signaling a new loan payment\n\n  `NSF_OVERDRAFT_DETECTED`: signaling an NSF overdraft"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","user_id","insights","environment"],"x-examples":{"example-1":{"webhook_type":"CASH_FLOW_UPDATES","webhook_code":"CASH_FLOW_INSIGHTS_UPDATED","status":"AVAILABLE","user_id":"usr_6009db6e","insights":["LARGE_DEPOSIT_DETECTED","LOW_BALANCE_DETECTED","NEW_LOAN_PAYMENT_DETECTED","NSF_OVERDRAFT_DETECTED"],"environment":"sandbox"},"example-2":{"webhook_type":"CASH_FLOW_UPDATES","webhook_code":"CASH_FLOW_INSIGHTS_UPDATED","status":"FAILED","user_id":"usr_6009db6e","insights":[],"environment":"sandbox"}}},"CashFlowInsight":{"title":"CashFlowInsight","enum":["LARGE_DEPOSIT_DETECTED","LOW_BALANCE_DETECTED","NEW_LOAN_PAYMENT_DETECTED","NSF_OVERDRAFT_DETECTED"],"description":"An insight that can be detected by the Cash Flow Updates product","type":"string"},"BaseReportsErrorWebhook":{"title":"BaseReportsErrorWebhook","type":"object","x-hidden-from-docs":true,"additionalProperties":true,"description":"Fired when Base Report generation has failed. The resulting `error` will have an `error_type` of `BASE_REPORT_ERROR`.","x-examples":{"example-1":{"webhook_type":"BASE_REPORT","webhook_code":"ERROR","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","error":{"display_message":null,"error_code":"PRODUCT_NOT_ENABLED","error_message":"The following products are not supported by this institution: Identity","error_type":"BASE_REPORT_ERROR","request_id":"m8MDnv9okwxFNBV"},"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`BASE_REPORT`"},"webhook_code":{"type":"string","description":"`ERROR`"},"error":{"$ref":"#/components/schemas/PlaidError"},"user_id":{"type":"string","description":"The `user_id` corresponding to the User ID the webhook has fired for."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","error","user_id","environment"]},"CraBankIncomeCompleteWebhook":{"type":"object","title":"CraBankIncomeCompleteWebhook","description":"Fired when a bank income report has finished generating or failed to generate, triggered by calling `/credit/bank_income/get`.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CRA_INCOME`"},"webhook_code":{"type":"string","description":"`BANK_INCOME_COMPLETE`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"result":{"$ref":"#/components/schemas/CraBankIncomeCompleteResult"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CRA_INCOME","webhook_code":"BANK_INCOME_COMPLETE","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","environment":"production"}}},"CraBankIncomeCompleteResult":{"type":"string","enum":["SUCCESS","FAILURE"],"description":"The result of the bank income report generation\n\n`SUCCESS`: The bank income report was successfully generated and can be retrieved via `/credit/bank_income/get`.\n\n`FAILURE`: The bank income report failed to be generated"},"CraBankIncomeErrorWebhook":{"type":"object","title":"CraBankIncomeErrorWebhook","description":"Fired when a bank income report has failed to generate","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CRA_INCOME`"},"webhook_code":{"type":"string","description":"`ERROR`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CRA_INCOME","webhook_code":"ERROR","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","environment":"production"}}},"BankIncomeCompleteWebhook":{"type":"object","title":"BankIncomeCompleteWebhook","description":"Fired when a bank income report has finished generating or failed to generate, triggered by calling `/credit/bank_income/get` in CRA enabled client.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`INCOME`"},"webhook_code":{"type":"string","description":"`BANK_INCOME_COMPLETE`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"result":{"$ref":"#/components/schemas/BankIncomeCompleteResult"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","result","environment"],"x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"BANK_INCOME_COMPLETE","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","result":"SUCCESS","environment":"production"}}},"BankIncomeCompleteResult":{"type":"string","enum":["SUCCESS","FAILURE"],"description":"The result of the bank income report generation\n\n`SUCCESS`: The bank income report was successfully generated and can be retrieved via `/credit/bank_income/get`.\n\n`FAILURE`: The bank income report failed to be generated"},"CheckReportRepairableItem":{"title":"CheckReportRepairableItem","type":"object","additionalProperties":true,"description":"An error object plus the `item_id` of an Item that the end user can repair via Link [update mode](https://plaid.com/docs/link/update-mode). The `error_code` will be in the `ITEM_LOGIN_REQUIRED` family.","properties":{"error_type":{"$ref":"#/components/schemas/PlaidErrorType"},"error_code":{"type":"string","description":"The particular error code. Safe for programmatic use."},"error_message":{"type":"string","description":"A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use."},"display_message":{"type":["string","null"],"description":"A user-friendly representation of the error code. `null` if the error is not related to user action."},"item_id":{"$ref":"#/components/schemas/ItemId"}},"required":["item_id","error_type","error_code","error_message","display_message"]},"CraCheckReportReadyWebhook":{"type":"object","title":"CraCheckReportReadyWebhook","description":"Fired when the Check Report is ready to be retrieved. The report expires 24 hours after it was created.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CHECK_REPORT`"},"webhook_code":{"type":"string","description":"`CHECK_REPORT_READY`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"successful_products":{"type":["array","null"],"description":"Specifies a list of products that have successfully been generated for the report.","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["cra_base_report","cra_income_insights","cra_cashflow_insights","cra_partner_insights","cra_network_insights","cra_monitoring","cra_lend_score"]},"failed_products":{"type":["array","null"],"description":"Specifies a list of products that have failed to generate for the report. Additional detail on what caused the failure can be found by calling the product /get endpoint.","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["cra_base_report","cra_income_insights","cra_cashflow_insights","cra_partner_insights","cra_network_insights","cra_monitoring","cra_lend_score"]},"item_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ItemId"},"description":"A list of `item_ids` included in the Check Report. Access to this field is in closed beta.","x-hidden-from-docs":true},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CHECK_REPORT","webhook_code":"CHECK_REPORT_READY","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","successful_products":["cra_base_report"],"environment":"production"}}},"CraCheckReportFailedWebhook":{"type":"object","title":"CraCheckReportFailedWebhook","description":"Fired when a Check Report has failed to generate. To get more details, call `/user/items/get` and check for non-null `error` objects on the associated Items in the response. These `error` objects will contain more details on why the Item is in an error state and how to resolve it. After resolving the errors, you can try to re-generate the report.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CHECK_REPORT`"},"webhook_code":{"type":"string","description":"`CHECK_REPORT_FAILED`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"error":{"description":"Details on why the Check Report failed and how to resolve it.","allOf":[{"$ref":"#/components/schemas/PlaidError"}]},"repairable_items":{"type":"array","description":"A list of Items that the end user can repair via Link [update mode](https://plaid.com/docs/link/update-mode). Empty when no Item is user-repairable. After repairing these Items, call `/cra/check_report/create` to regenerate the report.","items":{"$ref":"#/components/schemas/CheckReportRepairableItem"}},"failed_products":{"type":"array","description":"Specifies a list of products that failed to generate for the report. Populated when generation was attempted and all requested products failed. Additional detail on what caused the failure can be found by calling the product /get endpoint.","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["cra_base_report","cra_income_insights","cra_cashflow_insights","cra_partner_insights","cra_network_insights","cra_monitoring","cra_lend_score"]},"item_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ItemId"},"description":"A list of `item_ids` included in the Check Report. Access to this field is in closed beta.","x-hidden-from-docs":true},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","error","repairable_items","failed_products","environment"],"x-examples":{"example-1":{"webhook_type":"CHECK_REPORT","webhook_code":"CHECK_REPORT_FAILED","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","error":{"error_type":"CHECK_REPORT_ERROR","error_code":"DATA_UNAVAILABLE","error_message":"the check report did not have sufficient data to generate a report. Review the repairable_items list for any Items the user can fix via Link update mode. Once completed, a new report can be generated by calling /cra/check_report/create","display_message":null},"repairable_items":[{"error_type":"ITEM_ERROR","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","display_message":null,"item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6"}],"failed_products":[],"environment":"production"}}},"CraUpgradeFailedWebhook":{"type":"object","title":"CraUpgradeFailedWebhook","description":"Fired when a Check Report upgrade attempt has failed","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CHECK_REPORT`"},"webhook_code":{"type":"string","description":"`UPGRADE_FAILED`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"item_ids":{"type":"array","items":{"$ref":"#/components/schemas/ItemId"},"description":"An array of `item_id`s for items that failed to be upgraded by a Check Report upgrade attempt."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","item_ids","environment"],"x-examples":{"example-1":{"webhook_type":"CHECK_REPORT","webhook_code":"UPGRADE_FAILED","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","item_ids":["eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6"],"environment":"production"}},"x-hidden-from-docs":true},"CraUserCheckReportReadyWebhook":{"type":"object","title":"CraUserCheckReportReadyWebhook","description":"Fired when the Check Report is ready to be retrieved. The report expires 24 hours after it was created.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CHECK_REPORT`"},"webhook_code":{"type":"string","description":"`USER_CHECK_REPORT_READY`"},"user_id":{"type":"string","description":"The `user_id` associated with the user whose data is being requested. This is received by calling `/user/create`."},"successful_products":{"type":"array","description":"Specifies a list of products that have successfully been generated for the report.","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["cra_base_report","cra_income_insights","cra_cashflow_insights","cra_partner_insights","cra_network_insights","cra_monitoring","cra_lend_score"]},"failed_products":{"type":"array","description":"Specifies a list of products that have failed to generate for the report. Additional detail on what caused the failure can be found by calling the product /get endpoint.","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["cra_base_report","cra_income_insights","cra_cashflow_insights","cra_partner_insights","cra_network_insights","cra_monitoring","cra_lend_score"]},"item_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ItemId"},"description":"A list of `item_ids` included in the Check Report. Access to this field is in closed beta.","x-hidden-from-docs":true},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CHECK_REPORT","webhook_code":"USER_CHECK_REPORT_READY","user_id":"usr_8c3ZbDBYjaqUXZ","successful_products":["cra_base_report"],"environment":"production"}}},"CraUserCheckReportFailedWebhook":{"type":"object","title":"CraUserCheckReportFailedWebhook","description":"Fired when a Check Report has failed to generate. To get more details, call `/user/items/get` and check for non-null `error` objects on the associated Items in the response. These `error` objects will contain more details on why the Item is in an error state and how to resolve it. After resolving the errors, you can try to re-generate the report.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CHECK_REPORT`"},"webhook_code":{"type":"string","description":"`USER_CHECK_REPORT_FAILED`"},"user_id":{"type":"string","description":"The `user_id` associated with the user whose data is being requested. This is received by calling `/user/create`."},"error":{"description":"Details on why the Check Report failed and how to resolve it.","allOf":[{"$ref":"#/components/schemas/PlaidError"}]},"repairable_items":{"type":"array","description":"A list of Items that the end user can repair via Link [update mode](https://plaid.com/docs/link/update-mode). Empty when no Item is user-repairable. After repairing these Items, call `/cra/check_report/create` to regenerate the report.","items":{"$ref":"#/components/schemas/CheckReportRepairableItem"}},"failed_products":{"type":"array","description":"Specifies a list of products that failed to generate for the report. Populated when generation was attempted and all requested products failed. Additional detail on what caused the failure can be found by calling the product /get endpoint.","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["cra_base_report","cra_income_insights","cra_cashflow_insights","cra_partner_insights","cra_network_insights","cra_monitoring","cra_lend_score"]},"item_ids":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ItemId"},"description":"A list of `item_ids` included in the Check Report. Access to this field is in closed beta.","x-hidden-from-docs":true},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","error","repairable_items","failed_products","environment"],"x-examples":{"example-1":{"webhook_type":"CHECK_REPORT","webhook_code":"USER_CHECK_REPORT_FAILED","user_id":"usr_8c3ZbDBYjaqUXZ","error":{"error_type":"CHECK_REPORT_ERROR","error_code":"DATA_UNAVAILABLE","error_message":"the check report did not have sufficient data to generate a report. Review the repairable_items list for any Items the user can fix via Link update mode. Once completed, a new report can be generated by calling /cra/check_report/create","display_message":null},"repairable_items":[{"error_type":"ITEM_ERROR","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","display_message":null,"item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6"}],"failed_products":[],"environment":"production"}}},"CraReportUpdatedWebhook":{"type":"object","title":"CraReportUpdatedWebhook","description":"Fired when a subscribed Consumer Report has been updated. Retrieve the updated products by calling the relevant product `/get` endpoint. A single webhook covers all Consumer Report update subscriptions; the `successful_products`/`failed_products` fields indicate which products were updated, and the `scope` field indicates the data the report was computed over.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CRA_REPORT`"},"webhook_code":{"type":"string","description":"`CRA_REPORT_UPDATED`"},"user_id":{"type":"string","description":"The `user_id` associated with the user whose data is being requested. This is received by calling `/user/create`."},"client_user_id":{"type":"string","minLength":1,"description":"The `client_user_id` you supplied for this user when calling `/user/create`."},"report_id":{"type":["string","null"],"description":"The identifier of the Consumer Report that was updated. Pass this value to the relevant product `/get` endpoint to retrieve the updated report."},"scope":{"$ref":"#/components/schemas/CraReportScope"},"successful_products":{"type":"array","description":"Specifies a list of products that have successfully been updated for the report. Call the product `/get` endpoint to retrieve them.","items":{"$ref":"#/components/schemas/CreditProduct"}},"failed_products":{"type":"array","description":"Specifies a list of products that have failed to update for the report. Additional detail on what caused the failure can be found by calling the product `/get` endpoint.","items":{"$ref":"#/components/schemas/CreditProduct"}},"generated_time":{"type":["string","null"],"format":"date-time","description":"The timestamp when the products were generated, in ISO 8601 format. Null if there are no successful products."},"error_code":{"type":["string","null"],"description":"The reason all products failed to update. Populated only when every requested product failed; null if any product succeeded. For example, `PRODUCT_GENERATION_FAILED`."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","client_user_id","scope","successful_products","failed_products","environment"],"x-examples":{"example-1":{"webhook_type":"CRA_REPORT","webhook_code":"CRA_REPORT_UPDATED","user_id":"usr_8c3ZbDBYjaqUXZ","client_user_id":"uid_12345","report_id":"cra-report-production-6f8b1e0c-4d2a-4c7e-9a3b-2f1d8e5a7c90","scope":"CLIENT_USER","successful_products":[{"product":"cra_base_report","version":"V1"},{"product":"cra_income_insights","version":"V1"}],"failed_products":[],"generated_time":"2026-01-12T20:23:59Z","environment":"production"},"example-2":{"webhook_type":"CRA_REPORT","webhook_code":"CRA_REPORT_UPDATED","user_id":"usr_8c3ZbDBYjaqUXZ","client_user_id":"uid_12345","report_id":"cra-report-production-3a7d9c2e-81b4-4f6a-b5d0-9e2c4a1f7b38","scope":"PLAID_NETWORK","successful_products":[{"product":"cra_base_report","version":"V1"},{"product":"cra_income_insights","version":"V1"}],"failed_products":[],"generated_time":"2026-01-12T20:23:59Z","environment":"production"}}},"CraReportReadyWebhook":{"type":"object","title":"CraReportReadyWebhook","description":"Fired when generation finishes for a Consumer Report requested via `/cra/report/create` or a Link session configured with `cra_report_parameter`, whether every requested product was generated, only some were, or none were. `successful_products` and `failed_products` indicate which products were generated, and `error_code` is populated when every product failed. Call `/cra/report/get` for the generated products and for error details on failed products.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CRA_REPORT`"},"webhook_code":{"type":"string","description":"`CRA_REPORT_READY`"},"user_id":{"type":"string","description":"The `user_id` associated with the user whose data is being requested. This is received by calling `/user/create`."},"client_user_id":{"type":["string","null"],"description":"The `client_user_id` you supplied for this user when calling `/user/create`. `null` if no `client_user_id` is associated with the user."},"report_id":{"anyOf":[{"allOf":[{"$ref":"#/components/schemas/CraReportId"},{"description":"The identifier of the Consumer Report. Pass this value to `/cra/report/get` to retrieve the report."}]},{"type":"null"}]},"client_report_id":{"type":["string","null"],"description":"The `client_report_id` you supplied when requesting the report, if any."},"scope":{"$ref":"#/components/schemas/CraReportScope"},"successful_products":{"type":"array","description":"Specifies a list of products that have successfully been generated for the report.","items":{"$ref":"#/components/schemas/CreditProduct"}},"failed_products":{"type":"array","description":"Specifies a list of products that have failed to generate for the report. Additional detail on what caused the failure can be found in the product's `errors` when calling `/cra/report/get`.","items":{"$ref":"#/components/schemas/CreditProduct"}},"generated_time":{"type":["string","null"],"format":"date-time","description":"The timestamp when the products were generated, in ISO 8601 format. Null if there are no successful products."},"error_code":{"$ref":"#/components/schemas/CraReportErrorCode"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","client_user_id","report_id","client_report_id","scope","successful_products","failed_products","generated_time","error_code","environment"],"x-examples":{"example-1":{"webhook_type":"CRA_REPORT","webhook_code":"CRA_REPORT_READY","user_id":"usr_8c3ZbDBYjaqUXZ","client_user_id":"uid_12345","report_id":"cra-report-production-3c9d2a71-5e4b-4f0a-8b6d-7a1e9f2c4b58","client_report_id":"908en3djkk342","scope":"CLIENT_USER","successful_products":[{"product":"cra_base_report","version":"V1"},{"product":"cra_income_insights","version":"V2"}],"failed_products":[{"product":"cra_lend_score","version":"V2"}],"generated_time":"2026-01-12T20:23:59Z","error_code":null,"environment":"production"},"example-2":{"webhook_type":"CRA_REPORT","webhook_code":"CRA_REPORT_READY","user_id":"usr_8c3ZbDBYjaqUXZ","client_user_id":"uid_12345","report_id":"cra-report-production-3c9d2a71-5e4b-4f0a-8b6d-7a1e9f2c4b58","client_report_id":"908en3djkk342","scope":"CLIENT_USER","successful_products":[],"failed_products":[{"product":"cra_base_report","version":"V1"},{"product":"cra_income_insights","version":"V2"},{"product":"cra_lend_score","version":"V2"}],"generated_time":null,"error_code":"DATA_UNAVAILABLE","environment":"production"}}},"CraPartnerInsightsCompleteWebhook":{"type":"object","title":"CraPartnerInsightsCompleteWebhook","description":"Fired when a partner insights report has finished generating and results are available","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CRA_INSIGHTS`"},"webhook_code":{"type":"string","description":"`PARTNER_INSIGHTS_COMPLETE`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CRA_INSIGHTS","webhook_code":"PARTNER_INSIGHTS_COMPLETE","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","environment":"production"}}},"CraPartnerInsightsErrorWebhook":{"type":"object","title":"CraPartnerInsightsErrorWebhook","description":"Fired when a partner insights report has failed to generate","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`CRA_INSIGHTS`"},"webhook_code":{"type":"string","description":"`PARTNER_INSIGHTS_ERROR`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"CRA_INSIGHTS","webhook_code":"PARTNER_INSIGHTS_ERROR","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","environment":"production"}}},"IncomeVerificationRefreshReconnectNeededWebhook":{"type":"object","title":"IncomeVerificationRefreshReconnectNeededWebhook","description":"Fired when the attempt to refresh Payroll Income data for a user via `/credit/payroll_income/refresh` failed because the user must re-connect their payroll account.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`INCOME`"},"webhook_code":{"type":"string","description":"`INCOME_VERIFICATION_REFRESH_RECONNECT_NEEDED`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"INCOME_VERIFICATION_REFRESH_RECONNECT_NEEDED","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","environment":"production"}}},"UserIncomeVerificationRefreshReconnectNeededWebhook":{"type":"object","title":"UserIncomeVerificationRefreshReconnectNeededWebhook","description":"Fired when the attempt to refresh Payroll Income data for a user via `/credit/payroll_income/refresh` failed because the user must re-connect their payroll account.","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`INCOME`"},"webhook_code":{"type":"string","description":"`USER_INCOME_VERIFICATION_REFRESH_RECONNECT_NEEDED`"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"USER_INCOME_VERIFICATION_REFRESH_RECONNECT_NEEDED","user_id":"usr_8c3ZbDBYjaqUXZ","environment":"production"}}},"BankIncomeRefreshUpdateWebhook":{"type":"object","title":"BankIncomeRefreshUpdateWebhook","description":"Fired when a change to the user's income is detected. To obtain refreshed Bank Income data, send the user through Link's update mode so they can confirm their income sources, or migrate to CRA Income Insights and call `/cra/check_report/create` for a backend refresh. To receive this webhook, subscribe in the [Dashboard](https://dashboard.plaid.com/developers/webhooks).","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`INCOME`"},"webhook_code":{"type":"string","description":"`BANK_INCOME_REFRESH_UPDATE`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","environment"],"x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"BANK_INCOME_REFRESH_UPDATE","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","environment":"production"}}},"BankIncomeRefreshCompleteWebhook":{"type":"object","title":"BankIncomeRefreshCompleteWebhook","description":"Fired when a refreshed bank income report has finished generating or failed to generate. To obtain refreshed Bank Income data, send the user through Link's update mode, or migrate to CRA Income Insights and call `/cra/check_report/create` for a backend refresh. To get this webhook, subscribe via the [Dashboard](https://dashboard.plaid.com/developers/webhooks).","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`INCOME`"},"webhook_code":{"type":"string","description":"`BANK_INCOME_REFRESH_COMPLETE`"},"user_id":{"type":"string","description":"The `user_id` corresponding to the user the webhook has fired for."},"result":{"$ref":"#/components/schemas/BankIncomeRefreshCompleteResult"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","user_id","result","environment"],"x-examples":{"example-1":{"webhook_type":"INCOME","webhook_code":"BANK_INCOME_REFRESH_COMPLETE","user_id":"wz666MBjYWTp2PDzzggYhM6oWWmBb","result":"SUCCESS","environment":"production"}}},"BankIncomeRefreshCompleteResult":{"type":"string","enum":["SUCCESS","FAILURE"],"description":"The result of the bank income refresh report generation\n\n`SUCCESS`: The refreshed report was successfully generated and can be retrieved via `/credit/bank_income/get`.\n\n`FAILURE`: The refreshed report failed to be generated"},"LinkEventMetadata":{"type":"object","title":"LinkEventMetadata","description":"Metadata about an event that occurred while the user was going through Link","additionalProperties":true,"properties":{"error_code":{"type":"string","description":"The error code that the user encountered. Emitted by `ERROR`, `EXIT`."},"error_message":{"type":"string","description":"The error message that the user encountered. Emitted by: `ERROR`, `EXIT`."},"error_type":{"type":"string","description":"The error type that the user encountered. Emitted by: `ERROR`, `EXIT`."},"exit_status":{"type":"string","description":"The status key indicates the point at which the user exited the Link flow. Emitted by: `EXIT`."},"institution_id":{"type":"string","description":"The ID of the selected institution. Emitted by: all events."},"institution_name":{"type":"string","description":"The name of the selected institution. Emitted by: all events."},"institution_search_query":{"type":"string","description":"The query used to search for institutions. Emitted by: `SEARCH_INSTITUTION`."},"request_id":{"type":"string","description":"The request ID for the last request made by Link. This can be shared with Plaid support to expedite investigation. Emitted by: all events."},"mfa_type":{"type":"string","description":"If set, the user has encountered one of the following MFA types: code, device, questions, selections. Emitted by: `SUBMIT_MFA` and `TRANSITION_VIEW` when `view_name` is `MFA`.","x-hidden-from-docs":true},"view_name":{"type":"string","description":"The name of the view that is being transitioned to. Emitted by: `TRANSITION_VIEW`."},"selection":{"type":"string","description":"Either the verification method for a matched institution selected by the user or the Auth Type Select flow type selected by the user. If selection is used to describe selected verification method, then possible values are `phoneotp` or `password`;  if selection is used to describe the selected Auth Type Select flow, then possible values are `flow_type_manual` or `flow_type_instant`. Emitted by: `MATCHED_SELECT_VERIFY_METHOD` and `SELECT_AUTH_TYPE`."},"brand_name":{"type":"string","description":"The name of the selected brand."},"match_reason":{"type":"string","description":"The reason this institution was matched. This will be either `returning_user` or `routing_number` if emitted by `MATCHED_SELECT_INSTITUTION`. Otherwise, this will be `SAVED_INSTITUTION` or `AUTO_SELECT_SAVED_INSTITUTION` if emitted by `SELECT_INSTITUTION`."},"routing_number":{"type":"string","description":"The routing number submitted by the user at the micro-deposits routing number pane. Emitted by `SUBMIT_ROUTING_NUMBER`."},"account_number_mask":{"type":"string","description":"The account number mask extracted from the user-provided account number. If the user-inputted account number is four digits long, `account_number_mask` is empty. Emitted by `SUBMIT_ACCOUNT_NUMBER`."}}},"LinkEvent":{"type":"object","title":"LinkEvent","description":"An event that occurred while the user was going through Link","additionalProperties":true,"properties":{"event_name":{"type":"string","description":"Event name"},"timestamp":{"type":"string","description":"Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."},"event_id":{"type":"string","description":"UUID that can be used to deduplicate events"},"event_metadata":{"$ref":"#/components/schemas/LinkEventMetadata"}},"required":["event_id","timestamp","event_name","event_metadata"]},"LinkEventsWebhook":{"title":"LinkEventsWebhook","type":"object","additionalProperties":true,"description":"This webhook contains a summary of the events from a Link session and will be fired after the user finishes going through Link. If the user abandons the Link flow (i.e., closes the hosted link webpage or leaves Link open for too long without taking any action), the webhook will be fired 15-25 minutes after the last user interaction. A single Link session may occasionally generate multiple `EVENTS` webhooks. If this occurs, the new webhook will contain all previous events for the session, as well as new events that occurred since the previous `EVENTS` webhook was sent. If this occurs, events can be grouped using the `link_session_id` field and, if necessary, de-duplicated using the `event_id` field.\n\nBy default, the `EVENTS` webhook is sent only for sessions where the end user goes through a Hosted Link flow (including Link Recovery flows). If you would like to receive this webhook for sessions not using Hosted Link, contact your account manager or support. This enablement will also cause you to receive the `SESSION_FINISHED` webhook for non-Hosted-Link sessions and to be able to use `/link/token/get` to receive events data for non-Hosted Link sessions.","properties":{"webhook_type":{"type":"string","description":"`LINK`"},"webhook_code":{"type":"string","description":"`EVENTS`"},"events":{"type":"array","description":"The Link events emitted during the Link session","items":{"$ref":"#/components/schemas/LinkEvent"}},"link_session_id":{"type":"string","description":"An identifier for the Link session these events occurred in"},"link_token":{"type":"string","description":"The Link token used to create the Link session these events are from"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","events","link_session_id","link_token","environment"],"x-examples":{"example-1":{"environment":"sandbox","link_session_id":"1daca4d5-9a0d-4e85-a2e9-1e905ecaa32e","link_token":"link-sandbox-79e723b0-0e04-4248-8a33-15ceb6828a45","webhook_code":"EVENTS","webhook_type":"LINK","events":[{"event_id":"9469937a-6fac-40be-9322-f86e8c0b94ed","event_metadata":{"request_id":"ClqZyuhovgkaQ3j"},"event_name":"TRANSITION_VIEW","timestamp":"2024-05-21T00:17:54Z"},{"event_id":"4b2390cf-33a2-4078-b933-62468b9e53a5","event_metadata":{"error_code":"INVALID_CREDENTIALS","error_message":"the provided credentials were not correct","error_type":"ITEM_ERROR","institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"ttK0NtGKaVAlbCR"},"event_name":"ERROR","timestamp":"2024-05-21T00:18:09Z"},{"event_id":"45f76afe-f2aa-495c-a326-f37e043a1ccd","event_metadata":{"request_id":"WRJqqeh8Hxife05"},"event_name":"TRANSITION_VIEW","timestamp":"2024-05-21T00:17:56Z"},{"event_id":"978b772c-f2cc-404f-9449-2113e4671c4f","event_metadata":{"error_code":"INVALID_CREDENTIALS","error_message":"the provided credentials were not correct","error_type":"ITEM_ERROR","exit_status":"requires_credentials","institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"u1HcAeiCKtz3qmm"},"event_name":"EXIT","timestamp":"2024-05-21T00:18:13Z"},{"event_id":"a873db76-aa4e-4a00-9d60-7ae08aa8e63f","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"ttK0NtGKaVAlbCR"},"event_name":"TRANSITION_VIEW","timestamp":"2024-05-21T00:18:09Z"},{"event_id":"ca85566d-5f32-4716-909f-82f3a0b6160b","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"XRvev3cP9wYUFz5"},"event_name":"SUBMIT_CREDENTIALS","timestamp":"2024-05-21T00:18:07Z"},{"event_id":"09220752-6b83-407e-baf0-f6228df16ea0","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"WRJqqeh8Hxife05"},"event_name":"SELECT_INSTITUTION","timestamp":"2024-05-21T00:18:01Z"},{"event_id":"1c75d2ee-19c1-4d1b-8600-7d06cecbb270","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"5vc1IyBHfLkIVFx"},"event_name":"TRANSITION_VIEW","timestamp":"2024-05-21T00:18:12Z"},{"event_id":"1c9c9059-c065-4362-836a-d9afb91a6125","event_metadata":{"request_id":"MlFW5NSWtCs1KLI"},"event_name":"TRANSITION_VIEW","timestamp":"2024-05-21T00:17:50Z"},{"event_id":"4f381b3f-172b-4bca-9804-c230f8d36a3b","event_metadata":{"institution_id":"ins_20","institution_name":"Citizens Bank","request_id":"XRvev3cP9wYUFz5"},"event_name":"TRANSITION_VIEW","timestamp":"2024-05-21T00:18:02Z"},{"event_id":"dd9d4747-d4da-4c11-88d6-b5a0e96f1886","event_metadata":{"request_id":"ClqZyuhovgkaQ3j"},"event_name":"SKIP_SUBMIT_PHONE","timestamp":"2024-05-21T00:17:55Z"}]}}},"ItemAddResultWebhook":{"title":"ItemAddResultWebhook","type":"object","additionalProperties":true,"description":"Fired when a user successfully adds a Plaid Item during a Link session when using Hosted Link or Multi-Item Link sessions. Contains the public token for the Item.","properties":{"webhook_type":{"type":"string","description":"`LINK`"},"webhook_code":{"type":"string","description":"`ITEM_ADD_RESULT`"},"link_session_id":{"type":"string","description":"The identifier for the Link session."},"link_token":{"type":"string","description":"The `link_token` used to create the Link session."},"public_token":{"type":"string","description":"The `public_token` corresponding to the Item that was added."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","link_session_id","link_token","public_token","environment"],"x-examples":{"example-1":{"webhook_type":"LINK","webhook_code":"ITEM_ADD_RESULT","link_session_id":"356dbb28-7f98-44d1-8e6d-0cec580f3171","link_token":"link-sandbox-af1a0311-da53-4636-b754-dd15cc058176","public_token":"public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d","environment":"sandbox"}}},"LinkSessionFinishedWebhook":{"title":"LinkSessionFinishedWebhook","type":"object","additionalProperties":true,"description":"Contains the state of a completed Link session, along with the public token(s) if available.\n\nBy default, this webhook is sent only for sessions enabled for the Hosted Link flow (including Link Recovery flows), a Multi-Item Link flow, or a Layer flow. If you would like to receive this webhook for other sessions, contact your account manager or support. This enablement will also enable the `EVENTS` webhook for all Link sessions and the ability to use `/link/token/get` to retrieve events for non-Hosted-Link sessions.","properties":{"webhook_type":{"type":"string","description":"`LINK`"},"webhook_code":{"type":"string","description":"`SESSION_FINISHED`"},"status":{"type":"string","description":"The final status of the Link session. Will always be \"success\" or \"exited\"."},"link_session_id":{"type":"string","description":"The identifier for the Link session."},"link_token":{"type":"string","description":"The `link_token` used to create the Link session."},"public_token":{"deprecated":true,"type":"string","description":"The public token generated by the Link session. This field has been deprecated; please use `public_tokens` instead."},"public_tokens":{"type":"array","description":"The public tokens generated by the Link session.","items":{"type":"string"}},"user_id":{"$ref":"#/components/schemas/UserId"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","link_session_id","link_token","environment"],"x-examples":{"example-1":{"webhook_type":"LINK","webhook_code":"SESSION_FINISHED","status":"success","link_session_id":"356dbb28-7f98-44d1-8e6d-0cec580f3171","link_token":"link-sandbox-af1a0311-da53-4636-b754-dd15cc058176","public_tokens":["public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d"],"environment":"sandbox"}}},"HostedMMDVerificationWebhook":{"title":"HostedMMDVerificationWebhook","type":"object","additionalProperties":true,"description":"Contains the state of an SMS Same-Day Micro-deposits verification session.","properties":{"webhook_type":{"type":"string","description":"`AUTH`"},"webhook_code":{"type":"string","description":"`SMS_MICRODEPOSITS_VERIFICATION`"},"status":{"type":"string","description":"The final status of the Same-Day Micro-deposits verification. Will always be `MANUALLY_VERIFIED` or `VERIFICATION_FAILED`."},"item_id":{"$ref":"#/components/schemas/ItemId"},"account_id":{"type":"string","description":"The external account ID of the affected account"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","status","item_id","account_id"],"x-examples":{"example-1":{"webhook_type":"AUTH","webhook_code":"SMS_MICRODEPOSITS_VERIFICATION","status":"MANUALLY_VERIFIED","item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","account_id":"dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK","environment":"sandbox"}}},"InstitutionStatusAlertWebhook":{"title":"InstitutionStatusAlertWebhook","description":"Fired when institution status meets the conditions configured in the developer dashboard.","type":"object","additionalProperties":true,"properties":{"webhook_type":{"type":"string","description":"`DASHBOARD_CONFIGURED_ALERT`"},"webhook_code":{"type":"string","description":"`INSTITUTION_STATUS_ALERT_TRIGGERED`"},"institution_id":{"type":"string","description":"The ID of the associated institution."},"institution_overall_success_rate":{"type":"number","format":"double","description":"The global success rate of the institution, calculated based on item add health."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","institution_id","institution_overall_success_rate","environment"],"x-examples":{"example-1":{"webhook_type":"DASHBOARD_CONFIGURED_ALERT","webhook_code":"INSTITUTION_STATUS_ALERT_TRIGGERED","institution_id":"ins_56","institution_overall_success_rate":0.9,"environment":"production"}}},"SandboxPaymentSimulateRequest":{"type":"object","description":"SandboxPaymentSimulateRequest defines the request schema for `/sandbox/payment/simulate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"payment_id":{"type":"string","description":"The ID of the payment to simulate"},"webhook":{"type":"string","description":"The webhook URL to use for any payment events triggered by the simulated status change. Used only if the payment is not yet associated with an Item; otherwise, events are sent to the Item's webhook."},"status":{"type":"string","description":"The status to set the payment to.\n\nValid statuses include:\n- `PAYMENT_STATUS_INITIATED`\n- `PAYMENT_STATUS_INSUFFICIENT_FUNDS`\n- `PAYMENT_STATUS_FAILED`\n- `PAYMENT_STATUS_EXECUTED`\n- `PAYMENT_STATUS_SETTLED`\n- `PAYMENT_STATUS_CANCELLED`\n- `PAYMENT_STATUS_REJECTED`"}},"required":["payment_id","webhook","status"]},"SandboxPaymentSimulateResponse":{"type":"object","additionalProperties":true,"description":"SandboxPaymentSimulateResponse defines the response schema for `/sandbox/payment/simulate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"old_status":{"$ref":"#/components/schemas/PaymentInitiationPaymentStatus"},"new_status":{"$ref":"#/components/schemas/PaymentInitiationPaymentStatus"}},"required":["request_id","old_status","new_status"]},"AssetReportCreateRequest":{"type":"object","description":"AssetReportCreateRequest defines the request schema for `/asset_report/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_tokens":{"type":"array","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"},"minItems":1,"maxItems":99},"days_requested":{"type":"integer","maximum":731,"minimum":0,"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.\n\nAn Asset Report requested with \"Additional History\" (that is, with more than 61 days of transaction history) will incur an Additional History fee."},"options":{"$ref":"#/components/schemas/AssetReportCreateRequestOptions"}},"required":["days_requested"]},"AssetReportCreateRequestOptions":{"type":"object","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":{"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"webhook":{"type":["string","null"],"description":"URL to which Plaid will send Assets webhooks, for example when the requested Asset Report is ready.","format":"url"},"include_fast_report":{"deprecated":true,"type":["boolean","null"],"description":"true to return balance and identity earlier as a fast report. Defaults to false if omitted.","x-hidden-from-docs":true},"products":{"deprecated":true,"type":"array","description":"Additional information that can be included in the asset report. Possible values: `\"investments\"`","x-hidden-from-docs":true,"items":{"type":"string"}},"add_ons":{"type":"array","items":{"$ref":"#/components/schemas/AssetReportAddOns"},"description":"A list of add-ons that should be included in the Asset Report.\n\nWhen 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. To create a Fast Asset Report, Plaid must successfully retrieve both Identity and Balance data; if Plaid encounters an error obtaining this data, the Fast Asset Report will not be created. However, as long as Plaid can obtain Transactions data, the Full Asset Report will still be available.\n\nWhen Investments is requested, `investments` must be specified in the `optional_products` array when initializing Link."},"user":{"$ref":"#/components/schemas/AssetReportUser"},"require_all_items":{"type":["boolean","null"],"default":true,"description":"By default (`true`), the asynchronous report generation fails unless all Items extract successfully. If set to `false`, the report will still be generated as long as at least one Item extracts successfully; extraction failures on the remaining Items are tolerated. This setting applies only to failures that occur during asynchronous extraction. It does not relax the synchronous check at call time: if any Item is already unhealthy when `/asset_report/create` is invoked, the request fails immediately regardless of this value."}}},"AssetReportCreateResponse":{"type":"object","additionalProperties":true,"description":"AssetReportCreateResponse defines the response schema for `/asset_report/create`","properties":{"asset_report_token":{"$ref":"#/components/schemas/AssetReportToken"},"asset_report_id":{"$ref":"#/components/schemas/AssetReportId"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["asset_report_token","asset_report_id","request_id"]},"AssetReportRefreshRequest":{"type":"object","description":"AssetReportRefreshRequest defines the request schema for `/asset_report/refresh`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"asset_report_token":{"$ref":"#/components/schemas/AssetReportRefreshAssetReportToken"},"days_requested":{"type":["integer","null"],"minimum":0,"maximum":731,"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."},"options":{"$ref":"#/components/schemas/AssetReportRefreshRequestOptions"}},"required":["asset_report_token"]},"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.","type":"object","properties":{"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"webhook":{"type":["string","null"],"description":"URL to which Plaid will send Assets webhooks, for example when the requested Asset Report is ready.","format":"url"},"user":{"$ref":"#/components/schemas/AssetReportUser"}}},"AssetReportRefreshResponse":{"type":"object","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"]},"AssetReportRemoveRequest":{"type":"object","description":"AssetReportRemoveRequest defines the request schema for `/asset_report/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"asset_report_token":{"$ref":"#/components/schemas/AssetReportToken"}},"required":["asset_report_token"]},"AssetReportRemoveResponse":{"type":"object","additionalProperties":true,"description":"AssetReportRemoveResponse defines the response schema for `/asset_report/remove`","properties":{"removed":{"type":"boolean","description":"`true` if the Asset Report was successfully removed."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["removed","request_id"]},"AssetReportFilterRequest":{"type":"object","description":"AssetReportFilterRequest defines the request schema for `/asset_report/filter`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"asset_report_token":{"$ref":"#/components/schemas/AssetReportToken"},"account_ids_to_exclude":{"type":"array","description":"The accounts to exclude from the Asset Report, identified by `account_id`.","items":{"type":"string"}}},"required":["asset_report_token","account_ids_to_exclude"]},"AssetReportFilterResponse":{"type":"object","additionalProperties":true,"description":"AssetReportFilterResponse defines the response schema for `/asset_report/filter`","properties":{"asset_report_token":{"$ref":"#/components/schemas/AssetReportToken"},"asset_report_id":{"$ref":"#/components/schemas/AssetReportId"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["asset_report_token","asset_report_id","request_id"]},"AssetReportGetRequest":{"type":"object","description":"AssetReportGetRequest defines the request schema for `/asset_report/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"asset_report_token":{"$ref":"#/components/schemas/AssetReportTokenNullable"},"user_token":{"type":"string","description":"The user token associated with the User for which to create an asset report for. The latest asset report associated with the User will be returned","x-hidden-from-docs":true},"include_insights":{"type":"boolean","default":false,"description":"`true` if you would like to retrieve the Asset Report with Insights, `false` otherwise. This field defaults to `false` if omitted."},"fast_report":{"type":"boolean","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\"]`."},"options":{"$ref":"#/components/schemas/AssetReportGetRequestOptions"}}},"AssetReportGetRequestOptions":{"type":"object","description":"An optional object to filter or add data to `/asset_report/get` results. If provided, must be non-`null`.","properties":{"days_to_include":{"type":["integer","null"],"maximum":731,"minimum":0,"description":"The maximum number of days of history to include in the Asset Report."}}},"AssetReportGetResponse":{"type":"object","additionalProperties":true,"description":"AssetReportGetResponse defines the response schema for `/asset_report/get`","properties":{"report":{"$ref":"#/components/schemas/AssetReport"},"warnings":{"type":"array","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"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["report","warnings","request_id"]},"AssetReportPDFGetRequest":{"type":"object","description":"AssetReportPDFGetRequest defines the request schema for `/asset_report/pdf/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"asset_report_token":{"$ref":"#/components/schemas/AssetReportToken"},"options":{"$ref":"#/components/schemas/AssetReportPDFGetRequestOptions"}},"required":["asset_report_token"]},"AssetReportPDFGetRequestOptions":{"type":"object","description":"An optional object to filter or add data to `/asset_report/get` results. If provided, must be non-`null`.","properties":{"days_to_include":{"type":["integer","null"],"maximum":731,"minimum":0,"description":"The maximum integer number of days of history to include in the Asset Report."}}},"AssetReportPDFGetResponse":{"contentMediaType":"application/octet-stream","description":"AssetReportPDFGetResponse defines the response schema for `/asset_report/pdf/get`"},"AssetReportAuditCopyCreateRequest":{"type":"object","description":"AssetReportAuditCopyCreateRequest defines the request schema for `/asset_report/audit_copy/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"asset_report_token":{"$ref":"#/components/schemas/AssetReportToken"},"auditor_id":{"type":"string","description":"The `auditor_id` of the third party with whom you would like to share the Asset Report."}},"required":["asset_report_token"]},"AssetReportAuditCopyCreateResponse":{"type":"object","additionalProperties":true,"description":"AssetReportAuditCopyCreateResponse defines the response schema for `/asset_report/audit_copy/create`","properties":{"audit_copy_token":{"type":"string","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."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["audit_copy_token","request_id"]},"AssetReportAuditCopyGetRequest":{"title":"AssetReportAuditCopyGetRequest","type":"object","description":"AssetReportAuditCopyGetRequest defines the request schema for `/asset_report/audit_copy/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"audit_copy_token":{"type":"string","description":"The `audit_copy_token` granting access to the Audit Copy you would like to get."}},"required":["audit_copy_token"]},"AssetReportAuditCopyRemoveRequest":{"type":"object","description":"AssetReportAuditCopyRemoveRequest defines the request schema for `/asset_report/audit_copy/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"audit_copy_token":{"type":"string","description":"The `audit_copy_token` granting access to the Audit Copy you would like to revoke."}},"required":["audit_copy_token"]},"AssetReportAuditCopyRemoveResponse":{"type":"object","additionalProperties":true,"description":"AssetReportAuditCopyRemoveResponse defines the response schema for `/asset_report/audit_copy/remove`","properties":{"removed":{"type":"boolean","description":"`true` if the Audit Copy was successfully removed."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["removed","request_id"]},"AssetReportAuditCopyPdfGetRequest":{"type":"object","description":"AssetReportAuditCopyPDFGetRequest defines the request schema for `/asset_report/audit_copy/pdf/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"audit_copy_token":{"type":"string","description":"The `audit_copy_token` granting access to the Audit Copy you would like to get as a PDF."},"options":{"$ref":"#/components/schemas/AssetReportPDFGetRequestOptions"}},"required":["audit_copy_token"]},"AssetReportAuditCopyPdfGetResponse":{"contentMediaType":"application/octet-stream","description":"AssetReportAuditCopyPDFGetResponse defines the response schema for `/asset_report/audit_copy/pdf/get`"},"CraMonitoringInsightsSubscribeRequest":{"type":"object","description":"CraMonitoringInsightsSubscribeRequest defines the request schema for `/cra/monitoring_insights/subscribe`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"item_id":{"type":"string","description":"The Item ID to subscribe for Cash Flow Updates."},"webhook":{"type":"string","description":"URL to which Plaid will send Cash Flow Updates webhooks, for example when the requested Cash Flow Updates report is ready.","format":"url"},"income_categories":{"type":["array","null"],"description":"Income categories to include in Cash Flow Updates. If empty or `null`, this field will default to including all possible categories.","items":{"$ref":"#/components/schemas/CreditBankIncomeCategory"}},"user_token":{"$ref":"#/components/schemas/UserToken"}},"required":["webhook"]},"CraMonitoringInsightsSubscribeResponse":{"type":"object","additionalProperties":true,"description":"CraMonitoringInsightsSubscribeResponse defines the response schema for `/cra/monitoring_insights/subscribe`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"subscription_id":{"$ref":"#/components/schemas/CraMonitoringInsightsSubscriptionID"}},"required":["request_id","subscription_id"]},"CraMonitoringInsightsSubscriptionID":{"title":"CraMonitoringInsightsSubscriptionId","type":"string","description":"A unique identifier for the subscription."},"CraMonitoringInsightsUnsubscribeRequest":{"type":"object","description":"CraMonitoringInsightsUnsubscribeRequest defines the request schema for `/cra/monitoring_insights/unsubscribe`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"subscription_id":{"$ref":"#/components/schemas/CraMonitoringInsightsSubscriptionID"}},"required":["subscription_id"]},"CraMonitoringInsightsUnsubscribeResponse":{"type":"object","additionalProperties":true,"description":"CraMonitoringInsightsUnsubscribeResponse defines the response schema for `/cra/monitoring_insights/unsubscribe`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CraMonitoringInsightsGetRequest":{"type":"object","description":"CraMonitoringInsightsGetRequest defines the request schema for `/cra/monitoring_insights/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"consumer_report_permissible_purpose":{"$ref":"#/components/schemas/MonitoringConsumerReportPermissiblePurpose"},"user_token":{"$ref":"#/components/schemas/UserToken"}},"required":["consumer_report_permissible_purpose"]},"CraMonitoringInsightsGetResponse":{"type":"object","additionalProperties":true,"description":"CraMonitoringInsightsGetResponse defines the response schema for `/cra/monitoring_insights/get`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"user_insights_id":{"$ref":"#/components/schemas/UserInsightsId"},"items":{"type":"array","description":"An array of Monitoring Insights Items associated with the user.","items":{"$ref":"#/components/schemas/CraMonitoringInsightsItem"}}},"required":["request_id","user_insights_id","items"]},"UserInsightsId":{"title":"UserInsightsId","description":"A unique ID identifying a User Monitoring Insights Report. Like all Plaid identifiers, this ID is case sensitive.","type":"string"},"CraMonitoringInsightsItem":{"title":"CraMonitoringInsightsItem","type":"object","additionalProperties":true,"description":"An object representing a Monitoring Insights Item","properties":{"date_generated":{"type":"string","format":"date-time","description":"The date and time when the specific insights were generated (per-item), in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. \"2018-04-12T03:32:11Z\")."},"item_id":{"type":"string","description":"The `item_id` of the Item associated with the insights"},"institution_id":{"type":"string","description":"The id of the financial institution associated with the Item."},"institution_name":{"type":"string","description":"The full financial institution name associated with the Item."},"status":{"$ref":"#/components/schemas/MonitoringInsightsItemStatus"},"insights":{"$ref":"#/components/schemas/MonitoringInsights"},"accounts":{"type":"array","description":"Data about each of the accounts open on the Item.","items":{"$ref":"#/components/schemas/BaseReportAccount"}}},"required":["date_generated","item_id","institution_id","institution_name","status","insights"]},"MonitoringInsightsItemStatus":{"title":"MonitoringInsightsItemStatus","type":"object","additionalProperties":true,"description":"An object with details of the Monitoring Insights Item's status.","properties":{"status_code":{"$ref":"#/components/schemas/MonitoringItemStatusCode"},"reason":{"type":["string","null"],"description":"A reason for why a Monitoring Insights Report is not available.\nThis field will only be populated when the `status_code` is not `AVAILABLE`"}},"required":["status_code"]},"MonitoringInsightsStatus":{"title":"MonitoringInsightsStatus","type":"string","enum":["AVAILABLE","FAILED"],"description":"Enum for the status of the insights"},"MonitoringItemStatusCode":{"title":"MonitoringItemStatusCode","type":"string","enum":["AVAILABLE","FAILED","PENDING"],"description":"Enum for the status of the Item's insights"},"CraCheckReportPermissiblePurpose":{"type":"string","title":"CraCheckReportPermissiblePurpose","enum":["ACCOUNT_REVIEW_CREDIT","ACCOUNT_REVIEW_NON_CREDIT","WRITTEN_INSTRUCTION_OTHER","SECONDARY_INVESTOR"],"description":"The permissible purpose under the FCRA for retrieving this consumer report. Restricted to permissible purposes related to loan servicing only. Required when `report_id` is provided."},"MonitoringConsumerReportPermissiblePurpose":{"type":"string","title":"MonitoringConsumerReportPermissiblePurpose","enum":["ACCOUNT_REVIEW_CREDIT","ACCOUNT_REVIEW_NON_CREDIT","WRITTEN_INSTRUCTION_OTHER","SECONDARY_INVESTOR"],"description":"Describes the reason you are generating a Consumer Report for this user.\n\n`ACCOUNT_REVIEW_CREDIT`: In connection with a consumer credit transaction for the review or collection of an account pursuant to FCRA Section 604(a)(3)(A).\n\n`ACCOUNT_REVIEW_NON_CREDIT`: For a legitimate business need of the information to review a non-credit account provided primarily for personal, family, or household purposes to determine whether the consumer continues to meet the terms of the account pursuant to FCRA Section 604(a)(3)(F)(2).\n\n`WRITTEN_INSTRUCTION_OTHER`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.\n\n`SECONDARY_INVESTOR`: As a potential investor or servicer, or current insurer, in connection with a valuation of, or an assessment of the credit or prepayment risks associated with, an existing credit obligation pursuant to FCRA Section 604(a)(3)(E)."},"MonitoringInsights":{"title":"MonitoringInsights","type":["object","null"],"additionalProperties":true,"description":"An object representing the Monitoring Insights for the given Item","properties":{"income":{"$ref":"#/components/schemas/MonitoringIncomeInsights"},"loans":{"$ref":"#/components/schemas/MonitoringLoanInsights"}},"required":["income","loans"]},"MonitoringIncomeInsights":{"title":"MonitoringIncomeInsights","type":"object","additionalProperties":true,"description":"An object representing the income subcategory of the report","properties":{"total_monthly_income":{"$ref":"#/components/schemas/TotalMonthlyIncomeInsights"},"income_sources_counts":{"$ref":"#/components/schemas/IncomeSourcesCounts"},"forecasted_monthly_income":{"$ref":"#/components/schemas/ForecastedMonthlyIncome"},"historical_annual_income":{"$ref":"#/components/schemas/HistoricalAnnualIncome"},"income_sources":{"type":"array","description":"The income sources for this Item. Each entry in the array is a single income source","items":{"$ref":"#/components/schemas/MonitoringIncomeSource"}}},"required":["total_monthly_income","income_sources_counts","forecasted_monthly_income","historical_annual_income","income_sources"]},"TotalMonthlyIncomeInsights":{"title":"TotalMonthlyIncomeInsights","type":"object","additionalProperties":true,"description":"Details about the total monthly income","properties":{"baseline_amount":{"type":["number","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"The aggregated income for the 30 days prior to subscription date"},"current_amount":{"type":"number","description":"The sum of the historical average monthly income of each income source currently detected."}},"required":["current_amount"]},"IncomeSourcesCounts":{"title":"IncomeSourcesCounts","type":"object","additionalProperties":true,"description":"Details about the number of income sources","properties":{"baseline_count":{"type":["number","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"The number of income sources detected at the subscription date"},"current_count":{"type":"number","description":"The number of income sources currently detected"}},"required":["current_count"]},"MonitoringLoanInsights":{"title":"MonitoringLoanInsights","type":"object","additionalProperties":true,"description":"An object representing the loan exposure subcategory of the report","properties":{"loan_payments_counts":{"$ref":"#/components/schemas/LoanPaymentsCounts"},"loan_disbursements_count":{"type":"number","description":"The number of loan disbursements detected in the last 30 days"},"loan_payment_merchants_counts":{"$ref":"#/components/schemas/LoanPaymentsMerchantCounts"}},"required":["loan_payments_counts","loan_disbursements_count","loan_payment_merchants_counts"]},"LoanPaymentsMerchantCounts":{"title":"LoanPaymentsMerchantCounts","type":"object","additionalProperties":true,"description":"Details regarding the number of unique loan payment merchants","properties":{"baseline_count":{"type":["number","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"The number of unique loan payment merchants detected in the 30 days before the subscription date"},"current_count":{"type":"number","description":"The current number of unique loan payment merchants detected in the last 30 days"}},"required":["current_count"]},"LoanPaymentsCounts":{"title":"LoanPaymentsCounts","type":"object","additionalProperties":true,"description":"Details regarding the number of loan payments","properties":{"baseline_count":{"type":["number","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"The number of loan payments made in the 30 days before the subscription date"},"current_count":{"type":"number","description":"The current number of loan payments made in the last 30 days"}},"required":["current_count"]},"MonitoringIncomeSource":{"title":"MonitoringIncomeSource","type":"object","additionalProperties":true,"description":"An object representing an income source","properties":{"income_source_id":{"type":"string","description":"A unique identifier for an income source"},"income_description":{"type":"string","description":"The most common name or original description for the underlying income transactions"},"income_category":{"$ref":"#/components/schemas/CreditBankIncomeCategory"},"last_transaction_date":{"type":"string","format":"date","description":"The last detected transaction date for this income source"}},"required":["income_source_id","income_description","income_category","last_transaction_date"]},"ForecastedMonthlyIncome":{"title":"ForecastedMonthlyIncome","type":"object","additionalProperties":true,"description":"An object representing the predicted average monthly net income amount. This amount reflects the funds deposited into the account and may not include any withheld income such as taxes or other payroll deductions","properties":{"baseline_amount":{"type":["number","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"The forecasted monthly income at the time of subscription"},"current_amount":{"type":"number","description":"The current forecasted monthly income"}},"required":["current_amount"]},"HistoricalAnnualIncome":{"title":"HistoricalAnnualIncome","type":"object","additionalProperties":true,"description":"An object representing the historical annual income amount.","properties":{"baseline_amount":{"type":["number","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"The historical annual income at the time of subscription"},"current_amount":{"type":"number","description":"The current historical annual income"}},"required":["current_amount"]},"CraCheckReportPDFGetRequest":{"title":"CraCheckReportPDFGetRequest","type":"object","description":"CraCheckReportPDFGetRequest defines the request schema for `/cra/check_report/pdf/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"},"add_ons":{"type":"array","description":"Use this field to include the most recent Income Insights, Partner Insights, or LendScore report in the PDF.","items":{"$ref":"#/components/schemas/CraPDFAddOns"}},"user_token":{"$ref":"#/components/schemas/UserToken"}}},"CraPDFAddOns":{"title":"CraPDFAddOns","enum":["cra_income_insights","cra_partner_insights","cra_lend_score"],"description":"A list of add-ons that can be included in the PDF.\n\n`cra_income_insights`: Include Income Insights report in the PDF.\n\n`cra_partner_insights`: Include Partner Insights report in the PDF.\n\n`cra_lend_score`: Include LendScore report in the PDF.","type":"string"},"CraCheckReportPDFGetResponse":{"contentMediaType":"application/octet-stream","description":"CraCheckReportPDFGetResponse defines the response schema for `/cra/check_report/pdf/get`"},"CraCheckReportBaseReportGetRequest":{"title":"CraCheckReportBaseReportGetRequest","type":"object","description":"CraCheckReportBaseReportGetRequest defines the request schema for `/cra/check_report/base_report/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"},"item_ids":{"type":["array","null"],"description":"The Item IDs to include in the Base Report. If not provided, all Items associated with the user will be included.","x-hidden-from-docs":true,"items":{"$ref":"#/components/schemas/ItemId"}},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_tier":{"$ref":"#/components/schemas/CraUserTier"},"report_id":{"type":"string","description":"The CRA report token (formatted `cra-report-<env>-<uuid>`) identifying a specific consumer report. When provided alongside `consumer_report_permissible_purpose`, pins retrieval to that report and stamps its permissible purpose. If omitted, the most recently generated report for the user is returned.","x-hidden-from-docs":true},"consumer_report_permissible_purpose":{"description":"The permissible purpose under which the consumer report is being retrieved.","x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/CraCheckReportPermissiblePurpose"}]}}},"CraCheckReportBaseReportGetResponse":{"title":"CraCheckReportBaseReportGetResponse","type":"object","additionalProperties":true,"description":"CraCheckReportBaseReportGetResponse defines the response schema for `/cra/check_report/base_report/get`","properties":{"report":{"$ref":"#/components/schemas/BaseReport"},"warnings":{"type":"array","description":"This array contains any information about errors or alerts related to the Base Report that did not block generation of the report.","items":{"$ref":"#/components/schemas/BaseReportWarning"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["report","request_id","warnings"]},"BaseReportWarning":{"title":"BaseReportWarning","type":"object","additionalProperties":true,"description":"It is possible for a Base Report to be returned with missing account owner information. In such cases, the Base Report will contain warning data in the response, indicating why obtaining the owner information failed.","properties":{"warning_type":{"type":"string","description":"The warning type, which will always be `BASE_REPORT_WARNING`"},"warning_code":{"$ref":"#/components/schemas/BaseReportWarningCode"},"cause":{"$ref":"#/components/schemas/Cause"}},"required":["warning_type","warning_code","cause"]},"BaseReportWarningCode":{"type":"string","description":"The warning code identifies a specific kind of warning.\n\n`IDENTITY_UNAVAILABLE`: Account-owner information is not available.\n\n`TRANSACTIONS_UNAVAILABLE`: Transactions information associated with Credit and Depository accounts are unavailable.\n\n`USER_FRAUD_ALERT`: The User has placed a fraud alert on their Plaid Check consumer report due to suspected fraud. Note: when a fraud alert is in place, the recipient of the consumer report has an obligation to verify the consumer's identity.","enum":["IDENTITY_UNAVAILABLE","TRANSACTIONS_UNAVAILABLE","USER_FRAUD_ALERT"]},"BaseReportHistoricalBalance":{"title":"BaseReportHistoricalBalance","type":"object","additionalProperties":true,"description":"An object representing a balance held by an account in the past","properties":{"date":{"type":"string","format":"date","description":"The date of the calculated historical balance, in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)"},"current":{"type":"number","format":"double","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.\n\nIf the account has any pending transactions, historical balance amounts on or before the date of the earliest pending transaction may differ if retrieved in subsequent reports as a result of those pending transactions posting."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the balance. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the balance. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}},"required":["date","current","iso_currency_code","unofficial_currency_code"]},"HistoricalBalance":{"title":"HistoricalBalance","type":"object","additionalProperties":true,"description":"An object representing a balance held by an account in the past","properties":{"date":{"type":"string","format":"date","description":"The date of the calculated historical balance, in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)"},"current":{"type":"number","format":"double","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.\n\nIf the account has any pending transactions, historical balance amounts on or before the date of the earliest pending transaction may differ if retrieved in subsequent Asset Reports as a result of those pending transactions posting."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the balance. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the balance. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}},"required":["date","current","iso_currency_code","unofficial_currency_code"]},"AssetsProductReadyWebhook":{"title":"AssetsProductReadyWebhook","type":"object","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":{"webhook_type":{"type":"string","description":"`ASSETS`"},"webhook_code":{"type":"string","description":"`PRODUCT_READY`"},"asset_report_id":{"type":"string","description":"The `asset_report_id` corresponding to the Asset Report the webhook has fired for."},"user_id":{"type":"string","description":"The `user_id` corresponding to the User ID the webhook has fired for."},"report_type":{"$ref":"#/components/schemas/AssetReportType"},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","asset_report_id","environment"],"x-examples":{"example-1":{"webhook_type":"ASSETS","webhook_code":"PRODUCT_READY","asset_report_id":"47dfc92b-bba3-4583-809e-ce871b321f05","report_type":"FULL","environment":"production"}}},"AssetReportType":{"type":"string","description":"Indicates either a Fast Asset Report, which will contain only current identity and balance information, or a Full Asset Report, which will also contain historical balance information and transaction data.","enum":["FULL","FAST"]},"AssetsErrorWebhook":{"title":"AssetsErrorWebhook","type":"object","additionalProperties":true,"description":"Fired when Asset Report generation has failed. The resulting `error` will have an `error_type` of `ASSET_REPORT_ERROR`.","x-examples":{"example-1":{"webhook_type":"ASSETS","webhook_code":"ERROR","asset_report_id":"47dfc92b-bba3-4583-809e-ce871b321f05","error":{"display_message":null,"error_code":"DATA_UNAVAILABLE","error_message":"unable to pull sufficient data for all items to generate this report. please see the \"causes\" field for more details","error_type":"ASSET_REPORT_ERROR"},"environment":"production"}},"properties":{"webhook_type":{"type":"string","description":"`ASSETS`"},"webhook_code":{"type":"string","description":"`ERROR`"},"error":{"$ref":"#/components/schemas/PlaidError"},"asset_report_id":{"type":"string","description":"The ID associated with the Asset Report."},"user_id":{"type":"string","description":"The `user_id` corresponding to the User ID the webhook has fired for."},"environment":{"$ref":"#/components/schemas/WebhookEnvironmentValues"}},"required":["webhook_type","webhook_code","error","asset_report_id","environment"]},"Warning":{"title":"Warning","type":"object","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":{"warning_type":{"type":"string","description":"The warning type, which will always be `ASSET_REPORT_WARNING`"},"warning_code":{"type":"string","enum":["OWNERS_UNAVAILABLE","INVESTMENTS_UNAVAILABLE","TRANSACTIONS_UNAVAILABLE","BANK_INCOME_INSIGHTS_INSUFFICIENT_DATA","BANK_INCOME_INSIGHTS_INCOMPLETE","BANK_INCOME_INSIGHTS_STATUS_IN_PROGRESS","BANK_INCOME_INSIGHTS_INTERNAL_ERROR","BANK_INCOME_INSIGHTS_MISMATCHED_DAYS_REQUESTED"],"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. The `BANK_INCOME_INSIGHTS_*` codes apply to the Bank Income add-on: `BANK_INCOME_INSIGHTS_INSUFFICIENT_DATA` indicates there was not enough data to compute Bank Income Insights; `BANK_INCOME_INSIGHTS_INCOMPLETE` indicates the Bank Income Insights flow was not completed; `BANK_INCOME_INSIGHTS_STATUS_IN_PROGRESS` indicates Bank Income Insights are still being computed; `BANK_INCOME_INSIGHTS_INTERNAL_ERROR` indicates an internal error occurred while computing Bank Income Insights; `BANK_INCOME_INSIGHTS_MISMATCHED_DAYS_REQUESTED` indicates the days requested for Bank Income Insights did not match that of the Asset Report."},"cause":{"$ref":"#/components/schemas/Cause"}},"required":["warning_type","warning_code","cause"],"x-examples":{"example-1":{"warning_type":"ASSET_REPORT_WARNING","warning_code":"OWNERS_UNAVAILABLE","cause":{"error_type":"ITEM_ERROR","error_code":"PRODUCTS_NOT_SUPPORTED","error_message":"the following products are not supported by this institution: [\"identity\"]","display_message":null,"item_id":"pZ942ZA0npFEa0BgLCZo2KgL7O6XQ2rr2Ab8Bq"}}}},"AssetReportUser":{"title":"AssetReportUser","type":"object","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":{"type":["string","null"],"description":"An identifier you determine and submit for the user."},"first_name":{"type":["string","null"],"description":"The user's first name. Required for the Fannie Mae Day 1 Certainty™ program."},"middle_name":{"type":["string","null"],"description":"The user's middle name"},"last_name":{"type":["string","null"],"description":"The user's last name.  Required for the Fannie Mae Day 1 Certainty™ program."},"ssn":{"type":["string","null"],"description":"The user's Social Security Number. Required for the Fannie Mae Day 1 Certainty™ program.\n\nFormat: \"ddd-dd-dddd\""},"phone_number":{"type":["string","null"],"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."},"email":{"type":["string","null"],"description":"The user's email address."}}},"AssetReportAddOns":{"title":"AssetReportAddOns","enum":["investments","fast_assets"],"description":"Add-ons that should be included in the Asset Report.\n\n`investments`: The Investments add-on\n\n`fast_assets`: The Fast Assets add-on","type":"string"},"AssetReportId":{"title":"AssetReportId","description":"A unique ID identifying an Asset Report. Like all Plaid identifiers, this ID is case sensitive.","type":"string"},"AssetReportToken":{"title":"AssetReportToken","type":"string","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."},"AssetReportTokenNullable":{"title":"AssetReportTokenNullable","type":"string","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."},"AssetReportRefreshAssetReportToken":{"title":"AssetReportRefreshAssetReportToken","type":"string","description":"The `asset_report_token` returned by the original call to `/asset_report/create`"},"AssetReport":{"title":"AssetReport","type":"object","additionalProperties":true,"description":"An object representing an Asset Report","properties":{"asset_report_id":{"$ref":"#/components/schemas/AssetReportId"},"insights":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/AccountInsights"}]},"client_report_id":{"type":["string","null"],"description":"An identifier you determine and submit for the Asset Report."},"date_generated":{"type":"string","format":"date-time","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\")."},"days_requested":{"type":"number","description":"The duration of transaction history you requested"},"user":{"$ref":"#/components/schemas/AssetReportUser"},"items":{"type":"array","description":"Data returned by Plaid about each of the Items included in the Asset Report.","items":{"$ref":"#/components/schemas/AssetReportItem"}}},"required":["asset_report_id","client_report_id","date_generated","days_requested","user","items"]},"AssetReportItem":{"title":"AssetReportItem","type":"object","additionalProperties":true,"description":"A representation of an Item within an Asset Report.","properties":{"item_id":{"$ref":"#/components/schemas/ItemId"},"institution_name":{"type":"string","description":"The full financial institution name associated with the Item."},"institution_id":{"description":"The id of the financial institution associated with the Item.","type":"string"},"date_last_updated":{"type":"string","format":"date-time","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."},"accounts":{"type":"array","description":"Data about each of the accounts open on the Item.","items":{"$ref":"#/components/schemas/AccountAssets"}}},"required":["item_id","institution_name","institution_id","date_last_updated","accounts"]},"AccountAssets":{"title":"AccountAssets","type":"object","additionalProperties":true,"description":"Asset information about an account","properties":{"account_id":{"type":"string","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.\n\nThe `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`.\n\nIf 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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"balances":{"$ref":"#/components/schemas/AssetReportAccountBalance"},"mask":{"type":["string","null"],"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."},"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself"},"official_name":{"type":["string","null"],"description":"The official name of the account as given by the financial institution"},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"verification_status":{"x-hidden-from-docs":true,"type":"string","enum":["automatically_verified","pending_automatic_verification","pending_manual_verification","manually_verified","verification_expired","verification_failed","database_matched"],"description":"The current verification status of an Auth Item initiated through Automated or Manual micro-deposits.  Returned for Auth Items only.\n\n`pending_automatic_verification`: The Item is pending automatic verification.\n\n`pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the micro-deposit.\n\n`automatically_verified`: The Item has successfully been automatically verified.\n\n`manually_verified`: The Item has successfully been manually verified.\n\n`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.\n\n`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.\n\n`database_matched`: (deprecated) The Item has successfully been verified using Plaid's data sources. Only returned for Auth Items created via Database Match."},"persistent_account_id":{"x-hidden-from-docs":true,"type":"string","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."},"days_available":{"type":"number","description":"The duration of transaction history available within this report for this Item, typically defined as the time since the date of the earliest transaction in that account."},"transactions":{"type":"array","description":"Transaction history associated with the account.","items":{"$ref":"#/components/schemas/AssetReportTransaction"}},"investments":{"$ref":"#/components/schemas/AssetReportInvestments"},"owners":{"type":"array","description":"Data returned by the financial institution about the account owner or owners. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29)","items":{"$ref":"#/components/schemas/Owner"}},"ownership_type":{"$ref":"#/components/schemas/OwnershipType"},"historical_balances":{"type":"array","description":"Calculated data about the historical balances on the account.\n\nAvailable for `credit` and `depository` type accounts.","items":{"$ref":"#/components/schemas/HistoricalBalance"}},"account_insights":{"$ref":"#/components/schemas/AccountInsights"}},"required":["account_id","balances","mask","name","official_name","type","subtype","days_available","transactions","owners","historical_balances"]},"AssetReportInvestments":{"title":"AssetReportInvestments","type":"object","additionalProperties":true,"description":"A set of fields describing the investments data on an account.","properties":{"holdings":{"type":"array","description":"Quantities and values of securities held in the investment account. Map to the `securities` array for security details.","items":{"$ref":"#/components/schemas/AssetReportInvestmentHolding"}},"securities":{"type":"array","description":"Details of specific securities held in on the investment account.","items":{"$ref":"#/components/schemas/AssetReportInvestmentSecurity"}},"transactions":{"type":"array","description":"Transaction history on the investment account.","items":{"$ref":"#/components/schemas/AssetReportInvestmentTransaction"}}}},"AssetReportAccountBalance":{"title":"AssetReportAccountBalance","type":"object","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":{"type":["number","null"],"format":"double","description":"The amount of funds available to be withdrawn from the account, as determined by the financial institution.\n\nFor `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows.\n\nFor `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.\n\nFor `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.\n\nNote 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`.\n\nAvailable balance may be cached and is not guaranteed to be up-to-date in real-time unless the value was returned by `/accounts/balance/get`.\n\nIf `current` is `null` this field is guaranteed not to be `null`."},"current":{"type":["number","null"],"format":"double","description":"The total amount of funds in or owed by the account.\n\nFor `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.\n\nFor `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.\n\nFor `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.\n\nNote that balance information may be cached unless the value was returned by `/accounts/balance/get`; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require real-time balance information, use the `available` balance as provided by `/accounts/balance/get`.\n\nWhen returned by `/accounts/balance/get`, this field may be `null`. When this happens, `available` is guaranteed not to be `null`."},"limit":{"type":["number","null"],"format":"double","description":"For `credit`-type accounts, this represents the credit limit.\n\nFor `depository`-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe.\n\nIn North America, this field is typically only available for `credit`-type accounts."},"margin_loan_amount":{"type":["number","null"],"format":"double","description":"The total amount of borrowed funds in the account, as determined by the financial institution.\nFor investment-type accounts, the margin balance is the total value of borrowed assets in the account, as presented by the institution.\nThis is commonly referred to as margin or a loan."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"last_updated_datetime":{"x-hidden-from-docs":true,"type":["string","null"],"format":"date-time","description":"Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the oldest acceptable balance when making a request to `/accounts/balance/get`.\n\nThis field is only used and expected when the institution is `ins_128026` (Capital One) and the Item contains one or more accounts with a non-depository account type, in which case a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For Capital One depository accounts as well as all other account types on all other institutions, this field is ignored. See [account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of account types.\n\nIf the balance that is pulled is older than the given timestamp for Items with this field required, an `INVALID_RESULT` 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."}},"required":["available","current","limit","margin_loan_amount","iso_currency_code","unofficial_currency_code"]},"AssetReportInvestmentTransaction":{"title":"AssetReportInvestmentTransaction","type":"object","additionalProperties":true,"description":"A transaction within an investment account.","properties":{"investment_transaction_id":{"type":"string","description":"The ID of the Investment transaction, unique across all Plaid transactions. Like all Plaid identifiers, the `investment_transaction_id` is case sensitive."},"account_id":{"type":"string","description":"The `account_id` of the account against which this transaction posted."},"security_id":{"type":["string","null"],"description":"The `security_id` to which this transaction is related."},"date":{"type":"string","format":"date","description":"The [ISO 8601](https://wikipedia.org/wiki/ISO_8601) posting date for the transaction."},"name":{"type":"string","description":"The institution's description of the transaction."},"quantity":{"type":"number","format":"double","description":"The number of units of the security involved in this transaction. Positive for buy transactions; negative for sell transactions."},"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. For transactions representing a simultaneous cash contribution and purchase of a security, the portion of the transaction representing the purchase takes precedence, and the `amount` is represented as positive.","type":"number","format":"double"},"price":{"description":"The price of the security at which this transaction occurred.","type":"number","format":"double"},"fees":{"type":["number","null"],"format":"double","description":"The combined value of all fees applied to this transaction"},"type":{"$ref":"#/components/schemas/InvestmentTransactionType"},"subtype":{"$ref":"#/components/schemas/InvestmentTransactionSubtype"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}},"required":["investment_transaction_id","account_id","security_id","date","name","quantity","amount","price","fees","type","subtype","iso_currency_code","unofficial_currency_code"]},"AssetReportInvestmentHolding":{"title":"AssetReportInvestmentHolding","type":"object","additionalProperties":true,"description":"A securities holding at an institution.","properties":{"account_id":{"type":"string","description":"The Plaid `account_id` associated with the holding."},"security_id":{"type":"string","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."},"ticker_symbol":{"type":["string","null"],"description":"The holding's trading symbol for publicly traded holdings, and otherwise a short identifier if available."},"institution_price":{"type":"number","format":"double","description":"The last price given by the institution for this security."},"institution_price_as_of":{"type":["string","null"],"format":"date","description":"The date at which `institution_price` was current."},"institution_value":{"type":"number","format":"double","description":"The value of the holding, as reported by the institution."},"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.","type":"number","format":"double"},"vested_quantity":{"type":["number","null"],"format":"double","description":"The total quantity of vested assets held, as reported by the financial institution. Vested assets are only associated with [equities](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-type)."},"vested_value":{"type":["number","null"],"format":"double","description":"The value of the vested holdings as reported by the institution."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the holding. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.\n"},"tax_lots":{"description":"Per-lot acquisition data for this holding. This field is absent when lot-level data is not available for the holding — either the institution does not provide it, or the report was generated before lot-level data was supported. Refresh the report if you expect lots.","type":"array","items":{"$ref":"#/components/schemas/HoldingTaxLot"}}},"required":["account_id","security_id","ticker_symbol","institution_price","institution_value","quantity","iso_currency_code","unofficial_currency_code"]},"AssetReportInvestmentSecurity":{"title":"AssetReportInvestmentSecurity","type":"object","additionalProperties":true,"description":"Investment security associated with the account.","properties":{"security_id":{"type":"string","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."},"name":{"type":["string","null"],"description":"A descriptive name for the security, suitable for display."},"ticker_symbol":{"type":["string","null"],"description":"The security's trading symbol for publicly traded securities, and otherwise a short identifier if available."},"type":{"type":["string","null"],"description":"The security type of the holding. Valid security types are:\n\n`cash`: Cash, currency, and money market funds\n\n`cryptocurrency`: Digital or virtual currencies\n\n`derivative`: Options, warrants, and other derivative instruments\n\n`equity`: Domestic and foreign equities\n\n`etf`: Multi-asset exchange-traded investment funds\n\n`fixed income`: Bonds and certificates of deposit (CDs)\n\n`loan`: Loans and loan receivables\n\n`mutual fund`: Open- and closed-end vehicles pooling funds of multiple investors\n\n`other`: Unknown or other investment types"}},"required":["security_id","name","ticker_symbol","type"]},"OwnershipType":{"description":"How an asset is owned.\n\n`association`: Ownership by a corporation, partnership, or unincorporated association, including for-profit and not-for-profit organizations.\n\n`individual`: Ownership by an individual.\n\n`joint`: Joint ownership by multiple parties.\n\n`trust`: Ownership by a revocable or irrevocable trust.","type":["string","null"],"enum":[null,"individual","joint","association","trust"]},"AssetReportTransaction":{"title":"AssetReportTransaction","description":"A transaction on the asset report","type":"object","additionalProperties":true,"properties":{"account_id":{"type":"string","description":"The ID of the account in which this transaction occurred."},"amount":{"type":"number","format":"double","description":"The settled value of the transaction, denominated in the transaction's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"original_description":{"type":["string","null"],"description":"The string returned by the financial institution to describe the transaction."},"category":{"type":["array","null"],"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).\n\nThis field will only appear in an Asset Report with Insights.","items":{"type":"string"}},"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).\n\nThis field will only appear in an Asset Report with Insights.","type":["string","null"]},"credit_category":{"$ref":"#/components/schemas/CreditCategory"},"check_number":{"type":["string","null"],"description":"The check number of the transaction. This field is only populated for check transactions."},"date":{"type":"string","format":"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` )."},"date_transacted":{"type":["string","null"],"description":"The date on which the transaction took place, in ISO 8601 format."},"location":{"$ref":"#/components/schemas/Location"},"name":{"type":"string","deprecated":true,"description":"The merchant name or transaction description. This is a legacy field that is no longer maintained. For merchant name, use the `merchant_name` field. For description, use the `original_description` field.\n\nThis field will only appear in an Asset Report with Insights."},"merchant_name":{"type":["string","null"],"description":"The merchant name, as enriched by Plaid. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be `null`."},"payment_meta":{"$ref":"#/components/schemas/PaymentMeta"},"pending":{"type":"boolean","description":"When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled."},"pending_transaction_id":{"type":["string","null"],"description":"The ID of a posted transaction's associated pending transaction, where applicable."},"account_owner":{"type":["string","null"],"description":"The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts."},"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."},"transaction_type":{"$ref":"#/components/schemas/AssetReportTransactionType"},"income_source_id":{"type":"string","description":"A unique identifier for an income source.","x-hidden-from-docs":true}},"required":["transaction_id","pending","date","unofficial_currency_code","iso_currency_code","amount","account_id","original_description"]},"AssetReportTransactionType":{"title":"AssetReportTransactionType","type":"string","enum":["digital","place","special","unresolved"],"description":"`digital:` transactions that took place online.\n\n`place:` transactions that were made at a physical location.\n\n`special:` transactions that relate to banks, e.g. fees or deposits.\n\n`unresolved:` transactions that do not fit into the other three types.\n"},"AccountInsights":{"title":"AccountInsights","description":"This is a container object for all lending-related insights. This field will be returned only for European customers.","type":["object","null"],"additionalProperties":true,"properties":{"risk":{"$ref":"#/components/schemas/RiskIndicators"},"affordability":{"$ref":"#/components/schemas/AffordabilityInsights"}}},"AffordabilityInsights":{"title":"AffordabilityInsights","description":"Affordability insights focus on providing signal on the ability of a borrower to repay their loan without experiencing financial strain. It provides insights on factors such as a user's monthly income and expenses, disposable income, average expenditure, etc., helping lenders gauge the level of affordability of a borrower.","type":["object","null"],"additionalProperties":true,"properties":{"expenditure":{"$ref":"#/components/schemas/ExpenditureInsights"},"income":{"$ref":"#/components/schemas/IncomeInsights"}}},"RiskIndicators":{"title":"RiskIndicators","description":"Risk indicators focus on providing signal on the possibility of a borrower defaulting on their loan repayments by providing data points related to its payment behavior, debt, and other relevant financial information, helping lenders gauge the level of risk involved in a certain operation.","type":["object","null"],"additionalProperties":true,"properties":{"bank_penalties":{"$ref":"#/components/schemas/BankPenaltiesIndicators"},"gambling":{"$ref":"#/components/schemas/GamblingIndicators"},"loan_disbursements":{"$ref":"#/components/schemas/LoanDisbursementsIndicators"},"loan_payments":{"$ref":"#/components/schemas/LoanPaymentsIndicators"},"negative_balance":{"$ref":"#/components/schemas/NegativeBalanceInsights"}}},"BankPenaltiesIndicators":{"title":"BankPenaltiesIndicators","description":"Insights into bank penalties and fees, including overdraft fees, NSF fees, and other bank-imposed charges.","type":["object","null"],"additionalProperties":true,"properties":{"amount":{"type":["number","null"],"format":"double","description":"The total value of outflow transactions categorized as `BANK_PENALTIES`, across all the accounts in the report within the requested time window."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"monthly_average":{"$ref":"#/components/schemas/MonthlyAverage"},"category_details":{"type":"array","description":"Detailed categories view of all the transactions that fall into the `BANK_PENALTIES` credit category within the given time window, across all the accounts in the report.","items":{"$ref":"#/components/schemas/CategoryExpenses"}},"transactions_count":{"type":["integer","null"],"description":"The total number of transactions that fall into the `BANK_PENALTIES` credit category, across all the accounts in the report."},"monthly_summaries":{"type":"array","description":"The monthly summaries of the transactions that fall into the `BANK_PENALTIES` credit category within the given time window, across all the accounts in the report.","items":{"$ref":"#/components/schemas/MonthlySummary"}},"days_since_last_occurrence":{"type":["integer","null"],"description":"The number of days since the last transaction that falls into the `BANK_PENALTIES` credit category, across all the accounts in the report."},"percentage_of_income":{"type":["number","null"],"format":"double","description":"The percentage of the user's monthly inflows that was spent on transactions that fall into the `BANK_PENALTIES` credit category within the given time window, across all the accounts in the report. For example, a value of 100 represents that 100% of the inflows were spent on transactions that fall into the `BANK_PENALTIES` credit category.\nIf there's no available income for the given time period, this field value will be `-1`."}}},"GamblingIndicators":{"title":"GamblingIndicators","description":"Insights into gambling-related transactions, including frequency, amounts, and top merchants.","type":["object","null"],"additionalProperties":true,"properties":{"amount":{"type":["number","null"],"format":"double","description":"The total value of transactions that fall into the `GAMBLING` credit category, across all the accounts in the report."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"monthly_average":{"$ref":"#/components/schemas/MonthlyAverage"},"top_merchants":{"type":"array","description":"Up to 3 top merchants that the user had the most transactions for in the given time window, in descending order of total spend.\n\nIf the user has not spent money on any merchants in the given time window, this list will be empty.","items":{"type":"string"}},"transactions_count":{"type":["integer","null"],"description":"The total number of transactions that fall into the `GAMBLING` credit category, across all the accounts in the report."},"monthly_summaries":{"type":"array","description":"The monthly summaries of the transactions that fall into the `GAMBLING` category within the given time window, across all the accounts in the report.","items":{"$ref":"#/components/schemas/MonthlySummary"}},"days_since_last_occurrence":{"type":["integer","null"],"description":"The number of days since the last transaction that falls into the `GAMBLING` category, across all the accounts in the report."},"percentage_of_income":{"type":["number","null"],"format":"double","description":"The percentage of the user's monthly inflows that was spent on transactions that fall into the `GAMBLING` category within the given time window, across all the accounts in the report. For example, a value of 100 indicates that 100% of the inflows were spent on transactions that fall into the `GAMBLING` credit category.\nIf there's no available income for the given time period, this field value will be `-1`"}}},"LoanDisbursementsIndicators":{"title":"LoanDisbursementsIndicators","description":"Insights into loan disbursement transactions received by the user, tracking incoming funds from loan providers.","type":["object","null"],"additionalProperties":true,"properties":{"amount":{"type":["number","null"],"format":"double","description":"The total value of inflow transactions categorized as `LOAN_DISBURSEMENTS`, across all the accounts in the report within the requested time window."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"category_details":{"description":"Detailed categories view of all the transactions that fall into the `LOAN_DISBURSEMENTS` credit category within the given time window, across all the accounts in the report.","type":"array","items":{"$ref":"#/components/schemas/CategoryExpenses"}},"monthly_average":{"$ref":"#/components/schemas/MonthlyAverage"},"top_providers":{"type":"array","description":"Up to 3 top service providers that the user had the most transactions for in the given time window, in descending order of total spend.\n\nIf the user has not received money from any provider in the given time window, this list will be empty.","items":{"type":"string"}},"transactions_count":{"type":["integer","null"],"description":"The total number of transactions that fall into the `LOAN_DISBURSEMENTS` credit category, across all the accounts in the report."},"monthly_summaries":{"type":"array","description":"The monthly summaries of the transactions that fall into the `LOAN_DISBURSEMENTS` category within the given time window, across all the accounts in the report.","items":{"$ref":"#/components/schemas/MonthlySummary"}},"days_since_last_occurrence":{"type":["integer","null"],"description":"The number of days since the last transaction that falls into the `LOAN_DISBURSEMENTS` credit category, across all the accounts in the report."},"percentage_of_income":{"type":["number","null"],"format":"double","description":"The percentage of the user's monthly inflows that was received on transactions that fall into the `LOAN_DISBURSEMENTS` credit category within the given time window, across all the accounts in the report. For example, a value of 100 indicates that 100% of the inflows were spent on transactions that fall into the `LOAN_DISBURSEMENTS` credit category.\nIf there's no available income for the given time period, this field value will be `-1`."}}},"LoanPaymentsIndicators":{"title":"LoanPaymentsIndicators","description":"Insights into loan payment transactions made by the user, tracking outgoing payments to loan providers.","type":["object","null"],"additionalProperties":true,"properties":{"amount":{"type":["number","null"],"format":"double","description":"The total value of outflow transactions categorized as `LOAN_PAYMENTS`, across all the accounts in the report within the requested time window."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"monthly_average":{"$ref":"#/components/schemas/MonthlyAverage"},"category_details":{"type":"array","description":"Detailed categories view of all the transactions that fall into the `LOAN_PAYMENTS` credit category within the given time window, across all the accounts in the report.","items":{"$ref":"#/components/schemas/CategoryExpenses"}},"top_providers":{"type":"array","description":"Up to 3 top service providers that the user had the most transactions for in the given time window, in descending order of total spend.\n\nIf the user has not spent money on any provider in the given time window, this list will be empty.","items":{"type":"string"}},"transactions_count":{"type":["integer","null"],"description":"The total number of transactions that fall into the `LOAN_PAYMENTS` credit category, across all the accounts in the report."},"monthly_summaries":{"type":"array","description":"The monthly summaries of the transactions that fall into the `LOAN_PAYMENTS` credit category within the given time window, across all the accounts in the report.","items":{"$ref":"#/components/schemas/MonthlySummary"}},"days_since_last_occurrence":{"type":["integer","null"],"description":"The number of days since the last transaction that falls into the `LOAN_PAYMENTS` credit category, across all the accounts in the report."},"percentage_of_income":{"type":["number","null"],"format":"double","description":"The percentage of the user's monthly inflows that was spent on transactions that fall into the `LOAN_PAYMENTS` credit category within the given time window, across all the accounts in the report. For example, a value of 100 indicates that 100% of the inflows were spent on transactions that fall into the `LOAN_PAYMENTS` credit category.\nIf there's no available income for the given time period, this field value will be `-1`"}}},"NegativeBalanceInsights":{"title":"NegativeBalanceInsights","description":"Insights into negative balance occurrences, including frequency, duration, and minimum balance details.","type":["object","null"],"additionalProperties":true,"properties":{"days_since_last_occurrence":{"type":["integer","null"],"description":"The number of days since the last transaction that caused any account in the report to have a negative balance.\n\nThis value is inclusive of the date of the last negative balance, meaning that if the last negative balance occurred today, this value will be `0`."},"days_with_negative_balance":{"type":["integer","null"],"description":"The number of aggregated days that the accounts in the report has had a negative balance within the given time window."},"minimum_balance":{"$ref":"#/components/schemas/AmountWithCurrency"},"occurrences":{"type":"array","description":"The summary of the negative balance occurrences for this account.\n\nIf the user has not had a negative balance in the account in the given time window, this list will be empty.","items":{"$ref":"#/components/schemas/NegativeBalanceOccurrence"}}}},"NegativeBalanceOccurrence":{"title":"NegativeBalanceOccurrence","description":"Details about a specific occurrence of a negative balance period, including start and end dates.","type":["object","null"],"additionalProperties":true,"properties":{"start_date":{"type":["string","null"],"format":"date","description":"The date of the first transaction that caused the account to have a negative balance.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":["string","null"],"format":"date","description":"The date of the last transaction that caused the account to have a negative balance.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD).\nThis date is inclusive, meaning that this was the last date that the account had a negative balance."},"minimum_balance":{"$ref":"#/components/schemas/AmountWithCurrency"}}},"OutlierTransactionsInsights":{"title":"OutlierTransactionsInsights","description":"Insights into unusually large transactions that exceed typical spending patterns for the account.","type":["object","null"],"additionalProperties":true,"properties":{"transactions_count":{"type":["integer","null"],"description":"The total number of transactions whose value is above the threshold of normal amounts for a given account."},"total_amount":{"$ref":"#/components/schemas/AmountWithCurrency"},"top_categories":{"type":"array","description":"Up to 3 top categories of expenses in this group.","items":{"$ref":"#/components/schemas/CategoryExpenses"}}}},"AmountWithCurrencyWithMonthlyAverage":{"type":["object","null"],"additionalProperties":true,"description":"Represents an amount and a monthly average","allOf":[{"$ref":"#/components/schemas/AmountWithCurrency"},{"$ref":"#/components/schemas/MonthlyAverage"}]},"IncomeInsights":{"title":"IncomeInsights","description":"Comprehensive income analysis including total income, income excluding transfers, and inbound transfer amounts.","type":["object","null"],"additionalProperties":true,"properties":{"total_income":{"allOf":[{"$ref":"#/components/schemas/AmountWithCurrency"}],"description":"The total amount of all income transactions in the given time period."},"income_excluding_transfers":{"allOf":[{"$ref":"#/components/schemas/AmountWithCurrencyWithMonthlyAverage"}],"description":"Income excluding account transfer transactions for the period, including a monthly average."},"transfers_in":{"allOf":[{"$ref":"#/components/schemas/AmountWithCurrencyWithMonthlyAverage"}],"description":"Sum of inbound transfer transactions for the period, including a monthly average."}}},"ExpenditureInsights":{"title":"ExpenditureInsights","description":"Comprehensive analysis of spending patterns, categorizing expenses into essential, non-essential, and other categories.","type":["object","null"],"additionalProperties":true,"properties":{"cash_flow":{"allOf":[{"$ref":"#/components/schemas/AmountWithCurrencyWithMonthlyAverage"}],"description":"Net cash flow for the period (inflows minus outflows), including a monthly average."},"total_expenditure":{"$ref":"#/components/schemas/ExpenditureSummary"},"essential_expenditure":{"$ref":"#/components/schemas/ExpenditureSummary"},"non_essential_expenditure":{"$ref":"#/components/schemas/ExpenditureSummary"},"other":{"$ref":"#/components/schemas/ExpenditureSummary"},"transfers_out":{"$ref":"#/components/schemas/ExpenditureSummary"},"outlier_transactions":{"$ref":"#/components/schemas/OutlierTransactionsInsights"}}},"ExpenditureSummary":{"title":"ExpenditureSummary","description":"Summary statistics for a specific expenditure category, including total amount, monthly average, and percentage of income.","type":["object","null"],"additionalProperties":true,"properties":{"amount":{"type":["number","null"],"format":"double","description":"The total value of all the aggregated transactions in this expenditure category."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"monthly_average":{"$ref":"#/components/schemas/MonthlyAverage"},"transactions_count":{"type":["integer","null"],"description":"The total number of outflow transactions in this expenses group, within the given time window across all the accounts in the report."},"percentage_of_income":{"type":["number","null"],"format":"double","description":"The percentage of the total inflows that was spent in this expenses group, within the given time window across all the accounts in the report.\nFor example, a value of 100 represents that 100% of the inflows were spent on transactions that fall into this expenditure group.\nIf there's no available income for the given time period, this field value will be `-1`."},"top_categories":{"type":"array","description":"The primary credit categories of the expenses within the given time window, across all the accounts in the report.\n\nThe categories are sorted in descending order by the total value spent.\nSee the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs.","items":{"$ref":"#/components/schemas/CategoryExpenses"}}}},"MonthlySummary":{"title":"MonthlySummary","description":"Monthly summary of transactions within a specific time period, showing aggregated amounts.","type":["object","null"],"additionalProperties":true,"properties":{"start_date":{"type":["string","null"],"format":"date","description":"The start date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)."},"end_date":{"type":["string","null"],"format":"date","description":"The end date of the month for the given report time window. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)."},"total_amount":{"$ref":"#/components/schemas/AmountWithCurrency"}}},"AmountWithCurrency":{"title":"AmountWithCurrency","description":"A monetary amount with its associated currency information, supporting both official and unofficial currency codes.","type":["object","null"],"additionalProperties":true,"properties":{"amount":{"type":["number","null"],"format":"double","description":"If the parent object represents a category of transactions, such as `total_amount`, `transfers_in`, `total_income`, etc. the `amount` represents the sum of all of the transactions in the group.\n\nIf the parent object is `cash_flow`, the `amount` represents the total value of all the inflows minus all the outflows across all the accounts in the report in the given time window.\n\nIf the parent object is `minimum_balance`, the `amount` represents the lowest balance of the account during the given time window."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}}},"CategoryExpenses":{"title":"CategoryExpenses","description":"Detailed expense information for a specific credit category, including transaction count and total amount spent.","type":["object","null"],"additionalProperties":true,"properties":{"id":{"type":"string","nullable":false,"description":"The ID of the credit category.\n\nSee the [category taxonomy](https://plaid.com/documents/credit-category-taxonomy.csv) for a full listing of category IDs."},"transactions_count":{"type":["integer","null"],"description":"The total number of transactions that fall into this credit category within the given time window."},"amount":{"type":["number","null"],"format":"double","description":"The total value for all the transactions that fall into this category within the given time window."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"monthly_average":{"$ref":"#/components/schemas/MonthlyAverage"}}},"MonthlyAverage":{"title":"MonthlyAverage","description":"The monthly average amount calculated by dividing the total by the number of calendar months in the time period.","type":["object","null"],"additionalProperties":true,"properties":{"amount":{"type":["number","null"],"format":"double","description":"The monthly average amount of all the aggregated transactions of the given category, across all the accounts for the given time window.\n\nThe average is calculated by dividing the total amount of the transactions by the number of calendar months in the given time window."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the amount. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}}},"BaseReport":{"title":"BaseReport","type":"object","additionalProperties":true,"description":"An object representing a Base Report","properties":{"report_id":{"$ref":"#/components/schemas/BaseReportId"},"date_generated":{"type":"string","format":"date-time","description":"The date and time when the Base Report was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. \"2018-04-12T03:32:11Z\")."},"days_requested":{"type":"number","description":"The number of days of transaction history requested."},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"items":{"type":"array","description":"Data returned by Plaid about each of the Items included in the Base Report.","items":{"$ref":"#/components/schemas/BaseReportItem"}},"attributes":{"$ref":"#/components/schemas/BaseReportUserAttributes"}},"required":["report_id","date_generated","days_requested","items"]},"BaseReportUserAttributes":{"title":"BaseReportUserAttributes","description":"Calculated attributes derived from transaction-level data, aggregated across accounts.","type":"object","additionalProperties":true,"properties":{"nsf_overdraft_transactions_count":{"type":"integer","description":"The number of net NSF fee transactions in the time range for the report (not counting any fees that were reversed within that time range)."},"nsf_overdraft_transactions_count_30d":{"type":"integer","description":"The number of net NSF fee transactions in the last 30 days in the report (not counting any fees that were reversed within that time range)."},"nsf_overdraft_transactions_count_60d":{"type":"integer","description":"The number of net NSF fee transactions in the last 60 days in the report (not counting any fees that were reversed within that time range)."},"nsf_overdraft_transactions_count_90d":{"type":"integer","description":"The number of net NSF fee transactions in the last 90 days in the report (not counting any fees that were reversed within that time range)."},"total_inflow_amount":{"$ref":"#/components/schemas/TotalReportInflowAmount"},"total_inflow_amount_30d":{"$ref":"#/components/schemas/TotalReportInflowAmount30d"},"total_inflow_amount_60d":{"$ref":"#/components/schemas/TotalReportInflowAmount60d"},"total_inflow_amount_90d":{"$ref":"#/components/schemas/TotalReportInflowAmount90d"},"total_outflow_amount":{"$ref":"#/components/schemas/TotalReportOutflowAmount"},"total_outflow_amount_30d":{"$ref":"#/components/schemas/TotalReportOutflowAmount30d"},"total_outflow_amount_60d":{"$ref":"#/components/schemas/TotalReportOutflowAmount60d"},"total_outflow_amount_90d":{"$ref":"#/components/schemas/TotalReportOutflowAmount90d"}}},"TotalReportInflowAmount":{"type":["object","null"],"description":"Total amount of money into the report's accounts in the time period of the report. This field only takes into account USD transactions from the accounts.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"],"examples":[{"amount":-2500,"iso_currency_code":"USD","unofficial_currency_code":null}]},"TotalReportInflowAmount30d":{"type":["object","null"],"description":"Total amount of money into the report's accounts in the last 30 days. This field only takes into account USD transactions from the accounts.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"],"examples":[{"amount":-1000,"iso_currency_code":"USD","unofficial_currency_code":null}]},"TotalReportInflowAmount60d":{"type":["object","null"],"description":"Total amount of money into the report's accounts in the last 60 days. This field only takes into account USD transactions from the accounts.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"],"examples":[{"amount":-2500,"iso_currency_code":"USD","unofficial_currency_code":null}]},"TotalReportInflowAmount90d":{"type":["object","null"],"description":"Total amount of money into the report's accounts in the last 90 days. This field only takes into account USD transactions from the accounts.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"],"examples":[{"amount":-2500,"iso_currency_code":"USD","unofficial_currency_code":null}]},"TotalReportOutflowAmount":{"type":["object","null"],"description":"Total amount of money out of the report's accounts in the time period of the report. This field only takes into account USD transactions from the accounts.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"],"examples":[{"amount":2500,"iso_currency_code":"USD","unofficial_currency_code":null}]},"TotalReportOutflowAmount30d":{"type":["object","null"],"description":"Total amount of money out of the report's accounts in the last 30 days. This field only takes into account USD transactions from the accounts.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"],"examples":[{"amount":1000,"iso_currency_code":"USD","unofficial_currency_code":null}]},"TotalReportOutflowAmount60d":{"type":["object","null"],"description":"Total amount of money out of the report's accounts in the last 60 days. This field only takes into account USD transactions from the accounts.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"],"examples":[{"amount":2500,"iso_currency_code":"USD","unofficial_currency_code":null}]},"TotalReportOutflowAmount90d":{"type":["object","null"],"description":"Total amount of money out of the report's accounts in the last 90 days. This field only takes into account USD transactions from the accounts.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"],"examples":[{"amount":2500,"iso_currency_code":"USD","unofficial_currency_code":null}]},"BaseReportItem":{"title":"BaseReportItem","type":"object","additionalProperties":true,"description":"A representation of an Item within a Base Report.","properties":{"institution_name":{"type":"string","description":"The full financial institution name associated with the Item."},"institution_id":{"description":"The id of the financial institution associated with the Item.","type":"string"},"date_last_updated":{"type":"string","format":"date-time","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."},"item_id":{"$ref":"#/components/schemas/ItemId"},"accounts":{"type":"array","description":"Data about each of the accounts open on the Item.","items":{"$ref":"#/components/schemas/BaseReportAccount"}}},"required":["institution_name","institution_id","item_id","date_last_updated","accounts"]},"BaseReportAccount":{"title":"BaseReportAccount","description":"Base Report information about an account","type":"object","additionalProperties":true,"properties":{"account_id":{"type":"string","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.\n\nIf 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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"balances":{"$ref":"#/components/schemas/BaseReportAccountBalances"},"consumer_disputes":{"type":"array","description":"The information about previously submitted valid dispute statements by the consumer","items":{"$ref":"#/components/schemas/ConsumerDispute"}},"mask":{"type":["string","null"],"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."},"metadata":{"$ref":"#/components/schemas/BaseReportAccountMetadata"},"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself"},"official_name":{"type":["string","null"],"description":"The official name of the account as given by the financial institution"},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"days_available":{"type":"number","description":"The duration of transaction history available within this report for this Item, typically defined as the time since the date of the earliest transaction in that account."},"transactions":{"type":"array","description":"Transaction history associated with the account. Transaction history returned by endpoints such as `/transactions/get` or `/investments/transactions/get` will be returned in the top-level `transactions` field instead. Some transactions may have their details masked in accordance with the FCRA. These will appear with a `credit_category` of `MASKED_TRANSACTION_CATEGORY`.","items":{"$ref":"#/components/schemas/BaseReportTransaction"}},"owners":{"type":"array","description":"Data returned by the financial institution about the account owner or owners. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. This array can also be empty if no owners are found.","items":{"$ref":"#/components/schemas/Owner"}},"holder_category":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/AccountHolderCategory"},{"description":"This field contains the account holder category extracted from the financial institution. The value is `personal`, `business`, or `unrecognized`. The field is omitted when the extracted category is unavailable."}]},"ownership_type":{"$ref":"#/components/schemas/OwnershipType"},"historical_balances":{"type":"array","x-hidden-from-docs":true,"description":"Calculated data about the historical balances on the account. Currently not supported by `brokerage` or `investment` accounts.","items":{"$ref":"#/components/schemas/BaseReportHistoricalBalance"}},"account_insights":{"$ref":"#/components/schemas/BaseReportAccountInsights"},"attributes":{"$ref":"#/components/schemas/BaseReportAttributes"}},"required":["account_id","balances","consumer_disputes","mask","metadata","name","official_name","type","subtype","days_available","transactions","owners","ownership_type"]},"ConsumerDispute":{"title":"ConsumerDispute","description":"The information about a previously submitted valid dispute statement by the consumer","x-hidden-from-docs":true,"type":"object","additionalProperties":true,"properties":{"consumer_dispute_id":{"type":"string","description":"(Deprecated) A unique identifier (UUID) of the consumer dispute that can be used for troubleshooting","deprecated":true},"dispute_field_create_date":{"type":"string","format":"date","description":"Date of the disputed field (e.g. transaction date), in an ISO 8601 format (YYYY-MM-DD)"},"category":{"$ref":"#/components/schemas/ConsumerDisputeCategory"},"statement":{"type":"string","description":"Text content of dispute"}},"required":["consumer_dispute_id","dispute_field_create_date","category","statement"]},"ConsumerDisputeCategory":{"title":"ConsumerReportCategory","type":"string","enum":["TRANSACTION","BALANCE","IDENTITY","OTHER"],"description":"Type of data being disputed by the consumer"},"BaseReportAccountBalances":{"title":"BaseReportAccountBalances","description":"Information about an account's balances.","type":"object","properties":{"available":{"type":["number","null"],"format":"double","description":"The amount of funds available to be withdrawn from the account, as determined by the financial institution.\n\nFor `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows.\n\nFor `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.\n\nFor `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.\n\nNote 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`.\n\nAvailable balance may be cached and is not guaranteed to be up-to-date in real-time unless the value was returned by `/accounts/balance/get`.\n\nIf `current` is `null` this field is guaranteed not to be `null`."},"current":{"type":["number","null"],"format":"double","description":"The total amount of funds in or owed by the account.\n\nFor `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.\n\nFor `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.\n\nFor `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.\n\nNote that balance information may be cached unless the value was returned by `/accounts/balance/get`; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require real-time balance information, use the `available` balance as provided by `/accounts/balance/get`.\n\nWhen returned by `/accounts/balance/get`, this field may be `null`. When this happens, `available` is guaranteed not to be `null`."},"limit":{"type":["number","null"],"format":"double","description":"For `credit`-type accounts, this represents the credit limit.\n\nFor `depository`-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe.\n\nIn North America, this field is typically only available for `credit`-type accounts."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"last_updated_datetime":{"x-hidden-from-docs":true,"type":["string","null"],"format":"date-time","description":"Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the oldest acceptable balance when making a request to `/accounts/balance/get`.\n\nThis field is only used and expected when the institution is `ins_128026` (Capital One) and the Item contains one or more accounts with a non-depository account type, in which case a value must be provided or an `INVALID_REQUEST` error with the code of `INVALID_FIELD` will be returned. For Capital One depository accounts as well as all other account types on all other institutions, this field is ignored. See [account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full list of account types.\n\nIf the balance that is pulled is older than the given timestamp for Items with this field required, an `INVALID_RESULT` 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."},"average_balance":{"type":["number","null"],"format":"double","description":"The average historical balance for the entire report"},"average_monthly_balances":{"type":"array","description":"The average historical balance of each calendar month","items":{"$ref":"#/components/schemas/BaseReportAverageMonthlyBalances"}},"most_recent_thirty_day_average_balance":{"type":["number","null"],"format":"double","description":"The average historical balance from the most recent 30 days"}},"required":["available","current","limit","iso_currency_code","unofficial_currency_code"]},"BaseReportAccountMetadata":{"title":"BaseReportAccountMetadata","description":"Metadata about the extracted account.","type":"object","additionalProperties":true,"properties":{"start_date":{"type":["string","null"],"format":"date","description":"The beginning of the range of the financial institution provided data for the account, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"end_date":{"type":["string","null"],"format":"date","description":"The end of the range of the financial institution provided data for the account, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."}},"required":["start_date","end_date"]},"BaseReportId":{"title":"BaseReportId","description":"A unique ID identifying a Base Report. Like all Plaid identifiers, this ID is case sensitive.","type":"string"},"BaseReportTransaction":{"title":"BaseReportTransaction","description":"A transaction on the Base Report","type":"object","additionalProperties":true,"properties":{"account_id":{"type":"string","description":"The ID of the account in which this transaction occurred."},"amount":{"type":"number","format":"double","description":"The settled value of the transaction, denominated in the transaction's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"name":{"deprecated":true,"x-hidden-from-docs":true,"type":["string","null"],"description":"The merchant name or transaction description.\n\nNote: This is a legacy field that is not actively maintained. Use `merchant_name` instead for the merchant name."},"original_description":{"type":["string","null"],"description":"The string returned by the financial institution to describe the transaction."},"credit_category":{"$ref":"#/components/schemas/CreditCategory"},"check_number":{"type":["string","null"],"description":"The check number of the transaction. This field is only populated for check transactions."},"date":{"type":"string","format":"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` )."},"date_transacted":{"type":["string","null"],"description":"The date on which the transaction took place, in ISO 8601 format."},"location":{"$ref":"#/components/schemas/Location"},"merchant_name":{"type":["string","null"],"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`."},"pending":{"type":"boolean","description":"When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled."},"account_owner":{"type":["string","null"],"description":"The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts."},"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."},"transaction_type":{"$ref":"#/components/schemas/BaseReportTransactionType"},"category":{"type":["array","null"],"x-hidden-from-docs":true,"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"}},"category_id":{"x-hidden-from-docs":true,"type":["string","null"],"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)."},"personal_finance_category":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/PersonalFinanceCategory"}]}},"required":["transaction_id","pending","date","unofficial_currency_code","iso_currency_code","amount","account_id","original_description"]},"BaseReportTransactionType":{"title":"BaseReportTransactionType","type":["string","null"],"x-hidden-from-docs":true,"enum":["digital","place","special","unresolved"],"description":"`digital:` transactions that took place online.\n\n`place:` transactions that were made at a physical location.\n\n`special:` transactions that relate to banks, e.g. fees or deposits.\n\n`unresolved:` transactions that do not fit into the other types.\n"},"BaseReportAccountInsights":{"title":"BaseReportAccountInsights","deprecated":true,"description":"Calculated insights derived from transaction-level data. This field has been deprecated in favor of [Base Report attributes aggregated across accounts](https://plaid.com/docs/api/products/check-legacy/#cra-check_report-base_report-get-response-report-attributes) and will be removed in a future release.","type":"object","additionalProperties":true,"properties":{"oldest_transaction_date":{"type":["string","null"],"format":"date","description":"Date of the earliest transaction for the account."},"most_recent_transaction_date":{"type":["string","null"],"format":"date","description":"Date of the most recent transaction for the account."},"days_available":{"type":"integer","description":"Number of days available for the account."},"average_days_between_transactions":{"type":"number","description":"Average number of days between sequential transactions"},"longest_gaps_between_transactions":{"type":"array","description":"Longest gap between sequential transactions in a time period. This array can include multiple time periods.","items":{"$ref":"#/components/schemas/BaseReportLongestGapInsights"}},"number_of_inflows":{"type":"array","description":"The number of transactions that moved money into the account. This array will be empty for non-depository accounts.","items":{"$ref":"#/components/schemas/BaseReportNumberFlowInsights"}},"average_inflow_amounts":{"type":"array","description":"Average amount of transactions that moved money into the account in a time period. This array will be empty for non-depository accounts. This field only takes into account USD transactions from the account.","items":{"$ref":"#/components/schemas/BaseReportAverageFlowInsights"}},"number_of_outflows":{"type":"array","description":"The number of outflows from the account. This array will be empty for non-depository accounts.","items":{"$ref":"#/components/schemas/BaseReportNumberFlowInsights"}},"average_outflow_amounts":{"type":"array","description":"Average amount of transactions out of the account in a time period. This array will be empty for non-depository accounts. This field only takes into account USD transactions from the account.","items":{"$ref":"#/components/schemas/BaseReportAverageFlowInsights"}},"number_of_days_no_transactions":{"type":"integer","description":"Number of days with no transactions"}}},"BaseReportAttributes":{"title":"BaseReportAttributes","description":"Calculated attributes derived from transaction-level data.","type":"object","additionalProperties":true,"properties":{"is_primary_account":{"type":["boolean","null"],"description":"Prediction indicator of whether the account is a primary account. Only one account per account type across the items connected will have a value of true."},"primary_account_score":{"type":["number","null"],"description":"Value ranging from 0-1. The higher the score, the more confident we are of the account being the primary account."},"nsf_overdraft_transactions_count":{"type":"integer","description":"The number of net NSF fee transactions for a given account within the report time range (not counting any fees that were reversed within the time range)."},"nsf_overdraft_transactions_count_30d":{"type":"integer","description":"The number of net NSF fee transactions within the last 30 days for a given account (not counting any fees that were reversed within the time range)."},"nsf_overdraft_transactions_count_60d":{"type":"integer","description":"The number of net NSF fee transactions within the last 60 days for a given account (not counting any fees that were reversed within the time range)."},"nsf_overdraft_transactions_count_90d":{"type":"integer","description":"The number of net NSF fee transactions within the last 90 days for a given account (not counting any fees that were reversed within the time range)."},"total_inflow_amount":{"$ref":"#/components/schemas/TotalInflowAmount"},"total_inflow_amount_30d":{"$ref":"#/components/schemas/TotalInflowAmount30d"},"total_inflow_amount_60d":{"$ref":"#/components/schemas/TotalInflowAmount60d"},"total_inflow_amount_90d":{"$ref":"#/components/schemas/TotalInflowAmount90d"},"total_outflow_amount":{"$ref":"#/components/schemas/TotalOutflowAmount"},"total_outflow_amount_30d":{"$ref":"#/components/schemas/TotalOutflowAmount30d"},"total_outflow_amount_60d":{"$ref":"#/components/schemas/TotalOutflowAmount60d"},"total_outflow_amount_90d":{"$ref":"#/components/schemas/TotalOutflowAmount90d"}}},"TotalInflowAmount":{"type":["object","null"],"description":"Total amount of money into the account in the time period of the report. For non-depository accounts, or accounts with no transactions, `amount` is `0` and both currency codes are `null`. This field only takes into account USD transactions from the account.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"TotalInflowAmount30d":{"type":["object","null"],"description":"Total amount of money into the account in the last 30 days. For non-depository accounts, or accounts with no transactions, `amount` is `0` and both currency codes are `null`. This field only takes into account USD transactions from the account.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"TotalInflowAmount60d":{"type":["object","null"],"description":"Total amount of money into the account in the last 60 days. For non-depository accounts, or accounts with no transactions, `amount` is `0` and both currency codes are `null`. This field only takes into account USD transactions from the account.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"TotalInflowAmount90d":{"type":["object","null"],"description":"Total amount of money into the account in the last 90 days. For non-depository accounts, or accounts with no transactions, `amount` is `0` and both currency codes are `null`. This field only takes into account USD transactions from the account.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"TotalOutflowAmount":{"type":["object","null"],"description":"Total amount of money out of the account in the time period of the report. For non-depository accounts, or accounts with no transactions, `amount` is `0` and both currency codes are `null`. This field only takes into account USD transactions from the account.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"TotalOutflowAmount30d":{"type":["object","null"],"description":"Total amount of money out of the account in the last 30 days. For non-depository accounts, or accounts with no transactions, `amount` is `0` and both currency codes are `null`. This field only takes into account USD transactions from the account.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"TotalOutflowAmount60d":{"type":["object","null"],"description":"Total amount of money out of the account in the last 60 days. For non-depository accounts, or accounts with no transactions, `amount` is `0` and both currency codes are `null`. This field only takes into account USD transactions from the account.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"TotalOutflowAmount90d":{"type":["object","null"],"description":"Total amount of money out of the account in the last 90 days. For non-depository accounts, or accounts with no transactions, `amount` is `0` and both currency codes are `null`. This field only takes into account USD transactions from the account.","additionalProperties":true,"properties":{"amount":{"type":"number","description":"Value of amount with up to 2 decimal places."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["amount","iso_currency_code","unofficial_currency_code"]},"BaseReportLongestGapInsights":{"title":"BaseReportLongestGapInsights","description":"Largest number of days between sequential transactions per calendar month","x-hidden-from-docs":true,"type":"object","additionalProperties":true,"properties":{"start_date":{"type":"string","format":"date","description":"The start date of this time period.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The end date of this time period.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"days":{"type":["integer","null"],"description":"Largest number of days between sequential transactions for this time period."}}},"BaseReportNumberFlowInsights":{"title":"BaseReportNumberFlowInsights","description":"The number of inflow or outflow transactions on the account in one calendar month. This field will only be included for depository accounts.","x-hidden-from-docs":true,"type":"object","additionalProperties":true,"properties":{"start_date":{"type":"string","format":"date","description":"The start date of this time period.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The end date of this time period.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"count":{"type":"integer","description":"The number of credits or debits out of the account for this time period."}},"required":["start_date","end_date","count"]},"BaseReportAverageFlowInsights":{"title":"BaseReportAverageFlowInsights","description":"The average amount of inflow or outflow transactions on the account in one calendar month. This field will only be included for depository accounts.","x-hidden-from-docs":true,"type":"object","additionalProperties":true,"properties":{"start_date":{"type":"string","format":"date","description":"The start date of this time period.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The end date of this time period.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"total_amount":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"required":["start_date","end_date","total_amount"]},"BaseReportAverageMonthlyBalances":{"title":"BaseReportAverageMonthlyBalances","description":"Average balance in dollar amount per month","type":"object","additionalProperties":true,"properties":{"start_date":{"type":"string","description":"The start date of this time period.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","description":"The end date of this time period.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"average_balance":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"required":["start_date","end_date","average_balance"]},"BaseReportInvestments":{"title":"BaseReportInvestments","type":["object","null"],"additionalProperties":true,"description":"A set of fields describing the investments data on an account. Its arrays may be empty.","properties":{"holdings":{"type":"array","description":"Quantities and values of securities held in the investment account. Map to the `securities` array for security details.","items":{"$ref":"#/components/schemas/BaseReportInvestmentHolding"}},"securities":{"type":"array","description":"Details of specific securities held in the investment account.","items":{"$ref":"#/components/schemas/BaseReportInvestmentSecurity"}},"investment_transactions":{"type":"array","description":"Transaction history on the investment account.","items":{"$ref":"#/components/schemas/BaseReportInvestmentTransaction"}}},"required":["holdings","securities","investment_transactions"]},"BaseReportInvestmentTransaction":{"title":"BaseReportInvestmentTransaction","type":"object","additionalProperties":true,"description":"A transaction within an investment account.","properties":{"investment_transaction_id":{"type":"string","description":"The ID of the Investment transaction, unique across all Plaid transactions. Like all Plaid identifiers, the `investment_transaction_id` is case sensitive."},"account_id":{"type":"string","description":"The `account_id` of the account against which this transaction posted."},"security_id":{"type":["string","null"],"description":"The `security_id` to which this transaction is related."},"date":{"type":"string","format":"date","description":"The [ISO 8601](https://wikipedia.org/wiki/ISO_8601) posting date for the transaction."},"name":{"type":"string","description":"The institution's description of the transaction."},"quantity":{"type":"number","format":"double","description":"The number of units of the security involved in this transaction. Positive for buy transactions; negative for sell transactions."},"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. For transactions representing a simultaneous cash contribution and purchase of a security, the portion of the transaction representing the purchase takes precedence, and the `amount` is represented as positive.","type":"number","format":"double"},"price":{"description":"The price of the security at which this transaction occurred.","type":"number","format":"double"},"fees":{"type":["number","null"],"format":"double","description":"The combined value of all fees applied to this transaction"},"type":{"$ref":"#/components/schemas/InvestmentTransactionType"},"subtype":{"$ref":"#/components/schemas/InvestmentTransactionSubtype"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}},"required":["investment_transaction_id","account_id","security_id","date","name","quantity","amount","price","fees","type","subtype","iso_currency_code","unofficial_currency_code"]},"BaseReportInvestmentHolding":{"title":"BaseReportInvestmentHolding","type":"object","additionalProperties":true,"description":"A securities holding at an institution.","properties":{"account_id":{"type":"string","description":"The Plaid `account_id` associated with the holding."},"security_id":{"type":"string","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."},"institution_price":{"type":"number","format":"double","description":"The last price given by the institution for this security."},"institution_price_as_of":{"type":["string","null"],"format":"date","description":"The date at which `institution_price` was current."},"institution_value":{"type":"number","format":"double","description":"The value of the holding, as reported by the institution."},"cost_basis":{"type":["number","null"],"format":"double","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."},"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.","type":"number","format":"double"},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the holding. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.\n"},"tax_lots":{"description":"Per-lot acquisition data for this holding. This field is absent when lot-level data is not available for the holding — either the institution does not provide it, or the report was generated before lot-level data was supported. Refresh the report if you expect lots.","type":"array","items":{"$ref":"#/components/schemas/HoldingTaxLot"}}},"required":["account_id","security_id","institution_price","institution_value","cost_basis","quantity","iso_currency_code","unofficial_currency_code"]},"BaseReportInvestmentSecurity":{"title":"BaseReportInvestmentSecurity","type":"object","additionalProperties":true,"description":"Investment security associated with the account.","properties":{"security_id":{"type":"string","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."},"name":{"type":["string","null"],"description":"A descriptive name for the security, suitable for display."},"isin":{"type":["string","null"],"description":"12-character ISIN, a globally unique securities identifier. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please start the verification process [here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform)."},"cusip":{"type":["string","null"],"description":"9-character CUSIP, an identifier assigned to North American securities. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please start the verification process [here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform)."},"institution_security_id":{"type":["string","null"],"description":"An identifier given to the security by the institution."},"institution_id":{"type":["string","null"],"description":"If `institution_security_id` is present, this field indicates the Plaid `institution_id` of the institution to whom the identifier belongs."},"ticker_symbol":{"type":["string","null"],"description":"The security's trading symbol for publicly traded securities, and otherwise a short identifier if available."},"type":{"type":["string","null"],"description":"The security type of the holding. Valid security types are:\n\n`cash`: Cash, currency, and money market funds\n\n`cryptocurrency`: Digital or virtual currencies\n\n`derivative`: Options, warrants, and other derivative instruments\n\n`equity`: Domestic and foreign equities\n\n`etf`: Multi-asset exchange-traded investment funds\n\n`fixed income`: Bonds and certificates of deposit (CDs)\n\n`loan`: Loans and loan receivables\n\n`mutual fund`: Open- and closed-end vehicles pooling funds of multiple investors\n\n`other`: Unknown or other investment types"}},"required":["security_id","name","isin","cusip","institution_security_id","institution_id","ticker_symbol","type"]},"BeaconAccountRiskEvaluateRequest":{"title":"BeaconAccountRiskEvaluateRequest","description":"BeaconAccountRiskEvaluateRequest defines the request schema for `/beacon/account_risk/v1/evaluate`","type":"object","x-hidden-from-docs":true,"properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"options":{"$ref":"#/components/schemas/BeaconAccountRiskEvaluateRequestOptions"},"client_user_id":{"type":"string","description":"A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with multiple evaluations and/or multiple linked accounts. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.","minLength":1,"maxLength":36},"client_evaluation_id":{"type":"string","description":"Unique identifier of what you are looking to evaluate (account add, information change, etc.) to allow us to tie the activity to the decisions and possible fraud outcome sent via our feedback endpoints. You can use your internal request ID or similar."},"evaluation_reason":{"$ref":"#/components/schemas/BeaconAccountRiskEvaluateEvaluationReason"},"device":{"$ref":"#/components/schemas/SignalDevice"},"evaluate_time":{"type":"string","description":"The time the event for evaluation has occurred. Populate this field for backfilling data. If you don't populate this field, we'll use the timestamp at the time of receipt. Use ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ)."}}},"BeaconAccountRiskEvaluateRequestOptions":{"type":"object","description":"An optional object to filter `/beacon/account_risk/v1/evaluate` results to a subset of the accounts on the linked Item.","properties":{"account_ids":{"type":"array","description":"An array of `account_ids` for the specific accounts to evaluate.","items":{"type":"string"}}}},"BeaconAccountRiskEvaluateEvaluationReason":{"type":"string","enum":["ONBOARDING","NEW_ACCOUNT","INFORMATION_CHANGE","DORMANT_USER","OTHER"],"x-hidden-from-docs":true,"description":"Description of the reason you want to evaluate risk.\n\n`ONBOARDING`: user links a first bank account as part of the onboarding flow of your platform.\n\n`NEW_ACCOUNT`: user links another bank account or replaces the currently linked bank account on your platform.\n\n`INFORMATION_CHANGE`: user changes their information on your platform, e.g., updating their phone number.\n\n`DORMANT_USER`:  you decide to re-evaluate a user that becomes active after a period of inactivity.\n\n`OTHER`: any other reasons not listed here\n\nPossible values:  `ONBOARDING`, `NEW_ACCOUNT`, `INFORMATION_CHANGE`, `DORMANT_USER`, `OTHER`\n"},"BeaconAccountRiskEvaluateResponse":{"title":"BeaconAccountRiskEvaluateResponse","description":"BeaconAccountRiskEvaluateResponse defines the response schema for `/beacon/account_risk/v1/evaluate`","type":"object","x-hidden-from-docs":true,"additionalProperties":true,"properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"accounts":{"type":"array","description":"The accounts for which a risk evaluation has been requested.","items":{"$ref":"#/components/schemas/BeaconAccountRiskEvaluateAccount"}}},"required":["request_id","accounts"]},"BeaconAccountRiskEvaluateAccount":{"title":"BeaconAccountRiskEvaluateAccount","description":"An account in the `/beacon/account_risk/v1/evaluate` response.","type":"object","properties":{"account_id":{"type":"string","description":"The account ID."},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"attributes":{"$ref":"#/components/schemas/BeaconAccountRiskEvaluateAccountAttributes"}}},"BeaconAccountRiskEvaluateAccountAttributes":{"title":"BeaconAccountRiskEvaluateAccountAttributes","type":"object","description":"The attributes object contains data that can be used to assess account risk. Examples of data include:\n\n`days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid\n\n`plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days\n\n`plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days\n\n`total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid\n\nFor 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":{"days_since_first_plaid_connection":{"type":["integer","null"],"description":"The number of days since the first time the Item was connected to an application via Plaid"},"is_account_closed":{"type":["boolean","null"],"description":"Indicates if the account has been closed by the financial institution or the consumer, or is at risk of being closed"},"is_account_frozen_or_restricted":{"type":["boolean","null"],"description":"Indicates whether the account has withdrawals and transfers disabled or if access to the account is restricted. This could be due to a freeze by the credit issuer, legal restrictions (e.g., sanctions), or regulatory requirements limiting monthly withdrawals, among other reasons"},"total_plaid_connections_count":{"type":["integer","null"],"description":"The total number of times the item has been connected to applications via Plaid"},"plaid_connections_count_7d":{"type":["integer","null"],"description":"The number of times the Item has been connected to applications via Plaid over the past 7 days"},"plaid_connections_count_30d":{"type":["integer","null"],"description":"The number of times the Item has been connected to applications via Plaid over the past 30 days"},"failed_plaid_non_oauth_authentication_attempts_count_3d":{"type":["integer","null"],"description":"The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days"},"plaid_non_oauth_authentication_attempts_count_3d":{"type":["integer","null"],"description":"The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days"},"failed_plaid_non_oauth_authentication_attempts_count_7d":{"type":["integer","null"],"description":"The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days"},"plaid_non_oauth_authentication_attempts_count_7d":{"type":["integer","null"],"description":"The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days"},"failed_plaid_non_oauth_authentication_attempts_count_30d":{"type":["integer","null"],"description":"The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days"},"plaid_non_oauth_authentication_attempts_count_30d":{"type":["integer","null"],"description":"The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days"},"distinct_ip_addresses_count_3d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 3 days"},"distinct_ip_addresses_count_7d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 7 days"},"distinct_ip_addresses_count_30d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 30 days"},"distinct_ip_addresses_count_90d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 90 days"},"distinct_user_agents_count_3d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 3 days"},"distinct_user_agents_count_7d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 7 days"},"distinct_user_agents_count_30d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 30 days"},"distinct_user_agents_count_90d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 90 days"},"address_change_count_28d":{"type":["integer","null"],"description":"The number of times the account's addresses on file have changed over the past 28 days"},"email_change_count_28d":{"type":["integer","null"],"description":"The number of times the account's email addresses on file have changed over the past 28 days"},"phone_change_count_28d":{"type":["integer","null"],"description":"The number of times the account's phone numbers on file have changed over the past 28 days"},"address_change_count_90d":{"type":["integer","null"],"description":"The number of times the account's addresses on file have changed over the past 90 days"},"email_change_count_90d":{"type":["integer","null"],"description":"The number of times the account's email addresses on file have changed over the past 90 days"},"phone_change_count_90d":{"type":["integer","null"],"description":"The number of times the account's phone numbers on file have changed over the past 90 days"},"days_since_account_opening":{"type":["integer","null"],"description":"The number of days since the bank account was opened, as reported by the financial institution"},"days_since_first_observed_transaction":{"type":["integer","null"],"description":"The number of days since the oldest transaction available to Plaid for this account. This measure, combined with Plaid connection history, can be used to infer the age of the account"}}},"AAMVAAnalysis":{"description":"Analyzed AAMVA data for the associated hit.\n\nNote: This field is only available for U.S. driver's licenses issued by participating states.","additionalProperties":true,"type":["object","null"],"properties":{"is_verified":{"type":"boolean","description":"The overall outcome of checking the associated hit against the issuing state database.","examples":[true]},"id_number":{"$ref":"#/components/schemas/AAMVAMatchResult"},"id_issue_date":{"$ref":"#/components/schemas/AAMVAMatchResult"},"id_expiration_date":{"$ref":"#/components/schemas/AAMVAMatchResult"},"street":{"$ref":"#/components/schemas/AAMVADetailedMatchResult"},"city":{"$ref":"#/components/schemas/AAMVAMatchResult"},"postal_code":{"$ref":"#/components/schemas/AAMVADetailedMatchResult"},"date_of_birth":{"$ref":"#/components/schemas/AAMVAMatchResult"},"gender":{"$ref":"#/components/schemas/AAMVAMatchResult"},"height":{"$ref":"#/components/schemas/AAMVAMatchResult"},"eye_color":{"$ref":"#/components/schemas/AAMVAMatchResult"},"first_name":{"$ref":"#/components/schemas/AAMVADetailedMatchResult"},"middle_name":{"$ref":"#/components/schemas/AAMVADetailedMatchResult"},"last_name":{"$ref":"#/components/schemas/AAMVADetailedMatchResult"}},"required":["is_verified","id_number","id_issue_date","id_expiration_date","street","city","postal_code","date_of_birth","gender","height","eye_color","first_name","middle_name","last_name"]},"AAMVADetailedMatchResult":{"description":"The outcome of checking the associated hit against state databases.\n\n\n`match` - The field is an exact match with the state database.\n\n`partial_match` - The field is a partial match with the state database.\n\n`no_match` - The field is not an exact match with the state database.\n\n`no_data` - The field was unable to be checked against state databases.","type":"string","enum":["match","partial_match","no_match","no_data"]},"AAMVAMatchResult":{"description":"The outcome of checking the particular field against state databases.\n\n\n`match` - The field is an exact match with the state database.\n\n`no_match` - The field is not an exact match with the state database.\n\n`no_data` - The field was unable to be checked against state databases.","type":"string","enum":["match","no_match","no_data"]},"AccountMask":{"type":"string","description":"The last 2-4 numeric characters of this account's account number.","examples":["4000"]},"AddressPurposeLabel":{"description":"Field describing whether the associated address is being used for commercial or residential purposes.\n\nNote: This value will be `no_data` when Plaid does not have sufficient data to determine the address's use.","type":"string","enum":["residential","commercial","no_data"],"examples":["residential"]},"BeaconAccountRiskAttributes":{"title":"BeaconAccountRiskAttributes","type":"object","description":"The attributes object contains data that can be used to assess account risk. Examples of data include:\n\n`days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid\n\n`plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days\n\n`plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days\n\n`total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid\n\nFor 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":{"days_since_first_plaid_connection":{"type":["integer","null"],"description":"The number of days since the first time the Item was connected to an application via Plaid","examples":[1]},"is_account_closed":{"type":["boolean","null"],"description":"Indicates if the account has been closed by the financial institution or the consumer, or is at risk of being closed","examples":[false]},"is_account_frozen_or_restricted":{"type":["boolean","null"],"description":"Indicates whether the account has withdrawals and transfers disabled or if access to the account is restricted. This could be due to a freeze by the credit issuer, legal restrictions (e.g., sanctions), or regulatory requirements limiting monthly withdrawals, among other reasons","examples":[false]},"total_plaid_connections_count":{"type":["integer","null"],"description":"The total number of times the Item has been connected to applications via Plaid","examples":[1]},"plaid_connections_count_7d":{"type":["integer","null"],"description":"The number of times the Item has been connected to applications via Plaid over the past 7 days","examples":[1]},"plaid_connections_count_30d":{"type":["integer","null"],"description":"The number of times the Item has been connected to applications via Plaid over the past 30 days","examples":[1]},"failed_plaid_non_oauth_authentication_attempts_count_3d":{"type":["integer","null"],"description":"The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days","examples":[1]},"plaid_non_oauth_authentication_attempts_count_3d":{"type":["integer","null"],"description":"The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days","examples":[1]},"failed_plaid_non_oauth_authentication_attempts_count_7d":{"type":["integer","null"],"description":"The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days","examples":[1]},"plaid_non_oauth_authentication_attempts_count_7d":{"type":["integer","null"],"description":"The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days","examples":[1]},"failed_plaid_non_oauth_authentication_attempts_count_30d":{"type":["integer","null"],"description":"The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days","examples":[1]},"plaid_non_oauth_authentication_attempts_count_30d":{"type":["integer","null"],"description":"The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days","examples":[1]},"distinct_ip_addresses_count_3d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 3 days","examples":[1]},"distinct_ip_addresses_count_7d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 7 days","examples":[1]},"distinct_ip_addresses_count_30d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 30 days","examples":[1]},"distinct_ip_addresses_count_90d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 90 days","examples":[1]},"distinct_user_agents_count_3d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 3 days","examples":[1]},"distinct_user_agents_count_7d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 7 days","examples":[1]},"distinct_user_agents_count_30d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 30 days","examples":[1]},"distinct_user_agents_count_90d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 90 days","examples":[1]},"address_change_count_28d":{"type":["integer","null"],"description":"The number of times the account's addresses on file have changed over the past 28 days","examples":[1]},"email_change_count_28d":{"type":["integer","null"],"description":"The number of times the account's email addresses on file have changed over the past 28 days","examples":[2]},"phone_change_count_28d":{"type":["integer","null"],"description":"The number of times the account's phone numbers on file have changed over the past 28 days","examples":[1]},"address_change_count_90d":{"type":["integer","null"],"description":"The number of times the account's addresses on file have changed over the past 90 days","examples":[3]},"email_change_count_90d":{"type":["integer","null"],"description":"The number of times the account's email addresses on file have changed over the past 90 days","examples":[4]},"phone_change_count_90d":{"type":["integer","null"],"description":"The number of times the account's phone numbers on file have changed over the past 90 days","examples":[2]},"days_since_account_opening":{"type":["integer","null"],"description":"The number of days since the bank account was opened, as reported by the financial institution","examples":[365]},"days_since_first_observed_transaction":{"type":["integer","null"],"description":"The number of days since the oldest transaction available to Plaid for this account. This measure, combined with Plaid connection history, can be used to infer the age of the account","examples":[180]}},"required":["days_since_first_plaid_connection","is_account_closed","is_account_frozen_or_restricted","total_plaid_connections_count","plaid_connections_count_7d","plaid_connections_count_30d","failed_plaid_non_oauth_authentication_attempts_count_3d","plaid_non_oauth_authentication_attempts_count_3d","failed_plaid_non_oauth_authentication_attempts_count_7d","plaid_non_oauth_authentication_attempts_count_7d","failed_plaid_non_oauth_authentication_attempts_count_30d","plaid_non_oauth_authentication_attempts_count_30d","distinct_ip_addresses_count_3d","distinct_ip_addresses_count_7d","distinct_ip_addresses_count_30d","distinct_ip_addresses_count_90d","distinct_user_agents_count_3d","distinct_user_agents_count_7d","distinct_user_agents_count_30d","distinct_user_agents_count_90d","address_change_count_28d","email_change_count_28d","phone_change_count_28d","address_change_count_90d","email_change_count_90d","phone_change_count_90d","days_since_account_opening","days_since_first_observed_transaction"],"additionalProperties":true},"BeaconAuditTrail":{"type":"object","title":"BeaconAuditTrail","description":"Information about the last change made to the parent object specifying what caused the change as well as when it occurred.","properties":{"source":{"$ref":"#/components/schemas/BeaconAuditTrailSource"},"dashboard_user_id":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"timestamp":{"$ref":"#/components/schemas/Timestamp"}},"required":["source","dashboard_user_id","timestamp"],"additionalProperties":true},"BeaconAuditTrailSource":{"type":"string","enum":["dashboard","api","system","bulk_import"],"description":"A type indicating what caused a resource to be changed or updated.\n\n\n`dashboard` - The resource was created or updated by a member of your team via the Plaid dashboard.\n\n`api` - The resource was created or updated via the Plaid API.\n\n`system` - The resource was created or updated automatically by a part of the Plaid Beacon system. For example, if another business using Plaid Beacon created a fraud report that matched one of your users, your matching user's status would automatically be updated and the audit trail source would be `system`.\n\n`bulk_import` - The resource was created or updated as part of a bulk import process. For example, if your company provided a CSV of user data as part of your initial onboarding, the audit trail source would be `bulk_import`."},"BeaconBankAccountInsights":{"type":"object","title":"BeaconBankAccountInsights","description":"Bank Account Insights encapsulate the risk insights for a single Bank Account linked to an Item that is associated with a Beacon User.","properties":{"account_id":{"type":"string","description":"The Plaid `account_id`","examples":["blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo"]},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"attributes":{"$ref":"#/components/schemas/BeaconAccountRiskAttributes"}},"required":["account_id","type","subtype","attributes"],"additionalProperties":true},"BeaconBankAccounts":{"type":"object","title":"BeaconBankAccounts","description":"A collection of Bank Accounts linked to an Item that is associated with this Beacon User.","properties":{"item_id":{"type":"string","description":"The Plaid Item ID the Bank Accounts belong to.","examples":["515cd85321d3649aecddc015"]},"accounts":{"type":"array","items":{"$ref":"#/components/schemas/BeaconBankAccountInsights"}}},"required":["item_id","accounts"],"additionalProperties":true},"BeaconDuplicateGetRequest":{"description":"Request input for getting a Beacon Duplicate","type":"object","properties":{"beacon_duplicate_id":{"$ref":"#/components/schemas/BeaconDuplicateID"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_duplicate_id"]},"BeaconDuplicateGetResponse":{"description":"A Beacon Duplicate represents a pair of matching Beacon Users and an analysis of the fields they matched on.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/BeaconDuplicateID"},"beacon_user1":{"$ref":"#/components/schemas/BeaconUserRevision"},"beacon_user2":{"$ref":"#/components/schemas/BeaconUserRevision"},"analysis":{"$ref":"#/components/schemas/BeaconMatchSummaryAnalysis"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","beacon_user1","beacon_user2","analysis","request_id"],"type":"object"},"BeaconDuplicateID":{"type":"string","title":"BeaconDuplicateID","description":"ID of the associated Beacon Duplicate.","examples":["becdup_11111111111111"]},"BeaconMatchSummaryAnalysis":{"type":"object","title":"BeaconMatchSummaryAnalysis","description":"Analysis of which fields matched between one Beacon User and another.","properties":{"address":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"date_of_birth":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"email_address":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"name":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"id_number":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"ip_address":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"phone_number":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"}},"required":["address","date_of_birth","email_address","name","id_number","ip_address","phone_number"],"additionalProperties":true},"BeaconMatchSummaryCode":{"description":"An enum indicating the match type between two Beacon Users.\n\n\n`match` indicates that the provided input data was a strong match against the other Beacon User.\n\n`partial_match` indicates the data approximately matched the other Beacon User. For example, \"Knope\" vs. \"Knope-Wyatt\" for last name.\n\n`no_match` indicates that Plaid was able to compare this field against the other Beacon User and it did not match the provided input data.\n\n`no_data` indicates that Plaid was unable to compare this field against the original Beacon User because the field was not present in one of the Beacon Users.","type":"string","title":"BeaconMatchSummaryCode","enum":["match","partial_match","no_match","no_data"],"examples":["match"]},"BeaconProgramID":{"type":"string","title":"BeaconProgramID","description":"ID of the associated Beacon Program.","examples":["becprg_11111111111111"]},"BeaconReport":{"type":"object","title":"BeaconReport","description":"A Beacon Report describes the type of fraud committed by a user as well as the date the fraud was committed and the total amount of money lost due to the fraud incident.\n\nThis information is used to block similar fraud attempts on your platform as well as alert other companies who screen a user with matching identity information.\nOther companies will not receive any new identity information, just what matched, plus information such as industry, type of fraud, and date of fraud.\n\nYou can manage your fraud reports by adding, deleting, or editing reports as you get additional information on fraudulent users.","properties":{"id":{"$ref":"#/components/schemas/BeaconReportID"},"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"type":{"$ref":"#/components/schemas/BeaconReportType"},"fraud_date":{"$ref":"#/components/schemas/ISO8601DateNullable"},"event_date":{"$ref":"#/components/schemas/ISO8601Date"},"fraud_amount":{"$ref":"#/components/schemas/FraudAmount"},"audit_trail":{"$ref":"#/components/schemas/BeaconAuditTrail"}},"required":["id","beacon_user_id","created_at","type","fraud_date","event_date","fraud_amount","audit_trail"],"additionalProperties":true},"BeaconReportCreateRequest":{"description":"Request input for creating a Beacon Report","type":"object","properties":{"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"type":{"$ref":"#/components/schemas/BeaconReportCreateType"},"fraud_date":{"$ref":"#/components/schemas/ISO8601Date"},"fraud_amount":{"$ref":"#/components/schemas/FraudAmount"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_user_id","type","fraud_date"]},"BeaconReportCreateResponse":{"description":"A Beacon Report describes the type of fraud committed by a user as well as the date the fraud was committed and the total amount of money lost due to the fraud incident.\n\nThis information is used to block similar fraud attempts on your platform as well as alert other companies who screen a user with matching identity information.\nOther companies will not receive any new identity information, just what matched, plus information such as industry, type of fraud, and date of fraud.\n\nYou can manage your fraud reports by adding, deleting, or editing reports as you get additional information on fraudulent users.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/BeaconReportID"},"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"type":{"$ref":"#/components/schemas/BeaconReportType"},"fraud_date":{"$ref":"#/components/schemas/ISO8601DateNullable"},"event_date":{"$ref":"#/components/schemas/ISO8601Date"},"fraud_amount":{"$ref":"#/components/schemas/FraudAmount"},"audit_trail":{"$ref":"#/components/schemas/BeaconAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","beacon_user_id","created_at","type","fraud_date","event_date","fraud_amount","audit_trail","request_id"],"type":"object"},"BeaconReportCreateType":{"type":"string","title":"BeaconReportCreateType","description":"The type of Beacon Report.\n\n`first_party`: If this is the same individual as the one who submitted the KYC.\n\n`stolen`: If this is a different individual from the one who submitted the KYC.\n\n`synthetic`: If this is an individual using fabricated information.\n\n`account_takeover`: If this individual's account was compromised.\n\n`unknown`: If you aren't sure who committed the fraud.","enum":["first_party","stolen","synthetic","account_takeover","data_breach","unknown"],"x-override-enum-values-shown":["first_party","stolen","synthetic","account_takeover","unknown"]},"BeaconReportGetRequest":{"description":"Request input for getting a Beacon Report","type":"object","properties":{"beacon_report_id":{"$ref":"#/components/schemas/BeaconReportID"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_report_id"]},"BeaconReportGetResponse":{"description":"A Beacon Report describes the type of fraud committed by a user as well as the date the fraud was committed and the total amount of money lost due to the fraud incident.\n\nThis information is used to block similar fraud attempts on your platform as well as alert other companies who screen a user with matching identity information.\nOther companies will not receive any new identity information, just what matched, plus information such as industry, type of fraud, and date of fraud.\n\nYou can manage your fraud reports by adding, deleting, or editing reports as you get additional information on fraudulent users.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/BeaconReportID"},"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"type":{"$ref":"#/components/schemas/BeaconReportType"},"fraud_date":{"$ref":"#/components/schemas/ISO8601DateNullable"},"event_date":{"$ref":"#/components/schemas/ISO8601Date"},"fraud_amount":{"$ref":"#/components/schemas/FraudAmount"},"audit_trail":{"$ref":"#/components/schemas/BeaconAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","beacon_user_id","created_at","type","fraud_date","event_date","fraud_amount","audit_trail","request_id"],"type":"object"},"BeaconReportID":{"type":"string","title":"BeaconReportID","description":"ID of the associated Beacon Report.","examples":["becrpt_11111111111111"]},"BeaconReportIDNullable":{"type":["string","null"],"title":"BeaconReportID","description":"ID of the associated Beacon Report.","examples":["becrpt_11111111111111"]},"BeaconReportListRequest":{"description":"Request input for listing Beacon Reports","type":"object","properties":{"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"cursor":{"$ref":"#/components/schemas/Cursor"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_user_id"]},"BeaconReportListResponse":{"description":"The response schema for `/beacon/report/list`","additionalProperties":true,"properties":{"beacon_reports":{"type":"array","items":{"$ref":"#/components/schemas/BeaconReport"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["beacon_reports","next_cursor","request_id"],"type":"object"},"BeaconReportSyndication":{"type":"object","title":"BeaconReportSyndication","description":"A Beacon Report Syndication represents a Beacon Report created either by your organization or another Beacon customer that matches a specific Beacon User you've created.\n\nThe `analysis` field in the response indicates which fields matched between the originally reported Beacon User and the Beacon User that the report was syndicated to.\n\nThe `report` field in the response contains a subset of information from the original report.","properties":{"id":{"$ref":"#/components/schemas/BeaconReportSyndicationID"},"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"report":{"$ref":"#/components/schemas/BeaconReportSyndicationOriginalReport"},"analysis":{"$ref":"#/components/schemas/BeaconReportSyndicationAnalysis"}},"required":["id","report","analysis","beacon_user_id"],"additionalProperties":true},"BeaconReportSyndicationAnalysis":{"type":"object","title":"BeaconReportSyndicationAnalysis","description":"Analysis of which fields matched between the originally reported Beacon User and the Beacon User that the report was syndicated to.","properties":{"address":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"date_of_birth":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"email_address":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"name":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"id_number":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"ip_address":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"phone_number":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"},"depository_accounts":{"type":"array","items":{"$ref":"#/components/schemas/BeaconSyndicatedReportDepositoryAccountMatchAnalysis"}}},"required":["address","date_of_birth","email_address","name","id_number","ip_address","phone_number","depository_accounts"],"additionalProperties":true},"BeaconReportSyndicationGetRequest":{"description":"Request input for getting a Beacon Report Syndication","type":"object","properties":{"beacon_report_syndication_id":{"$ref":"#/components/schemas/BeaconReportSyndicationID"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_report_syndication_id"]},"BeaconReportSyndicationGetResponse":{"description":"A Beacon Report Syndication represents a Beacon Report created either by your organization or another Beacon customer that matches a specific Beacon User you've created.\n\nThe `analysis` field in the response indicates which fields matched between the originally reported Beacon User and the Beacon User that the report was syndicated to.\n\nThe `report` field in the response contains a subset of information from the original report.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/BeaconReportSyndicationID"},"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"report":{"$ref":"#/components/schemas/BeaconReportSyndicationOriginalReport"},"analysis":{"$ref":"#/components/schemas/BeaconReportSyndicationAnalysis"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","report","analysis","beacon_user_id","request_id"],"type":"object"},"BeaconReportSyndicationID":{"type":"string","title":"BeaconReportSyndicationID","description":"ID of the associated Beacon Report Syndication.","examples":["becrsn_11111111111111"]},"BeaconReportSyndicationListRequest":{"description":"Request input for listing Beacon Report Syndications","type":"object","properties":{"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"cursor":{"$ref":"#/components/schemas/Cursor"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_user_id"]},"BeaconReportSyndicationListResponse":{"description":"The response schema for `/beacon/report_syndication/list`","additionalProperties":true,"properties":{"beacon_report_syndications":{"type":"array","items":{"$ref":"#/components/schemas/BeaconReportSyndication"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["beacon_report_syndications","next_cursor","request_id"],"type":"object"},"BeaconReportSyndicationOriginalReport":{"type":"object","title":"BeaconReportSyndicationOriginalReport","description":"A subset of information from a Beacon Report that has been syndicated to a matching Beacon User in your program.\n\nThe `id` field in the response is the ID of the original report that was syndicated. If the original report was created by your organization, the field will be filled with the ID of the report. Otherwise, the field will be `null` indicating that the original report was created by another Beacon customer.","properties":{"id":{"$ref":"#/components/schemas/BeaconReportIDNullable"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"type":{"$ref":"#/components/schemas/BeaconReportType"},"fraud_date":{"$ref":"#/components/schemas/ISO8601DateNullable"},"event_date":{"$ref":"#/components/schemas/ISO8601Date"}},"required":["id","created_at","type","fraud_date","event_date"],"additionalProperties":true},"BeaconReportType":{"type":"string","title":"BeaconReportType","description":"The type of Beacon Report.\n\n`first_party`: If this is the same individual as the one who submitted the KYC.\n\n`stolen`: If this is a different individual from the one who submitted the KYC.\n\n`synthetic`: If this is an individual using fabricated information.\n\n`account_takeover`: If this individual's account was compromised.\n\n`data_breach`: If this individual's data was compromised in a breach.\n\n`unknown`: If you aren't sure who committed the fraud.","enum":["first_party","stolen","synthetic","account_takeover","data_breach","unknown"]},"BeaconSyndicatedReportDepositoryAccountMatchAnalysis":{"title":"BeaconSyndicatedReportDepositoryAccountMatchAnalysis","type":"object","description":"Analysis of whether this account matched between the originally reported Beacon User and the Beacon User that the report syndicated to.","properties":{"account_mask":{"$ref":"#/components/schemas/AccountMask"},"routing_number":{"$ref":"#/components/schemas/RoutingNumber"},"match_status":{"$ref":"#/components/schemas/BeaconMatchSummaryCode"}},"required":["account_mask","routing_number","match_status"],"additionalProperties":true},"BeaconUser":{"type":"object","title":"BeaconUser","description":"A Beacon User represents an end user that has been scanned against the Beacon Network.","properties":{"item_ids":{"type":"array","description":"An array of Plaid Item IDs corresponding to the Accounts associated with this Beacon User.","items":{"type":"string","examples":["515cd85321d3649aecddc015"]},"uniqueItems":true,"examples":[["515cd85321d3649aecddc015"]]},"id":{"$ref":"#/components/schemas/BeaconUserID"},"version":{"type":"integer","description":"The `version` field begins with 1 and increments each time the user is updated.","examples":[1]},"created_at":{"$ref":"#/components/schemas/Timestamp"},"updated_at":{"$ref":"#/components/schemas/UpdatedAtTimestamp"},"status":{"$ref":"#/components/schemas/BeaconUserStatus"},"program_id":{"$ref":"#/components/schemas/BeaconProgramID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"user":{"$ref":"#/components/schemas/BeaconUserData"},"audit_trail":{"$ref":"#/components/schemas/BeaconAuditTrail"}},"required":["id","version","created_at","updated_at","status","program_id","client_user_id","user","audit_trail","item_ids"],"additionalProperties":true},"BeaconUserAccountInsightsGetRequest":{"description":"Request input for fetching the risk insights for a Beacon User's Bank Accounts","type":"object","properties":{"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_user_id","access_token"]},"BeaconUserAccountInsightsGetResponse":{"description":"The response schema for `/beacon/user/account_insights/get`","additionalProperties":true,"properties":{"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"updated_at":{"$ref":"#/components/schemas/UpdatedAtTimestamp"},"bank_account_insights":{"$ref":"#/components/schemas/BeaconBankAccounts"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["beacon_user_id","created_at","updated_at","bank_account_insights","request_id"],"type":"object"},"BeaconUserAddress":{"type":"object","title":"BeaconUserAddress","description":"Even if an address has been collected, some fields may be null depending on the region's addressing system. For example:\n\n\nAddresses from the United Kingdom will not include a region\n\n\nAddresses from Hong Kong will not include a postal code","properties":{"street":{"$ref":"#/components/schemas/Street"},"street2":{"$ref":"#/components/schemas/Street2"},"city":{"$ref":"#/components/schemas/City"},"region":{"$ref":"#/components/schemas/Region"},"postal_code":{"$ref":"#/components/schemas/PostalCode"},"country":{"$ref":"#/components/schemas/GenericCountryCode"}},"required":["street","street2","city","region","postal_code","country"],"additionalProperties":true},"BeaconUserCreateRequest":{"description":"Request input for creating a Beacon User.\n\nThe primary use for this endpoint is to add a new end user to Beacon for fraud and duplicate scanning.\n\nSome fields are optional, but it is recommended to provide as much information as possible to improve\nthe accuracy of the fraud and duplicate scanning.","type":"object","properties":{"program_id":{"$ref":"#/components/schemas/BeaconProgramID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"user":{"$ref":"#/components/schemas/BeaconUserRequestData"},"access_tokens":{"type":["array","null"],"items":{"$ref":"#/components/schemas/AccessToken"},"description":"Send this array of access tokens to link accounts to the Beacon User and have them evaluated for Account Insights.\nA maximum of 50 accounts total can be added to a single Beacon User."},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["program_id","client_user_id","user"]},"BeaconUserCreateResponse":{"description":"A Beacon User represents an end user that has been scanned against the Beacon Network.","additionalProperties":true,"properties":{"item_ids":{"type":"array","description":"An array of Plaid Item IDs corresponding to the Accounts associated with this Beacon User.","items":{"type":"string","examples":["515cd85321d3649aecddc015"]},"uniqueItems":true,"examples":[["515cd85321d3649aecddc015"]]},"id":{"$ref":"#/components/schemas/BeaconUserID"},"version":{"type":"integer","description":"The `version` field begins with 1 and increments each time the user is updated.","examples":[1]},"created_at":{"$ref":"#/components/schemas/Timestamp"},"updated_at":{"$ref":"#/components/schemas/UpdatedAtTimestamp"},"status":{"$ref":"#/components/schemas/BeaconUserStatus"},"program_id":{"$ref":"#/components/schemas/BeaconProgramID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"user":{"$ref":"#/components/schemas/BeaconUserData"},"audit_trail":{"$ref":"#/components/schemas/BeaconAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","version","created_at","updated_at","status","program_id","client_user_id","user","audit_trail","item_ids","request_id"],"type":"object"},"BeaconUserData":{"type":"object","title":"BeaconUserData","description":"A Beacon User's data and resulting analysis when checked against duplicate records and the Beacon Fraud Network.","properties":{"date_of_birth":{"$ref":"#/components/schemas/ISO8601Date"},"name":{"$ref":"#/components/schemas/BeaconUserName"},"address":{"$ref":"#/components/schemas/BeaconUserAddress"},"email_address":{"$ref":"#/components/schemas/EmailAddressNullable"},"phone_number":{"$ref":"#/components/schemas/BeaconUserPhoneNumber"},"id_number":{"$ref":"#/components/schemas/BeaconUserIDNumber"},"ip_address":{"$ref":"#/components/schemas/IPAddress"},"depository_accounts":{"type":"array","items":{"$ref":"#/components/schemas/BeaconUserDepositoryAccount"}}},"required":["date_of_birth","name","address","email_address","phone_number","id_number","ip_address","depository_accounts"],"additionalProperties":true},"BeaconUserDepositoryAccount":{"type":"object","title":"BeaconUserDepositoryAccount","description":"Depository account information for the associated user.","properties":{"account_mask":{"$ref":"#/components/schemas/AccountMask"},"routing_number":{"$ref":"#/components/schemas/RoutingNumber"},"added_at":{"$ref":"#/components/schemas/Timestamp"}},"required":["account_mask","routing_number","added_at"],"additionalProperties":true},"BeaconUserGetRequest":{"description":"Request input for fetching a Beacon User","type":"object","properties":{"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_user_id"]},"BeaconUserGetResponse":{"description":"A Beacon User represents an end user that has been scanned against the Beacon Network.","additionalProperties":true,"properties":{"item_ids":{"type":"array","description":"An array of Plaid Item IDs corresponding to the Accounts associated with this Beacon User.","items":{"type":"string","examples":["515cd85321d3649aecddc015"]},"uniqueItems":true,"examples":[["515cd85321d3649aecddc015"]]},"id":{"$ref":"#/components/schemas/BeaconUserID"},"version":{"type":"integer","description":"The `version` field begins with 1 and increments each time the user is updated.","examples":[1]},"created_at":{"$ref":"#/components/schemas/Timestamp"},"updated_at":{"$ref":"#/components/schemas/UpdatedAtTimestamp"},"status":{"$ref":"#/components/schemas/BeaconUserStatus"},"program_id":{"$ref":"#/components/schemas/BeaconProgramID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"user":{"$ref":"#/components/schemas/BeaconUserData"},"audit_trail":{"$ref":"#/components/schemas/BeaconAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","version","created_at","updated_at","status","program_id","client_user_id","user","audit_trail","item_ids","request_id"],"type":"object"},"BeaconUserHistoryListRequest":{"description":"Request input for listing the history of a Beacon User","type":"object","properties":{"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"cursor":{"$ref":"#/components/schemas/Cursor"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_user_id"]},"BeaconUserHistoryListResponse":{"description":"The response schema for `/beacon/user/history/list`","additionalProperties":true,"properties":{"beacon_users":{"type":"array","items":{"$ref":"#/components/schemas/BeaconUser"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["beacon_users","next_cursor","request_id"],"type":"object"},"BeaconUserID":{"type":"string","title":"BeaconUserID","description":"ID of the associated Beacon User.","examples":["becusr_42cF1MNo42r9Xj"]},"BeaconUserIDNullable":{"type":["string","null"],"title":"BeaconUserID","deprecated":true,"description":"Beacon is deprecated in favor of Plaid Protect. This field is only populated for users of the deprecated Beacon product.","examples":[null]},"BeaconUserIDNumber":{"type":["object","null"],"title":"BeaconUserIDNumber","description":"The ID number associated with a Beacon User.","properties":{"value":{"$ref":"#/components/schemas/IDNumberValue"},"type":{"$ref":"#/components/schemas/IDNumberType"}},"required":["value","type"],"additionalProperties":true},"BeaconUserName":{"type":"object","title":"BeaconUserName","description":"The full name for a given Beacon User.","properties":{"given_name":{"$ref":"#/components/schemas/GivenNameField"},"family_name":{"$ref":"#/components/schemas/FamilyNameField"}},"required":["given_name","family_name"],"additionalProperties":true},"BeaconUserNameNullable":{"type":["object","null"],"title":"BeaconUserName","description":"The full name for a given Beacon User.","properties":{"given_name":{"$ref":"#/components/schemas/GivenNameField"},"family_name":{"$ref":"#/components/schemas/FamilyNameField"}},"required":["given_name","family_name"],"additionalProperties":true},"BeaconUserPhoneNumber":{"type":["string","null"],"title":"BeaconUserPhoneNumber","description":"A phone number in E.164 format.","examples":["+19876543212"]},"BeaconUserRequestAddress":{"type":["object","null"],"title":"BeaconUserRequestAddress","description":"Home address for the associated user. For more context on this field, see [Input Validation by Country](https://plaid.com/docs/identity-verification/hybrid-input-validation/#input-validation-by-country).","properties":{"street":{"$ref":"#/components/schemas/Street"},"street2":{"$ref":"#/components/schemas/Street2"},"city":{"$ref":"#/components/schemas/City"},"region":{"$ref":"#/components/schemas/Region"},"postal_code":{"$ref":"#/components/schemas/PostalCode"},"country":{"$ref":"#/components/schemas/GenericCountryCode"}},"required":["street","city","country"],"additionalProperties":true},"BeaconUserRequestAddressNullable":{"type":["object","null"],"title":"BeaconUserRequestAddress","description":"Home address for the associated user. For more context on this field, see [Input Validation by Country](https://plaid.com/docs/identity-verification/hybrid-input-validation/#input-validation-by-country).","properties":{"street":{"$ref":"#/components/schemas/Street"},"street2":{"$ref":"#/components/schemas/Street2"},"city":{"$ref":"#/components/schemas/City"},"region":{"$ref":"#/components/schemas/Region"},"postal_code":{"$ref":"#/components/schemas/PostalCode"},"country":{"$ref":"#/components/schemas/GenericCountryCode"}},"required":["street","city","country"],"additionalProperties":true},"BeaconUserRequestData":{"type":"object","title":"BeaconUserRequestData","description":"A Beacon User's data which is used to check against duplicate records and the Beacon Fraud Network.\n\nIn order to create a Beacon User, in addition to the `name`, _either_ the `date_of_birth` _or_ the `depository_accounts` field must be provided.","properties":{"date_of_birth":{"$ref":"#/components/schemas/ISO8601Date"},"name":{"$ref":"#/components/schemas/BeaconUserName"},"address":{"$ref":"#/components/schemas/BeaconUserRequestAddress"},"email_address":{"$ref":"#/components/schemas/EmailAddress"},"phone_number":{"$ref":"#/components/schemas/BeaconUserPhoneNumber"},"id_number":{"$ref":"#/components/schemas/BeaconUserIDNumber"},"ip_address":{"$ref":"#/components/schemas/IPAddress"},"depository_accounts":{"type":"array","items":{"$ref":"#/components/schemas/BeaconUserRequestDepositoryAccount"},"description":"Provide a list of bank accounts that are associated with this Beacon User. These accounts will be scanned across the Beacon Network and used to find duplicate records.\n\nNote: These accounts will not have Bank Account Insights. To receive Bank Account Insights please supply `access_tokens`."}},"required":["name"],"additionalProperties":true},"BeaconUserRequestDepositoryAccount":{"type":"object","title":"BeaconUserRequestDepositoryAccount","description":"Depository account information for the associated user.","properties":{"account_number":{"type":"string","description":"Must be a valid US Bank Account Number","examples":["1234567890"]},"routing_number":{"$ref":"#/components/schemas/RoutingNumber"}},"required":["account_number","routing_number"],"additionalProperties":true},"BeaconUserReviewRequest":{"description":"Request input for updating the status of a Beacon User","type":"object","properties":{"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"status":{"$ref":"#/components/schemas/BeaconUserStatus"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_user_id","status"]},"BeaconUserRevision":{"type":"object","title":"BeaconUserRevision","description":"A Beacon User Revision identifies a Beacon User at some point in its revision history.","properties":{"id":{"$ref":"#/components/schemas/BeaconUserID"},"version":{"type":"integer","description":"The `version` field begins with 1 and increments with each subsequent revision.","examples":[1]}},"required":["id","version"],"additionalProperties":true},"BeaconUserStatus":{"type":"string","title":"BeaconUserStatus","description":"A status of a Beacon User.\n\n`rejected`: The Beacon User has been rejected for fraud. Users can be automatically or manually rejected.\n\n`pending_review`: The Beacon User has been marked for review.\n\n`cleared`: The Beacon User has been cleared of fraud.","enum":["rejected","pending_review","cleared"],"examples":["cleared"]},"BeaconUserUpdateRequest":{"description":"Request input for updating the identity data of a Beacon User.","type":"object","properties":{"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserID"},"user":{"$ref":"#/components/schemas/BeaconUserUpdateRequestData"},"access_tokens":{"type":["array","null"],"items":{"$ref":"#/components/schemas/AccessToken"},"description":"Send this array of access tokens to add accounts to this user for evaluation.\nThis will add accounts to this Beacon User. If left null only existing accounts will be returned in response.\nA maximum of 50 accounts total can be added to a Beacon User."},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["beacon_user_id"]},"BeaconUserUpdateRequestData":{"type":["object","null"],"title":"BeaconUserUpdateRequestData","description":"A subset of a Beacon User's data which is used to patch the existing identity data associated with a Beacon User. At least one field must be provided. If left unset or null, user data will not be patched.","properties":{"date_of_birth":{"$ref":"#/components/schemas/ISO8601Date"},"name":{"$ref":"#/components/schemas/BeaconUserNameNullable"},"address":{"$ref":"#/components/schemas/BeaconUserRequestAddressNullable"},"email_address":{"$ref":"#/components/schemas/EmailAddress"},"phone_number":{"$ref":"#/components/schemas/BeaconUserPhoneNumber"},"id_number":{"$ref":"#/components/schemas/BeaconUserIDNumber"},"ip_address":{"$ref":"#/components/schemas/IPAddress"},"depository_accounts":{"type":"array","items":{"$ref":"#/components/schemas/BeaconUserRequestDepositoryAccount"}}},"additionalProperties":true},"BeaconUserUpdateResponse":{"description":"A Beacon User represents an end user that has been scanned against the Beacon Network.","additionalProperties":true,"properties":{"item_ids":{"type":"array","description":"An array of Plaid Item IDs corresponding to the Accounts associated with this Beacon User.","items":{"type":"string","examples":["515cd85321d3649aecddc015"]},"uniqueItems":true,"examples":[["515cd85321d3649aecddc015"]]},"id":{"$ref":"#/components/schemas/BeaconUserID"},"version":{"type":"integer","description":"The `version` field begins with 1 and increments each time the user is updated.","examples":[1]},"created_at":{"$ref":"#/components/schemas/Timestamp"},"updated_at":{"$ref":"#/components/schemas/UpdatedAtTimestamp"},"status":{"$ref":"#/components/schemas/BeaconUserStatus"},"program_id":{"$ref":"#/components/schemas/BeaconProgramID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"user":{"$ref":"#/components/schemas/BeaconUserData"},"audit_trail":{"$ref":"#/components/schemas/BeaconAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","version","created_at","updated_at","status","program_id","client_user_id","user","audit_trail","item_ids","request_id"],"type":"object"},"BusinessEmailAddress":{"type":"object","description":"Email address associated with a business","properties":{"email_address":{"type":["string","null"],"format":"email","description":"Email address of the business","examples":["business@example.com"]}},"required":["email_address"],"additionalProperties":true},"BusinessEntityType":{"description":"The legal structure or type of business entity","type":["string","null"],"enum":["sole_proprietorship","general_partnership","llc","llp","lllp","lp","c_corporation","s_corporation","b_corporation","nonprofit","cooperative","trust","professional_association","professional_corporation","trade_name","bank","credit_union","insurance","other","unknown"],"title":"BusinessEntityType","examples":["llc"]},"BusinessFieldMatchSummary":{"type":"object","description":"Summary of how a specific business field matched against data provider results","properties":{"summary":{"$ref":"#/components/schemas/MatchSummaryCode"}},"required":["summary"],"additionalProperties":true},"BusinessVerificationCheck":{"type":["object","null"],"description":"Results from the business identity verification check, which matches the submitted business information against data provider records. `officers` is one result for all submitted officers, as reported by the data provider. `registered_agent` compares the submitted officer names against the business's registered agent. Both are `no_input` when no officers were submitted.","properties":{"status":{"$ref":"#/components/schemas/BusinessVerificationStatus__BusinessVerificationCheck"},"score":{"type":"integer","description":"A score from 0 to 100 indicating the confidence in the identity verification of the business.","examples":[85]},"name":{"$ref":"#/components/schemas/BusinessFieldMatchSummary"},"address":{"$ref":"#/components/schemas/BusinessFieldMatchSummary"},"website":{"$ref":"#/components/schemas/BusinessFieldMatchSummary"},"tin":{"$ref":"#/components/schemas/BusinessTINMatch"},"officers":{"$ref":"#/components/schemas/BusinessFieldMatchSummary"},"registered_agent":{"$ref":"#/components/schemas/BusinessFieldMatchSummary"},"match_details":{"$ref":"#/components/schemas/BusinessKYBMatchDetails"}},"required":["status","score","name","address","website","tin","officers","registered_agent","match_details"],"additionalProperties":true},"BusinessTINMatch":{"type":"object","description":"How the submitted TIN matched IRS records.","properties":{"summary":{"$ref":"#/components/schemas/MatchSummaryCode"},"tin_type":{"$ref":"#/components/schemas/BusinessTINType"}},"required":["summary","tin_type"],"additionalProperties":true},"BusinessTINType":{"type":["string","null"],"description":"The kind of TIN the IRS reported. `unknown` means the IRS did not say which kind it is. `null` when no TIN was submitted (`summary` is `no_input`) or the IRS did not report a type, as when the check could not run (`summary` is `no_data`). A non-null `tin_type` does not mean the TIN matched; read `summary` for that.","enum":["ein","ssn","unknown",null],"examples":["ein"]},"BusinessOfficer":{"type":"object","description":"An officer of the business.","properties":{"name":{"type":"string","description":"The officer's full name. Must have at least one character and a maximum length of 500 characters.","examples":["Leslie Knope"]}},"required":["name"],"additionalProperties":true},"BusinessKYBMatchDetails":{"type":["object","null"],"description":"Detailed information about the business from data provider results","properties":{"names":{"type":"array","description":"Names associated with the business.","items":{"$ref":"#/components/schemas/ProviderBusinessName"}},"entity_type":{"$ref":"#/components/schemas/BusinessEntityType"},"addresses":{"type":"array","description":"Addresses associated with the business","items":{"$ref":"#/components/schemas/ProviderBusinessAddress"}},"phone_numbers":{"type":"array","description":"Phone numbers associated with the business","items":{"$ref":"#/components/schemas/BusinessPhoneNumber"}},"email_addresses":{"type":"array","description":"Email addresses associated with the business","items":{"$ref":"#/components/schemas/BusinessEmailAddress"}},"websites":{"type":"array","description":"Websites associated with the business","items":{"$ref":"#/components/schemas/BusinessWebsite"}},"formation_date":{"$ref":"#/components/schemas/ISO8601DateNullable"}},"required":["names","entity_type","addresses","phone_numbers","email_addresses","websites","formation_date"],"additionalProperties":true},"BusinessName":{"type":"string","title":"BusinessName","description":"The name of the business. Must have at least one character and a maximum length of 500 characters.","examples":["Acme Corporation"]},"BusinessNameNullable":{"type":["string","null"],"title":"BusinessName","description":"The name of the business. Must have at least one character and a maximum length of 500 characters.","examples":["Acme Corporation"]},"BusinessVerificationPhoneNumber":{"type":"string","description":"A phone number in E.164 format.","title":"BusinessVerificationPhoneNumber","examples":["+14025671234"]},"BusinessVerificationPhoneNumberNullable":{"type":["string","null"],"description":"A phone number in E.164 format.","title":"BusinessVerificationPhoneNumber","examples":["+14025671234"]},"ProviderBusinessName":{"type":"object","description":"Name associated with a business","properties":{"is_primary":{"type":"boolean","description":"Indicates whether this is the primary name for the business.","examples":[true]},"name":{"$ref":"#/components/schemas/BusinessNameNullable"}},"required":["is_primary","name"],"additionalProperties":true},"BusinessPhoneNumber":{"type":"object","description":"Phone number associated with a business","properties":{"number":{"type":["string","null"],"description":"Phone number in E.164 format","examples":["+12345678909"]}},"required":["number"],"additionalProperties":true},"BusinessRiskCheck":{"type":["object","null"],"description":"Results from the business risk assessment check","properties":{"status":{"$ref":"#/components/schemas/BusinessVerificationStatus__RiskCheck"},"score":{"type":["integer","null"],"description":"A score from 0 to 100 indicating the risk assessment for the business. `null` if no risk score is available for this verification. Industry classification may still be available when the risk score is `null`. A completed check can have `status: failed` and a `null` score when the risk assessment could not be completed; this does not represent a score of zero or a high-risk assessment. Read `status` separately to determine the check outcome; `null` does not mean the check is still running.","examples":[92]},"industry_prediction":{"$ref":"#/components/schemas/BusinessIndustryPredictionNullable"}},"required":["status","score","industry_prediction"],"additionalProperties":true},"BusinessIndustryPrediction":{"type":"object","description":"The predicted industry classification for the business, based on digital presence assessments.","properties":{"code":{"type":"integer","description":"NAICS code for the predicted business industry.","examples":[518210]},"title":{"type":"string","description":"The business industry classification of the predicted NAICS code.","examples":["Data Processing, Hosting, and Related Services"]}},"required":["code","title"],"additionalProperties":true},"BusinessIndustryPredictionNullable":{"type":["object","null"],"additionalProperties":true,"description":"Nullable industry prediction details.","allOf":[{"$ref":"#/components/schemas/BusinessIndustryPrediction"},{"type":["object","null"]}]},"BusinessSearchTerms":{"type":"object","description":"The business information that was used to perform the verification search","properties":{"name":{"$ref":"#/components/schemas/BusinessNameNullable"},"alternative_names":{"type":"array","description":"Alternative business names that were submitted as search inputs.","items":{"$ref":"#/components/schemas/BusinessName"}},"address":{"$ref":"#/components/schemas/ResponseBusinessAddress"},"website":{"$ref":"#/components/schemas/URLNullable"},"phone_number":{"$ref":"#/components/schemas/BusinessVerificationPhoneNumberNullable"},"email_address":{"$ref":"#/components/schemas/EmailAddressNullable"},"tin":{"type":["string","null"],"description":"The TIN that was submitted, as 9 digits without a dash. `null` if no TIN was submitted.","examples":["123456789"]},"officers":{"type":"array","description":"The officers that were submitted.","items":{"$ref":"#/components/schemas/BusinessOfficer"}}},"required":["name","alternative_names","address","website","phone_number","email_address","tin","officers"],"additionalProperties":true},"BusinessVerificationCreateRequest":{"type":"object","description":"Request input for creating a business verification","properties":{"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"business":{"$ref":"#/components/schemas/BusinessVerificationCreateRequestBusiness"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["client_user_id","business"]},"BusinessVerificationCreateRequestBusiness":{"type":"object","description":"Business information provided in the verification request","properties":{"name":{"$ref":"#/components/schemas/BusinessName"},"alternative_name":{"$ref":"#/components/schemas/BusinessNameNullable"},"address":{"$ref":"#/components/schemas/RequestBusinessAddress"},"website":{"$ref":"#/components/schemas/URL"},"phone_number":{"$ref":"#/components/schemas/BusinessVerificationPhoneNumber"},"email_address":{"$ref":"#/components/schemas/EmailAddress"},"tin":{"type":["string","null"],"description":"The business's Taxpayer Identification Number (TIN), such as an Employer Identification Number (EIN), as 9 digits. An EIN may include a dash after the first two digits, such as `12-3456789`.","examples":["12-3456789"]},"officers":{"type":["array","null"],"maxItems":10,"description":"Officers of the business, used to check that the people listed match public records. At most 10.","items":{"$ref":"#/components/schemas/BusinessOfficer"}}},"required":["name","address"],"additionalProperties":true},"BusinessVerificationCreateResponse":{"description":"A business verification represents a check of a business's identity and risk profile, including information collected about the business and results from third-party data providers.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/BusinessVerificationID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"completed_at":{"$ref":"#/components/schemas/TimestampNullable"},"redacted_at":{"$ref":"#/components/schemas/TimestampNullable"},"status":{"$ref":"#/components/schemas/BusinessVerificationStatus__Overall"},"search_terms":{"$ref":"#/components/schemas/BusinessSearchTerms"},"business_verification":{"$ref":"#/components/schemas/BusinessVerificationCheck"},"risk_check":{"$ref":"#/components/schemas/BusinessRiskCheck"},"digital_presence_check":{"$ref":"#/components/schemas/BusinessDigitalPresenceCheck"},"request_id":{"$ref":"#/components/schemas/RequestID"},"shareable_url":{"$ref":"#/components/schemas/BusinessVerificationShareableURL"}},"required":["id","client_user_id","created_at","completed_at","redacted_at","status","search_terms","business_verification","risk_check","digital_presence_check","request_id","shareable_url"],"type":"object"},"BusinessVerificationGetRequest":{"description":"Request input for fetching a business verification","type":"object","properties":{"business_verification_id":{"$ref":"#/components/schemas/BusinessVerificationID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"}},"required":["business_verification_id"]},"BusinessVerificationGetResponse":{"description":"A business verification represents a check of a business's identity and risk profile, including information collected about the business and results from third-party data providers.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/BusinessVerificationID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"completed_at":{"$ref":"#/components/schemas/TimestampNullable"},"redacted_at":{"$ref":"#/components/schemas/TimestampNullable"},"status":{"$ref":"#/components/schemas/BusinessVerificationStatus__Overall"},"search_terms":{"$ref":"#/components/schemas/BusinessSearchTerms"},"business_verification":{"$ref":"#/components/schemas/BusinessVerificationCheck"},"risk_check":{"$ref":"#/components/schemas/BusinessRiskCheck"},"digital_presence_check":{"$ref":"#/components/schemas/BusinessDigitalPresenceCheck"},"request_id":{"$ref":"#/components/schemas/RequestID"},"shareable_url":{"$ref":"#/components/schemas/BusinessVerificationShareableURL"}},"required":["id","client_user_id","created_at","completed_at","redacted_at","status","search_terms","business_verification","risk_check","digital_presence_check","request_id","shareable_url"],"type":"object"},"BusinessVerificationID":{"type":"string","format":"cognito_id","title":"BusinessVerificationID","description":"ID of the associated business verification.","examples":["busver_52xR9LKo77r1Np"]},"BusinessVerificationStatus__BusinessVerificationCheck":{"type":"string","enum":["active","success","failed"],"title":"BusinessVerificationStatus","description":"Status of the business identity verification check","examples":["success"]},"BusinessVerificationStatus__Overall":{"type":"string","enum":["active","success","failed"],"title":"BusinessVerificationStatus","description":"Status of the overall business verification","examples":["success"]},"BusinessVerificationStatus__RiskCheck":{"type":"string","enum":["active","success","failed"],"title":"BusinessVerificationStatus","description":"Status of the business risk assessment check","examples":["success"]},"BusinessVerificationStatus__WebPresenceCheck":{"type":"string","enum":["active","success","failed","not_applicable"],"title":"BusinessVerificationStatus","description":"Status of the digital presence check","examples":["success"]},"BusinessVerificationShareableURL":{"type":["string","null"],"description":"A shareable URL that can be sent directly to the user to complete verification","examples":["https://verify.plaid.com/busver_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f"]},"BusinessCheckBooleanStatus":{"description":"Tri-state boolean status, where `no_data` indicates the check could not determine a value.","type":"string","enum":["yes","no","no_data"],"examples":["yes"]},"BusinessDigitalPresenceCheck":{"type":["object","null"],"description":"Results from the digital presence check.","properties":{"status":{"$ref":"#/components/schemas/BusinessVerificationStatus__WebPresenceCheck"},"score":{"type":["integer","null"],"description":"A score from 0 to 100 indicating digital presence confidence. `null` if no digital presence score is available for this verification. A completed check can have `status: failed` and a `null` score when website analysis could not produce a score; this does not represent a score of zero. Read `status` separately to determine the check outcome; `null` does not mean the check is still running. When website analysis was not requested, the entire `digital_presence_check` object is `null`.","examples":[55]},"address":{"$ref":"#/components/schemas/BusinessFieldMatchSummary"},"phone_number":{"$ref":"#/components/schemas/BusinessFieldMatchSummary"},"email_address":{"$ref":"#/components/schemas/BusinessFieldMatchSummary"},"website":{"$ref":"#/components/schemas/BusinessFieldMatchSummary"},"website_analysis":{"$ref":"#/components/schemas/BusinessWebsiteAnalysis"}},"required":["status","score","address","phone_number","email_address","website","website_analysis"],"additionalProperties":true},"BusinessWebsiteAnalysis":{"type":["object","null"],"description":"Website analysis details if a website is found for the provided website in the search terms.","properties":{"is_parked":{"$ref":"#/components/schemas/BusinessCheckBooleanStatus"},"email_is_deliverable":{"$ref":"#/components/schemas/BusinessCheckBooleanStatus"},"website_build_status":{"$ref":"#/components/schemas/BusinessWebsiteBuildStatus"},"whois_record":{"$ref":"#/components/schemas/BusinessWhoisRecord"},"ssl":{"$ref":"#/components/schemas/BusinessWebsiteSSL"}},"required":["is_parked","email_is_deliverable","website_build_status","whois_record","ssl"],"additionalProperties":true},"BusinessWebsiteBuildStatus":{"type":["string","null"],"description":"Build status of the business website. `null` if the build status could not be determined.","enum":["coming_soon","active","inactive",null],"examples":["active"]},"BusinessWhoisRecord":{"type":"object","description":"WHOIS metadata for the business website domain.","properties":{"domain_created_at":{"$ref":"#/components/schemas/TimestampNullable"},"domain_updated_at":{"$ref":"#/components/schemas/TimestampNullable"},"domain_expires_at":{"$ref":"#/components/schemas/TimestampNullable"},"registrar":{"type":["string","null"],"description":"Domain registrar.","examples":["GANDI SAS"]}},"required":["domain_created_at","domain_updated_at","domain_expires_at","registrar"],"additionalProperties":true},"BusinessWebsiteSSL":{"type":"object","description":"SSL status for the business website.","properties":{"is_valid":{"$ref":"#/components/schemas/BusinessCheckBooleanStatus"}},"required":["is_valid"],"additionalProperties":true},"BusinessWebsite":{"type":"object","description":"Website associated with a business","properties":{"url":{"type":["string","null"],"format":"uri","description":"URL of the business website","examples":["https://example.com"]}},"required":["url"],"additionalProperties":true},"City":{"type":"string","title":"CityName","description":"City from the address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.","examples":["Pawnee"]},"CityNullable":{"type":["string","null"],"title":"CityName","description":"City from the address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters.","examples":["Pawnee"]},"ClientUserID":{"type":"string","title":"ClientUserID","description":"A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be provided. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.","examples":["your-db-id-3b24110"]},"ClientUserIDNullable":{"type":["string","null"],"title":"ClientUserID","description":"A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be provided. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.","examples":["your-db-id-3b24110"]},"Cursor":{"description":"An identifier that determines which page of results you receive.","type":["string","null"],"examples":["eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM"]},"DashboardUser":{"title":"DashboardUser","type":"object","description":"Account information associated with a team member with access to the Plaid dashboard.","properties":{"id":{"$ref":"#/components/schemas/DashboardUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"email_address":{"$ref":"#/components/schemas/EmailAddress"},"status":{"$ref":"#/components/schemas/DashboardUserStatus"}},"required":["id","created_at","email_address","status"],"additionalProperties":true},"DashboardUserGetRequest":{"description":"Request input for fetching a dashboard user","type":"object","properties":{"dashboard_user_id":{"$ref":"#/components/schemas/DashboardUserID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"}},"required":["dashboard_user_id"]},"DashboardUserGetResponse":{"description":"Account information associated with a team member with access to the Plaid dashboard.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/DashboardUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"email_address":{"$ref":"#/components/schemas/EmailAddress"},"status":{"$ref":"#/components/schemas/DashboardUserStatus"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","created_at","email_address","status","request_id"],"type":"object"},"DashboardUserID":{"type":"string","title":"DashboardUserID","description":"ID of the associated user. To retrieve the email address or other details of the person corresponding to this ID, use `/dashboard_user/get`.","examples":["54350110fedcbaf01234ffee"]},"DashboardUserIDNullable":{"type":["string","null"],"title":"DashboardUserID","description":"ID of the associated user. To retrieve the email address or other details of the person corresponding to this ID, use `/dashboard_user/get`.","examples":["54350110fedcbaf01234ffee"]},"DashboardUserListRequest":{"description":"Request input for listing dashboard users","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"cursor":{"$ref":"#/components/schemas/Cursor"}}},"DashboardUserListResponse":{"description":"Paginated list of dashboard users","additionalProperties":true,"properties":{"dashboard_users":{"description":"List of dashboard users","type":"array","items":{"$ref":"#/components/schemas/DashboardUser"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["dashboard_users","next_cursor","request_id"],"type":"object"},"DashboardUserStatus":{"type":"string","description":"The current status of the user.","enum":["invited","active","deactivated"],"examples":["active"]},"DateRange":{"type":"object","description":"A date range with a start and end date","properties":{"beginning":{"$ref":"#/components/schemas/ISO8601Date"},"ending":{"$ref":"#/components/schemas/ISO8601Date"}},"required":["beginning","ending"],"title":"DateRange","additionalProperties":true,"examples":[{"ending":"1966-06-30","beginning":"1966-06-01"}]},"DeprecatedClientUserID":{"type":["string","null"],"title":"CustomerReference","deprecated":true,"description":"Specifying `user.client_user_id` is deprecated. Please provide `client_user_id` at the root level instead.","examples":["your-db-id-3b24110"]},"DocumentAnalysis":{"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.","type":"object","properties":{"authenticity":{"$ref":"#/components/schemas/DocumentAuthenticityMatchCode"},"image_quality":{"$ref":"#/components/schemas/ImageQuality"},"extracted_data":{"$ref":"#/components/schemas/PhysicalDocumentExtractedDataAnalysis"},"fraud_analysis_details":{"$ref":"#/components/schemas/FraudAnalysisDetails"},"image_quality_details":{"$ref":"#/components/schemas/ImageQualityDetails"},"human_review":{"$ref":"#/components/schemas/HumanReview"},"aamva_verification":{"$ref":"#/components/schemas/AAMVAAnalysis"}},"required":["authenticity","image_quality","extracted_data","fraud_analysis_details","image_quality_details","aamva_verification"],"additionalProperties":true},"DocumentAuthenticityMatchCode":{"description":"High level summary of whether the document in the provided image matches the formatting rules and security checks for the associated jurisdiction.\n\nFor example, most identity documents have formatting rules like the following:\n\n\nThe image of the person's face must have a certain contrast in order to highlight skin tone\n\n\nThe subject in the document's image must remove eye glasses and pose in a certain way\n\n\nThe informational fields (name, date of birth, ID number, etc.) must be colored and aligned according to specific rules\n\n\nSecurity features like watermarks and background patterns must be present\n\nSo 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.","type":"string","enum":["match","partial_match","no_match","no_data"],"examples":["match"]},"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.","type":"string","enum":["match","partial_match","no_match","no_data"],"examples":["match"]},"DocumentImage__Back":{"type":["string","null"],"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.","examples":["https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg"]},"DocumentImage__CroppedBack":{"type":["string","null"],"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.","examples":["https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg"]},"DocumentImage__CroppedFront":{"type":["string","null"],"description":"Temporary URL that expires after 60 seconds for downloading a cropped image containing just the front of the document.","examples":["https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg"]},"DocumentImage__Face":{"type":["string","null"],"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.","examples":["https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg"]},"DocumentImage__Front":{"type":["string","null"],"description":"Temporary URL that expires after 60 seconds for downloading the uncropped original image of the front of the document.","examples":["https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg"]},"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 the identity verification attempt.","type":"string","enum":["match","partial_match","no_match","no_data"],"examples":["match"]},"DocumentStatus":{"type":"string","enum":["success","failed","manually_approved"],"title":"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.","examples":["success"]},"DocumentaryVerification":{"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 `success`, `failed`, `manually_approved`, or `manually_rejected`. It is also returned while the user is being asked to retry after a failed document attempt.","title":"DocumentaryVerification","type":["object","null"],"properties":{"status":{"type":"string","description":"The outcome status for the associated Identity Verification attempt's `documentary_verification` step. This field will be `success` if `steps.documentary_verification` is `success` or `manually_approved`, and `failed` if `steps.documentary_verification` is `failed` or `manually_rejected`.","examples":["success"]},"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.\n\nNote: 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.","type":"array","items":{"$ref":"#/components/schemas/DocumentaryVerificationDocument"}}},"required":["status","documents"],"additionalProperties":true},"DocumentaryVerificationDocument":{"type":"object","description":"Images, extracted data, and analysis from a user's identity document","additionalProperties":true,"properties":{"status":{"$ref":"#/components/schemas/DocumentStatus"},"attempt":{"type":"integer","description":"The `attempt` field begins with 1 and increments with each subsequent document upload.","examples":[1]},"images":{"$ref":"#/components/schemas/PhysicalDocumentImages"},"extracted_data":{"$ref":"#/components/schemas/PhysicalDocumentExtractedData"},"analysis":{"$ref":"#/components/schemas/DocumentAnalysis"},"redacted_at":{"$ref":"#/components/schemas/TimestampNullable"}},"required":["analysis","attempt","extracted_data","images","status","redacted_at"]},"EmailAddress":{"type":"string","format":"email","title":"EmailAddress","description":"A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).","examples":["user@example.com"]},"EmailAddressNullable":{"type":["string","null"],"format":"email","title":"EmailAddress","description":"A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696).","examples":["user@example.com"]},"EntityDocument":{"title":"EntityDocument","type":"object","description":"An official document, usually issued by a governing body or institution, with an associated identifier.","properties":{"type":{"$ref":"#/components/schemas/EntityDocumentType"},"number":{"$ref":"#/components/schemas/WatchlistScreeningDocumentValue"}},"required":["type","number"],"additionalProperties":true},"EntityDocumentType":{"type":"string","enum":["bik","business_number","imo","other","swift","tax_id"],"title":"EntityDocumentType","description":"The kind of official document represented by this object.\n\n`bik` - Russian bank code\n\n`business_number` - A number that uniquely identifies the business within a category of businesses\n\n`imo` - Number assigned to the entity by the International Maritime Organization\n\n`other` - Any document not covered by other categories\n\n`swift` - Number identifying a bank and branch.\n\n`tax_id` - Identification issued for the purpose of collecting taxes","examples":["swift"]},"EntityScreeningHitAnalysis":{"type":"object","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"},"urls":{"$ref":"#/components/schemas/MatchSummaryCode"},"search_terms_version":{"type":"integer","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.","examples":[1]}},"required":["search_terms_version"],"additionalProperties":true},"EntityScreeningHitData":{"type":"object","description":"Information associated with the entity watchlist hit","properties":{"documents":{"description":"Documents associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/EntityScreeningHitDocumentsItems"}},"email_addresses":{"description":"Email addresses associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/EntityScreeningHitEmailsItems"}},"locations":{"description":"Locations associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/GenericScreeningHitLocationItems"}},"names":{"description":"Names associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/EntityScreeningHitNamesItems"}},"phone_numbers":{"description":"Phone numbers associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/EntityScreeningHitsPhoneNumberItems"}},"urls":{"description":"URLs associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/EntityScreeningHitUrlsItems"}}},"additionalProperties":true},"EntityScreeningHitDocumentsItems":{"type":"object","description":"Analyzed documents for the associated hit","properties":{"analysis":{"$ref":"#/components/schemas/MatchSummary"},"data":{"$ref":"#/components/schemas/EntityDocument"}},"additionalProperties":true},"EntityScreeningHitEmails":{"type":"object","description":"Email address information for the associated entity watchlist hit","properties":{"email_address":{"$ref":"#/components/schemas/EmailAddress"}},"required":["email_address"],"additionalProperties":true},"EntityScreeningHitEmailsItems":{"type":"object","description":"Analyzed emails for the associated hit","properties":{"analysis":{"$ref":"#/components/schemas/MatchSummary"},"data":{"$ref":"#/components/schemas/EntityScreeningHitEmails"}},"additionalProperties":true},"EntityScreeningHitNames":{"type":"object","description":"Name information for the associated entity watchlist hit","properties":{"full":{"type":"string","description":"The full name of the entity.","examples":["Al Qaida"]},"is_primary":{"type":"boolean","description":"Primary names are those most commonly used to refer to this entity. Only one name will ever be marked as primary.","examples":[false]},"weak_alias_determination":{"$ref":"#/components/schemas/WeakAliasDetermination"}},"required":["full","is_primary","weak_alias_determination"],"additionalProperties":true},"EntityScreeningHitNamesItems":{"type":"object","description":"Analyzed names for the associated hit","properties":{"analysis":{"$ref":"#/components/schemas/MatchSummary"},"data":{"$ref":"#/components/schemas/EntityScreeningHitNames"}},"additionalProperties":true},"EntityScreeningHitPhoneNumbers":{"type":"object","description":"Phone number information associated with the entity screening hit","properties":{"type":{"$ref":"#/components/schemas/PhoneType"},"phone_number":{"$ref":"#/components/schemas/WatchlistScreeningPhoneNumber"}},"required":["type","phone_number"],"additionalProperties":true},"EntityScreeningHitUrls":{"type":"object","description":"URLs associated with the entity screening hit","properties":{"url":{"$ref":"#/components/schemas/URL"}},"required":["url"],"additionalProperties":true},"EntityScreeningHitUrlsItems":{"type":"object","description":"Analyzed URLs for the associated hit","properties":{"analysis":{"$ref":"#/components/schemas/MatchSummary"},"data":{"$ref":"#/components/schemas/EntityScreeningHitUrls"}},"additionalProperties":true},"EntityScreeningHitsPhoneNumberItems":{"type":"object","description":"Analyzed phone numbers for the associated hit","properties":{"analysis":{"$ref":"#/components/schemas/MatchSummary"},"data":{"$ref":"#/components/schemas/EntityScreeningHitPhoneNumbers"}},"additionalProperties":true},"EntityWatchlistCode":{"type":"string","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","US_SAM","US_TEL","AU_CON","UK_HMC"],"description":"Shorthand identifier for a specific screening list for entities.\n\n `AU_CON`: Australia Department of Foreign Affairs and Trade Consolidated List\n\n `CA_CON`: Government of Canada Consolidated List of Sanctions\n\n `EU_CON`: European External Action Service Consolidated List\n\n `IZ_SOE`: State Owned Enterprise List\n\n `IZ_UNC`: United Nations Consolidated Sanctions\n\n `IZ_WBK`: World Bank Listing of Ineligible Firms and Individuals\n\n `US_CAP`: US OFAC Correspondent Account or Payable-Through Account Sanctions\n\n `US_FSE`: US OFAC Foreign Sanctions Evaders\n\n `US_MBS`: US Non-SDN Menu-Based Sanctions\n\n `US_SDN`: US OFAC Specially Designated Nationals List\n\n `US_SSI`: US OFAC Sectoral Sanctions Identifications\n\n `US_CMC`: US OFAC Non-SDN Chinese Military-Industrial Complex List\n\n `US_UVL`: Bureau of Industry and Security Unverified List\n\n `US_SAM`: US System for Award Management Exclusion List\n\n `US_TEL`: US Terrorist Exclusion List\n\n `UK_HMC`: Foreign, Commonwealth & Development Office UK Sanctions List","title":"EntityWatchlistCode","examples":["EU_CON"]},"EntityWatchlistProgram":{"type":"object","description":"A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of entities.","title":"EntityWatchlistProgram","properties":{"id":{"$ref":"#/components/schemas/EntityWatchlistProgramID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"is_rescanning_enabled":{"description":"Indicator specifying whether the program is enabled and will perform daily rescans.","type":"boolean","examples":[true]},"lists_enabled":{"description":"Watchlists enabled for the associated program","type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/EntityWatchlistCode"},"examples":[["EU_CON"]]},"name":{"$ref":"#/components/schemas/EntityWatchlistScreeningProgramName"},"name_sensitivity":{"$ref":"#/components/schemas/ProgramNameSensitivity"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"is_archived":{"$ref":"#/components/schemas/ProgramArchived"}},"required":["id","created_at","is_rescanning_enabled","lists_enabled","name","name_sensitivity","audit_trail","is_archived"],"additionalProperties":true},"EntityWatchlistProgramID":{"type":"string","title":"EntityWatchlistProgramID","description":"ID of the associated entity program.","examples":["entprg_2eRPsDnL66rZ7H"]},"EntityWatchlistScreening":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"},"search_terms":{"$ref":"#/components/schemas/EntityWatchlistScreeningSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserIDNullable"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"}},"required":["id","search_terms","assignee","status","client_user_id","audit_trail"],"title":"EntityWatchlistScreening","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.","additionalProperties":true},"EntityWatchlistScreeningHit":{"type":"object","description":"Data from a government watchlist that has been attached to the screening.","title":"EntityWatchlistScreeningHit","properties":{"id":{"$ref":"#/components/schemas/EntityWatchlistScreeningHitID"},"review_status":{"$ref":"#/components/schemas/WatchlistScreeningHitStatus"},"first_active":{"$ref":"#/components/schemas/Timestamp"},"inactive_since":{"$ref":"#/components/schemas/TimestampNullable"},"historical_since":{"$ref":"#/components/schemas/TimestampNullable"},"list_code":{"$ref":"#/components/schemas/EntityWatchlistCode"},"plaid_uid":{"$ref":"#/components/schemas/InternalUID"},"source_uid":{"$ref":"#/components/schemas/SourceUID"},"sub_programs":{"type":"array","description":"Sub-program designations that may be attached to the watchlist entry by the issuing authority. For OFAC SDN\nentries these are the program codes published in the SDN list (for example `SDGT` for Specially\nDesignated Global Terrorists, `SDNTK` for Specially Designated Narcotics Trafficking Kingpins,\n`IRAN`, `RUSSIA-EO14024`). New codes are added by sanctioning authorities without prior notice,\nso callers should treat unknown values as opaque strings rather than enum members.\n","items":{"type":"string","examples":["SDGT"]},"examples":[["SDGT","SDNTK"]]},"analysis":{"$ref":"#/components/schemas/EntityScreeningHitAnalysis"},"data":{"$ref":"#/components/schemas/EntityScreeningHitData"}},"required":["id","review_status","first_active","inactive_since","historical_since","list_code","plaid_uid","source_uid","sub_programs"],"additionalProperties":true},"EntityWatchlistScreeningHitID":{"type":"string","title":"EntityWatchlistScreeningHitID","description":"ID of the associated entity screening hit.","examples":["enthit_52xR9LKo77r1Np"]},"EntityWatchlistScreeningID":{"type":"string","title":"EntityWatchlistScreeningID","description":"ID of the associated entity screening.","examples":["entscr_52xR9LKo77r1Np"]},"EntityWatchlistScreeningName":{"type":"string","title":"EntityWatchlistScreeningName","description":"The name of the organization being screened. Must have at least one alphabetical character, have a maximum length of 100 characters, and not include leading or trailing spaces.","examples":["Al-Qaida"]},"EntityWatchlistScreeningProgramName":{"type":"string","title":"EntityWatchlistScreeningProgramName","description":"A name for the entity program to define its purpose. For example, \"High Risk Organizations\" or \"Applicants\".","examples":["Sample Program"]},"EntityWatchlistScreeningReview":{"title":"EntityWatchlistScreeningReview","type":"object","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\nagainst hits attached to the watchlist screening, or both.","properties":{"id":{"$ref":"#/components/schemas/EntityWatchlistScreeningReviewID"},"confirmed_hits":{"type":"array","description":"Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once confirmed. In most cases, confirmed hits indicate that the customer should be rejected.","items":{"$ref":"#/components/schemas/EntityWatchlistScreeningHitID"}},"dismissed_hits":{"type":"array","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"}},"comment":{"$ref":"#/components/schemas/ReviewComment"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"}},"required":["id","confirmed_hits","dismissed_hits","comment","audit_trail"],"additionalProperties":true},"EntityWatchlistScreeningReviewID":{"type":"string","title":"EntityWatchlistScreeningReviewID","description":"ID of the associated entity review.","examples":["entrev_aCLNRxK3UVzn2r"]},"EntityWatchlistScreeningSearchTerms":{"type":"object","description":"Search terms associated with an entity used for searching against watchlists","properties":{"entity_watchlist_program_id":{"$ref":"#/components/schemas/EntityWatchlistProgramID"},"legal_name":{"$ref":"#/components/schemas/EntityWatchlistScreeningName"},"document_number":{"$ref":"#/components/schemas/WatchlistScreeningDocumentValueNullable"},"email_address":{"$ref":"#/components/schemas/EmailAddressNullable"},"country":{"$ref":"#/components/schemas/GenericCountryCodeNullable"},"phone_number":{"$ref":"#/components/schemas/WatchlistScreeningPhoneNumberNullable"},"url":{"$ref":"#/components/schemas/URLNullable"},"version":{"type":"integer","description":"The current version of the search terms. Starts at `1` and increments with each edit to `search_terms`.","examples":[1]}},"required":["entity_watchlist_program_id","legal_name","document_number","email_address","country","phone_number","url","version"],"additionalProperties":true},"EntityWatchlistSearchTerms":{"type":"object","required":["entity_watchlist_program_id","legal_name"],"description":"Search inputs for creating an entity watchlist screening","properties":{"entity_watchlist_program_id":{"$ref":"#/components/schemas/EntityWatchlistProgramID"},"legal_name":{"$ref":"#/components/schemas/EntityWatchlistScreeningName"},"document_number":{"$ref":"#/components/schemas/WatchlistScreeningDocumentValueNullable"},"email_address":{"$ref":"#/components/schemas/EmailAddressNullable"},"country":{"$ref":"#/components/schemas/GenericCountryCodeNullable"},"phone_number":{"$ref":"#/components/schemas/WatchlistScreeningPhoneNumberNullable"},"url":{"$ref":"#/components/schemas/URLNullable"}}},"ExpirationDate":{"description":"A description of whether the associated document was expired when the verification was performed.\n\nNote: In the case where an expiration date is not present on the document or failed to be extracted, this value will be `no_data`.","type":"string","enum":["not_expired","expired","no_data"],"examples":["not_expired"]},"FamilyNameField":{"type":"string","title":"FamilyName","description":"A string with at least one non-whitespace character, with a max length of 100 characters.","examples":["Knope"]},"ForwardedJSONResponse":{"description":"An arbitrary JSON payload sent to or received from the Plaid server. Internal use only.","additionalProperties":true,"properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"],"type":"object"},"FraudAmount":{"type":["object","null"],"title":"FraudAmount","description":"The amount and currency of the fraud or attempted fraud.\n`fraud_amount` should be omitted to indicate an unknown fraud amount.","properties":{"iso_currency_code":{"$ref":"#/components/schemas/ISOCurrencyCode"},"value":{"type":"number","format":"double","description":"The amount value.\nThis value can be 0 to indicate no money was lost.\nMust not contain more than two digits of precision (e.g., `1.23`).","examples":[100]}},"required":["iso_currency_code","value"],"additionalProperties":true},"FraudAnalysisDetails":{"additionalProperties":true,"type":["object","null"],"description":"Details about the fraud analysis performed on the document.","properties":{"type_supported":{"description":"Whether the submitted document type is supported for fraud analysis.\n\n`success` - The document type is supported.\n\n`failed` - The document type is not supported.","allOf":[{"$ref":"#/components/schemas/FraudCheckOutcome"}]},"portrait_presence_check":{"description":"The outcome of the portrait presence check.\n\n`success` - A portrait was detected.\n\n`failed` - No portrait was detected.","allOf":[{"$ref":"#/components/schemas/FraudCheckOutcome"}]},"portrait_details_check":{"description":"The outcome of the portrait details check including photo embedding and face landmark checks.\n\n`success` - The portrait passed all validity checks.\n\n`failed` - The portrait did not pass one or more validity checks.","allOf":[{"$ref":"#/components/schemas/FraudCheckOutcome"}]},"image_composition_check":{"description":"The outcome of the image composition check.\n\n`success` - The image is a valid physical document capture.\n\n`failed` - The image appears to be a photograph of a screen or a digital forgery.","allOf":[{"$ref":"#/components/schemas/FraudCheckOutcome"}]},"integrity_check":{"description":"The outcome of the integrity check for document security elements.\n\n`success` - Data is consistent across all checked security elements.\n\n`failed` - Inconsistencies were detected across one or more security elements.","allOf":[{"$ref":"#/components/schemas/FraudCheckOutcome"}]},"detail_check":{"description":"The outcome of the document detail check for correct styling and layout.\n\n`success` - The document passed all authenticity checks.\n\n`failed` - The document did not pass one or more authenticity checks.","allOf":[{"$ref":"#/components/schemas/FraudCheckOutcome"}]},"issue_date_check":{"description":"The outcome of the issue date validity check.\n\n`success` - The issue date is valid.\n\n`failed` - The issue date is invalid or could not be verified.\n\n`no_data` - The check could not be performed due to insufficient data.","allOf":[{"$ref":"#/components/schemas/FraudCheckOutcomeWithNoData"}]}},"required":["type_supported","portrait_presence_check","portrait_details_check","image_composition_check","integrity_check","detail_check","issue_date_check"]},"FraudCheckOutcome":{"type":"string","description":"The outcome of the fraud check.\n\n\n`success` - The check passed.\n\n`failed` - The check did not pass.","enum":["success","failed"]},"FraudCheckOutcomeWithNoData":{"type":"string","description":"The outcome of the fraud check.\n\n\n`success` - The check passed.\n\n`failed` - The check did not pass.\n\n`no_data` - The check could not be performed due to insufficient data.","enum":["success","failed","no_data"]},"GenericCountryCode":{"type":"string","title":"GenericCountryCode","description":"Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.","examples":["US"]},"GenericCountryCodeNullable":{"type":["string","null"],"title":"GenericCountryCode","description":"Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.","examples":["US"]},"GenericScreeningHitLocationItems":{"type":"object","description":"Analyzed location information for the associated hit","properties":{"analysis":{"$ref":"#/components/schemas/MatchSummary"},"data":{"$ref":"#/components/schemas/WatchlistScreeningHitLocations"}},"additionalProperties":true},"GivenNameField":{"type":"string","title":"GivenName","description":"A string with at least one non-whitespace character, with a max length of 100 characters.","examples":["Leslie"]},"HiddenMatchSummaryCode":{"description":"An enum indicating the match type between data provided by user and data checked against an external data source.\n\n\n`match` indicates that the provided input data was a strong match against external data.\n\n`partial_match` indicates the data approximately matched against external data. For example, \"Knope\" vs. \"Knope-Wyatt\" for last name.\n\n`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.\n\n`no_data` indicates that Plaid was unable to find external data to compare against the provided input data.\n\n`no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.","type":"string","title":"MatchSummaryCode","enum":["match","partial_match","no_match","no_data","no_input"],"x-hidden-from-docs":true,"examples":["match"]},"HumanReview":{"description":"Details about the human review check, which refers to a check that is performed by a document specialist.","x-hidden-from-docs":true,"additionalProperties":true,"type":["object","null"],"properties":{"status":{"$ref":"#/components/schemas/HumanReviewStatus"}},"required":["status"]},"HumanReviewStatus":{"type":"string","description":"The outcome of the human review check, when available. The following values are possible:\n\n\n`success` - The document passed the check.\n\n`failed` - The document failed the check.\n\n`no_data` - The document was submitted, but the document specialist review was not completed in time.","enum":["success","failed","no_data"]},"IDNumberType":{"description":"A globally unique and human readable ID type, specific to the country and document category. For more context on this field, see [Input Validation Rules](https://plaid.com/docs/identity-verification/hybrid-input-validation/#id-numbers).","type":"string","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","in_epic","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"],"title":"IDNumberType","examples":["us_ssn"]},"IDNumberValue":{"type":"string","title":"IDNumberValue","description":"Value of the identity document typed in by the user. Alpha-numeric, with all formatting characters stripped. For specific format requirements by ID type, see [Input Validation Rules](https://plaid.com/docs/identity-verification/hybrid-input-validation/#id-numbers).","examples":["123456789"]},"IDVProtectEvent":{"description":"Information about a Protect event including Trust Index score and fraud attributes.","type":["object","null"],"additionalProperties":true,"properties":{"event_id":{"type":"string","description":"The event ID.","examples":["ptevt_7AJYTMFxRUgJ"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`","examples":["2020-07-24T03:26:02Z"]},"trust_index":{"$ref":"#/components/schemas/TrustIndex"},"fraud_attributes":{"$ref":"#/components/schemas/FraudAttributes"}},"required":["event_id","timestamp","trust_index","fraud_attributes"]},"IPAddress":{"description":"An IPv4 or IPv6 address.","type":["string","null"],"title":"IPAddress","examples":["192.0.2.42"]},"ISO8601Date":{"type":"string","format":"date","title":"ISO8601Date","description":"A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).","examples":["1990-05-29"]},"ISO8601DateNullable":{"type":["string","null"],"format":"date","title":"ISO8601Date","description":"A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).","examples":["1990-05-29"]},"ISOCurrencyCode":{"type":"string","title":"ISOCurrencyCode","enum":["USD"],"description":"An ISO-4217 currency code."},"IdempotencyFlag":{"type":["boolean","null"],"title":"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/or `user_id`, and `template_id`.\nIf 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/or `user_id`, and `template_id`.","examples":[true]},"IdentityVerification":{"type":"object","description":"An 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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/IdentityVerificationID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"completed_at":{"$ref":"#/components/schemas/TimestampNullable"},"previous_attempt_id":{"$ref":"#/components/schemas/PreviousIdentityVerificationAttemptID"},"shareable_url":{"$ref":"#/components/schemas/ShareableURL"},"template":{"$ref":"#/components/schemas/IdentityVerificationTemplateReference"},"user":{"$ref":"#/components/schemas/IdentityVerificationUserData"},"status":{"$ref":"#/components/schemas/IdentityVerificationStatus"},"steps":{"$ref":"#/components/schemas/IdentityVerificationStepSummary"},"documentary_verification":{"$ref":"#/components/schemas/DocumentaryVerification"},"selfie_check":{"$ref":"#/components/schemas/SelfieCheck"},"kyc_check":{"$ref":"#/components/schemas/KYCCheckDetails"},"risk_check":{"$ref":"#/components/schemas/RiskCheckDetails"},"verify_sms":{"$ref":"#/components/schemas/VerifySMSDetails"},"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualIDNullable"},"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserIDNullable"},"user_id":{"$ref":"#/components/schemas/PlaidUserIDNullable"},"redacted_at":{"$ref":"#/components/schemas/TimestampNullable"},"latest_scored_protect_event":{"$ref":"#/components/schemas/IDVProtectEvent"}},"required":["id","client_user_id","created_at","completed_at","previous_attempt_id","shareable_url","template","user","status","steps","documentary_verification","selfie_check","kyc_check","risk_check","verify_sms","watchlist_screening_id","beacon_user_id","user_id","redacted_at"]},"IdentityVerificationAutofillAddress":{"description":"Even if an address has been autofilled, some fields may be null depending on the region's addressing system. For example:\n\nAddresses from the United Kingdom will not include a region\n\nAddresses from Hong Kong will not include postal code","type":["object","null"],"properties":{"street":{"$ref":"#/components/schemas/Street"},"street2":{"$ref":"#/components/schemas/Street2"},"city":{"$ref":"#/components/schemas/CityNullable"},"region":{"$ref":"#/components/schemas/Region"},"postal_code":{"$ref":"#/components/schemas/PostalCode"},"country":{"$ref":"#/components/schemas/GenericCountryCode"},"po_box":{"$ref":"#/components/schemas/POBoxStatus"},"type":{"$ref":"#/components/schemas/AddressPurposeLabel"}},"required":["street","street2","city","region","postal_code","country","po_box","type"],"additionalProperties":true},"IdentityVerificationAutofillCreateRequest":{"type":"object","description":"Request input to autofill an Identity Verification","properties":{"identity_verification_id":{"$ref":"#/components/schemas/IdentityVerificationID"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["identity_verification_id"]},"IdentityVerificationAutofillCreateResponse":{"description":"Autofill represents unverified customer information. This needs to be confirmed by the customer before using.","additionalProperties":true,"properties":{"status":{"$ref":"#/components/schemas/IdentityVerificationAutofillStatus"},"user":{"$ref":"#/components/schemas/IdentityVerificationAutofillUserData"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["status","user","request_id"],"type":"object"},"IdentityVerificationAutofillStatus":{"description":"A status enum indicating whether autofill succeeded or failed.","type":"string","enum":["success","failed"],"title":"IdentityVerificationAutofillStatus","examples":["success"]},"IdentityVerificationAutofillUserData":{"description":"User information that was autofilled. All this information should be confirmed by the user before using.","type":["object","null"],"properties":{"name":{"$ref":"#/components/schemas/IdentityVerificationResponseUserName"},"address":{"$ref":"#/components/schemas/IdentityVerificationAutofillAddress"},"id_number":{"$ref":"#/components/schemas/UserIDNumber"}},"required":["name","address","id_number"],"additionalProperties":true},"IdentityVerificationConsent":{"type":"boolean","default":false,"title":"IdentityVerificationConsent","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.\n\nIf `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.","examples":[true]},"IdentityVerificationCreateRequest":{"type":"object","properties":{"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"user_id":{"$ref":"#/components/schemas/PlaidUserID"},"is_shareable":{"type":"boolean","title":"EnableSharableLink","description":"A flag specifying whether you would like Plaid to expose a shareable URL for the verification being created.","examples":[true]},"template_id":{"$ref":"#/components/schemas/IdentityVerificationTemplateID"},"language":{"$ref":"#/components/schemas/IdentityVerificationLanguage"},"gave_consent":{"$ref":"#/components/schemas/IdentityVerificationConsent"},"user":{"$ref":"#/components/schemas/IdentityVerificationCreateRequestUser"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"is_idempotent":{"$ref":"#/components/schemas/IdempotencyFlag"}},"required":["is_shareable","template_id","gave_consent"],"description":"Request schema for `/identity_verification/create`"},"IdentityVerificationCreateRequestUser":{"description":"User information collected outside of Link, most likely via your own onboarding process.\n\nEach of the following identity fields are optional:\n\n`email_address`\n\n`phone_number`\n\n`date_of_birth`\n\n`name`\n\n`address`\n\n`id_number`\n\nSpecifically, 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.\nProviding 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.\nIf you are not using the shareable URL feature, you can optionally provide these fields via `/link/token/create` instead; both `/identity_verification/create` and `/link/token/create` are valid ways to provide this information. Note that if you provide a non-`null` user data object via `/identity_verification/create`, any user data fields entered via `/link/token/create` for the same `client_user_id` will be ignored when prefilling Link.\n\nThe `ip_address` field is optional. Provide the end user's IP address to enable IP-based risk checks for backend-only integrations that do not use the Link SDK; when the Link SDK is used, the IP address is collected automatically. Unlike the identity fields above, `ip_address` cannot be provided via `/link/token/create`.","properties":{"email_address":{"$ref":"#/components/schemas/EmailAddress"},"phone_number":{"$ref":"#/components/schemas/IdentityVerificationUserPhoneNumber"},"date_of_birth":{"$ref":"#/components/schemas/ISO8601Date"},"name":{"$ref":"#/components/schemas/IdentityVerificationRequestUserName"},"address":{"$ref":"#/components/schemas/UserAddress"},"id_number":{"$ref":"#/components/schemas/UserIDNumber"},"client_user_id":{"$ref":"#/components/schemas/DeprecatedClientUserID"},"ip_address":{"$ref":"#/components/schemas/IPAddress"}},"type":["object","null"]},"IdentityVerificationCreateResponse":{"description":"An 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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/IdentityVerificationID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"completed_at":{"$ref":"#/components/schemas/TimestampNullable"},"previous_attempt_id":{"$ref":"#/components/schemas/PreviousIdentityVerificationAttemptID"},"shareable_url":{"$ref":"#/components/schemas/ShareableURL"},"template":{"$ref":"#/components/schemas/IdentityVerificationTemplateReference"},"user":{"$ref":"#/components/schemas/IdentityVerificationUserData"},"status":{"$ref":"#/components/schemas/IdentityVerificationStatus"},"steps":{"$ref":"#/components/schemas/IdentityVerificationStepSummary"},"documentary_verification":{"$ref":"#/components/schemas/DocumentaryVerification"},"selfie_check":{"$ref":"#/components/schemas/SelfieCheck"},"kyc_check":{"$ref":"#/components/schemas/KYCCheckDetails"},"risk_check":{"$ref":"#/components/schemas/RiskCheckDetails"},"verify_sms":{"$ref":"#/components/schemas/VerifySMSDetails"},"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualIDNullable"},"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserIDNullable"},"user_id":{"$ref":"#/components/schemas/PlaidUserIDNullable"},"redacted_at":{"$ref":"#/components/schemas/TimestampNullable"},"latest_scored_protect_event":{"$ref":"#/components/schemas/IDVProtectEvent"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","client_user_id","created_at","completed_at","previous_attempt_id","shareable_url","template","user","status","steps","documentary_verification","selfie_check","kyc_check","risk_check","verify_sms","watchlist_screening_id","beacon_user_id","user_id","redacted_at","request_id"],"type":"object"},"IdentityVerificationDocumentAddressResponse":{"description":"The address extracted from the document. The address must at least contain the following fields to be a valid address: `street`, `city`, `country`. If any are missing or unable to be extracted, the address will be null.\n\n`region`, and `postal_code` may be null based on the addressing system. For example:\n\nAddresses from the United Kingdom will not include a region\n\nAddresses from Hong Kong will not include postal code\n\nNote: Optical Character Recognition (OCR) technology may sometimes extract incorrect data from a document.","type":["object","null"],"properties":{"street":{"$ref":"#/components/schemas/IdentityVerificationDocumentStreet"},"city":{"$ref":"#/components/schemas/IdentityVerificationDocumentCity"},"region":{"$ref":"#/components/schemas/IdentityVerificationDocumentRegion"},"postal_code":{"$ref":"#/components/schemas/IdentityVerificationDocumentPostalCode"},"country":{"$ref":"#/components/schemas/IdentityVerificationDocumentCountryCode"}},"required":["street","city","region","postal_code","country"],"additionalProperties":true},"IdentityVerificationDocumentCity":{"type":"string","title":"IdentityVerificationDocumentCity","description":"City extracted from the document.","examples":["Pawnee"]},"IdentityVerificationDocumentCountryCode":{"type":"string","title":"IdentityVerificationDocumentCountryCode","description":"Valid, capitalized, two-letter ISO code representing the country extracted from the document. Must be in ISO 3166-1 alpha-2 form.","examples":["US"]},"IdentityVerificationDocumentISO8601DateOfBirth":{"type":["string","null"],"format":"date","title":"IdentityVerificationDocumentISO8601DateOfBirth","description":"A date extracted from the document in the format YYYY-MM-DD (RFC 3339 Section 5.6).","examples":["1990-05-29"]},"IdentityVerificationDocumentISO8601ExpirationDate":{"type":["string","null"],"format":"date","title":"IdentityVerificationDocumentISO8601ExpirationDate","description":"The expiration date of the document in the format YYYY-MM-DD (RFC 3339 Section 5.6).","examples":["2030-05-29"]},"IdentityVerificationDocumentISO8601IssueDate":{"type":["string","null"],"format":"date","title":"IdentityVerificationDocumentISO8601IssueDate","description":"The issue date of the document in the format YYYY-MM-DD (RFC 3339 Section 5.6).","examples":["2020-05-29"]},"IdentityVerificationDocumentNameResponse":{"type":["object","null"],"description":"The individual's name extracted from the document.","properties":{"given_name":{"$ref":"#/components/schemas/GivenNameField"},"family_name":{"$ref":"#/components/schemas/FamilyNameField"}},"required":["given_name","family_name"],"additionalProperties":true},"IdentityVerificationDocumentPostalCode":{"type":["string","null"],"title":"IdentityVerificationDocumentPostalCode","description":"The postal code extracted from the document. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.","examples":["46001"]},"IdentityVerificationDocumentRegion":{"type":["string","null"],"title":"IdentityVerificationDocumentRegion","description":"A subdivision code extracted from the document. Related terms would be \"state\", \"province\", \"prefecture\", \"zone\", \"subdivision\", etc. For a full list of valid codes, see [country subdivision codes](https://plaid.com/documents/country_subdivision_codes.json). Country prefixes are omitted, since they can be inferred from the `country` field.","examples":["IN"]},"IdentityVerificationDocumentStreet":{"type":"string","title":"IdentityVerificationDocumentStreet","description":"The full street address extracted from the document.","examples":["123 Main St. Unit 42"]},"IdentityVerificationGetRequest":{"description":"Request input for fetching an Identity Verification","type":"object","properties":{"identity_verification_id":{"$ref":"#/components/schemas/IdentityVerificationID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"}},"required":["identity_verification_id"]},"IdentityVerificationGetResponse":{"description":"An 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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/IdentityVerificationID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"completed_at":{"$ref":"#/components/schemas/TimestampNullable"},"previous_attempt_id":{"$ref":"#/components/schemas/PreviousIdentityVerificationAttemptID"},"shareable_url":{"$ref":"#/components/schemas/ShareableURL"},"template":{"$ref":"#/components/schemas/IdentityVerificationTemplateReference"},"user":{"$ref":"#/components/schemas/IdentityVerificationUserData"},"status":{"$ref":"#/components/schemas/IdentityVerificationStatus"},"steps":{"$ref":"#/components/schemas/IdentityVerificationStepSummary"},"documentary_verification":{"$ref":"#/components/schemas/DocumentaryVerification"},"selfie_check":{"$ref":"#/components/schemas/SelfieCheck"},"kyc_check":{"$ref":"#/components/schemas/KYCCheckDetails"},"risk_check":{"$ref":"#/components/schemas/RiskCheckDetails"},"verify_sms":{"$ref":"#/components/schemas/VerifySMSDetails"},"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualIDNullable"},"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserIDNullable"},"user_id":{"$ref":"#/components/schemas/PlaidUserIDNullable"},"redacted_at":{"$ref":"#/components/schemas/TimestampNullable"},"latest_scored_protect_event":{"$ref":"#/components/schemas/IDVProtectEvent"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","client_user_id","created_at","completed_at","previous_attempt_id","shareable_url","template","user","status","steps","documentary_verification","selfie_check","kyc_check","risk_check","verify_sms","watchlist_screening_id","beacon_user_id","user_id","redacted_at","request_id"],"type":"object"},"IdentityVerificationID":{"type":"string","title":"IdentityVerificationID","description":"ID of the associated Identity Verification attempt.","examples":["idv_52xR9LKo77r1Np"]},"IdentityVerificationLanguage":{"type":["string","null"],"description":"The language shown when the user starts this identity verification. If omitted or null, the language is detected from the user's browser settings, with English as the fallback. The user can select a different language during the session. An idempotent request that returns an existing identity verification does not change its language.\n\nUse a supported BCP 47 language tag, such as `fr-CA`. Unlike `/link/token/create`, this field requires a region-specific value rather than a two-letter language code such as `fr`.","enum":["en-US","es-ES","es-US","fr-CA","ja-JP","pt-BR","pt-PT",null],"examples":["fr-CA"]},"IdentityVerificationListRequest":{"description":"Request input for listing Identity Verifications","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"template_id":{"$ref":"#/components/schemas/IdentityVerificationTemplateID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"user_id":{"description":"A unique user identifier, created by calling `/user/create`. Either a `user_id` or the `client_user_id` must be provided. The `user_id` may only be used instead of the `client_user_id` if you were not a pre-existing user of `/user/create` as of December 10, 2025, or if you have since [migrated to the new User APIs](https://plaid.com/docs/api/users/migrate-to-new-user-apis); for more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis). If both this field and the `client_user_id` are present in the request, the `user_id` must have been created from the provided `client_user_id`.","anyOf":[{"$ref":"#/components/schemas/PlaidUserID"},{"type":"null"}]},"cursor":{"$ref":"#/components/schemas/Cursor"}},"required":["template_id"]},"IdentityVerificationListResponse":{"description":"Paginated list of Plaid sessions.","additionalProperties":true,"properties":{"identity_verifications":{"description":"List of Plaid sessions","type":"array","items":{"$ref":"#/components/schemas/IdentityVerification"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["identity_verifications","next_cursor","request_id"],"type":"object"},"IdentityVerificationRequestUser":{"type":["object","null"],"description":"User information collected outside of Link, most likely via your own onboarding process.\n\nEach of the following identity fields are optional:\n\n`email_address`\n\n`phone_number`\n\n`date_of_birth`\n\n`name`\n\n`address`\n\n`id_number`\n\nSpecifically, 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.\nProviding 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":{"email_address":{"$ref":"#/components/schemas/EmailAddress"},"phone_number":{"$ref":"#/components/schemas/IdentityVerificationUserPhoneNumber"},"date_of_birth":{"$ref":"#/components/schemas/ISO8601Date"},"name":{"$ref":"#/components/schemas/IdentityVerificationRequestUserName"},"address":{"$ref":"#/components/schemas/UserAddress"},"id_number":{"$ref":"#/components/schemas/UserIDNumber"}},"additionalProperties":true},"IdentityVerificationRequestUserName":{"type":["object","null"],"properties":{"given_name":{"$ref":"#/components/schemas/GivenNameField"},"family_name":{"$ref":"#/components/schemas/FamilyNameField"}},"required":["given_name","family_name"],"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."},"IdentityVerificationResponseUserName":{"type":["object","null"],"properties":{"given_name":{"$ref":"#/components/schemas/GivenNameField"},"family_name":{"$ref":"#/components/schemas/FamilyNameField"}},"required":["given_name","family_name"],"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.","additionalProperties":true},"IdentityVerificationRetryRequest":{"type":"object","description":"Request input for retrying an identity verification attempt","properties":{"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"template_id":{"$ref":"#/components/schemas/IdentityVerificationTemplateID"},"strategy":{"$ref":"#/components/schemas/Strategy"},"user":{"$ref":"#/components/schemas/IdentityVerificationRequestUser"},"steps":{"$ref":"#/components/schemas/IdentityVerificationRetryRequestStepsObject"},"is_shareable":{"type":["boolean","null"],"title":"EnableSharableLink","description":"A flag specifying whether you would like Plaid to expose a shareable URL for the verification being retried. If a value for this flag is not specified, the `is_shareable` setting from the original verification attempt will be used.","examples":[true]},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["client_user_id","strategy","template_id"]},"IdentityVerificationRetryRequestStepsObject":{"type":["object","null"],"description":"Instructions for the `custom` retry strategy specifying which steps should be required or skipped.\n\n\nNote:\n\n\nThis field must be provided when the retry strategy is `custom` and must be omitted otherwise.\n\nCustom 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.\n\nThe `selfie_check` step is currently not supported on the sandbox server. Sandbox requests will silently disable the `selfie_check` step when provided.","properties":{"verify_sms":{"description":"A boolean field specifying whether the new session should require or skip the `verify_sms` step.","type":"boolean"},"kyc_check":{"description":"A boolean field specifying whether the new session should require or skip the `kyc_check` (Data Source Verification) step.","type":"boolean"},"documentary_verification":{"description":"A boolean field specifying whether the new session should require or skip the `documentary_verification` step.","type":"boolean"},"selfie_check":{"description":"A boolean field specifying whether the new session should require or skip the `selfie_check` step. If a previous session has already passed the `selfie_check` step, the new selfie check will be a Selfie Reauthentication check, in which the selfie is tested for liveness and for consistency with the previous selfie.","type":"boolean"}},"required":["verify_sms","kyc_check","documentary_verification","selfie_check"]},"IdentityVerificationRetryResponse":{"description":"An 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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/IdentityVerificationID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"completed_at":{"$ref":"#/components/schemas/TimestampNullable"},"previous_attempt_id":{"$ref":"#/components/schemas/PreviousIdentityVerificationAttemptID"},"shareable_url":{"$ref":"#/components/schemas/ShareableURL"},"template":{"$ref":"#/components/schemas/IdentityVerificationTemplateReference"},"user":{"$ref":"#/components/schemas/IdentityVerificationUserData"},"status":{"$ref":"#/components/schemas/IdentityVerificationStatus"},"steps":{"$ref":"#/components/schemas/IdentityVerificationStepSummary"},"documentary_verification":{"$ref":"#/components/schemas/DocumentaryVerification"},"selfie_check":{"$ref":"#/components/schemas/SelfieCheck"},"kyc_check":{"$ref":"#/components/schemas/KYCCheckDetails"},"risk_check":{"$ref":"#/components/schemas/RiskCheckDetails"},"verify_sms":{"$ref":"#/components/schemas/VerifySMSDetails"},"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualIDNullable"},"beacon_user_id":{"$ref":"#/components/schemas/BeaconUserIDNullable"},"user_id":{"$ref":"#/components/schemas/PlaidUserIDNullable"},"redacted_at":{"$ref":"#/components/schemas/TimestampNullable"},"latest_scored_protect_event":{"$ref":"#/components/schemas/IDVProtectEvent"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","client_user_id","created_at","completed_at","previous_attempt_id","shareable_url","template","user","status","steps","documentary_verification","selfie_check","kyc_check","risk_check","verify_sms","watchlist_screening_id","beacon_user_id","user_id","redacted_at","request_id"],"type":"object"},"IdentityVerificationStatus":{"type":"string","enum":["active","success","failed","expired","canceled","pending_review"],"title":"IdentityVerificationStatus","description":"The status of this Identity Verification attempt.\n\n\n`active` - The Identity Verification attempt is incomplete. The user may have completed part of the session, but has neither failed nor passed.\n\n`success` - The Identity Verification attempt has completed, passing all steps defined to the associated Identity Verification template.\n\n`failed` - The user failed one or more steps in the session and was told to contact support.\n\n`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.\n\n`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 nor passed.\n\n`pending_review` - The Identity Verification attempt template was configured to perform a screening that had one or more hits needing review.","examples":["success"]},"IdentityVerificationStepStatus":{"type":"string","enum":["success","active","failed","waiting_for_prerequisite","not_applicable","skipped","expired","canceled","pending_review","manually_approved","manually_rejected"],"title":"IdentityVerificationStepStatus","description":"The status of a step in the Identity Verification process.","examples":["success"]},"IdentityVerificationStepSummary":{"type":"object","description":"Each step will be one of the following values:\n\n\n`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.\n\n`success` - The Identity Verification attempt has completed this step.\n\n`failed` - The user failed this step. This can either cause the user to fail the session as a whole, or cause them to fall back to another step depending on how the Identity Verification template is configured. A failed step does not imply a failed session.\n\n`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.\n\n`not_applicable` - This step will not be run for this session.\n\n`skipped` - This step was skipped, for example because the retry instructions that created this Identity Verification attempt specified that it should be skipped, because your template configuration skips it, or, for `accept_tos`, because `gave_consent` was `true`.\n\n`expired` - This step had not yet been completed when the Identity Verification attempt as a whole expired.\n\n`canceled` - The Identity Verification attempt was canceled before the user completed this step.\n\n`pending_review` - The Identity Verification attempt template was configured to perform a screening that had one or more hits needing review.\n\n`manually_approved` - The step was manually overridden to pass by a team member in the dashboard.\n\n`manually_rejected` - The step was manually overridden to fail by a team member in the dashboard.","required":["accept_tos","verify_sms","kyc_check","documentary_verification","selfie_check","watchlist_screening","risk_check"],"properties":{"accept_tos":{"$ref":"#/components/schemas/IdentityVerificationStepStatus"},"verify_sms":{"$ref":"#/components/schemas/IdentityVerificationStepStatus"},"kyc_check":{"$ref":"#/components/schemas/IdentityVerificationStepStatus"},"documentary_verification":{"$ref":"#/components/schemas/IdentityVerificationStepStatus"},"selfie_check":{"$ref":"#/components/schemas/IdentityVerificationStepStatus"},"watchlist_screening":{"$ref":"#/components/schemas/IdentityVerificationStepStatus"},"risk_check":{"$ref":"#/components/schemas/IdentityVerificationStepStatus"}},"additionalProperties":true},"IdentityVerificationTemplateID":{"type":"string","title":"IdentityVerificationTemplateID","description":"ID of the associated Identity Verification template. Like all Plaid identifiers, this is case-sensitive.","examples":["idvtmp_4FrXJvfQU3zGUR"]},"IdentityVerificationTemplateReference":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/IdentityVerificationTemplateID"},"version":{"$ref":"#/components/schemas/IdentityVerificationTemplateVersion"}},"required":["id","version"],"description":"The resource ID and version number of the template configuring the behavior of a given Identity Verification.","additionalProperties":true},"IdentityVerificationTemplateVersion":{"type":"integer","title":"IdentityVerificationTemplateVersion","description":"Version of the associated Identity Verification template.","examples":[2]},"IdentityVerificationUserAddress":{"description":"Even if an address has been collected, some fields may be null depending on the region's addressing system. For example:\n\nAddresses from the United Kingdom will not include a region\n\nAddresses from Hong Kong will not include postal code","type":["object","null"],"properties":{"street":{"$ref":"#/components/schemas/StreetNullable"},"street2":{"$ref":"#/components/schemas/Street2"},"city":{"$ref":"#/components/schemas/CityNullable"},"region":{"$ref":"#/components/schemas/Region"},"postal_code":{"$ref":"#/components/schemas/PostalCode"},"country":{"$ref":"#/components/schemas/GenericCountryCode"}},"required":["street","street2","city","region","postal_code","country"],"additionalProperties":true},"IdentityVerificationUserData":{"type":"object","properties":{"phone_number":{"$ref":"#/components/schemas/IdentityVerificationUserPhoneNumber"},"date_of_birth":{"$ref":"#/components/schemas/ISO8601DateNullable"},"ip_address":{"$ref":"#/components/schemas/IPAddress"},"email_address":{"$ref":"#/components/schemas/EmailAddressNullable"},"name":{"$ref":"#/components/schemas/IdentityVerificationResponseUserName"},"address":{"$ref":"#/components/schemas/IdentityVerificationUserAddress"},"id_number":{"$ref":"#/components/schemas/UserIDNumber"}},"required":["date_of_birth","email_address","ip_address","name","address","id_number"],"description":"The identity data that was either collected from the user or provided via API in order to perform an Identity Verification.","additionalProperties":true},"IdentityVerificationUserPhoneNumber":{"type":["string","null"],"description":"A valid phone number in E.164 format.","title":"PhoneNumber","examples":["+12345678909"]},"ImageQuality":{"description":"A high level description of the quality of the image the user submitted.\n\nFor 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.\n\nNote: 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.","type":"string","enum":["high","medium","low"],"examples":["high"]},"ImageQualityDetails":{"additionalProperties":true,"type":["object","null"],"description":"Details about the image quality of the document.","properties":{"glare_check":{"description":"The outcome of the glare check.\n\n`success` - The image is free of glare.\n\n`failed` - The image contains glare that may obscure document details.","allOf":[{"$ref":"#/components/schemas/ImageQualityOutcome"}]},"dimensions_check":{"description":"The outcome of the dimensions check.\n\n`success` - The image meets the minimum size and resolution requirements.\n\n`failed` - The image does not meet the minimum size or resolution requirements.","allOf":[{"$ref":"#/components/schemas/ImageQualityOutcome"}]},"blur_check":{"description":"The outcome of the blur check.\n\n`success` - The image is sufficiently sharp.\n\n`failed` - The image is too blurry for analysis.","allOf":[{"$ref":"#/components/schemas/ImageQualityOutcome"}]}},"required":["glare_check","dimensions_check","blur_check"]},"ImageQualityOutcome":{"type":"string","description":"The outcome of the image quality check.\n\n\n`success` - The check passed.\n\n`failed` - The check did not pass.","enum":["success","failed"]},"IndividualScreeningHitNames":{"type":"object","description":"Name information for the associated individual watchlist hit","properties":{"full":{"type":"string","description":"The full name of the individual, including all parts.","examples":["Aleksey Potemkin"]},"is_primary":{"type":"boolean","description":"Primary names are those most commonly used to refer to this person. Only one name will ever be marked as primary.","examples":[false]},"weak_alias_determination":{"$ref":"#/components/schemas/WeakAliasDetermination"}},"required":["full","is_primary","weak_alias_determination"],"additionalProperties":true},"IndividualWatchlistCode":{"type":"string","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_SAM","US_SDN","US_SSI","SG_SOF","TR_TWL","TR_DFD","TR_FOR","TR_WMD","TR_CMB"],"description":"Shorthand identifier for a specific screening list for individuals.\n\n `AU_CON`: Australia Department of Foreign Affairs and Trade Consolidated List\n\n `CA_CON`: Government of Canada Consolidated List of Sanctions\n\n `EU_CON`: European External Action Service Consolidated List\n\n `IZ_CIA`: CIA List of Chiefs of State and Cabinet Members\n\n `IZ_IPL`: Interpol Red Notices for Wanted Persons List\n\n `IZ_PEP`: Politically Exposed Persons List\n\n `IZ_UNC`: United Nations Consolidated Sanctions\n\n `IZ_WBK`: World Bank Listing of Ineligible Firms and Individuals\n\n `UK_HMC`: Foreign, Commonwealth & Development Office UK Sanctions List\n\n `US_DPL`: Bureau of Industry and Security Denied Persons List\n\n `US_DTC`: US Department of State AECA Debarred\n\n `US_FBI`: US Department of Justice FBI Wanted List\n\n `US_FSE`: US OFAC Foreign Sanctions Evaders\n\n `US_ISN`: US Department of State Nonproliferation Sanctions\n\n `US_MBS`: US Non-SDN Menu-Based Sanctions\n\n `US_PLC`: US OFAC Palestinian Legislative Council\n\n `US_SAM`: US System for Award Management Exclusion List\n\n `US_SDN`: US OFAC Specially Designated Nationals List\n\n `US_SSI`: US OFAC Sectoral Sanctions Identifications\n\n `SG_SOF`: Government of Singapore Terrorists and Terrorist Entities\n\n `TR_TWL`: Government of Turkey Terrorist Wanted List\n\n `TR_DFD`: Government of Turkey Domestic Freezing Decisions\n\n `TR_FOR`: Government of Turkey Foreign Freezing Requests\n\n `TR_WMD`: Government of Turkey Weapons of Mass Destruction\n\n `TR_CMB`: Government of Turkey Capital Markets Board","title":"IndividualWatchlistCode","examples":["US_SDN"]},"IndividualWatchlistProgram":{"type":"object","description":"A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of individuals.","title":"IndividualWatchlistProgram","properties":{"id":{"$ref":"#/components/schemas/WatchlistProgramID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"is_rescanning_enabled":{"description":"Indicator specifying whether the program is enabled and will perform daily rescans.","type":"boolean","examples":[true]},"lists_enabled":{"description":"Watchlists enabled for the associated program","type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/IndividualWatchlistCode"},"examples":[["US_SDN"]]},"name":{"$ref":"#/components/schemas/IndividualWatchlistScreeningProgramName"},"name_sensitivity":{"$ref":"#/components/schemas/ProgramNameSensitivity"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"is_archived":{"$ref":"#/components/schemas/ProgramArchived"}},"required":["id","created_at","is_rescanning_enabled","lists_enabled","name","name_sensitivity","audit_trail","is_archived"],"additionalProperties":true},"IndividualWatchlistScreeningProgramName":{"type":"string","title":"IndividualWatchlistScreeningProgramName","description":"A name for the program to define its purpose. For example, \"High Risk Individuals\", \"US Cardholders\", or \"Applicants\".","examples":["Sample Program"]},"InternalUID":{"type":"string","title":"InternalUID","description":"A universal identifier for a watchlist individual that is stable across searches and updates.","examples":["uid_3NggckTimGSJHS"]},"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.\n\nNote: You can configure whether a `no_match` on `issuing_country` fails the `documentary_verification` by editing your Plaid Template.","type":"string","enum":["match","no_match"]},"KYCCheckAddressSummary":{"type":"object","description":"Result summary object specifying how the `address` field matched.","properties":{"summary":{"$ref":"#/components/schemas/MatchSummaryCode"},"po_box":{"$ref":"#/components/schemas/POBoxStatus"},"type":{"$ref":"#/components/schemas/AddressPurposeLabel"},"street":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"city":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"region":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"postal_code":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"international_details":{"$ref":"#/components/schemas/KYCCheckDetailsInternationalAddress"}},"required":["summary","po_box","type"],"additionalProperties":true},"KYCCheckDateOfBirthSummary":{"description":"Result summary object specifying how the `date_of_birth` field matched.","type":"object","properties":{"summary":{"$ref":"#/components/schemas/MatchSummaryCode"},"day":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"month":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"year":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"}},"required":["summary"],"additionalProperties":true},"KYCCheckDetails":{"type":["object","null"],"description":"Additional information for the `kyc_check` (Data Source Verification) step. This field will be `null` unless `steps.kyc_check` has reached a terminal state of `success`, `failed`, `manually_approved`, or `manually_rejected`.","properties":{"status":{"type":"string","description":"The outcome status for the associated Identity Verification attempt's `kyc_check` step. This field will be `success` if `steps.kyc_check` is `success` or `manually_approved`, and `failed` if `steps.kyc_check` is `failed` or `manually_rejected`.","examples":["success"]},"address":{"$ref":"#/components/schemas/KYCCheckAddressSummary"},"name":{"$ref":"#/components/schemas/KYCCheckNameSummary"},"date_of_birth":{"$ref":"#/components/schemas/KYCCheckDateOfBirthSummary"},"id_number":{"$ref":"#/components/schemas/KYCCheckIDNumberSummary"},"phone_number":{"$ref":"#/components/schemas/KYCCheckPhoneSummary"}},"required":["status","phone_number","address","name","date_of_birth","id_number"],"additionalProperties":true},"KYCCheckDetailsInternationalAddress":{"additionalProperties":true,"x-hidden-from-docs":true,"type":["object","null"],"description":"Result summary object specifying how the `address` field matched for fields that are only present on an international KYC check.","properties":{"building":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"county":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"district":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"house_number":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"subpremise":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"thoroughfare":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"}},"required":["building","county","district","house_number","subpremise","thoroughfare"]},"KYCCheckIDNumberSummary":{"description":"Result summary object specifying how the `id_number` field matched.","type":"object","properties":{"summary":{"$ref":"#/components/schemas/MatchSummaryCode"},"ssa_verification":{"$ref":"#/components/schemas/KYCCheckSSAAnalysis"}},"required":["summary","ssa_verification"],"additionalProperties":true},"KYCCheckSSAAnalysis":{"description":"Results from a Social Security Administration (SSA) electronic Consent Based Social Security Number Verification (eCBSV) check.\nNull for non-US verifications or when no SSA check ran.\n\nSSA `match` and `no_match` override the proprietary result in `kyc_check.id_number.summary`.\n`is_deceased: true` sets that summary to `no_match`, regardless of the SSA match result.\nIf SSA returns `no_data` without a deceased result, the summary keeps the proprietary result.","type":["object","null"],"x-hidden-from-docs":true,"properties":{"match":{"$ref":"#/components/schemas/KYCCheckSSAMatchStatus"},"is_deceased":{"type":["boolean","null"],"description":"Whether the Social Security Administration reported the person as deceased. Null when the status is unavailable.","examples":[false]},"name_match":{"allOf":[{"$ref":"#/components/schemas/KYCCheckSSAMatchStatus"}],"description":"Whether the person's name matches SSA records. `no_data` indicates that this field result is unavailable."},"date_of_birth_match":{"allOf":[{"$ref":"#/components/schemas/KYCCheckSSAMatchStatus"}],"description":"Whether the person's date of birth matches SSA records. `no_data` indicates that this field result is unavailable."},"ssn_match":{"allOf":[{"$ref":"#/components/schemas/KYCCheckSSAMatchStatus"}],"description":"Whether the person's Social Security number matches SSA records. `no_data` indicates that this field result is unavailable."},"other_match":{"allOf":[{"$ref":"#/components/schemas/KYCCheckSSAMatchStatus"}],"description":"The match result when SSA does not disclose individual field results. `no_data` indicates that this field result is unavailable."}},"required":["match","is_deceased"],"additionalProperties":true},"KYCCheckSSAMatchStatus":{"description":"The Social Security Administration (SSA) match result for the person's name, date of birth, and Social Security number.\n\n`match` indicates that the provided information matches SSA records.\n\n`no_match` indicates that the provided information does not match SSA records.\n\n`no_data` indicates that no SSA match result is available.","type":"string","x-hidden-from-docs":true,"enum":["match","no_match","no_data"],"examples":["match"]},"KYCCheckNameSummary":{"description":"Result summary object specifying how the `name` field matched.","type":"object","properties":{"summary":{"$ref":"#/components/schemas/MatchSummaryCode"},"given_name":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"},"family_name":{"$ref":"#/components/schemas/HiddenMatchSummaryCode"}},"required":["summary"],"additionalProperties":true},"KYCCheckPhoneSummary":{"description":"Result summary object specifying how the `phone` field matched.","type":"object","properties":{"summary":{"$ref":"#/components/schemas/MatchSummaryCode"},"area_code":{"$ref":"#/components/schemas/MatchSummaryCode"}},"required":["summary","area_code"],"additionalProperties":true},"MatchSummary":{"type":"object","description":"Summary object reflecting the match result of the associated data","properties":{"summary":{"$ref":"#/components/schemas/MatchSummaryCode"}},"required":["summary"],"additionalProperties":true},"MatchSummaryCode":{"description":"An enum indicating the match type between data provided by user and data checked against an external data source.\n\n\n`match` indicates that the provided input data was a strong match against external data.\n\n`partial_match` indicates the data approximately matched against external data. For example, \"Knope\" vs. \"Knope-Wyatt\" for last name.\n\n`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.\n\n`no_data` indicates that Plaid was unable to find external data to compare against the provided input data.\n\n`no_input` indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.","type":"string","title":"MatchSummaryCode","enum":["match","partial_match","no_match","no_data","no_input"],"examples":["match"]},"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.","type":"string","enum":["yes","no","no_data"],"examples":["yes"]},"PhoneType":{"description":"An enum indicating whether a phone number is a phone line or a fax line.","type":"string","enum":["phone","fax"]},"PhysicalDocumentCategory":{"type":"string","description":"The type of identity document detected in the images provided. Will always be one of the following values:\n\n  `drivers_license` - A driver's license issued by the associated country, establishing identity without any guarantee as to citizenship, and granting driving privileges\n\n  `id_card` - A general national identification card, distinct from driver's licenses as it only establishes identity\n\n  `passport` - A travel passport issued by the associated country for one of its citizens\n\n  `residence_permit_card` - An identity document issued by the associated country permitting a foreign citizen to <em>temporarily</em> reside there\n\n  `resident_card` - An identity document issued by the associated country permitting a foreign citizen to <em>permanently</em> reside there\n\n  `visa` - An identity document issued by the associated country permitting a foreign citizen entry for a short duration and for a specific purpose, typically no longer than 6 months\n\nNote: 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","visa"],"examples":["drivers_license"]},"PhysicalDocumentExtractedData":{"type":["object","null"],"description":"Data extracted from a user-submitted document.","properties":{"id_number":{"$ref":"#/components/schemas/PhysicalDocumentIDNumber"},"category":{"$ref":"#/components/schemas/PhysicalDocumentCategory"},"expiration_date":{"$ref":"#/components/schemas/IdentityVerificationDocumentISO8601ExpirationDate"},"issue_date":{"$ref":"#/components/schemas/IdentityVerificationDocumentISO8601IssueDate"},"issuing_country":{"$ref":"#/components/schemas/GenericCountryCode"},"issuing_region":{"$ref":"#/components/schemas/Region"},"date_of_birth":{"$ref":"#/components/schemas/IdentityVerificationDocumentISO8601DateOfBirth"},"address":{"$ref":"#/components/schemas/IdentityVerificationDocumentAddressResponse"},"name":{"$ref":"#/components/schemas/IdentityVerificationDocumentNameResponse"}},"required":["id_number","category","expiration_date","issue_date","issuing_country","issuing_region","date_of_birth","address"],"additionalProperties":true},"PhysicalDocumentExtractedDataAnalysis":{"type":["object","null"],"description":"Analysis of the data extracted from the submitted document.","properties":{"name":{"$ref":"#/components/schemas/DocumentNameMatchCode"},"date_of_birth":{"$ref":"#/components/schemas/DocumentDateOfBirthMatchCode"},"expiration_date":{"$ref":"#/components/schemas/ExpirationDate"},"issuing_country":{"$ref":"#/components/schemas/IssuingCountry"}},"required":["name","date_of_birth","expiration_date","issuing_country"],"additionalProperties":true},"PhysicalDocumentIDNumber":{"type":["string","null"],"description":"Alpha-numeric ID number extracted via OCR from the user's document image.","examples":["AB123456"]},"PhysicalDocumentImages":{"type":"object","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":{"original_front":{"$ref":"#/components/schemas/DocumentImage__Front"},"original_back":{"$ref":"#/components/schemas/DocumentImage__Back"},"cropped_front":{"$ref":"#/components/schemas/DocumentImage__CroppedFront"},"cropped_back":{"$ref":"#/components/schemas/DocumentImage__CroppedBack"},"face":{"$ref":"#/components/schemas/DocumentImage__Face"}},"required":["original_front","original_back","cropped_front","cropped_back","face"],"additionalProperties":true},"PlaidUserID":{"type":"string","title":"PlaidUserID","description":"Unique user identifier, created by calling `/user/create`. Either a `user_id` or the `client_user_id` must be provided. The `user_id` may only be used instead of the `client_user_id` if you were not a pre-existing user of `/user/create` as of December 10, 2025, or if you have since [migrated to the new User APIs](https://plaid.com/docs/api/users/migrate-to-new-user-apis); for more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis). If both this field and a `client_user_id` are present in a request, the `user_id` must have been created from the provided `client_user_id`.","examples":["usr_dddAs9ewdcDQQQ"]},"PlaidUserIDNullable":{"type":["string","null"],"title":"PlaidUserID","description":"Unique user identifier, created by calling `/user/create`. Either a `user_id` or the `client_user_id` must be provided. The `user_id` may only be used instead of the `client_user_id` if you were not a pre-existing user of `/user/create` as of December 10, 2025, or if you have since [migrated to the new User APIs](https://plaid.com/docs/api/users/migrate-to-new-user-apis); for more details, see [New User APIs](https://plaid.com/docs/api/users/user-apis). If both this field and a `client_user_id` are present in a request, the `user_id` must have been created from the provided `client_user_id`.","examples":["usr_dddAs9ewdcDQQQ"]},"PostalCode":{"type":["string","null"],"title":"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.","examples":["46001"]},"PreviousIdentityVerificationAttemptID":{"type":["string","null"],"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.","examples":["idv_42cF1MNo42r9Xj"]},"ProgramArchived":{"type":"boolean","title":"Archived","description":"Archived programs are read-only and cannot screen new customers nor participate in ongoing monitoring.","examples":[false]},"ProgramNameSensitivity":{"type":"string","enum":["coarse","balanced","strict","exact"],"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.\n\n`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.\n\n`balanced` - A good default for most companies. This sensitivity is balanced to show high quality hits with reduced noise.\n\n`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.\n\n`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.","title":"ProgramNameSensitivity","examples":["balanced"]},"ProviderBusinessAddress":{"description":"Detailed address information for a business from data provider","properties":{"street":{"$ref":"#/components/schemas/StreetNullable"},"street2":{"$ref":"#/components/schemas/Street2"},"city":{"$ref":"#/components/schemas/CityNullable"},"region":{"$ref":"#/components/schemas/Region"},"postal_code":{"$ref":"#/components/schemas/PostalCode"},"country":{"$ref":"#/components/schemas/GenericCountryCode"},"is_primary":{"type":"boolean","description":"Whether this is the primary address for the business","examples":[true]}},"required":["street","street2","city","region","postal_code","country","is_primary"],"type":"object"},"ProxyType":{"type":["string","null"],"description":"An enum indicating whether a network proxy is present and if so what type it is.\n\n`none_detected` indicates the user is not on a detectable proxy network.\n\n`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).\n\n`vpn` indicates the user is on a VPN (Virtual Private Network)\n\n`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.\n\n`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"]},"Region":{"type":["string","null"],"title":"Region","description":"A subdivision code. \"Subdivision\" is a generic term for \"state\", \"province\", \"prefecture\", \"zone\", etc. For the list of valid codes, see [country subdivision codes](https://plaid.com/documents/country_subdivision_codes.json). Country prefixes are omitted, since they are inferred from the `country` field.","examples":["IN"]},"RequestBusinessAddress":{"type":"object","description":"Physical address of a business. Used for input requests.","properties":{"street":{"$ref":"#/components/schemas/Street"},"street2":{"$ref":"#/components/schemas/Street2"},"city":{"$ref":"#/components/schemas/City"},"region":{"$ref":"#/components/schemas/Region"},"postal_code":{"$ref":"#/components/schemas/PostalCode"},"country":{"$ref":"#/components/schemas/GenericCountryCode"}},"required":["street","city","country"],"additionalProperties":true},"ResponseBusinessAddress":{"type":"object","description":"Physical address of a business. Used for response schemas.","properties":{"street":{"$ref":"#/components/schemas/StreetNullable"},"street2":{"$ref":"#/components/schemas/Street2"},"city":{"$ref":"#/components/schemas/CityNullable"},"region":{"$ref":"#/components/schemas/Region"},"postal_code":{"$ref":"#/components/schemas/PostalCode"},"country":{"$ref":"#/components/schemas/GenericCountryCode"}},"required":["street","street2","city","region","postal_code","country"],"additionalProperties":true},"ReviewComment":{"description":"A comment submitted by a team member as part of reviewing a watchlist screening.","type":["string","null"],"title":"ReviewComment","examples":["These look like legitimate matches, rejecting the customer."]},"RiskCheckBehavior":{"type":["object","null"],"description":"Result summary object specifying values for `behavior` attributes of risk check, when available.","properties":{"user_interactions":{"$ref":"#/components/schemas/RiskCheckBehaviorUserInteractionsLabel"},"fraud_ring_detected":{"$ref":"#/components/schemas/RiskCheckBehaviorFraudRingDetectedLabel"},"bot_detected":{"$ref":"#/components/schemas/RiskCheckBehaviorBotDetectedLabel"},"risk_level":{"$ref":"#/components/schemas/RiskLevelWithNoData"}},"required":["user_interactions","fraud_ring_detected","bot_detected"],"additionalProperties":true},"RiskCheckBehaviorBotDetectedLabel":{"description":"Field describing the outcome of a bot detection behavior risk check.\n\n`yes` indicates that automated activity was detected.\n\n`no` indicates that automated activity was not detected.\n\n`no_data` indicates there was not enough information available to give an accurate signal.","type":"string","enum":["yes","no","no_data"]},"RiskCheckBehaviorFraudRingDetectedLabel":{"description":"Field describing the outcome of a fraud ring behavior risk check.\n\n`yes` indicates that fraud ring activity was detected.\n\n`no` indicates that fraud ring activity was not detected.\n\n`no_data` indicates there was not enough information available to give an accurate signal.","type":"string","enum":["yes","no","no_data"]},"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.\n\n`genuine` indicates the user has high familiarity with the data they are providing, and that fraud is unlikely.\n\n`neutral` indicates some signals are present in between `risky` and `genuine`, but there are not enough clear signals to determine an outcome.\n\n`risky` indicates the user has low familiarity with the data they are providing, and that fraud is likely.\n\n`no_data` indicates there is not sufficient information to give an accurate signal.","type":"string","enum":["genuine","neutral","risky","no_data"],"examples":["risky"]},"RiskCheckDetails":{"type":["object","null"],"description":"Additional information for the `risk_check` step.","properties":{"status":{"$ref":"#/components/schemas/IdentityVerificationStepStatus"},"behavior":{"$ref":"#/components/schemas/RiskCheckBehavior"},"email":{"$ref":"#/components/schemas/RiskCheckEmail"},"phone":{"$ref":"#/components/schemas/RiskCheckPhone"},"devices":{"type":"array","description":"Array of result summary objects specifying values for `device` attributes of risk check.","items":{"$ref":"#/components/schemas/RiskCheckDevice"}},"identity_abuse_signals":{"$ref":"#/components/schemas/RiskCheckIdentityAbuseSignals"},"network":{"$ref":"#/components/schemas/RiskCheckNetwork"},"facial_duplicates":{"type":"array","description":"The attributes related to the facial duplicates captured in risk check.","items":{"$ref":"#/components/schemas/RiskCheckFacialDuplicate"}},"trust_index_score":{"description":"The trust index score for the `risk_check` step.","type":["integer","null"],"examples":[86]}},"required":["status","behavior","devices","email","phone","identity_abuse_signals","facial_duplicates","trust_index_score"],"additionalProperties":true},"RiskCheckDevice":{"description":"Result summary object specifying values for `device` attributes of risk check.","type":"object","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.","type":["integer","null"],"examples":[1]},"ip_timezone_offset":{"$ref":"#/components/schemas/UTCOffset"},"risk_level":{"$ref":"#/components/schemas/RiskLevel"},"factors":{"$ref":"#/components/schemas/RiskCheckFactors"}},"required":["ip_proxy_type","ip_spam_list_count","ip_timezone_offset"],"additionalProperties":true},"RiskCheckEmail":{"type":["object","null"],"description":"Result summary object specifying values for `email` attributes of risk check.","properties":{"is_deliverable":{"$ref":"#/components/schemas/RiskCheckEmailIsDeliverableStatus"},"breach_count":{"description":"Count of all known breaches of this email address if known.","type":["integer","null"],"examples":[1]},"first_breached_at":{"$ref":"#/components/schemas/ISO8601DateNullable"},"last_breached_at":{"$ref":"#/components/schemas/ISO8601DateNullable"},"domain_registered_at":{"$ref":"#/components/schemas/ISO8601DateNullable"},"domain_is_free_provider":{"$ref":"#/components/schemas/RiskCheckEmailDomainIsFreeProvider"},"domain_is_custom":{"$ref":"#/components/schemas/RiskCheckEmailDomainIsCustom"},"domain_is_disposable":{"$ref":"#/components/schemas/RiskCheckEmailDomainIsDisposable"},"top_level_domain_is_suspicious":{"$ref":"#/components/schemas/RiskCheckEmailTopLevelDomainIsSuspicious"},"is_edu":{"$ref":"#/components/schemas/RiskCheckEmailIsEdu"},"includes_date_of_birth":{"$ref":"#/components/schemas/RiskCheckEmailIncludesDateOfBirth"},"name":{"$ref":"#/components/schemas/RiskCheckEmailName"},"linked_services":{"description":"A list of online services where this email address has been detected to have accounts or other activity.","type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/RiskCheckLinkedService"},"examples":[["facebook"]]},"risk_level":{"$ref":"#/components/schemas/RiskLevel"},"factors":{"$ref":"#/components/schemas/RiskCheckFactors"}},"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","is_edu","includes_date_of_birth","name","linked_services"],"additionalProperties":true},"RiskCheckEmailDomainIsCustom":{"description":"Indicates whether the email address domain is custom if known, i.e. a company domain and not free or disposable.","type":"string","enum":["yes","no","no_data"],"examples":["yes"]},"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.","type":"string","enum":["yes","no","no_data"],"examples":["yes"]},"RiskCheckEmailDomainIsFreeProvider":{"description":"Indicates whether the email address domain is a free provider such as Gmail or Hotmail if known.","type":"string","enum":["yes","no","no_data"],"examples":["yes"]},"RiskCheckEmailIsDeliverableStatus":{"description":"SMTP-MX check to confirm the email address exists if known.","type":"string","enum":["yes","no","no_data"],"examples":["yes"]},"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.","type":"string","enum":["yes","no","no_data"],"examples":["yes"]},"RiskCheckEmailIsEdu":{"description":"Indicates whether the email address domain is an educational institution domain if known.","type":"string","enum":["yes","no","no_data"],"examples":["no_data"]},"RiskCheckEmailIncludesDateOfBirth":{"description":"Indicates whether the email address includes the date of birth or year of birth if known.","type":"string","enum":["yes","no","no_data"],"examples":["no_data"]},"RiskCheckEmailName":{"description":"Indicates whether the provided name matches the email address according to the KYC name-matches-email inference result if known.\n\n`match` - \"The email's name identifiers match the user's name.\"\n\n`partial_match` - \"The email's name identifiers partially match the user's name.\"\n\n`no_match` - \"The email's name identifiers do not match the user's name.\"\n\n`indeterminate` - \"The email does not contain any name identifiers, and a match could not be determined.\"\n\n`no_input` - \"The user's profile does not contain the required user inputs to determine a match.\"\n\n`no_data` - \"Field could not be verified against available sources.\"","type":"string","enum":["no_input","indeterminate","no_match","partial_match","match","no_data"],"examples":["match"]},"RiskCheckFacialDuplicate":{"description":"Result summary object specifying values for the `facial_duplicates` attributes of risk check.","type":"object","properties":{"id":{"$ref":"#/components/schemas/IdentityVerificationID"},"similarity":{"description":"Similarity score of the match. Ranges from 0 to 100.","type":"integer","examples":[95]},"matched_after_completed":{"description":"Whether this match occurred after the session was complete. For example, this would be `true` if a later session ended up matching this one.","type":"boolean","examples":[true]}},"required":["id","similarity","matched_after_completed"],"additionalProperties":true},"RiskCheckFactors":{"x-hidden-from-docs":true,"description":"List of factors, when available, that contribute towards the risk level of the given risk check type.","type":"array","items":{"type":"string"}},"RiskCheckIdentityAbuseSignals":{"type":["object","null"],"description":"Result summary object capturing abuse signals related to `identity abuse`, e.g. stolen and synthetic identity fraud. These attributes are only available for US identities and some signals may not be available depending on what information was collected.","properties":{"synthetic_identity":{"$ref":"#/components/schemas/RiskCheckSyntheticIdentity"},"stolen_identity":{"$ref":"#/components/schemas/RiskCheckStolenIdentity"}},"required":["synthetic_identity","stolen_identity"],"additionalProperties":true},"RiskCheckLinkedService":{"type":"string","description":"An enum indicating the type of a linked service. Note that `adult_sites` refers to explicit video content, and includes a number of related services.","enum":["aboutme","adobe","adult_sites","airbnb","altbalaji","amazon","apple","archiveorg","atlassian","bitmoji","bodybuilding","booking","bukalapak","codecademy","deliveroo","diigo","discord","disneyplus","duolingo","ebay","envato","eventbrite","evernote","facebook","firefox","flickr","flipkart","foursquare","freelancer","gaana","giphy","github","google","gravatar","hubspot","imgur","instagram","jdid","kakao","kommo","komoot","lastfm","lazada","line","linkedin","mailru","microsoft","myspace","netflix","nike","ok","patreon","pinterest","plurk","quora","qzone","rambler","rappi","replit","samsung","seoclerks","shopclues","skype","snapchat","snapdeal","soundcloud","spotify","starz","strava","taringa","telegram","tiki","tokopedia","treehouse","tumblr","twitter","venmo","viber","vimeo","vivino","vkontakte","wattpad","weibo","whatsapp","wordpress","xing","yahoo","yandex","zalo","zoho"],"examples":["apple"]},"RiskCheckNetwork":{"x-hidden-from-docs":true,"description":"Result summary object specifying values for network attributes of risk check.","type":["object","null"],"additionalProperties":true,"properties":{"risk_level":{"$ref":"#/components/schemas/RiskLevel"},"factors":{"$ref":"#/components/schemas/RiskCheckFactors"}},"required":["risk_level","factors"]},"RiskCheckPhone":{"type":["object","null"],"description":"Result summary object specifying values for `phone` attributes of risk check.","properties":{"linked_services":{"description":"A list of online services where this phone number has been detected to have accounts or other activity.","type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/RiskCheckLinkedService"},"examples":[["facebook"]]},"risk_level":{"$ref":"#/components/schemas/RiskLevel"},"factors":{"$ref":"#/components/schemas/RiskCheckFactors"}},"required":["linked_services"],"additionalProperties":true},"RiskCheckStolenIdentity":{"description":"Field containing the data used in determining the outcome of the stolen identity risk check.\n\nContains the following fields:\n\n`score` - A score from 0 to 100 indicating the likelihood that the user is a stolen identity.","type":["object","null"],"properties":{"score":{"description":"A score from 0 to 100 indicating the likelihood that the user is a stolen identity.","type":"integer","examples":[0]},"risk_level":{"$ref":"#/components/schemas/RiskLevel"}},"required":["score"],"additionalProperties":true},"RiskCheckSyntheticIdentity":{"description":"Field containing the data used in determining the outcome of the synthetic identity risk check.\n\nContains the following fields:\n\n`score` - A score from 0 to 100 indicating the likelihood that the user is a synthetic identity.","type":["object","null"],"properties":{"score":{"description":"A score from 0 to 100 indicating the likelihood that the user is a synthetic identity.","type":"integer","examples":[0]},"risk_level":{"$ref":"#/components/schemas/RiskLevel"},"first_party_synthetic_fraud":{"$ref":"#/components/schemas/SyntheticFraud"},"third_party_synthetic_fraud":{"$ref":"#/components/schemas/SyntheticFraud"}},"required":["score"],"additionalProperties":true},"RiskLevel":{"description":"Risk level for the given risk check type.","x-hidden-from-docs":true,"type":"string","enum":["low","medium","high"]},"RiskLevelWithNoData":{"description":"Risk level for the given risk check type, when available.","x-hidden-from-docs":true,"type":"string","enum":["low","medium","high","no_data"]},"RoutingNumber":{"type":"string","description":"The routing number of the account.","examples":["021000021"]},"SMSVerification":{"type":"object","description":"Additional information for the individual SMS verification.","properties":{"status":{"$ref":"#/components/schemas/SMSVerificationStatus"},"attempt":{"description":"The attempt field begins with 1 and increments with each subsequent SMS verification.","type":"integer","examples":[1]},"phone_number":{"type":["string","null"],"description":"A phone number in E.164 format.","examples":["+12345678909"]},"delivery_attempt_count":{"description":"The number of delivery attempts made within the verification to send the SMS code to the user. Each delivery attempt represents the user taking action from the front end UI to request creation and delivery of a new SMS verification code, or to resend an existing SMS verification code. There is a limit of 3 delivery attempts per verification.","type":"integer","examples":[1]},"solve_attempt_count":{"description":"The number of attempts made by the user within the verification to verify the SMS code by entering it into the front end UI. There is a limit of 3 solve attempts per verification.","type":"integer","examples":[1]},"initially_sent_at":{"$ref":"#/components/schemas/TimestampNullable"},"last_sent_at":{"$ref":"#/components/schemas/TimestampNullable"},"redacted_at":{"$ref":"#/components/schemas/TimestampNullable"}},"required":["status","attempt","phone_number","delivery_attempt_count","solve_attempt_count","initially_sent_at","last_sent_at","redacted_at"],"additionalProperties":true},"SMSVerificationStatus":{"description":"The outcome status for the individual SMS verification.","type":"string","enum":["pending","success","failed","canceled"],"examples":["success"]},"ScreeningHitAnalysis":{"description":"Analysis information describing why a screening hit matched the provided user information","type":"object","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":{"type":"integer","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.","examples":[1]}},"required":["search_terms_version"],"additionalProperties":true},"ScreeningHitData":{"description":"Information associated with the watchlist hit","type":"object","properties":{"dates_of_birth":{"description":"Dates of birth associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/ScreeningHitDateOfBirthItem"}},"documents":{"description":"Documents associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/ScreeningHitDocumentsItems"}},"locations":{"description":"Locations associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/GenericScreeningHitLocationItems"}},"names":{"description":"Names associated with the watchlist hit","type":"array","items":{"$ref":"#/components/schemas/ScreeningHitNamesItems"}}},"additionalProperties":true},"ScreeningHitDateOfBirthItem":{"type":"object","description":"Analyzed date of birth for the associated hit","properties":{"analysis":{"$ref":"#/components/schemas/MatchSummary"},"data":{"$ref":"#/components/schemas/DateRange"}},"additionalProperties":true},"ScreeningHitDocumentsItems":{"description":"Analyzed document information for the associated hit","type":"object","properties":{"analysis":{"$ref":"#/components/schemas/MatchSummary"},"data":{"$ref":"#/components/schemas/WatchlistScreeningDocument"}},"additionalProperties":true},"ScreeningHitNamesItems":{"type":"object","description":"Analyzed name information for the associated hit","properties":{"analysis":{"$ref":"#/components/schemas/MatchSummary"},"data":{"$ref":"#/components/schemas/IndividualScreeningHitNames"}},"additionalProperties":true},"SelfieAnalysis":{"type":"object","description":"High level descriptions of how the associated selfie was processed. If a selfie fails verification, the details in the `analysis` object should help clarify why the selfie was rejected.","properties":{"document_comparison":{"$ref":"#/components/schemas/SelfieAnalysisDocumentComparison"},"liveness_check":{"$ref":"#/components/schemas/SelfieAnalysisLivenessCheck"},"age_check":{"$ref":"#/components/schemas/SelfieAgeCheck"},"facial_analysis":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysis"}},"required":["document_comparison","liveness_check"],"additionalProperties":true},"SelfieAnalysisDocumentComparison":{"type":"string","enum":["match","no_match","no_input"],"description":"Information about the comparison between the selfie and the document (if documentary verification also ran)."},"SelfieAgeCheck":{"type":["object","null"],"description":"Age-estimation results from the selfie capture. This field is `null` when an age range could not be estimated from the selfie capture.","properties":{"status":{"$ref":"#/components/schemas/SelfieAgeCheckStatus"},"reported_age":{"type":["integer","null"],"description":"The user's age at the time of the selfie capture, calculated from the date of birth submitted during Identity Verification. If multiple date of birth sources are available, the date of birth submitted in the flow session takes priority over the document date of birth. This field is `null` when the date of birth is unavailable.","examples":[36]},"age_estimate_lower_bound":{"type":"integer","description":"Lower bound of the estimated age range from the selfie capture.","examples":[32]},"age_estimate_upper_bound":{"type":"integer","description":"Upper bound of the estimated age range from the selfie capture.","examples":[38]}},"required":["status","reported_age","age_estimate_lower_bound","age_estimate_upper_bound"],"additionalProperties":true},"SelfieAgeCheckStatus":{"type":"string","enum":["match","warning","no_match","no_data"],"description":"An enum indicating whether the reported age aligns with the estimated selfie capture age range.\n\n`match` indicates that the reported age falls within the estimated selfie capture age range.\n\n`warning` indicates that the reported age falls outside the estimated selfie capture age range, but is close enough that the result should be reviewed.\n\n`no_match` indicates that the reported age falls far outside the estimated selfie capture age range.\n\n`no_data` indicates that there was not enough data available at age-estimation time to compare the reported age against the estimated selfie capture age range.","examples":["match"]},"SelfieAnalysisFacialAnalysis":{"additionalProperties":true,"x-hidden-from-docs":true,"type":["object","null"],"description":"Analysis of the facial features of the selfie when compared to the face in the uploaded document, if one is present.","properties":{"left_eye":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"right_eye":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"left_brow":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"right_brow":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"forehead":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"middle_forehead":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"nose":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"philtrum":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"mouth":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"jaw":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"left_cheek":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"},"right_cheek":{"$ref":"#/components/schemas/SelfieAnalysisFacialAnalysisOutcome"}},"required":["left_eye","right_eye","left_brow","right_brow","forehead","middle_forehead","nose","philtrum","mouth","jaw","left_cheek","right_cheek"]},"SelfieAnalysisFacialAnalysisOutcome":{"type":"string","enum":["success","failed"],"description":"Outcome of the facial analysis for a specific facial feature."},"SelfieAnalysisLivenessCheck":{"type":"string","enum":["success","failed"],"description":"Assessment of whether the selfie capture is of a real human being, as opposed to a picture of a human on a screen, a picture of a paper cut out, someone wearing a mask, or a deepfake."},"SelfieCapture":{"type":"object","description":"The image or video capture of a selfie. Only one of `image_url` or `video_url` will be populated per selfie. In the vast majority of sessions Plaid records a short video of the user, so `video_url` is populated and `image_url` is `null`. `image_url` is only populated in the rare passive-liveness fallback case, where the user's device could not complete the standard video liveness capture (for example, a camera or streaming error) and submitted a single still image instead.","properties":{"image_url":{"$ref":"#/components/schemas/SelfieCaptureImageURL"},"video_url":{"$ref":"#/components/schemas/SelfieCaptureVideoURL"}},"required":["image_url","video_url"],"additionalProperties":true},"SelfieCaptureImageURL":{"type":["string","null"],"description":"Temporary URL for downloading a still-image selfie capture. This field is only populated when the session fell back to passive (image-based) liveness. For the majority of selfie checks this field is `null` and `video_url` is populated instead.","examples":["https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/selfie/liveness.jpeg"]},"SelfieCaptureVideoURL":{"type":["string","null"],"description":"Temporary URL for downloading a video selfie capture. This is the standard selfie capture for Identity Verification. Plaid records a short video of the user during the Selfie Check liveness step, so this field is populated for the vast majority of selfie checks.","examples":["https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/selfie/liveness.webm"]},"SelfieCheck":{"description":"Additional information for the `selfie_check` step. This field will be `null` unless `steps.selfie_check` has reached a terminal state of `success`, `failed`, `manually_approved`, or `manually_rejected`.","title":"SelfieCheck","type":["object","null"],"properties":{"status":{"$ref":"#/components/schemas/SelfieCheckStatus"},"selfies":{"description":"An array of selfies submitted to the `selfie_check` step. Each entry represents one user submission.","type":"array","items":{"$ref":"#/components/schemas/SelfieCheckSelfie"}}},"required":["status","selfies"],"additionalProperties":true},"SelfieCheckSelfie":{"type":"object","description":"Captures and analysis from a user's selfie.","additionalProperties":true,"properties":{"status":{"$ref":"#/components/schemas/SelfieStatus"},"attempt":{"type":"integer","description":"The `attempt` field begins with 1 and increments with each subsequent selfie upload.","examples":[1]},"capture":{"$ref":"#/components/schemas/SelfieCapture"},"analysis":{"$ref":"#/components/schemas/SelfieAnalysis"}},"required":["status","attempt","capture","analysis"]},"SelfieCheckStatus":{"type":"string","enum":["success","failed"],"description":"The outcome status for the associated Identity Verification attempt's `selfie_check` step. This field will be `success` if `steps.selfie_check` is `success` or `manually_approved`, and `failed` if `steps.selfie_check` is `failed` or `manually_rejected`.","examples":["success"]},"SelfieStatus":{"type":"string","enum":["success","failed"],"description":"An outcome status for this specific selfie. Distinct from the overall `selfie_check.status` that summarizes the verification outcome from one or more selfies.","examples":["success"]},"ShareableURL":{"type":["string","null"],"description":"A shareable URL that can be sent directly to the user to complete verification","examples":["https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f"]},"Source":{"type":"string","enum":["dashboard","link","api","system","retro"],"description":"A type indicating who or what last touched this object. `dashboard`, `link`, and `api` indicate the originating surface; `system` indicates Plaid. `retro` indicates a screening created retroactively via a bulk screening creation."},"SourceUID":{"description":"The identifier provided by the source sanction or watchlist. When one is not provided by the source, this is `null`.","type":["string","null"],"examples":["26192ABC"]},"Strategy":{"description":"An instruction specifying what steps the new Identity Verification attempt should require the user to complete:\n\n\n`reset` - Restart the user at the beginning of the session, regardless of whether they successfully completed part of their previous session.\n\n`incomplete` - Start the new session at the step that the user failed in the previous session, skipping steps that have already been successfully completed.\n\n`infer` - If the most recent Identity Verification attempt associated with the given `client_user_id` has a status of `failed`, `expired`, or `canceled`, retry using the `incomplete` strategy, unless that attempt was created as part of a bulk import, its `watchlist_screening` step is `failed`, `expired`, or `canceled`, or its `risk_check` step is `failed`, `expired`, `canceled`, or `manually_rejected`. Otherwise, use the `reset` strategy.\n\n`custom` - Start the new session with a custom configuration, specified by the value of the `steps` field\n\nNote:\n\nThe `incomplete` strategy cannot be applied if the session's failing step is `watchlist_screening` or `risk_check`.\n\nThe `infer` strategy cannot be applied if the session's status is still `active`","type":"string","enum":["reset","incomplete","infer","custom"]},"Street":{"type":"string","title":"Street","description":"The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.","examples":["123 Main St."]},"Street2":{"type":["string","null"],"title":"Street2","description":"Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.","examples":["Unit 42"]},"StreetNullable":{"type":["string","null"],"title":"Street","description":"The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.","examples":["123 Main St."]},"SyntheticFraud":{"x-hidden-from-docs":true,"description":"Field containing the data used in determining the outcome of a synthetic fraud risk check.","type":["object","null"],"additionalProperties":true,"properties":{"risk_level":{"$ref":"#/components/schemas/RiskLevel"}},"required":["risk_level"]},"Timestamp":{"description":"An ISO8601 formatted timestamp.","type":"string","format":"date-time","title":"Timestamp","examples":["2020-07-24T03:26:02Z"]},"TimestampNullable":{"description":"An ISO8601 formatted timestamp.","type":["string","null"],"format":"date-time","title":"Timestamp","examples":["2020-07-24T03:26:02Z"]},"URL":{"type":"string","format":"uri","title":"URL","description":"An 'http' or 'https' URL (must begin with either of those).","examples":["https://example.com"]},"URLNullable":{"type":["string","null"],"format":"uri","title":"URL","description":"An 'http' or 'https' URL (must begin with either of those).","examples":["https://example.com"]},"UTCOffset":{"type":["string","null"],"description":"UTC offset of the timezone associated with the IP address.","examples":["+06:00:00"]},"UpdateEntityScreeningRequestSearchTerms":{"type":["object","null"],"description":"Search terms for editing an entity watchlist screening","properties":{"entity_watchlist_program_id":{"$ref":"#/components/schemas/EntityWatchlistProgramID"},"legal_name":{"$ref":"#/components/schemas/EntityWatchlistScreeningName"},"document_number":{"$ref":"#/components/schemas/WatchlistScreeningDocumentValue"},"email_address":{"$ref":"#/components/schemas/EmailAddress"},"country":{"$ref":"#/components/schemas/GenericCountryCode"},"phone_number":{"$ref":"#/components/schemas/WatchlistScreeningPhoneNumber"},"url":{"$ref":"#/components/schemas/URL"}},"required":["entity_watchlist_program_id"]},"UpdateIndividualScreeningRequestSearchTerms":{"type":["object","null"],"description":"Search terms for editing an individual watchlist screening","properties":{"watchlist_program_id":{"$ref":"#/components/schemas/WatchlistProgramID"},"legal_name":{"$ref":"#/components/schemas/WatchlistScreeningIndividualName"},"date_of_birth":{"$ref":"#/components/schemas/ISO8601Date"},"document_number":{"$ref":"#/components/schemas/WatchlistScreeningDocumentValue"},"country":{"$ref":"#/components/schemas/GenericCountryCode"}}},"UpdatedAtTimestamp":{"description":"An ISO8601 formatted timestamp. This field indicates the last time the resource was modified.","type":"string","format":"date-time","title":"Timestamp","examples":["2020-07-24T03:26:02Z"]},"UserAddress":{"type":["object","null"],"properties":{"street":{"$ref":"#/components/schemas/StreetNullable"},"street2":{"$ref":"#/components/schemas/Street2"},"city":{"$ref":"#/components/schemas/CityNullable"},"region":{"$ref":"#/components/schemas/Region"},"postal_code":{"$ref":"#/components/schemas/PostalCode"},"country":{"$ref":"#/components/schemas/GenericCountryCode"}},"required":["country"],"description":"Home address for the user. Supported values are: not provided, address with only country code or full address.\n\nFor more context on this field, see [Input Validation by Country](https://plaid.com/docs/identity-verification/hybrid-input-validation/#input-validation-by-country).","additionalProperties":true},"UserIDNumber":{"description":"ID number submitted by the user. If the user has not submitted this data yet, this field will be `null`. Otherwise, both fields are guaranteed to be filled.","type":["object","null"],"properties":{"value":{"$ref":"#/components/schemas/IDNumberValue"},"type":{"$ref":"#/components/schemas/IDNumberType"}},"required":["value","type"],"additionalProperties":true},"VerifySMSDetails":{"type":["object","null"],"description":"Additional information for the `verify_sms` step.","properties":{"status":{"$ref":"#/components/schemas/VerifySMSDetailsStatus"},"verifications":{"type":"array","description":"An array where each entry represents a verification attempt for the `verify_sms` step. Each entry represents one user-submitted phone number. Phone number edits, and in some cases error handling due to edge cases like rate limiting, may generate additional verifications.","items":{"$ref":"#/components/schemas/SMSVerification"}}},"required":["status","verifications"],"additionalProperties":true},"VerifySMSDetailsStatus":{"description":"The outcome status for the associated Identity Verification attempt's `verify_sms` step. This field will always have the same value as `steps.verify_sms`.","type":"string","enum":["success","failed"],"examples":["success"]},"WatchlistProgramID":{"type":"string","title":"WatchlistProgramID","description":"ID of the associated program.","examples":["prg_2eRPsDnL66rZ7H"]},"WatchlistScreeningAuditTrail":{"title":"WatchlistScreeningAuditTrail","description":"Information about the last change made to the parent object specifying what caused the change as well as when it occurred.","type":"object","properties":{"source":{"$ref":"#/components/schemas/Source"},"dashboard_user_id":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"timestamp":{"$ref":"#/components/schemas/Timestamp"}},"required":["source","dashboard_user_id","timestamp"],"additionalProperties":true},"WatchlistScreeningDocument":{"title":"WatchlistScreeningDocument","type":"object","description":"An official document, usually issued by a governing body or institution, with an associated identifier.","properties":{"type":{"$ref":"#/components/schemas/WatchlistScreeningDocumentType"},"number":{"$ref":"#/components/schemas/WatchlistScreeningDocumentValue"}},"required":["type","number"],"additionalProperties":true},"WatchlistScreeningDocumentType":{"type":"string","enum":["birth_certificate","drivers_license","immigration_number","military_id","other","passport","personal_identification","ration_card","ssn","student_id","tax_id","travel_document","voter_id"],"title":"WatchlistScreeningDocumentType","description":"The kind of official document represented by this object.\n\n`birth_certificate` - A certificate of birth\n\n`drivers_license` - A license to operate a motor vehicle\n\n`immigration_number` - Immigration or residence documents\n\n`military_id` - Identification issued by a military group\n\n`other` - Any document not covered by other categories\n\n`passport` - An official passport issued by a government\n\n`personal_identification` - Any generic personal identification that is not covered by other categories\n\n`ration_card` - Identification that entitles the holder to rations\n\n`ssn` - United States Social Security Number\n\n`student_id` - Identification issued by an educational institution\n\n`tax_id` - Identification issued for the purpose of collecting taxes\n\n`travel_document` - Visas, entry permits, refugee documents, etc.\n\n`voter_id` - Identification issued for the purpose of voting","examples":["passport"]},"WatchlistScreeningDocumentValue":{"type":"string","title":"WatchlistScreeningDocumentValue","description":"The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.","examples":["C31195855"]},"WatchlistScreeningDocumentValueNullable":{"type":["string","null"],"title":"WatchlistScreeningDocumentValue","description":"The numeric or alphanumeric identifier associated with this document. Must be between 4 and 32 characters long, and cannot have leading or trailing spaces.","examples":["C31195855"]},"WatchlistScreeningEntityCreateRequest":{"type":"object","description":"Request input for creating an entity watchlist screening","properties":{"search_terms":{"$ref":"#/components/schemas/EntityWatchlistSearchTerms"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["search_terms"]},"WatchlistScreeningEntityCreateResponse":{"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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"},"search_terms":{"$ref":"#/components/schemas/EntityWatchlistScreeningSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserIDNullable"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"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","type":"object","properties":{"entity_watchlist_screening_id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"}},"required":["entity_watchlist_screening_id"]},"WatchlistScreeningEntityGetResponse":{"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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"},"search_terms":{"$ref":"#/components/schemas/EntityWatchlistScreeningSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserIDNullable"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"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","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"entity_watchlist_screening_id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"},"cursor":{"$ref":"#/components/schemas/Cursor"}},"required":["entity_watchlist_screening_id"]},"WatchlistScreeningEntityHistoryListResponse":{"description":"Paginated list of entity watchlist screenings","additionalProperties":true,"properties":{"entity_watchlist_screenings":{"description":"List of entity watchlist screening","type":"array","items":{"$ref":"#/components/schemas/EntityWatchlistScreening"}},"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","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"entity_watchlist_screening_id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"},"cursor":{"$ref":"#/components/schemas/Cursor"}},"required":["entity_watchlist_screening_id"]},"WatchlistScreeningEntityHitListResponse":{"description":"Paginated list of entity watchlist screening hits","additionalProperties":true,"properties":{"entity_watchlist_screening_hits":{"description":"List of entity watchlist screening hits","type":"array","items":{"$ref":"#/components/schemas/EntityWatchlistScreeningHit"}},"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","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"entity_watchlist_program_id":{"$ref":"#/components/schemas/EntityWatchlistProgramID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"assignee":{"$ref":"#/components/schemas/DashboardUserID"},"cursor":{"$ref":"#/components/schemas/Cursor"}},"required":["entity_watchlist_program_id"]},"WatchlistScreeningEntityListResponse":{"description":"Paginated list of entity watchlist screenings","additionalProperties":true,"properties":{"entity_watchlist_screenings":{"description":"List of entity watchlist screening","type":"array","items":{"$ref":"#/components/schemas/EntityWatchlistScreening"}},"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","type":"object","properties":{"entity_watchlist_program_id":{"$ref":"#/components/schemas/EntityWatchlistProgramID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"}},"required":["entity_watchlist_program_id"]},"WatchlistScreeningEntityProgramGetResponse":{"description":"A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of entities.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/EntityWatchlistProgramID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"is_rescanning_enabled":{"description":"Indicator specifying whether the program is enabled and will perform daily rescans.","type":"boolean","examples":[true]},"lists_enabled":{"description":"Watchlists enabled for the associated program","type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/EntityWatchlistCode"},"examples":[["EU_CON"]]},"name":{"$ref":"#/components/schemas/EntityWatchlistScreeningProgramName"},"name_sensitivity":{"$ref":"#/components/schemas/ProgramNameSensitivity"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"is_archived":{"$ref":"#/components/schemas/ProgramArchived"},"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","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"cursor":{"$ref":"#/components/schemas/Cursor"}}},"WatchlistScreeningEntityProgramListResponse":{"description":"Paginated list of entity watchlist screening programs","additionalProperties":true,"properties":{"entity_watchlist_programs":{"description":"List of entity watchlist screening programs","type":"array","items":{"$ref":"#/components/schemas/EntityWatchlistProgram"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["entity_watchlist_programs","next_cursor","request_id"],"type":"object"},"WatchlistScreeningEntityReviewCreateRequest":{"type":"object","description":"Request input for creating a review for an entity screening","properties":{"confirmed_hits":{"type":"array","items":{"$ref":"#/components/schemas/EntityWatchlistScreeningHitID"},"description":"Hits to mark as a true positive after thorough manual review. These hits will never recur or be updated once confirmed. In most cases, confirmed hits indicate that the customer should be rejected."},"dismissed_hits":{"type":"array","items":{"$ref":"#/components/schemas/EntityWatchlistScreeningHitID"},"description":"Hits to mark as a false positive after thorough manual review. These hits will never recur or be updated once dismissed."},"comment":{"$ref":"#/components/schemas/ReviewComment"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"entity_watchlist_screening_id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"}},"required":["confirmed_hits","dismissed_hits","entity_watchlist_screening_id"]},"WatchlistScreeningEntityReviewCreateResponse":{"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\nagainst hits attached to the watchlist screening, or both.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/EntityWatchlistScreeningReviewID"},"confirmed_hits":{"type":"array","description":"Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once confirmed. In most cases, confirmed hits indicate that the customer should be rejected.","items":{"$ref":"#/components/schemas/EntityWatchlistScreeningHitID"}},"dismissed_hits":{"type":"array","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"}},"comment":{"$ref":"#/components/schemas/ReviewComment"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"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","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"entity_watchlist_screening_id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"},"cursor":{"$ref":"#/components/schemas/Cursor"}},"required":["entity_watchlist_screening_id"]},"WatchlistScreeningEntityReviewListResponse":{"description":"Paginated list of entity watchlist screening reviews","additionalProperties":true,"properties":{"entity_watchlist_screening_reviews":{"description":"List of entity watchlist screening reviews","type":"array","items":{"$ref":"#/components/schemas/EntityWatchlistScreeningReview"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["entity_watchlist_screening_reviews","next_cursor","request_id"],"type":"object"},"WatchlistScreeningEntityUpdateRequest":{"type":"object","description":"Request input for editing an entity watchlist screening","properties":{"entity_watchlist_screening_id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"},"search_terms":{"$ref":"#/components/schemas/UpdateEntityScreeningRequestSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserID"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"reset_fields":{"$ref":"#/components/schemas/WatchlistScreeningEntityUpdateRequestResettableFieldList"}},"required":["entity_watchlist_screening_id"]},"WatchlistScreeningEntityUpdateRequestResettableField":{"type":"string","enum":["assignee"],"description":"The name of a field that can be reset back to null"},"WatchlistScreeningEntityUpdateRequestResettableFieldList":{"type":["array","null"],"items":{"$ref":"#/components/schemas/WatchlistScreeningEntityUpdateRequestResettableField"},"description":"A list of fields to reset back to null"},"WatchlistScreeningEntityUpdateResponse":{"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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/EntityWatchlistScreeningID"},"search_terms":{"$ref":"#/components/schemas/EntityWatchlistScreeningSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserIDNullable"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","search_terms","assignee","status","client_user_id","audit_trail","request_id"],"type":"object"},"WatchlistScreeningHit":{"type":"object","description":"Data from a government watchlist or PEP list that has been attached to the screening.","title":"WatchlistScreeningHit","properties":{"id":{"$ref":"#/components/schemas/WatchlistScreeningHitID"},"review_status":{"$ref":"#/components/schemas/WatchlistScreeningHitStatus"},"first_active":{"$ref":"#/components/schemas/Timestamp"},"inactive_since":{"$ref":"#/components/schemas/TimestampNullable"},"historical_since":{"$ref":"#/components/schemas/TimestampNullable"},"list_code":{"$ref":"#/components/schemas/IndividualWatchlistCode"},"plaid_uid":{"$ref":"#/components/schemas/InternalUID"},"source_uid":{"$ref":"#/components/schemas/SourceUID"},"sub_programs":{"type":"array","description":"Sub-program designations that may be attached to the watchlist entry by the issuing authority. For OFAC SDN\nentries these are the program codes published in the SDN list (for example `SDGT` for Specially\nDesignated Global Terrorists, `SDNTK` for Specially Designated Narcotics Trafficking Kingpins,\n`IRAN`, `RUSSIA-EO14024`). New codes are added by sanctioning authorities without prior notice,\nso callers should treat unknown values as opaque strings rather than enum members.\n","items":{"type":"string","examples":["SDGT"]},"examples":[["SDGT","SDNTK"]]},"analysis":{"$ref":"#/components/schemas/ScreeningHitAnalysis"},"data":{"$ref":"#/components/schemas/ScreeningHitData"}},"required":["id","review_status","first_active","inactive_since","historical_since","list_code","plaid_uid","source_uid","sub_programs"],"additionalProperties":true},"WatchlistScreeningHitID":{"type":"string","title":"WatchlistScreeningHitID","description":"ID of the associated screening hit.","examples":["scrhit_52xR9LKo77r1Np"]},"WatchlistScreeningHitLocations":{"type":"object","description":"Location information for the associated watchlist hit","properties":{"full":{"type":"string","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.","examples":["Florida, US"]},"country":{"$ref":"#/components/schemas/GenericCountryCode"}},"required":["full","country"],"additionalProperties":true},"WatchlistScreeningHitStatus":{"type":"string","title":"WatchlistScreeningHitStatus","enum":["confirmed","pending_review","dismissed"],"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.","examples":["pending_review"]},"WatchlistScreeningIndividual":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"},"search_terms":{"$ref":"#/components/schemas/WatchlistScreeningSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserIDNullable"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"}},"required":["id","search_terms","assignee","status","client_user_id","audit_trail"],"title":"WatchlistScreeningIndividual","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.","additionalProperties":true},"WatchlistScreeningIndividualCreateRequest":{"type":"object","description":"Request input for creating an individual watchlist screening","properties":{"search_terms":{"$ref":"#/components/schemas/WatchlistScreeningRequestSearchTerms"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["search_terms"]},"WatchlistScreeningIndividualCreateResponse":{"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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"},"search_terms":{"$ref":"#/components/schemas/WatchlistScreeningSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserIDNullable"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"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","type":"object","properties":{"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"}},"required":["watchlist_screening_id"]},"WatchlistScreeningIndividualGetResponse":{"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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"},"search_terms":{"$ref":"#/components/schemas/WatchlistScreeningSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserIDNullable"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"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","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"},"cursor":{"$ref":"#/components/schemas/Cursor"}},"required":["watchlist_screening_id"]},"WatchlistScreeningIndividualHistoryListResponse":{"description":"Paginated list of individual watchlist screenings.","additionalProperties":true,"properties":{"watchlist_screenings":{"description":"List of individual watchlist screenings","type":"array","items":{"$ref":"#/components/schemas/WatchlistScreeningIndividual"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["watchlist_screenings","next_cursor","request_id"],"type":"object"},"WatchlistScreeningIndividualHitListRequest":{"description":"Request input for listing hits for an individual watchlist screening","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"},"cursor":{"$ref":"#/components/schemas/Cursor"}},"required":["watchlist_screening_id"]},"WatchlistScreeningIndividualHitListResponse":{"description":"Paginated list of individual watchlist screening hits","additionalProperties":true,"properties":{"watchlist_screening_hits":{"description":"List of individual watchlist screening hits","type":"array","items":{"$ref":"#/components/schemas/WatchlistScreeningHit"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["watchlist_screening_hits","next_cursor","request_id"],"type":"object"},"WatchlistScreeningIndividualID":{"type":"string","title":"WatchlistScreeningIndividualID","description":"ID of the associated screening.","examples":["scr_52xR9LKo77r1Np"]},"WatchlistScreeningIndividualIDNullable":{"type":["string","null"],"title":"WatchlistScreeningIndividualID","description":"ID of the associated screening.","examples":["scr_52xR9LKo77r1Np"]},"WatchlistScreeningIndividualListRequest":{"description":"Request input for listing watchlist screenings for individuals","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"watchlist_program_id":{"$ref":"#/components/schemas/WatchlistProgramID"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"assignee":{"$ref":"#/components/schemas/DashboardUserID"},"cursor":{"$ref":"#/components/schemas/Cursor"}},"required":["watchlist_program_id"]},"WatchlistScreeningIndividualListResponse":{"description":"Paginated list of individual watchlist screenings.","additionalProperties":true,"properties":{"watchlist_screenings":{"description":"List of individual watchlist screenings","type":"array","items":{"$ref":"#/components/schemas/WatchlistScreeningIndividual"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["watchlist_screenings","next_cursor","request_id"],"type":"object"},"WatchlistScreeningIndividualName":{"type":"string","title":"WatchlistScreeningIndividualName","description":"The legal name of the individual being screened. Must have at least one alphabetical character, have a maximum length of 100 characters, and not include leading or trailing spaces.","examples":["Aleksey Potemkin"]},"WatchlistScreeningIndividualProgramGetRequest":{"description":"Request input for fetching an individual watchlist program","type":"object","properties":{"watchlist_program_id":{"$ref":"#/components/schemas/WatchlistProgramID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"}},"required":["watchlist_program_id"]},"WatchlistScreeningIndividualProgramGetResponse":{"description":"A program that configures the active lists, search parameters, and other behavior for initial and ongoing screening of individuals.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/WatchlistProgramID"},"created_at":{"$ref":"#/components/schemas/Timestamp"},"is_rescanning_enabled":{"description":"Indicator specifying whether the program is enabled and will perform daily rescans.","type":"boolean","examples":[true]},"lists_enabled":{"description":"Watchlists enabled for the associated program","type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/IndividualWatchlistCode"},"examples":[["US_SDN"]]},"name":{"$ref":"#/components/schemas/IndividualWatchlistScreeningProgramName"},"name_sensitivity":{"$ref":"#/components/schemas/ProgramNameSensitivity"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"is_archived":{"$ref":"#/components/schemas/ProgramArchived"},"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","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"cursor":{"$ref":"#/components/schemas/Cursor"}}},"WatchlistScreeningIndividualProgramListResponse":{"description":"Paginated list of individual watchlist screening programs","additionalProperties":true,"properties":{"watchlist_programs":{"description":"List of individual watchlist screening programs","type":"array","items":{"$ref":"#/components/schemas/IndividualWatchlistProgram"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["watchlist_programs","next_cursor","request_id"],"type":"object"},"WatchlistScreeningIndividualReviewCreateRequest":{"type":"object","description":"Request input for creating a screening review","properties":{"confirmed_hits":{"type":"array","items":{"$ref":"#/components/schemas/WatchlistScreeningHitID"},"description":"Hits to mark as a true positive after thorough manual review. These hits will never recur or be updated once confirmed. In most cases, confirmed hits indicate that the customer should be rejected."},"dismissed_hits":{"type":"array","items":{"$ref":"#/components/schemas/WatchlistScreeningHitID"},"description":"Hits to mark as a false positive after thorough manual review. These hits will never recur or be updated once dismissed."},"comment":{"$ref":"#/components/schemas/ReviewComment"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"}},"required":["confirmed_hits","dismissed_hits","watchlist_screening_id"]},"WatchlistScreeningIndividualReviewCreateResponse":{"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\nagainst hits attached to the watchlist screening, or both.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/WatchlistScreeningReviewID"},"confirmed_hits":{"type":"array","description":"Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once confirmed. In most cases, confirmed hits indicate that the customer should be rejected.","items":{"$ref":"#/components/schemas/WatchlistScreeningHitID"}},"dismissed_hits":{"type":"array","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"}},"comment":{"$ref":"#/components/schemas/ReviewComment"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"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","type":"object","properties":{"secret":{"$ref":"#/components/schemas/APISecret"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"},"cursor":{"$ref":"#/components/schemas/Cursor"}},"required":["watchlist_screening_id"]},"WatchlistScreeningIndividualReviewListResponse":{"description":"Paginated list of screening reviews","additionalProperties":true,"properties":{"watchlist_screening_reviews":{"description":"List of screening reviews","type":"array","items":{"$ref":"#/components/schemas/WatchlistScreeningReview"}},"next_cursor":{"$ref":"#/components/schemas/Cursor"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["watchlist_screening_reviews","next_cursor","request_id"],"type":"object"},"WatchlistScreeningIndividualUpdateRequest":{"type":"object","description":"Request input for editing an individual watchlist screening","properties":{"watchlist_screening_id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"},"search_terms":{"$ref":"#/components/schemas/UpdateIndividualScreeningRequestSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserID"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserID"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"reset_fields":{"$ref":"#/components/schemas/WatchlistScreeningIndividualUpdateRequestResettableFieldList"}},"required":["watchlist_screening_id"]},"WatchlistScreeningIndividualUpdateRequestResettableField":{"type":"string","enum":["assignee"],"description":"The name of a field that can be reset back to null"},"WatchlistScreeningIndividualUpdateRequestResettableFieldList":{"type":["array","null"],"items":{"$ref":"#/components/schemas/WatchlistScreeningIndividualUpdateRequestResettableField"},"description":"A list of fields to reset back to null"},"WatchlistScreeningIndividualUpdateResponse":{"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.","additionalProperties":true,"properties":{"id":{"$ref":"#/components/schemas/WatchlistScreeningIndividualID"},"search_terms":{"$ref":"#/components/schemas/WatchlistScreeningSearchTerms"},"assignee":{"$ref":"#/components/schemas/DashboardUserIDNullable"},"status":{"$ref":"#/components/schemas/WatchlistScreeningStatus"},"client_user_id":{"$ref":"#/components/schemas/ClientUserIDNullable"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["id","search_terms","assignee","status","client_user_id","audit_trail","request_id"],"type":"object"},"WatchlistScreeningPhoneNumber":{"type":"string","description":"A phone number in E.164 format.","title":"WatchlistScreeningPhoneNumber","examples":["+14025671234"]},"WatchlistScreeningPhoneNumberNullable":{"type":["string","null"],"description":"A phone number in E.164 format.","title":"WatchlistScreeningPhoneNumber","examples":["+14025671234"]},"WatchlistScreeningRequestSearchTerms":{"type":"object","description":"Search inputs for creating a watchlist screening","required":["watchlist_program_id","legal_name"],"properties":{"watchlist_program_id":{"$ref":"#/components/schemas/WatchlistProgramID"},"legal_name":{"$ref":"#/components/schemas/WatchlistScreeningIndividualName"},"date_of_birth":{"$ref":"#/components/schemas/ISO8601Date"},"document_number":{"$ref":"#/components/schemas/WatchlistScreeningDocumentValue"},"country":{"$ref":"#/components/schemas/GenericCountryCode"}}},"WatchlistScreeningReview":{"title":"WatchlistScreeningReview","type":"object","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\nagainst hits attached to the watchlist screening, or both.","properties":{"id":{"$ref":"#/components/schemas/WatchlistScreeningReviewID"},"confirmed_hits":{"type":"array","description":"Hits marked as a true positive after thorough manual review. These hits will never recur or be updated once confirmed. In most cases, confirmed hits indicate that the customer should be rejected.","items":{"$ref":"#/components/schemas/WatchlistScreeningHitID"}},"dismissed_hits":{"type":"array","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"}},"comment":{"$ref":"#/components/schemas/ReviewComment"},"audit_trail":{"$ref":"#/components/schemas/WatchlistScreeningAuditTrail"}},"required":["id","confirmed_hits","dismissed_hits","comment","audit_trail"],"additionalProperties":true},"WatchlistScreeningReviewID":{"type":"string","title":"WatchlistScreeningReviewID","description":"ID of the associated review.","examples":["rev_aCLNRxK3UVzn2r"]},"WatchlistScreeningSearchTerms":{"type":"object","description":"Search terms for creating an individual watchlist screening","properties":{"watchlist_program_id":{"$ref":"#/components/schemas/WatchlistProgramID"},"legal_name":{"$ref":"#/components/schemas/WatchlistScreeningIndividualName"},"date_of_birth":{"$ref":"#/components/schemas/ISO8601DateNullable"},"document_number":{"$ref":"#/components/schemas/WatchlistScreeningDocumentValueNullable"},"country":{"$ref":"#/components/schemas/GenericCountryCodeNullable"},"version":{"type":"integer","description":"The current version of the search terms. Starts at `1` and increments with each edit to `search_terms`.","examples":[1]}},"required":["watchlist_program_id","legal_name","date_of_birth","document_number","country","version"],"additionalProperties":true},"WatchlistScreeningStatus":{"description":"A status enum indicating whether a screening is still pending review, has been rejected, or has been cleared.","type":"string","enum":["rejected","pending_review","cleared"],"title":"WatchlistScreeningStatus","examples":["cleared"]},"WeakAliasDetermination":{"type":"string","enum":["none","source","plaid"],"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`.","title":"WeakAliasDetermination","examples":["none"]},"CreditAuditCopyTokenUpdateRequest":{"type":"object","description":"CreditAuditCopyTokenUpdateRequest defines the request schema for `/credit/audit_copy_token/update`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"audit_copy_token":{"type":"string","description":"The `audit_copy_token` you would like to update."},"report_tokens":{"type":"array","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"}}},"required":["audit_copy_token","report_tokens"]},"CreditAuditCopyTokenUpdateResponse":{"type":"object","additionalProperties":true,"description":"Defines the response schema for `/credit/audit_copy_token/update`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"updated":{"type":"boolean","description":"`true` if the Audit Copy Token was successfully updated."}},"required":["request_id","updated"]},"CraCheckReportIncomeInsightsGetRequest":{"title":"CraCheckReportIncomeInsightsGetRequest","type":"object","description":"Defines the request schema for `/cra/check_report/income_insights/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"options":{"$ref":"#/components/schemas/CraCheckReportIncomeInsightsGetOptions"},"report_id":{"type":"string","description":"The CRA report token (formatted `cra-report-<env>-<uuid>`) identifying a specific consumer report. When provided alongside `consumer_report_permissible_purpose`, pins retrieval to that report and stamps its permissible purpose. If omitted, the most recently generated report for the user is returned.","x-hidden-from-docs":true},"consumer_report_permissible_purpose":{"description":"The permissible purpose under which the consumer report is being retrieved.","x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/CraCheckReportPermissiblePurpose"}]}}},"CraCheckReportIncomeInsightsGetResponse":{"title":"CraCheckReportIncomeInsightsGetResponse","additionalProperties":true,"type":"object","description":"CraCheckReportIncomeInsightsGetResponse defines the response schema for `/cra/check_report/income_insights/get`.","properties":{"report":{"$ref":"#/components/schemas/CraIncomeInsights"},"request_id":{"$ref":"#/components/schemas/RequestID"},"warnings":{"type":"array","description":"If the Income Insights generation was successful but a subset of data could not be retrieved, this array will contain information about the errors causing information to be missing","items":{"$ref":"#/components/schemas/CheckReportWarning"}}},"required":["request_id"]},"CheckReportWarning":{"title":"CraReportWarning","type":"object","additionalProperties":true,"description":"It is possible for a Check Report product to be returned with missing information. In such cases, the product will contain warning data in the response, indicating why some of the requested information could not be retrieved.","properties":{"warning_type":{"type":"string","description":"The warning type, which will always be `CHECK_REPORT_WARNING`"},"warning_code":{"$ref":"#/components/schemas/CheckReportWarningCode"},"cause":{"$ref":"#/components/schemas/Cause"}},"required":["warning_type","warning_code","cause"]},"CheckReportWarningCode":{"type":"string","description":"The warning code identifies a specific kind of warning.\n\n`IDENTITY_UNAVAILABLE`:  Account-owner information is not available.\n\n`TRANSACTIONS_UNAVAILABLE`: Transactions information associated with Credit and Depository accounts are unavailable.\n\n`USER_FRAUD_ALERT`: The user has placed a fraud alert on their Plaid Check consumer report due to suspected fraud. Please note that when a fraud alert is in place, the recipient of the consumer report has an obligation to verify the consumer's identity.","enum":["IDENTITY_UNAVAILABLE","TRANSACTIONS_UNAVAILABLE","USER_FRAUD_ALERT"]},"ConsumerReportPDFGetRequest":{"type":"object","description":"ConsumerReportPDFGetRequest defines the request schema for `/consumer_report/pdf/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"}},"required":["user_token"]},"ConsumerReportPDFGetResponse":{"contentMediaType":"application/octet-stream","description":"ConsumerReportPDFGetResponse defines the response schema for `/consumer_report/pdf/get`"},"CraIncomeInsights":{"type":"object","additionalProperties":true,"description":"The Check Income Insights Report for an end user.","properties":{"report_id":{"type":"string","description":"The unique identifier associated with the Check Income Insights Report."},"generated_time":{"type":"string","description":"The time when the Check Income Insights Report was generated.","format":"date-time"},"days_requested":{"type":"integer","description":"The number of days requested by the customer for the Check Income Insights Report."},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"items":{"type":"array","description":"The list of Items in the report along with the associated metadata about the Item.","items":{"$ref":"#/components/schemas/CraBankIncomeItem"}},"user_summary":{"$ref":"#/components/schemas/CraIncomeInsightsUserSummary"},"income_streams":{"type":"array","description":"The list of income streams for this user.","items":{"$ref":"#/components/schemas/CraIncomeStream"}},"bank_income_summary":{"$ref":"#/components/schemas/CraBankIncomeSummary"},"warnings":{"x-hidden-from-docs":true,"type":"array","description":"If data from the report was unable to be retrieved, the warnings object will contain information about the error that caused the data to be incomplete.","items":{"$ref":"#/components/schemas/CraBankIncomeWarning"}}},"required":["income_streams"]},"CraBankIncomeItem":{"type":"object","description":"The details and metadata for an end user's Item.","properties":{"item_id":{"$ref":"#/components/schemas/ItemId"},"accounts":{"type":"array","description":"The Item's accounts that have bank income data.","items":{"$ref":"#/components/schemas/CraBankIncomeAccount"}},"bank_income_accounts":{"x-hidden-from-docs":true,"type":"array","description":"This is a V1 (II1) field. For the V2 (II2) equivalent, use the `accounts` field. The Item's accounts that have bank income data.","items":{"$ref":"#/components/schemas/CraBankIncomeAccount"}},"bank_income_sources":{"x-hidden-from-docs":true,"type":"array","description":"This is a V1 (II1) field. For the V2 (II2) equivalent, use the report-level `income_streams` field. The income sources for this Item. Each entry in the array is a single income source.","items":{"$ref":"#/components/schemas/CraBankIncomeSource"}},"last_updated_time":{"type":"string","description":"The time when this Item's data was last retrieved from the financial institution.","format":"date-time"},"institution_id":{"type":"string","description":"The unique identifier of the institution associated with the Item."},"institution_name":{"type":"string","description":"The name of the institution associated with the Item."}},"required":["bank_income_sources","bank_income_accounts"]},"CraBankIncomeAccount":{"type":"object","description":"The Item's bank accounts that have the selected data.","properties":{"account_id":{"type":"string","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.\n\nIf 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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"mask":{"type":["string","null"],"description":"The last 2-4 alphanumeric characters of an account's official account number.\nNote 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."},"metadata":{"$ref":"#/components/schemas/CraBankIncomeAccountMetadata"},"name":{"type":"string","description":"The name of the bank account."},"official_name":{"type":["string","null"],"description":"The official name of the bank account."},"subtype":{"$ref":"#/components/schemas/DepositoryAccountSubtype"},"type":{"$ref":"#/components/schemas/CreditBankIncomeAccountType"},"owners":{"x-hidden-from-docs":true,"type":"array","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"}}},"required":["mask","metadata","name","official_name","subtype","type","owners"]},"CraBankIncomeAccountMetadata":{"title":"CraBankIncomeAccountMetadata","description":"An object containing metadata about the extracted account.","type":"object","properties":{"start_date":{"type":["string","null"],"format":"date","description":"The date of the earliest extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"end_date":{"type":["string","null"],"format":"date","description":"The date of the most recent extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."}},"required":["start_date","end_date"]},"CraBankIncomeSource":{"type":"object","additionalProperties":true,"x-hidden-from-docs":true,"description":"Detailed information for the income source.","properties":{"account_id":{"type":"string","description":"The account ID with which this income source is associated."},"income_source_id":{"type":"string","description":"A unique identifier for an income source. If the report is regenerated and a new `report_id` is created, the new report will have a new set of `income_source_id`s."},"income_description":{"type":"string","description":"The most common name or original description for the underlying income transactions."},"income_category":{"$ref":"#/components/schemas/CreditBankIncomeCategory"},"start_date":{"type":"string","format":"date","description":"Minimum of all dates within the specific income sources in the user's bank account for days requested by the client.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"Maximum of all dates within the specific income sources in the user's bank account for days requested by the client.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"pay_frequency":{"$ref":"#/components/schemas/CreditBankIncomePayFrequency"},"total_amount":{"type":"number","description":"Total amount of earnings in the user's bank account for the specific income source for days requested by the client."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"},"transaction_count":{"type":"integer","description":"Number of transactions for the income source within the start and end date."},"next_payment_date":{"type":["string","null"],"format":"date","description":"The expected date of the end user's next paycheck for the income source.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"status":{"$ref":"#/components/schemas/CraBankIncomeStatus"},"historical_average_monthly_gross_income":{"type":["number","null"],"description":"An estimate of the average gross monthly income based on the historical net amount and income category for the income source(s)."},"historical_average_monthly_income":{"type":["number","null"],"description":"The average monthly net income amount estimated based on the historical data for the income source(s)."},"forecasted_average_monthly_income":{"type":["number","null"],"description":"The predicted average monthly net income amount for the income source(s)."},"forecasted_average_monthly_income_prediction_intervals":{"type":"array","description":"The prediction interval(s) for the forecasted average monthly income.","items":{"$ref":"#/components/schemas/CraPredictionInterval"}},"employer":{"$ref":"#/components/schemas/CraBankIncomeEmployer"},"income_provider":{"$ref":"#/components/schemas/CraBankIncomeIncomeProvider"},"historical_summary":{"type":"array","items":{"$ref":"#/components/schemas/CraBankIncomeHistoricalSummary"}}},"required":["forecasted_average_monthly_income_prediction_intervals","income_provider"]},"CraPredictionInterval":{"description":"The object containing prediction interval data.","type":"object","additionalProperties":true,"x-hidden-from-docs":true,"properties":{"lower_bound":{"type":["number","null"],"description":"The lower bound of the predicted attribute for the given probability."},"upper_bound":{"type":["number","null"],"description":"The upper bound of the predicted attribute for the given probability."},"probability":{"type":["number","null"],"description":"The probability of the actual value of the attribute falling within the upper and lower bound.\nThis is a percentage represented as a value between 0 and 1."}}},"CraBankIncomeEmployer":{"description":"The object containing employer data.","type":"object","additionalProperties":true,"x-hidden-from-docs":true,"properties":{"name":{"type":["string","null"],"description":"The name of the employer."}},"required":["name"]},"CraBankIncomeIncomeProvider":{"description":"The object containing data about the income provider.","type":["object","null"],"additionalProperties":true,"properties":{"name":{"type":"string","description":"The name of the income provider."},"is_normalized":{"type":"boolean","description":"Indicates whether the income provider name is normalized by comparing it against a canonical set of known providers."}},"required":["name","is_normalized"]},"CraBankIncomeSummary":{"type":"object","description":"This is a V1 (II1) schema. For the V2 (II2) equivalent, use `CraIncomeInsightsUserSummary`. Summary for income across all income sources and items (max history of 730 days).","additionalProperties":true,"x-hidden-from-docs":true,"properties":{"total_amounts":{"type":"array","description":"Total amount of earnings across all the income sources in the end user's Items for the days requested by the client.\nThis can contain multiple amounts, with each amount denominated in one unique currency.","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"start_date":{"type":"string","format":"date","description":"The earliest date within the days requested in which all income sources identified by Plaid appear in a user's account.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The latest date in which all income sources identified by Plaid appear in the user's account.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"income_sources_count":{"type":"integer","description":"Number of income sources per end user."},"income_categories_count":{"type":"integer","description":"Number of income categories per end user."},"income_transactions_count":{"type":"integer","description":"Number of income transactions per end user."},"historical_average_monthly_gross_income":{"type":"array","description":"An estimate of the average gross monthly income based on the historical net amount and income category for the income source(s). The average monthly income is calculated based on the lifetime of the income stream, rather than the entire historical period included in the scope of the report.","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"historical_average_monthly_income":{"type":"array","description":"The average monthly income amount estimated based on the historical data for the income source(s). The average monthly income is calculated based on the lifetime of the income stream, rather than the entire historical period included in the scope of the report.","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"forecasted_average_monthly_income":{"type":"array","description":"The predicted average monthly income amount for the income source(s).","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"historical_annual_gross_income":{"type":"array","description":"An estimate of the annual gross income for the income source, calculated by multiplying the `historical_average_monthly_gross_income` by 12.","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"historical_annual_income":{"type":"array","description":"An estimate of the annual net income for the income source, calculated by multiplying the `historical_average_monthly_income` by 12.","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"forecasted_annual_income":{"type":"array","description":"The predicted average annual income amount for the income source(s).","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"historical_summary":{"type":"array","items":{"$ref":"#/components/schemas/CraBankIncomeHistoricalSummary"}}}},"CraBankIncomeHistoricalSummary":{"type":"object","description":"The end user's monthly summary for the income source(s).","additionalProperties":true,"x-hidden-from-docs":true,"properties":{"total_amounts":{"type":"array","description":"Total amount of earnings for the income source(s) of the user for the month in the summary.\nThis can contain multiple amounts, with each amount denominated in one unique currency.","items":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"start_date":{"type":"string","format":"date","description":"The start date of the period covered in this monthly summary.\nThis 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.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The end date of the period included in this monthly summary.\nThis 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.\nThe date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/CraBankIncomeTransaction"}}}},"CraBankIncomeTransaction":{"type":"object","description":"The transactions data for the end user's income source(s).","additionalProperties":true,"x-hidden-from-docs":true,"properties":{"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."},"amount":{"type":"number","description":"The settled value of the transaction, denominated in the transaction's currency as stated in `iso_currency_code` or `unofficial_currency_code`.\nPositive values when money moves out of the account; negative values when money moves in.\nFor example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative."},"date":{"type":"string","format":"date","description":"For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted.\nBoth dates are returned in an ISO 8601 format (YYYY-MM-DD)."},"name":{"type":"string","deprecated":true,"description":"The merchant name or transaction description. This is a legacy field that is no longer maintained. For merchant name, use the `merchant_name` field; for description, use the `original_description` field."},"original_description":{"type":["string","null"],"description":"The string returned by the financial institution to describe the transaction."},"pending":{"type":"boolean","description":"When true, identifies the transaction as pending or unsettled.\nPending transaction details (name, type, amount, category ID) may change before they are settled."},"check_number":{"type":["string","null"],"description":"The check number of the transaction. This field is only populated for check transactions."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"},"bonus_type":{"$ref":"#/components/schemas/CraBankIncomeBonusType"}},"required":["transaction_id","pending","date","unofficial_currency_code","iso_currency_code","amount","original_description"]},"CraBankIncomeBonusType":{"type":["string","null"],"x-hidden-from-docs":true,"description":"The type of bonus that this transaction represents, if it is a bonus.\n\n`BONUS_INCLUDED`: Bonus is included in this transaction along with the normal pay\n\n`BONUS_ONLY`: This transaction is a standalone bonus","enum":["BONUS_INCLUDED","BONUS_ONLY",null]},"CraBankIncomeStatus":{"type":"string","description":"The status of the income sources.\n\n`ACTIVE`: The income source is active.\n\n`INACTIVE`: The income source is inactive.\n\n`UNKNOWN`: The income source status is unknown.","enum":["ACTIVE","INACTIVE","UNKNOWN"]},"CraIncomeInsightsUserSummary":{"title":"CraIncomeInsightsUserSummary","type":["object","null"],"additionalProperties":true,"description":"Aggregated summary of all income streams for this user.","properties":{"income_metrics":{"type":"array","description":"List of a user's aggregated income metrics for each currency.","items":{"$ref":"#/components/schemas/CraIncomeMetrics"}}},"required":["income_metrics"]},"CraIncomeMetrics":{"title":"CraIncomeMetrics","type":"object","additionalProperties":true,"description":"Modeled income metrics for a given income stream or user summary.","properties":{"current":{"$ref":"#/components/schemas/CraCurrentModeledIncome"},"projected":{"$ref":"#/components/schemas/CraProjectedModeledIncome"},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["current","projected","iso_currency_code","unofficial_currency_code"]},"CraCurrentModeledIncome":{"title":"CraCurrentModeledIncome","type":["object","null"],"additionalProperties":true,"description":"Modeled estimate of current income based on recently observed income transactions.","properties":{"monthly":{"$ref":"#/components/schemas/CraMonthlyIncomeValues"},"annual":{"$ref":"#/components/schemas/CraAnnualIncomeValues"}},"required":["monthly","annual"]},"CraProjectedModeledIncome":{"title":"CraProjectedModeledIncome","type":["object","null"],"additionalProperties":true,"description":"Forward-looking modeled estimate of income based on recent income transactions and trends in active streams.","properties":{"monthly":{"$ref":"#/components/schemas/CraMonthlyIncomeValues"},"annual":{"$ref":"#/components/schemas/CraAnnualIncomeValues"}},"required":["monthly","annual"]},"CraMonthlyIncomeValues":{"title":"CraMonthlyIncomeValues","type":"object","additionalProperties":true,"description":"Modeled estimate of the monthly income.","properties":{"gross_income":{"type":"number","description":"Gross Income modeled from trends of observed transactions."},"net_income":{"type":"number","description":"Net Income estimated from observed transactions."}},"required":["gross_income","net_income"]},"CraAnnualIncomeValues":{"title":"CraAnnualIncomeValues","type":"object","additionalProperties":true,"description":"Modeled estimate of the annual income.","properties":{"gross_income":{"type":"number","description":"Gross Income modeled from trends of observed transactions."},"net_income":{"type":"number","description":"Net Income estimated from observed transactions."}},"required":["gross_income","net_income"]},"CraIncomeStream":{"title":"CraIncomeStream","type":"object","additionalProperties":true,"description":"An income stream detected for the user.","properties":{"income_stream_id":{"type":"string","description":"A unique identifier for an income stream. If the report is regenerated and a new `report_id` is created, the new report will have a new set of `income_stream_id`s."},"start_date":{"type":"string","format":"date","description":"Minimum of all dates within the specific income stream for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"Maximum of all dates within the specific income stream for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"description":{"type":"string","description":"The most common name or original description for the underlying income transactions."},"insights":{"$ref":"#/components/schemas/CraIncomeStreamInsights"},"income_metrics":{"$ref":"#/components/schemas/CraIncomeMetrics"},"transactions":{"type":"array","description":"The transactions data for the income stream ordered by ascending date.","items":{"$ref":"#/components/schemas/CraIncomeTransaction"}}},"required":["income_stream_id","start_date","end_date","description","insights","income_metrics","transactions"]},"CraIncomeStreamInsights":{"title":"CraIncomeStreamInsights","type":"object","additionalProperties":true,"description":"Modeled insights for a given income stream.","properties":{"income_category":{"$ref":"#/components/schemas/CraIncomeCategory"},"pay_frequency":{"$ref":"#/components/schemas/CreditBankIncomePayFrequency"},"income_provider":{"$ref":"#/components/schemas/CraBankIncomeIncomeProvider"},"status":{"$ref":"#/components/schemas/CraBankIncomeStatus"},"next_payment":{"$ref":"#/components/schemas/CraIncomeNextPayment"}},"required":["income_category","pay_frequency","income_provider","status","next_payment"]},"CraIncomeCategory":{"title":"CraIncomeCategory","type":"object","additionalProperties":true,"description":"The income category for a given stream. The streams returned in the response will be filtered based on these primary and secondary income categories.\n\nSee the [Income V2 Category Taxonomy](https://plaid.com/documents/income-v2-category-taxonomy.csv) for a full list of income categories.","properties":{"primary":{"type":"string","description":"A high level category that communicates the broad category of the stream."},"secondary":{"type":"string","description":"A granular category conveying the stream's intent."}},"required":["primary","secondary"]},"CraIncomeNextPayment":{"title":"CraIncomeNextPayment","type":["object","null"],"additionalProperties":true,"description":"Metadata of the income stream's next payment.","properties":{"date":{"type":"string","format":"date","description":"The expected date of the income stream's next payment. The date will be returned in an ISO 8601 format (YYYY-MM-DD)."}},"required":["date"]},"CraIncomeTransactionOutlier":{"title":"CraIncomeTransactionOutlier","type":"object","additionalProperties":true,"description":"Metadata on whether this income transaction is an outlier.","properties":{"is_outlier":{"type":"boolean","description":"Indicates whether an income transaction amount is unusually high compared to the amounts for that stream."},"amount":{"type":["number","null"],"description":"The amount that the transaction differs from the stream average transaction amount."}},"required":["is_outlier"]},"CraIncomeTransaction":{"title":"CraIncomeTransaction","type":"object","additionalProperties":true,"description":"The transaction data for an income stream.","properties":{"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."},"item_id":{"$ref":"#/components/schemas/ItemId"},"account_id":{"type":"string","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.\n\nIf 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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"amount":{"type":"number","description":"The settled value of the transaction, denominated in the transaction's currency as stated in `iso_currency_code` or `unofficial_currency_code`.\nPositive values when money moves out of the account; negative values when money moves in.\nFor example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative."},"date":{"type":"string","format":"date","description":"For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted.\nBoth dates are returned in an ISO 8601 format (YYYY-MM-DD)."},"original_description":{"type":"string","description":"The string returned by the financial institution to describe the transaction."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"},"outlier":{"$ref":"#/components/schemas/CraIncomeTransactionOutlier"}},"required":["transaction_id","item_id","account_id","amount","date","original_description","iso_currency_code","unofficial_currency_code","outlier"]},"CraCheckReportIncomeInsightsGetOptions":{"title":"CraCheckReportIncomeInsightsGetOptions","type":["object","null"],"deprecated":true,"description":"Deprecated. This field is no longer accepted for new clients (created on or after 2026-07-01). New clients should specify required products when creating the Consumer Report. Existing integrations may continue to pass `options`.","properties":{"income_insights_filter":{"$ref":"#/components/schemas/IncomeInsightsFilter"},"income_insights_version":{"$ref":"#/components/schemas/IncomeInsightsVersion"}},"required":["income_insights_version"]},"CraBankIncomeWarning":{"type":"object","additionalProperties":true,"description":"The warning associated with the data that was unavailable.","properties":{"warning_type":{"$ref":"#/components/schemas/CreditBankIncomeWarningType"},"warning_code":{"$ref":"#/components/schemas/CraBankIncomeWarningCode"},"cause":{"$ref":"#/components/schemas/CraBankIncomeCause"}}},"CraBankIncomeWarningCode":{"type":"string","description":"The warning code identifies a specific kind of warning.\n\n`IDENTITY_UNAVAILABLE`: Unable to extract identity for the Item\n\n`TRANSACTIONS_UNAVAILABLE`: Unable to extract transactions for the Item\n\n`REPORT_DELETED`: Report deleted due to customer or consumer request\n\n`DATA_UNAVAILABLE`: No relevant data was found for the Item","enum":["IDENTITY_UNAVAILABLE","TRANSACTIONS_UNAVAILABLE","REPORT_DELETED","DATA_UNAVAILABLE"]},"CraBankIncomeCause":{"type":"object","additionalProperties":true,"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":{"error_type":{"$ref":"#/components/schemas/CreditBankIncomeErrorType"},"error_code":{"type":"string","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."},"error_message":{"type":"string","description":"A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use."},"display_message":{"type":"string","description":"A user-friendly representation of the error code. null if the error is not related to user action.\nThis may change over time and is not safe for programmatic use."}},"required":["error_type","error_code","error_message","display_message"]},"CraCheckReportCreateCashflowInsightsOptions":{"title":"CraCheckReportCreateCashflowInsightsOptions","type":["object","null"],"description":"Defines configuration options to generate Cashflow Insights","properties":{"attributes_version":{"$ref":"#/components/schemas/CashflowAttributesVersion"}}},"CraCheckReportCreateLendScoreOptions":{"title":"CraCheckReportCreateLendScoreOptions","type":["object","null"],"description":"Defines configuration options to generate the LendScore","properties":{"lend_score_version":{"$ref":"#/components/schemas/PlaidLendScoreVersion"}}},"CraCheckReportCreateNetworkInsightsOptions":{"title":"CraCheckReportCreateNetworkInsightsOptions","type":["object","null"],"description":"Defines configuration options to generate Network Insights","properties":{"network_insights_version":{"$ref":"#/components/schemas/NetworkInsightsVersion"}}},"CraCheckReportCreateIncomeInsightsOptions":{"title":"CraCheckReportCreateIncomeInsightsOptions","type":["object","null"],"description":"Defines configuration options to generate Income Insights.","properties":{"income_insights_filter":{"$ref":"#/components/schemas/IncomeInsightsFilter"},"income_insights_version":{"$ref":"#/components/schemas/IncomeInsightsVersion"}},"required":["income_insights_version"]},"CraCheckReportCreateEmploymentRefreshOptions":{"title":"CraCheckReportCreateEmploymentRefreshOptions","type":["object","null"],"description":"Defines configuration options for the Employment Refresh Report.","properties":{"days_requested":{"type":"integer","description":"The number of days of data to request for the report. This field is required if an Employment Refresh Report is requested. Maximum is 731.","maximum":731}},"required":["days_requested"]},"CraCheckReportCreateRequest":{"title":"CraCheckReportCreateRequest","type":"object","description":"CraCheckReportCreateRequest defines the request schema for `/cra/check_report/create`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"user_token":{"$ref":"#/components/schemas/UserToken"},"webhook":{"type":"string","format":"url","description":"The destination URL to which webhooks will be sent\n"},"days_requested":{"type":"integer","description":"The number of days of data to request for the report. Maximum is 731; minimum is 180. If a value lower than 180 is provided, a minimum of 180 days of history will be requested.","maximum":731},"days_required":{"type":"integer","description":"The minimum number of days of data required for the report to be successfully generated.","maximum":184},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"products":{"type":["array","null"],"description":"Specifies a list of products to generate when creating the report (in addition to the Base Report, which is always generated except for requests for only `cra_network_insights` or for FICO-only Partner Insights). These products will be made available before a success webhook is sent. Note that specifying `cra_partner_insights` in this field will trigger a billable event. Other products are not billed until the respective reports are retrieved via their product-specific `/get` endpoints.","minItems":1,"items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["cra_income_insights","cra_cashflow_insights","cra_partner_insights","cra_network_insights","cra_lend_score"]},"base_report":{"$ref":"#/components/schemas/CraCheckReportCreateBaseReportOptions"},"cashflow_insights":{"$ref":"#/components/schemas/CraCheckReportCreateCashflowInsightsOptions"},"partner_insights":{"$ref":"#/components/schemas/CraCheckReportCreatePartnerInsightsOptions"},"lend_score":{"$ref":"#/components/schemas/CraCheckReportCreateLendScoreOptions"},"network_insights":{"$ref":"#/components/schemas/CraCheckReportCreateNetworkInsightsOptions"},"include_investments":{"type":["boolean","null"],"description":"Indicates that investment data should be extracted from the linked account(s)."},"income_insights":{"$ref":"#/components/schemas/CraCheckReportCreateIncomeInsightsOptions"},"consumer_report_permissible_purpose":{"$ref":"#/components/schemas/ConsumerReportPermissiblePurpose"}},"required":["webhook","consumer_report_permissible_purpose","days_requested"]},"CraCheckReportCreateResponse":{"title":"CraCheckReportCreateResponse","additionalProperties":true,"type":"object","description":"CraCheckReportCreateResponse defines the response schema for `/cra/check_report/create`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}}},"CraPartnerInsightsGetRequest":{"title":"CraPartnerInsightsGetRequest","type":"object","description":"CraPartnerInsightsGetRequest defines the request schema for `/cra/partner_insights/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_tier":{"$ref":"#/components/schemas/CraUserTier"}},"required":["user_token"]},"CraPartnerInsightsGetResponse":{"title":"CraPartnerInsightsGetResponse","additionalProperties":true,"type":"object","description":"CraPartnerInsightsGetResponse defines the response schema for `/cra/partner_insights/get`.","properties":{"report":{"type":"array","items":{"$ref":"#/components/schemas/CraPartnerInsights"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CraCheckReportPartnerInsightsGetRequest":{"title":"CraCheckReportPartnerInsightsGetRequest","type":"object","description":"CraCheckReportPartnerInsightsGetRequest defines the request schema for `/cra/check_report/partner_insights/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"},"user_token":{"$ref":"#/components/schemas/UserToken"},"user_tier":{"$ref":"#/components/schemas/CraUserTier"},"partner_insights":{"$ref":"#/components/schemas/CraCheckReportPartnerInsightsGetPartnerInsights"},"options":{"$ref":"#/components/schemas/CraCheckReportPartnerInsightsGetOptions"}}},"CraCheckReportPartnerInsightsGetPartnerInsights":{"title":"CraCheckReportPartnerInsightsGetPartnerInsights","type":"object","deprecated":true,"description":"Deprecated. This field is no longer accepted for new clients (created on or after 2026-07-01). New clients should specify required products when creating the Consumer Report. Existing integrations may continue to pass `partner_insights`.","properties":{"prism_versions":{"$ref":"#/components/schemas/PrismVersions"},"fico":{"$ref":"#/components/schemas/CraPartnerInsightsFicoInput"}}},"CraCheckReportPartnerInsightsGetOptions":{"title":"CraCheckReportPartnerInsightsGetOptions","type":["object","null"],"description":"Deprecated, specify `partner_insights.prism_versions` instead.","x-hidden-from-docs":true,"deprecated":true,"properties":{"prism_versions":{"$ref":"#/components/schemas/PrismVersionsDeprecated"}}},"CraCheckReportCreatePartnerInsightsOptions":{"title":"CraCheckReportCreatePartnerInsightsOptions","type":["object","null"],"description":"Defines configuration to generate Partner Insights.","properties":{"prism_versions":{"$ref":"#/components/schemas/PrismVersions"},"fico":{"$ref":"#/components/schemas/CraPartnerInsightsFicoInput"}}},"PrismVersionsDeprecated":{"title":"PrismVersions","type":["object","null"],"deprecated":true,"description":"Deprecated, use `partner_insights.prism_versions` instead.","properties":{"firstdetect":{"$ref":"#/components/schemas/PrismFirstDetectVersion"},"detect":{"$ref":"#/components/schemas/PrismDetectVersion"},"cashscore":{"$ref":"#/components/schemas/PrismCashScoreVersion"},"extend":{"$ref":"#/components/schemas/PrismExtendVersion"},"insights":{"$ref":"#/components/schemas/PrismInsightsVersion"}}},"PrismVersions":{"title":"PrismVersions","type":["object","null"],"description":"The versions of Prism products to evaluate","properties":{"firstdetect":{"$ref":"#/components/schemas/PrismFirstDetectVersion"},"detect":{"$ref":"#/components/schemas/PrismDetectVersion"},"cashscore":{"$ref":"#/components/schemas/PrismCashScoreVersion"},"extend":{"$ref":"#/components/schemas/PrismExtendVersion"},"insights":{"$ref":"#/components/schemas/PrismInsightsVersion"}}},"CraPartnerInsightsFicoInput":{"title":"CraPartnerInsightsFicoInput","type":["object","null"],"description":"Configuration for the FICO products used in the Partner Insights product.","properties":{"fico_lender_id":{"type":"string","description":"ID provided by FICO that uniquely identifies the lender. Required for UltraFICO® score generation. Sometimes referred to as Lender Org ID."},"lender_application_id":{"type":"string","description":"Client-generated identifier that uniquely identifies the FICO Application across FICO systems."},"ultrafico_score_requests":{"type":"array","description":"A list of UltraFICO® scoring requests. Each request contains all configuration required to generate an UltraFICO score.","items":{"$ref":"#/components/schemas/CraPartnerInsightsUltraFicoScoreRequest"}}},"required":["fico_lender_id","lender_application_id","ultrafico_score_requests"]},"CraPartnerInsightsUltraFicoScoreRequest":{"title":"CraPartnerInsightsUltraFicoScoreRequest","type":"object","description":"Configuration required to generate a single UltraFICO® score.","properties":{"ultrafico_score_version":{"$ref":"#/components/schemas/CraPartnerInsightsUltraFicoScoreVersion"},"fico_scoring_request_id":{"type":"string","x-hidden-from-docs":true,"description":"FICO identifier for a particular scoring request. Should only be provided by FICO as part of the FICO-led flow."},"request_correlation_id":{"type":"string","description":"Client-generated identifier that can be used to correlate scoring requests with their scoring results."},"base_fico_score":{"$ref":"#/components/schemas/CraPartnerInsightsBaseFicoScore"}},"required":["ultrafico_score_version","base_fico_score"]},"CraPartnerInsightsUltraFicoScoreVersion":{"type":"string","description":"The version of the UltraFICO® score.","enum":["1.0"]},"CraPartnerInsightsBaseFicoScore":{"title":"CraPartnerInsightsBaseFicoScore","type":"object","description":"Details about the base FICO score associated with an UltraFICO® scoring request.","properties":{"bureau":{"$ref":"#/components/schemas/CraPartnerInsightsBureau"},"score":{"type":"integer","description":"Numeric value of the base FICO score."},"reason_codes":{"type":"array","items":{"type":"string"},"maxItems":4,"description":"Reason codes associated with the score, in priority order. May contain up to 4 items."},"reason_code_1":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `reason_codes` instead. The first reason code associated with the score."},"reason_code_2":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `reason_codes` instead. The second reason code associated with the score."},"reason_code_3":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `reason_codes` instead. The third reason code associated with the score."},"reason_code_4":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `reason_codes` instead. The fourth reason code associated with the score."},"did_inquiries_adversely_affect_score":{"type":["boolean","null"],"description":"Whether inquiries adversely affected the score but were not represented in one of the four reason codes. Sometimes referred to as the FACTA Flag."},"base_fico_score_version":{"$ref":"#/components/schemas/CraPartnerInsightsBaseFicoScoreVersion"}},"required":["bureau","score","base_fico_score_version"]},"CraPartnerInsightsBureau":{"type":"string","description":"The credit bureau that provided the base FICO score.","enum":["EQUIFAX","EXPERIAN","TRANSUNION"]},"CraPartnerInsightsBaseFicoScoreVersion":{"type":"string","description":"The version of the base FICO score model.","enum":["8","9","10","10T"]},"CraPartnerInsightsFicoResults":{"title":"CraPartnerInsightsFicoResults","type":["object","null"],"description":"The calculated UltraFICO® scores returned as part of the Partner Insights report.","properties":{"lender_application_id":{"type":"string","description":"Client-generated identifier that uniquely identifies the FICO Application across FICO systems."},"ultrafico_score_results":{"type":"array","description":"UltraFICO® scoring results, one per provided UltraFICO scoring request.","items":{"$ref":"#/components/schemas/CraPartnerInsightsUltraFicoScoreResult"}},"report_characteristics":{"$ref":"#/components/schemas/CraPartnerInsightsFicoReportCharacteristics"}},"required":["lender_application_id","ultrafico_score_results"]},"CraPartnerInsightsFicoReportCharacteristics":{"title":"CraPartnerInsightsFicoReportCharacteristics","type":["object","null"],"description":"Report characteristics returned by FICO describing the banking data used to generate the UltraFICO® score.","properties":{"num_accounts":{"type":["integer","null"],"description":"Total number of accounts included in the report. Limited to checking, savings, and money market accounts."},"avg_daily_balance_over_1_month":{"type":["number","null"],"format":"double","description":"Average daily balance over the past 1 month."},"avg_daily_balance_over_3_months":{"type":["number","null"],"format":"double","description":"Average daily balance over the past 3 months."},"avg_daily_balance_over_6_months":{"type":["number","null"],"format":"double","description":"Average daily balance over the past 6 months."},"avg_daily_balance_over_12_months":{"type":["number","null"],"format":"double","description":"Average daily balance over the past 12 months."},"days_since_earliest_tx":{"type":["integer","null"],"description":"Number of days since the earliest transaction in the report."},"days_since_most_recent_negative_ending_balance":{"type":["integer","null"],"description":"Number of days since the most recent day with a negative ending balance."},"days_since_most_recent_insufficient_funds_fee_debit_tx":{"type":["integer","null"],"description":"Number of days since the most recent insufficient funds fee debit transaction."},"tot_number_days_with_negative_balance_over_1_month":{"type":["integer","null"],"description":"Total number of days with a negative balance over the past 1 month."},"tot_number_days_with_negative_balance_over_3_months":{"type":["integer","null"],"description":"Total number of days with a negative balance over the past 3 months."},"tot_number_days_with_negative_balance_over_6_months":{"type":["integer","null"],"description":"Total number of days with a negative balance over the past 6 months."},"tot_number_days_with_negative_balance_over_12_months":{"type":["integer","null"],"description":"Total number of days with a negative balance over the past 12 months."},"days_since_most_recent_tx":{"type":["integer","null"],"description":"Number of days since the most recent transaction."},"days_with_tx_over_1_month":{"type":["integer","null"],"description":"Number of days with at least one transaction over the past 1 month."},"days_with_tx_over_3_months":{"type":["integer","null"],"description":"Number of days with at least one transaction over the past 3 months."},"days_with_tx_over_6_months":{"type":["integer","null"],"description":"Number of days with at least one transaction over the past 6 months."},"days_with_tx_over_12_months":{"type":["integer","null"],"description":"Number of days with at least one transaction over the past 12 months."},"tot_current_balances":{"type":["number","null"],"format":"double","description":"Sum of current balances across all accounts in the report."},"num_checking_accounts":{"type":["integer","null"],"description":"Number of checking accounts included in the report."},"num_money_market_accounts":{"type":["integer","null"],"description":"Number of money market accounts included in the report."},"num_savings_accounts":{"type":["integer","null"],"description":"Number of savings accounts included in the report."}}},"CraPartnerInsightsUltraFicoScoreResult":{"title":"CraPartnerInsightsUltraFicoScoreResult","type":"object","description":"The result of a single UltraFICO® score generation request.","properties":{"request_correlation_id":{"type":"string","description":"Client-generated identifier that can be used to correlate scoring requests with their scoring results."},"fico_scoring_request_id":{"type":"string","description":"FICO-provided identifier that uniquely identifies this score generation request."},"ultrafico_score":{"$ref":"#/components/schemas/CraPartnerInsightsUltraFicoScore"},"error_reason":{"type":"string","description":"Human-readable description of why the UltraFICO® score could not be computed."},"exclusion_code":{"type":["string","null"],"description":"FICO exclusion code indicating why an UltraFICO® score could not be computed due to consumer-data conditions (e.g. insufficient account history). `null` when the exclusion code is not set; \"0\" when a score was produced."}}},"CraPartnerInsightsUltraFicoScore":{"title":"CraPartnerInsightsUltraFicoScore","type":["object","null"],"description":"The calculated UltraFICO® score.","properties":{"ultrafico_score_version":{"$ref":"#/components/schemas/CraPartnerInsightsUltraFicoScoreVersion"},"score":{"type":"integer","description":"Numeric value of the UltraFICO® score."},"negative_reason_codes":{"type":"array","items":{"type":"string"},"maxItems":4,"description":"Negative reason codes associated with the score (reasons the score moved downward), in priority order. May contain up to 4 items."},"positive_reason_codes":{"type":"array","items":{"type":"string"},"maxItems":4,"description":"Positive reason codes associated with the score (reasons the score moved upward), in priority order. May contain up to 4 items."},"reason_code_1":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `negative_reason_codes` instead. The first reason code associated with the score."},"reason_code_2":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `negative_reason_codes` instead. The second reason code associated with the score."},"reason_code_3":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `negative_reason_codes` instead. The third reason code associated with the score."},"reason_code_4":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `negative_reason_codes` instead. The fourth reason code associated with the score."},"positive_reason_code_1":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `positive_reason_codes` instead. The first positive reason code associated with the score."},"positive_reason_code_2":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `positive_reason_codes` instead. The second positive reason code associated with the score."},"positive_reason_code_3":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `positive_reason_codes` instead. The third positive reason code associated with the score."},"positive_reason_code_4":{"type":["string","null"],"deprecated":true,"x-hidden-from-docs":true,"description":"Deprecated. Use `positive_reason_codes` instead. The fourth positive reason code associated with the score."},"did_inquiries_adversely_affect_score":{"type":["boolean","null"],"description":"Whether inquiries adversely affected the score but were not represented in one of the four reason codes. Sometimes referred to as the FACTA Flag."}},"required":["ultrafico_score_version","score"]},"PrismFirstDetectVersion":{"type":["string","null"],"description":"The version of Prism FirstDetect. If `prism_versions` is omitted entirely, FirstDetect v3 is generated when your client's configured default Prism version is v3 or no default is configured; it is not generated if the default is v4 or v4.1. If other Prism versions are specified but this one is not, this product is not generated.","enum":["3",null]},"PrismDetectVersion":{"type":["string","null"],"description":"The version of Prism Detect","enum":["4.1","4",null]},"PrismCashScoreVersion":{"type":["string","null"],"description":"The version of Prism CashScore. If `prism_versions` is omitted entirely, your client's configured default Prism version is used (v3 if none is configured). If other Prism versions are specified but this one is not, this product is not generated.","x-override-enum-values-shown":["4.1","4","3",null],"enum":["4.1","4","3_lite","3",null]},"PrismExtendVersion":{"type":["string","null"],"description":"The version of Prism Extend","enum":["4.1","4",null]},"PrismInsightsVersion":{"type":["string","null"],"description":"The version of Prism Insights. If `prism_versions` is omitted entirely, your client's configured default Prism version is used (v3 if none is configured). If other Prism versions are specified but this one is not, this product is not generated.","enum":["4.1","4","3",null]},"CraCheckReportPartnerInsightsGetResponse":{"title":"CraCheckReportPartnerInsightsGetResponse","additionalProperties":true,"type":"object","description":"CraCheckReportPartnerInsightsGetResponse defines the response schema for `/cra/check_report/partner_insights/get`.","properties":{"report":{"$ref":"#/components/schemas/CraPartnerInsights"},"request_id":{"$ref":"#/components/schemas/RequestID"},"warnings":{"type":"array","description":"If the Partner Insights generation was successful but a subset of data could not be retrieved, this array will contain information about the errors causing information to be missing","items":{"$ref":"#/components/schemas/CheckReportWarning"}}},"required":["request_id"]},"CraPartnerInsights":{"type":"object","additionalProperties":true,"description":"The Partner Insights report of the bank data for an end user.","properties":{"report_id":{"type":"string","description":"A unique identifier associated with the Partner Insights object."},"generated_time":{"type":"string","description":"The time when the Partner Insights report was generated.","format":"date-time"},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"fico":{"$ref":"#/components/schemas/CraPartnerInsightsFicoResults"},"prism":{"$ref":"#/components/schemas/CraPartnerInsightsPrism"},"items":{"type":"array","description":"The list of Items used in the report along with the associated metadata about the Item.","items":{"$ref":"#/components/schemas/CraPartnerInsightsItem"}}}},"CraPartnerInsightsItem":{"type":"object","additionalProperties":true,"description":"The details and metadata for an end user's Item.","properties":{"institution_id":{"type":"string","description":"The ID for the institution that the user linked."},"institution_name":{"type":"string","description":"The name of the institution the user linked."},"item_id":{"type":"string","description":"The identifier for the Item."},"accounts":{"type":"array","description":"A list of accounts in the Item.","items":{"$ref":"#/components/schemas/CraPartnerInsightsItemAccount"}}}},"CraPartnerInsightsItemAccount":{"type":"object","additionalProperties":true,"description":"Account data corresponding to the Item from which Partner Insights were generated.","properties":{"account_id":{"type":"string","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.\n\nIf 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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"mask":{"type":["string","null"],"description":"The last 2-4 alphanumeric characters of an account's official account number.\nNote 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."},"metadata":{"$ref":"#/components/schemas/CraPartnerInsightsItemAccountMetadata"},"name":{"type":"string","description":"The name of the account"},"official_name":{"type":["string","null"],"description":"The official name of the bank account."},"subtype":{"$ref":"#/components/schemas/DepositoryAccountSubtype"},"type":{"$ref":"#/components/schemas/CreditBankIncomeAccountType"},"owners":{"type":"array","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"}}},"required":["mask","metadata","name","official_name","subtype","type","owners"]},"CraPartnerInsightsItemAccountMetadata":{"title":"CraPartnerInsightsItemAccountMetadata","description":"An object containing metadata about the extracted account.","type":"object","properties":{"start_date":{"type":["string","null"],"format":"date","description":"The date of the earliest extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."},"end_date":{"type":["string","null"],"format":"date","description":"The date of the most recent extracted transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (\"yyyy-mm-dd\")."}},"required":["start_date","end_date"]},"CraPartnerInsightsPrism":{"type":["object","null"],"additionalProperties":true,"description":"The Prism Data insights for the user.","properties":{"insights":{"$ref":"#/components/schemas/PrismInsights"},"cash_score":{"$ref":"#/components/schemas/PrismCashScore"},"extend":{"$ref":"#/components/schemas/PrismExtend"},"first_detect":{"$ref":"#/components/schemas/PrismFirstDetect"},"detect":{"$ref":"#/components/schemas/PrismDetect"},"status":{"type":"string","description":"Details on whether the Prism Data attributes succeeded or failed to be generated."}},"required":["status"]},"PrismInsights":{"type":["object","null"],"additionalProperties":true,"description":"The data from the Insights product returned by Prism Data.","properties":{"version":{"type":"integer","description":"The version of Prism Data's insights model used. This field is deprecated in favor of `model_version`.","deprecated":true},"model_version":{"type":"string","description":"The version of Prism Data's insights model used."},"result":{"$ref":"#/components/schemas/PrismInsightsResult"},"error_reason":{"$ref":"#/components/schemas/PrismErrorReason"}},"required":["version"]},"PrismInsightsResult":{"type":"object","title":"PrismInsightsResult","description":"The Insights Result object is a map of cash flow attributes, where the key is a string, and the value is a float or string. For a full list of all ~2,000 attributes, contact your account manager. The attributes may vary depending on the Prism version used."},"PrismCashScore":{"type":["object","null"],"additionalProperties":true,"description":"The data from the CashScore® product returned by Prism Data.","properties":{"version":{"type":"integer","description":"The version of Prism Data's cash score model used. This field is deprecated in favor of `model_version`.","deprecated":true},"model_version":{"type":"string","description":"The version of Prism Data's cash score model used."},"score":{"type":["integer","null"],"description":"The score returned by Prism Data. Ranges from 1-999, with higher score indicating lower risk."},"reason_codes":{"type":"array","description":"The reasons for an individual having risk according to the cash score.","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/PrismCashScoreMetadata"},"error_reason":{"$ref":"#/components/schemas/PrismErrorReason"}},"required":["version","score"]},"PrismCashScoreMetadata":{"type":"object","additionalProperties":true,"description":"An object containing metadata about the provided transactions.","properties":{"max_age":{"type":["integer","null"],"description":"Number of days since the oldest transaction."},"min_age":{"type":["integer","null"],"description":"Number of days since the latest transaction."},"min_age_credit":{"type":["integer","null"],"description":"Number of days since the latest credit transaction."},"min_age_debit":{"type":["integer","null"],"description":"Number of days since the latest debit transaction."},"max_age_debit":{"type":["integer","null"],"description":"Number of days since the oldest debit transaction."},"max_age_credit":{"type":["integer","null"],"description":"Number of days since the oldest credit transaction."},"num_trxn_credit":{"type":["integer","null"],"description":"Number of credit transactions."},"num_trxn_debit":{"type":["integer","null"],"description":"Number of debit transactions."},"l1m_credit_value_cnt":{"type":["integer","null"],"description":"Number of credit transactions in the last 30 days."},"l1m_debit_value_cnt":{"type":["integer","null"],"description":"Number of debit transactions in the last 30 days."}},"required":["max_age","min_age","min_age_credit","min_age_debit","max_age_debit","max_age_credit","num_trxn_credit","num_trxn_debit","l1m_credit_value_cnt","l1m_debit_value_cnt"]},"PrismExtend":{"type":["object","null"],"additionalProperties":true,"description":"The data from the CashScore® Extend product returned by Prism Data.","properties":{"model_version":{"type":"string","description":"The version of Prism Data's CashScore® Extend model used."},"score":{"type":["integer","null"],"description":"The score returned by Prism Data. Ranges from 1-999, with higher score indicating lower risk."},"reason_codes":{"type":"array","description":"The reasons for an individual having risk according to the CashScore® Extend score.","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/PrismCashScoreMetadata"},"error_reason":{"$ref":"#/components/schemas/PrismErrorReason"}},"required":["model_version","score"]},"PrismFirstDetect":{"type":["object","null"],"additionalProperties":true,"description":"The data from the FirstDetect product returned by Prism Data.","properties":{"version":{"type":"integer","description":"The version of Prism Data's FirstDetect model used. This field is deprecated in favor of `model_version`.","deprecated":true},"model_version":{"type":"string","description":"The version of Prism Data's FirstDetect model used."},"score":{"type":["integer","null"],"description":"The score returned by Prism Data. Ranges from 1-999, with higher score indicating lower risk."},"reason_codes":{"type":"array","description":"The reasons for an individual having risk according to the FirstDetect score.","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/PrismCashScoreMetadata"},"error_reason":{"$ref":"#/components/schemas/PrismErrorReason"}},"required":["version","score"]},"PrismDetect":{"type":["object","null"],"additionalProperties":true,"description":"The data from the CashScore® Detect product returned by Prism Data.","properties":{"model_version":{"type":"string","description":"The version of Prism Data's CashScore® Detect model used."},"score":{"type":["integer","null"],"description":"The score returned by Prism Data. Ranges from 1-999, with higher score indicating lower risk."},"reason_codes":{"type":"array","description":"The reasons for an individual having risk according to the CashScore® Detect score.","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/PrismCashScoreMetadata"},"error_reason":{"$ref":"#/components/schemas/PrismErrorReason"}},"required":["model_version","score"]},"PrismErrorReason":{"type":"string","description":"The error returned by Prism for this product."},"CraCheckReportCashflowInsightsGetRequest":{"title":"CraCheckReportCashflowInsightsGetRequest","type":"object","description":"CraCheckReportCashflowInsightsGetRequest defines the request schema for `/cra/check_report/cashflow_insights/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"},"user_token":{"$ref":"#/components/schemas/UserToken"},"options":{"$ref":"#/components/schemas/CraCheckReportCashflowInsightsGetOptions"}}},"CraCheckReportLendScoreGetRequest":{"title":"CraCheckReportLendScoreGetRequest","type":"object","description":"CraCheckReportLendScoreGetRequest defines the request schema for `/cra/check_report/lend_score/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"},"user_token":{"$ref":"#/components/schemas/UserToken"},"options":{"$ref":"#/components/schemas/CraCheckReportLendScoreGetOptions"}}},"CraCheckReportCreateBaseReportOptions":{"title":"CraCheckReportCreateBaseReportOptions","type":["object","null"],"description":"Defines configuration options to generate a Base Report","properties":{"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications. This field is deprecated. Use the `client_report_id` field at the top level of the request instead.","deprecated":true},"gse_options":{"$ref":"#/components/schemas/CraCheckReportGSEOptions"},"require_identity":{"type":["boolean","null"],"description":"Indicates that the report must include identity information. If identity information is not available, the report will fail."},"home_lending_report_options":{"$ref":"#/components/schemas/CraCheckReportHomeLendingReportOptions"},"exclude_transactions":{"x-hidden-from-docs":true,"type":["boolean","null"],"default":false,"description":"When set to `true`, this option excludes account transaction records from the Base Report before it is stored. In the `/cra/check_report/base_report/get` response, each account's `transactions` field remains present as an empty array. This option does not affect insight calculations.\n\nOmitting this option or setting it to `null` or `false` preserves existing behavior. These values do not override any client configuration that excludes transactions.\n\nRequests with `exclude_transactions` set to `true` are rejected with an `INVALID_FIELD` error if they also request GSE or Home Lending reports. A Base Report created with this option set to `true` cannot be used to generate those reports later."}}},"CraCheckReportHomeLendingReportOptions":{"title":"CraCheckReportHomeLendingReportOptions","type":["object","null"],"description":"Options for configuring Home Lending Report (Verification Report) generation.","properties":{"reports_requested":{"type":"array","items":{"$ref":"#/components/schemas/CraCheckReportVerificationGetReportType"},"description":"Specifies which types of home lending reports to generate."},"employment_refresh_options":{"$ref":"#/components/schemas/CraCheckReportCreateEmploymentRefreshOptions"}},"required":["reports_requested"]},"CraCheckReportGSEOptions":{"title":"CraCheckReportGSEOptions","type":["object","null"],"description":"Specifies options for creating reports that can be shared with GSEs for mortgage verification.","properties":{"report_types":{"type":"array","items":{"$ref":"#/components/schemas/GSEReportType"},"description":"Specifies which types of reports should be made available to GSEs."}},"required":["report_types"]},"CraCheckReportCashflowInsightsGetOptions":{"title":"CraCheckReportCashflowInsightsGetOptions","type":["object","null"],"deprecated":true,"description":"Deprecated. This field is no longer accepted for new clients (created on or after 2026-07-01). New clients should specify required products when creating the Consumer Report. Existing integrations may continue to pass `options`.","properties":{"attributes_version":{"$ref":"#/components/schemas/CashflowAttributesVersion"}}},"CraCheckReportLendScoreGetOptions":{"title":"CraCheckReportLendScoreGetOptions","type":["object","null"],"deprecated":true,"description":"Deprecated. This field is no longer accepted for new clients (created on or after 2026-07-01). New clients should specify required products when creating the Consumer Report. Existing integrations may continue to pass `options`.","properties":{"lend_score_version":{"$ref":"#/components/schemas/PlaidLendScoreVersion"}}},"CraCheckReportNetworkInsightsGetOptions":{"title":"CraCheckReportNetworkInsightsGetOptions","type":["object","null"],"deprecated":true,"description":"Deprecated. This field is no longer accepted for new clients (created on or after 2026-07-01). New clients should specify required products when creating the Consumer Report. Existing integrations may continue to pass `options`.","properties":{"network_insights_version":{"$ref":"#/components/schemas/NetworkInsightsVersion"}}},"PlaidLendScoreVersion":{"type":["string","null"],"description":"The version of the LendScore to use. Required if using LendScore.","enum":["v2.0","LS1"],"x-override-enum-values-shown":["LS1"]},"GSEReportType":{"enum":["VOA","EMPLOYMENT_REFRESH"],"description":"The types of GSE Reports supported by the Plaid API","type":"string"},"CashflowAttributesVersion":{"type":["string","null"],"description":"The version of cashflow attributes. Required if using Cash Flow Insights.","enum":["v1.0","v2.0","CFI1"],"x-override-enum-values-shown":["CFI1"]},"NetworkInsightsVersion":{"type":["string","null"],"description":"The version of Network Insights. Required if using Network Insights.","enum":["NI1"]},"IncomeInsightsFilter":{"title":"IncomeInsightsFilter","type":["object","null"],"description":"Filters the returned income streams based on the specified income categories. If no filters are requested, streams from the following default set of categories are returned:\n- `EARNED_INCOME.*` (`EARNED_INCOME.SALARY`, `EARNED_INCOME.GIG_ECONOMY`, `EARNED_INCOME.SELF_EMPLOYED`)\n- `BENEFITS.DISABILITY`\n- `RETIREMENT.*` (`RETIREMENT.GOVERNMENT_DERIVED`, `RETIREMENT.PRIVATE_RETIREMENT`, `RETIREMENT.PLAN_DISTRIBUTION`)\n\nThe final list of income categories is generated by adding the `included_categories`, then removing the `excluded_categories`. Priority is given to `excluded_categories` in the case of collisions.\n\nFilter patterns supported:\n- `*`: All categories\n- `PRIMARY.*`: All categories within the specified primary category\n- `PRIMARY.SECONDARY`: A specific income category\n\nFor a list of income categories, see the [Income V2 Category Taxonomy](https://plaid.com/documents/income-v2-category-taxonomy.csv).","properties":{"included_categories":{"type":"array","description":"Includes income streams matching the specified categories.","items":{"type":"string"}},"excluded_categories":{"type":"array","description":"Excludes income streams matching the specified categories.","items":{"type":"string"}}},"required":["included_categories"]},"IncomeInsightsVersion":{"title":"IncomeInsightsVersion","type":["string","null"],"description":"The version of Income Insights to use. Set this to `II2`. The value applies only to the request it is sent with; a version set in an earlier call, such as `/link/token/create` or `/cra/check_report/create`, is not reused.","enum":["II2"]},"CraCheckReportCashflowInsightsGetResponse":{"title":"CraCheckReportCashflowInsightsGetResponse","additionalProperties":true,"type":"object","description":"CraCheckReportCashflowInsightsGetResponse defines the response schema for `/cra/check_report/cashflow_insights/get`.","properties":{"report":{"$ref":"#/components/schemas/CraCashflowInsightsReport"},"request_id":{"$ref":"#/components/schemas/RequestID"},"warnings":{"type":"array","description":"If the Cashflow Insights generation was successful but a subset of data could not be retrieved, this array will contain information about the errors causing information to be missing","items":{"$ref":"#/components/schemas/CheckReportWarning"}}},"required":["report","request_id"]},"CraCashflowInsightsReport":{"type":"object","description":"Contains data for the CRA Cashflow Insights Report.","additionalProperties":true,"properties":{"report_id":{"type":"string","description":"The unique identifier associated with the report object."},"generated_time":{"type":"string","description":"The time when the report was generated.","format":"date-time"},"attributes":{"$ref":"#/components/schemas/CashflowAttributesSchema"}},"required":["report_id","generated_time"]},"CashflowAttributesSchema":{"type":"object","title":"CashflowAttributes","description":"A map of cash flow attributes, where the key is a string, and the value is a string, float, int, or boolean. The specific list of attributes will depend on the cash flow attributes version used. For a full list of all ~2,000 attributes, contact your account manager."},"CraCreditProfileCashflowAttributesSchema":{"type":["object","null"],"title":"CraCreditProfileCashflowAttributes","description":"A map of cash flow attributes, where the key is a string, and the value is a string, float, int, or boolean. The specific list of attributes will depend on the cash flow attributes version used. For a full list of all ~2,000 attributes, contact your account manager.","additionalProperties":{}},"CraCheckReportLendScoreGetResponse":{"title":"CraCheckReportLendScoreGetResponse","additionalProperties":true,"type":"object","description":"CraCheckReportLendScoreGetResponse defines the response schema for `/cra/check_report/lend_score/get`.","properties":{"report":{"$ref":"#/components/schemas/CraLendScoreReport"},"request_id":{"$ref":"#/components/schemas/RequestID"},"warnings":{"type":"array","description":"If the LendScore generation was successful but a subset of data could not be retrieved, this array will contain information about the errors causing information to be missing","items":{"$ref":"#/components/schemas/CheckReportWarning"}}},"required":["report","request_id"]},"CraLendScoreReport":{"type":"object","description":"Contains data for the CRA LendScore Report.","additionalProperties":true,"properties":{"report_id":{"type":"string","description":"The unique identifier associated with the report object."},"generated_time":{"type":"string","description":"The time when the report was generated.","format":"date-time"},"lend_score":{"$ref":"#/components/schemas/LendScore"}},"required":["report_id","generated_time"]},"LendScore":{"type":["object","null"],"additionalProperties":true,"description":"The results of the LendScore","properties":{"score":{"type":["integer","null"],"description":"The score returned by the LendScore model. Will be an integer in the range 1 to 99. Higher scores indicate lower credit risk."},"reason_codes":{"type":"array","description":"The reasons for an individual having risk according to the LendScore. For a full list of possible reason codes and a mapping of reason codes to human-readable reasons, contact your Plaid account manager. Different LendScore versions will use different sets of reason codes.","items":{"type":"string"}},"error_reason":{"type":["string","null"],"description":"Human-readable description of why the LendScore could not be computed."}}},"CraCreditProfileLendScore":{"type":["object","null"],"additionalProperties":true,"description":"An individual LendScore result within a credit profile report.","properties":{"score":{"type":["integer","null"],"description":"The score returned by the LendScore model. Will be an integer in the range 1 to 99. Higher scores indicate lower credit risk."},"reason_codes":{"type":"array","description":"The reasons for an individual having risk according to the LendScore. For a full list of possible reason codes and a mapping of reason codes to human-readable reasons, contact your Plaid account manager. Different LendScore versions will use different sets of reason codes.","items":{"type":"string"}},"variant":{"type":"string","description":"The variant identifier for this LendScore result."},"error_reason":{"type":["string","null"],"description":"Human-readable description of why the LendScore could not be computed."}},"required":["score","reason_codes","variant","error_reason"]},"CraCheckReportNetworkInsightsGetRequest":{"title":"CraCheckReportNetworkInsightsGetRequest","type":"object","description":"CraCheckReportNetworkInsightsGetRequest defines the request schema for `/cra/check_report/network_insights/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"options":{"$ref":"#/components/schemas/CraCheckReportNetworkInsightsGetOptions"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"},"user_token":{"$ref":"#/components/schemas/UserToken"}}},"CraCheckReportNetworkInsightsGetResponse":{"title":"CraCheckReportNetworkInsightsGetResponse","additionalProperties":true,"type":"object","description":"CraCheckReportNetworkInsightsGetResponse defines the response schema for `/cra/check_report/network_insights/get`.","properties":{"report":{"$ref":"#/components/schemas/CraNetworkInsightsReport"},"request_id":{"$ref":"#/components/schemas/RequestID"},"warnings":{"type":"array","description":"If the Network Insights generation was successful but a subset of data could not be retrieved, this array will contain information about the errors causing information to be missing","items":{"$ref":"#/components/schemas/CheckReportWarning"}}},"required":["report","request_id"]},"CraNetworkInsightsReport":{"type":"object","description":"Contains data for the CRA Network Attributes Report.","additionalProperties":true,"properties":{"report_id":{"type":"string","description":"The unique identifier associated with the report object."},"generated_time":{"type":"string","description":"The time when the report was generated.","format":"date-time"},"network_attributes":{"$ref":"#/components/schemas/NetworkInsightsSchema"},"items":{"type":"array","description":"The Items the end user connected in Link.","items":{"$ref":"#/components/schemas/CraNetworkInsightsItem"}}},"required":["report_id","generated_time","network_attributes","items"]},"NetworkInsightsSchema":{"type":"object","title":"NetworkInsights","description":"A map of network attributes, where the key is a string, and the value is a float, int, or boolean. For a full list of attributes, contact your account manager."},"CraCreditProfileNetworkInsightsSchema":{"type":["object","null"],"title":"CraCreditProfileNetworkInsights","description":"A map of network attributes, where the key is a string, and the value is a float, int, or boolean. For a full list of attributes, contact your account manager.","additionalProperties":{}},"CraNetworkInsightsItem":{"type":"object","description":"Contains data about the connected Item.","properties":{"institution_id":{"type":"string","description":"The ID for the institution the user linked."},"institution_name":{"type":"string","description":"The name of the institution the user linked."},"item_id":{"type":"string","description":"The identifier for the Item."}},"required":["institution_id","institution_name","item_id"]},"CraCheckReportVerificationGetRequest":{"title":"CraCheckReportVerificationGetRequest","type":"object","description":"CraCheckReportVerificationGetRequest defines the request schema for `/cra/check_report/verification/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"reports_requested":{"type":"array","description":"Specifies which types of home lending reports are expected in the response","items":{"$ref":"#/components/schemas/CraCheckReportVerificationGetReportType"}},"employment_refresh_options":{"$ref":"#/components/schemas/CraCheckReportVerificationGetEmploymentRefreshOptions"},"user_token":{"$ref":"#/components/schemas/UserToken"}},"required":["reports_requested"]},"CraCheckReportVerificationGetReportType":{"title":"CraCheckReportVerificationGetReportType","type":"string","description":"Type of home lending report.","enum":["VOA","EMPLOYMENT_REFRESH","INCOME"]},"CraCheckReportVerificationGetEmploymentRefreshOptions":{"title":"CraCheckReportVerificationGetEmploymentRefreshOptions","type":["object","null"],"deprecated":true,"description":"Deprecated. This field is no longer accepted for new clients (created on or after 2026-07-01). New clients should specify required products when creating the Consumer Report. Existing integrations may continue to pass `employment_refresh_options`.","properties":{"days_requested":{"type":"integer","description":"The number of days of data to request for the report. This field is required if an Employment Refresh Report is requested. Maximum is 731.","maximum":731}},"required":["days_requested"]},"CraCheckReportVerificationGetResponse":{"title":"CraCheckReportVerificationGetResponse","type":"object","description":"CraCheckReportVerificationGetResponse defines the response schema for `/cra/check_report/verification/get`.","additionalProperties":true,"properties":{"report":{"$ref":"#/components/schemas/CraVerificationReport"},"request_id":{"$ref":"#/components/schemas/RequestID"},"warnings":{"type":"array","description":"If the home lending report generation was successful but a subset of data could not be retrieved, this array will contain information about the errors causing information to be missing.","items":{"$ref":"#/components/schemas/CheckReportWarning"}}},"required":["report","request_id","warnings"]},"CraCheckReportVerificationPdfReportType":{"type":"string","description":"The type of verification PDF report to fetch.","enum":["voa","employment_refresh","income"]},"CraCheckReportVerificationPdfGetRequest":{"title":"CraCheckReportVerificationPdfGetRequest","type":"object","description":"CraCheckReportVerificationPdfGetRequest defines the request schema for `/cra/check_report/verification/pdf/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"},"report_requested":{"deprecated":true,"allOf":[{"$ref":"#/components/schemas/CraCheckReportVerificationPdfReportType"},{"description":"Deprecated. Use `reports_requested` instead."}]},"reports_requested":{"type":"array","description":"Specifies which types of verification reports to include in the returned PDF. Supported combinations are: `[voa]`, `[employment_refresh]`, `[income]`, or `[voa, income]`. Other combinations are not supported.\n","items":{"$ref":"#/components/schemas/CraCheckReportVerificationPdfReportType"},"minItems":1,"uniqueItems":true},"hide_gse_details":{"type":"boolean","description":"If `true`, the GSE identifiers (the Report ID and `gse_reference_id`) are omitted from the returned Home Lending Report PDF. Defaults to `false`. These identifiers are always present in the `/cra/check_report/verification/get` JSON response regardless of this field.\n"},"user_token":{"$ref":"#/components/schemas/UserToken"}}},"CraCheckReportVerificationPdfGetResponse":{"contentMediaType":"application/octet-stream","description":"The verification report in PDF format. Investment account pages may be excluded when recent investment data was unavailable at report generation."},"CraVerificationReport":{"title":"CraVerificationReport","type":"object","description":"Contains data for the CRA Home Lending Report.","additionalProperties":true,"properties":{"report_id":{"type":"string","description":"The unique identifier associated with the Home Lending Report object. This ID will be the same as the Base Report ID."},"gse_reference_id":{"type":"string","description":"A unique token that can be shared with GSEs in order to provide them access to the report. This is automatically created during report generation when GSE options are specified."},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"voa":{"$ref":"#/components/schemas/CraVoaReport"},"employment_refresh":{"$ref":"#/components/schemas/CraEmploymentRefreshReport"},"income":{"$ref":"#/components/schemas/CraVerificationIncomeReport"}},"required":["report_id"]},"CraVoaReportAttributes":{"title":"CraVoaReportAttributes","type":"object","description":"Attributes for the VOA report.","additionalProperties":true,"properties":{"total_inflow_amount":{"$ref":"#/components/schemas/TotalReportInflowAmount"},"total_outflow_amount":{"$ref":"#/components/schemas/TotalReportOutflowAmount"}},"required":["total_inflow_amount","total_outflow_amount"]},"CraVoaReport":{"title":"CraVoaReport","type":["object","null"],"description":"An object representing a VOA report.","additionalProperties":true,"properties":{"generated_time":{"type":"string","format":"date-time","description":"The date and time when the VOA Report was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (e.g. \"2018-04-12T03:32:11Z\")."},"days_requested":{"type":"number","description":"The number of days of transaction history that the VOA report covers."},"items":{"type":"array","description":"Data returned by Plaid about each of the Items included in the Base Report.","items":{"$ref":"#/components/schemas/CraVoaReportItem"}},"attributes":{"$ref":"#/components/schemas/CraVoaReportAttributes"}},"required":["generated_time","days_requested","items","attributes"]},"CraVoaReportItem":{"title":"CraVoaReportItem","type":"object","description":"A representation of an Item within a VOA report.","additionalProperties":true,"properties":{"accounts":{"type":"array","description":"Data about each of the accounts open on the Item. Investment accounts are included only when `include_investments` in `/cra/check_report/create` or `cra_options.include_investments` in `/link/token/create` was `true`. They are excluded if recent investment data was unavailable at report generation.","items":{"$ref":"#/components/schemas/CraVoaReportAccount"}},"institution_name":{"type":"string","description":"The full financial institution name associated with the Item."},"institution_id":{"type":"string","description":"The id of the financial institution associated with the Item."},"item_id":{"$ref":"#/components/schemas/ItemId"},"last_update_time":{"type":"string","format":"date-time","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."}},"required":["accounts","institution_name","institution_id","item_id","last_update_time"]},"CraVoaReportAccount":{"title":"CraVoaReportAccount","type":"object","description":"VOA Report information about an account.","additionalProperties":true,"properties":{"account_id":{"type":"string","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.\n\nIf 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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"balances":{"$ref":"#/components/schemas/CraVoaReportAccountBalances"},"consumer_disputes":{"type":"array","description":"The information about previously submitted valid dispute statements by the consumer","items":{"$ref":"#/components/schemas/ConsumerDispute"}},"mask":{"type":["string","null"],"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."},"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself."},"official_name":{"type":["string","null"],"description":"The official name of the account as given by the financial institution."},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"days_available":{"type":"number","description":"The duration of transaction history available within this report for this Item, typically defined as the time since the date of the earliest transaction in that account."},"transactions_insights":{"$ref":"#/components/schemas/CraVoaReportTransactionsInsights"},"owners":{"type":"array","description":"Data returned by the financial institution about the account owner or owners.","items":{"$ref":"#/components/schemas/Owner"}},"ownership_type":{"$ref":"#/components/schemas/OwnershipType"},"investments":{"$ref":"#/components/schemas/BaseReportInvestments"}},"required":["account_id","balances","consumer_disputes","mask","name","official_name","type","subtype","days_available","transactions_insights","owners","ownership_type"]},"CraVoaReportAccountBalances":{"title":"CraVoaReportAccountBalances","type":"object","description":"VOA Report information about an account's balances.","additionalProperties":true,"properties":{"available":{"type":["number","null"],"format":"double","description":"The amount of funds available to be withdrawn from the account, as determined by the financial institution.\n\nFor `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows.\n\nFor `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.\n\nFor `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.\n\nNote 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`.\n\nAvailable balance may be cached and is not guaranteed to be up-to-date in real-time unless the value was returned by `/accounts/balance/get`.\n\nIf `current` is `null` this field is guaranteed not to be `null`."},"current":{"type":["number","null"],"format":"double","description":"The total amount of funds in or owed by the account.\n\nFor `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.\n\nFor `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.\n\nFor `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.\n\nNote that balance information may be cached unless the value was returned by `/accounts/balance/get`; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require real-time balance information, use the `available` balance as provided by `/accounts/balance/get`.\n\nWhen returned by `/accounts/balance/get`, this field may be `null`. When this happens, `available` is guaranteed not to be `null`."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null."},"unofficial_currency_code":{"type":["string","null"],"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.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."},"historical_balances":{"type":"array","description":"Calculated data about the historical balances on the account.\n\nAvailable for `credit` and `depository` type accounts.","items":{"$ref":"#/components/schemas/CraVoaReportAccountHistoricalBalance"}},"average_balance_30_days":{"type":["number","null"],"format":"double","description":"The average balance in the account over the last 30 days. Calculated using the derived historical balances."},"average_balance_60_days":{"type":["number","null"],"format":"double","description":"The average balance in the account over the last 60 days. Calculated using the derived historical balances."},"nsf_overdraft_transactions_count":{"type":"number","description":"The number of net NSF fee transactions in the time range for the report in the given account (not counting any fees that were reversed within the time range)."}},"required":["available","current","iso_currency_code","unofficial_currency_code","historical_balances","average_balance_30_days","average_balance_60_days","nsf_overdraft_transactions_count"]},"CraVoaReportAccountHistoricalBalance":{"title":"CraVoaReportAccountHistoricalBalance","type":"object","description":"An object representing a balance held by an account in the past.","additionalProperties":true,"properties":{"current":{"type":"number","format":"double","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."},"date":{"type":"string","format":"date","description":"The date of the calculated historical balance, in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)."},"iso_currency_code":{"type":["string","null"],"description":"The ISO-4217 currency code of the balance. Always `null` if `unofficial_currency_code` is non-`null`."},"unofficial_currency_code":{"type":["string","null"],"description":"The unofficial currency code associated with the balance. Always `null` if `iso_currency_code` is non-`null`.\n\nSee the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s."}},"required":["current","date","iso_currency_code","unofficial_currency_code"]},"CraVoaReportTransactionsInsights":{"title":"CraVoaReportTransactionsInsights","type":"object","description":"Transaction data associated with the account.","additionalProperties":true,"properties":{"all_transactions":{"type":"array","description":"Transaction history associated with the account.","items":{"$ref":"#/components/schemas/BaseReportTransaction"}},"end_date":{"type":["string","null"],"format":"date","description":"The latest timeframe provided by the FI, in an ISO 8601 format (YYYY-MM-DD)."},"start_date":{"type":["string","null"],"format":"date","description":"The earliest timeframe provided by the FI, in an ISO 8601 format (YYYY-MM-DD)."}},"required":["all_transactions","end_date","start_date"]},"CraEmploymentRefreshReport":{"title":"CraEmploymentRefreshReport","type":["object","null"],"description":"An object representing an Employment Refresh Report.","additionalProperties":true,"properties":{"generated_time":{"type":"string","format":"date-time","description":"The date and time when the Employment Refresh Report was created, in ISO 8601 format (e.g. \"2018-04-12T03:32:11Z\")."},"days_requested":{"type":"number","description":"The number of days of transaction history that the Employment Refresh Report covers."},"items":{"type":"array","description":"Data returned by Plaid about each of the Items included in the Employment Refresh Report.","items":{"$ref":"#/components/schemas/CraEmploymentRefreshReportItem"}}},"required":["generated_time","days_requested","items"]},"CraEmploymentRefreshReportItem":{"title":"CraEmploymentRefreshReportItem","type":"object","description":"A representation of an Item within an Employment Refresh Report.","additionalProperties":true,"properties":{"accounts":{"type":"array","description":"Data about each of the accounts open on the Item.","items":{"$ref":"#/components/schemas/CraEmploymentRefreshReportAccount"}},"institution_name":{"type":"string","description":"The full financial institution name associated with the Item."},"institution_id":{"type":"string","description":"The id of the financial institution associated with the Item."},"item_id":{"$ref":"#/components/schemas/ItemId"},"last_update_time":{"type":"string","format":"date-time","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."}},"required":["accounts","institution_name","institution_id","item_id","last_update_time"]},"CraEmploymentRefreshReportAccount":{"title":"CraEmploymentRefreshReportAccount","type":"object","description":"Employment Refresh Report information about an account.","additionalProperties":true,"properties":{"account_id":{"type":"string","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.\n\nIf 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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself."},"official_name":{"type":["string","null"],"description":"The official name of the account as given by the financial institution."},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"transactions":{"type":"array","description":"Transaction history associated with the account for the Employment Refresh Report. Note that this transaction differs from a Base Report transaction in that it will only be deposits, and the amounts will be omitted.","items":{"$ref":"#/components/schemas/CraEmploymentRefreshReportTransaction"}}},"required":["account_id","name","official_name","type","subtype","transactions"]},"CraEmploymentRefreshReportTransaction":{"title":"CraEmploymentRefreshReportTransaction","type":"object","description":"A transaction on the Employment Refresh Report. Note that this transaction differs from a Base Report transaction in that it will only be deposits, and the amounts will be omitted.","additionalProperties":true,"properties":{"account_id":{"type":"string","description":"The ID of the account in which this transaction occurred."},"original_description":{"type":"string","description":"The string returned by the financial institution to describe the transaction."},"date":{"type":"string","format":"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` )."},"pending":{"type":"boolean","description":"When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled."},"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."}},"required":["account_id","original_description","date","pending","transaction_id"]},"CraVerificationIncomeReport":{"title":"CraVerificationIncomeReport","type":["object","null"],"description":"An object representing an Income Report within the Home Lending Report.","additionalProperties":true,"properties":{"generated_time":{"type":"string","format":"date-time","description":"The time when the Home Lending Income Report was generated."},"days_requested":{"type":"integer","description":"The number of days requested by the customer for the Home Lending Income Report."},"user_summary":{"$ref":"#/components/schemas/CraVerificationIncomeUserSummary"},"income_streams":{"type":"array","description":"The list of income streams for this user.","items":{"$ref":"#/components/schemas/CraVerificationIncomeStream"}},"items":{"type":"array","description":"The list of Items in the report along with the associated metadata about the Item.","items":{"$ref":"#/components/schemas/CraVerificationIncomeItem"}}},"required":["generated_time","days_requested","user_summary","income_streams","items"]},"CraVerificationIncomeUserSummary":{"title":"CraVerificationIncomeUserSummary","type":["object","null"],"additionalProperties":true,"description":"Aggregated summary of all income streams for this user.","properties":{"income_metrics":{"type":"array","description":"List of a user's aggregated income metrics for each currency.","items":{"$ref":"#/components/schemas/CraVerificationIncomeMetrics"}}},"required":["income_metrics"]},"CraVerificationIncomeMetrics":{"title":"CraVerificationIncomeMetrics","type":"object","additionalProperties":true,"description":"Modeled income metrics for a given income stream or user summary.","properties":{"current":{"$ref":"#/components/schemas/CraVerificationModeledIncome"},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["current","iso_currency_code","unofficial_currency_code"]},"CraVerificationModeledIncome":{"title":"CraVerificationModeledIncome","type":["object","null"],"additionalProperties":true,"description":"Modeled estimate of current income based on recently observed income transactions.","properties":{"monthly":{"$ref":"#/components/schemas/CraVerificationIncomeValues"},"annual":{"$ref":"#/components/schemas/CraVerificationIncomeValues"}},"required":["monthly","annual"]},"CraVerificationIncomeValues":{"title":"CraVerificationIncomeValues","type":"object","additionalProperties":true,"description":"Modeled income values for a given time period.","properties":{"gross_income":{"type":"number","format":"double","description":"Gross Income modeled from trends of observed transactions."},"net_income":{"type":"number","format":"double","description":"Net Income estimated from observed transactions."}},"required":["gross_income","net_income"]},"CraVerificationIncomeStream":{"title":"CraVerificationIncomeStream","type":"object","additionalProperties":true,"description":"An income stream detected for the user.","properties":{"income_stream_id":{"type":"string","description":"A unique identifier for an income stream. If the report is regenerated and a new `report_id` is created, the new report will have a new set of `income_stream_id`s."},"start_date":{"type":"string","format":"date","description":"Minimum of all dates within the specific income stream for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"Maximum of all dates within the specific income stream for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD)."},"description":{"type":"string","description":"The most common name or original description for the underlying income transactions."},"insights":{"$ref":"#/components/schemas/CraVerificationIncomeStreamInsights"},"income_metrics":{"$ref":"#/components/schemas/CraVerificationIncomeMetrics"},"transactions":{"type":"array","description":"The transactions data for the income stream ordered by ascending date.","items":{"$ref":"#/components/schemas/CraVerificationIncomeTransaction"}}},"required":["income_stream_id","start_date","end_date","description","insights","income_metrics","transactions"]},"CraVerificationIncomeStreamInsights":{"title":"CraVerificationIncomeStreamInsights","type":"object","additionalProperties":true,"description":"Modeled insights for a given income stream.","properties":{"income_category":{"$ref":"#/components/schemas/CraVerificationIncomeCategory"},"pay_frequency":{"$ref":"#/components/schemas/CraVerificationIncomePayFrequency"},"income_provider":{"$ref":"#/components/schemas/CraVerificationIncomeProvider"},"status":{"$ref":"#/components/schemas/CraVerificationIncomeStatus"},"next_payment":{"$ref":"#/components/schemas/CraVerificationIncomeNextPayment"}},"required":["income_category","pay_frequency","income_provider","status","next_payment"]},"CraVerificationIncomeCategory":{"title":"CraVerificationIncomeCategory","type":"object","additionalProperties":true,"description":"The income category for a given stream. The streams returned in the response will be filtered based on these primary and secondary income categories.\n\nSee the [Income V2 Category Taxonomy](https://plaid.com/documents/income-v2-category-taxonomy.csv) for a full list of income categories.","properties":{"primary":{"type":"string","description":"A high level category that communicates the broad category of the stream."},"secondary":{"type":"string","description":"A granular category conveying the stream's intent."}},"required":["primary","secondary"]},"CraVerificationIncomePayFrequency":{"title":"CraVerificationIncomePayFrequency","type":"string","description":"The income pay frequency.\n\n`WEEKLY`: Weekly pay frequency.\n\n`BIWEEKLY`: Biweekly pay frequency.\n\n`SEMI_MONTHLY`: Semi-monthly pay frequency.\n\n`MONTHLY`: Monthly pay frequency.\n\n`DAILY`: Daily pay frequency.\n\n`UNKNOWN`: Pay frequency is unknown.","enum":["WEEKLY","BIWEEKLY","SEMI_MONTHLY","MONTHLY","DAILY","UNKNOWN"]},"CraVerificationIncomeProvider":{"title":"CraVerificationIncomeProvider","type":["object","null"],"additionalProperties":true,"description":"The object containing data about the income provider.","properties":{"name":{"type":"string","description":"The name of the income provider."},"is_normalized":{"type":"boolean","description":"Indicates whether the income provider name is normalized by comparing it against a canonical set of known providers."}},"required":["name","is_normalized"]},"CraVerificationIncomeStatus":{"title":"CraVerificationIncomeStatus","type":"string","description":"The status of the income source.\n\n`ACTIVE`: The income source is active.\n\n`INACTIVE`: The income source is inactive.\n\n`UNKNOWN`: The income source status is unknown.","enum":["ACTIVE","INACTIVE","UNKNOWN"]},"CraVerificationIncomeNextPayment":{"title":"CraVerificationIncomeNextPayment","type":["object","null"],"additionalProperties":true,"description":"Metadata of the income stream's next payment.","properties":{"date":{"type":"string","format":"date","description":"The expected date of the income stream's next payment. The date will be returned in an ISO 8601 format (YYYY-MM-DD)."}},"required":["date"]},"CraVerificationIncomeTransaction":{"title":"CraVerificationIncomeTransaction","type":"object","additionalProperties":true,"description":"The transaction data for an income stream.","properties":{"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."},"item_id":{"$ref":"#/components/schemas/ItemId"},"account_id":{"type":"string","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.\n\nIf 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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"amount":{"type":"number","format":"double","description":"The settled value of the transaction, denominated in the transaction's currency as stated in `iso_currency_code` or `unofficial_currency_code`.\nPositive values when money moves out of the account; negative values when money moves in.\nFor example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative."},"date":{"type":"string","format":"date","description":"For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted.\nBoth dates are returned in an ISO 8601 format (YYYY-MM-DD)."},"original_description":{"type":"string","description":"The string returned by the financial institution to describe the transaction."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"},"outlier":{"$ref":"#/components/schemas/CraVerificationIncomeTransactionOutlier"}},"required":["transaction_id","item_id","account_id","amount","date","original_description","iso_currency_code","unofficial_currency_code","outlier"]},"CraVerificationIncomeTransactionOutlier":{"title":"CraVerificationIncomeTransactionOutlier","type":"object","additionalProperties":true,"description":"Metadata on whether this income transaction is an outlier.","properties":{"is_outlier":{"type":"boolean","description":"Indicates whether an income transaction amount is unusually high compared to the amounts for that stream."},"amount":{"type":["number","null"],"format":"double","description":"The amount that the transaction differs from the stream average transaction amount."}},"required":["is_outlier"]},"CraVerificationIncomeItem":{"title":"CraVerificationIncomeItem","type":"object","additionalProperties":true,"description":"The details and metadata for an end user's Item within the Home Lending Income Report.","properties":{"item_id":{"$ref":"#/components/schemas/ItemId"},"accounts":{"type":"array","description":"The Item's accounts that have bank income data.","items":{"$ref":"#/components/schemas/CraVerificationIncomeAccount"}},"last_updated_time":{"type":"string","format":"date-time","description":"The time when this Item's data was last retrieved from the financial institution."},"institution_id":{"type":"string","description":"The unique identifier of the institution associated with the Item."},"institution_name":{"type":"string","description":"The name of the institution associated with the Item."}},"required":["item_id","accounts","last_updated_time","institution_id","institution_name"]},"CraVerificationIncomeAccount":{"title":"CraVerificationIncomeAccount","type":"object","additionalProperties":true,"description":"Account information within the Home Lending Income Report.","properties":{"account_id":{"type":"string","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.\n\nIf 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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"mask":{"type":["string","null"],"description":"The last 2-4 alphanumeric characters of an account's official account number.\nNote 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."},"metadata":{"$ref":"#/components/schemas/CraBankIncomeAccountMetadata"},"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself."},"official_name":{"type":["string","null"],"description":"The official name of the account as given by the financial institution."},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"type":{"$ref":"#/components/schemas/AccountType"}},"required":["account_id","mask","metadata","name","official_name","subtype","type"]},"CraLoansApplicationsRegisterRequest":{"type":"object","description":"CraLoansApplicationsRegisterRequest defines the request schema for `/cra/loans/applications/register`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"applications":{"type":"array","description":"A list of loan applications to register.","items":{"$ref":"#/components/schemas/CraLoanApplication"}}},"required":["applications"]},"CraLoansApplicationsRegisterResponse":{"title":"CraLoansApplicationsRegisterResponse","additionalProperties":true,"type":"object","description":"CraLoansApplicationsRegisterResponse defines the response schema for `/cra/loans/applications/register`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CraLoanApplication":{"type":"object","description":"Contains loan application data.","additionalProperties":true,"properties":{"user_token":{"$ref":"#/components/schemas/CraLoanUserToken"},"application_id":{"$ref":"#/components/schemas/CraLoanApplicationID"},"type":{"$ref":"#/components/schemas/CraLoanType"},"decision":{"$ref":"#/components/schemas/CraLoanApplicationDecision"},"application_date":{"type":"string","format":"date","description":"The date the user applied for the loan. The date should be in ISO 8601 format (YYYY-MM-DD)."},"decision_date":{"type":"string","format":"date","description":"The date when the loan application's decision was made. The date should be in ISO 8601 format (YYYY-MM-DD)."}},"required":["user_token","application_id","type","decision"]},"CraLoanApplicationDecision":{"type":"string","description":"The decision of the loan application.","enum":["APPROVED","DECLINED","OTHER"]},"CRALoansRegisterRequest":{"type":"object","description":"CraLoansRegisterRequest defines the request schema for `/cra/loans/register`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"loans":{"type":"array","description":"A list of loans to register.","items":{"$ref":"#/components/schemas/CraLoanRegister"}}},"required":["loans"]},"CraLoansRegisterResponse":{"title":"CraLoansRegisterResponse","additionalProperties":true,"type":"object","description":"CraLoansRegisterResponse defines the response schema for `/cra/loans/register`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CraLoanRegister":{"type":"object","description":"Contains loan data to register.","additionalProperties":true,"properties":{"user_token":{"$ref":"#/components/schemas/CraLoanUserToken"},"loan_id":{"$ref":"#/components/schemas/CraLoanID"},"type":{"$ref":"#/components/schemas/CraLoanType"},"payment_schedule":{"$ref":"#/components/schemas/CraLoanPaymentSchedule"},"opened_date":{"type":"string","format":"date","description":"The date the loan account was opened. The date should be in ISO 8601 format (YYYY-MM-DD)."},"opened_with_status":{"$ref":"#/components/schemas/CraLoanOpenedStatus"},"loan_amount":{"type":"number","description":"The total amount of the approved loan."},"application":{"$ref":"#/components/schemas/CraLoanRegisterApplication"}},"required":["user_token","loan_id","type","opened_date","payment_schedule","opened_with_status"]},"CraLoanRegisterApplication":{"type":"object","description":"Contains loan application data to register.","additionalProperties":true,"properties":{"application_id":{"$ref":"#/components/schemas/CraLoanApplicationID"},"application_date":{"type":"string","format":"date","description":"The date the user applied for the loan. The date should be in ISO 8601 format (YYYY-MM-DD)."}}},"CraLoansUpdateRequest":{"type":"object","description":"CraLoansUpdateRequest defines the request schema for `/cra/loans/update`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"loans":{"type":"array","description":"A list of loans to update.","items":{"$ref":"#/components/schemas/CraLoanUpdate"}}},"required":["loans"]},"CraLoansUpdateResponse":{"title":"CraLoansUpdateResponse","additionalProperties":true,"type":"object","description":"CraLoansUpdateResponse defines the response schema for `/cra/loans/update`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CraLoanUpdate":{"type":"object","description":"Contains loan data to update.","additionalProperties":true,"properties":{"loan_id":{"$ref":"#/components/schemas/CraLoanID"},"status_history":{"type":"array","description":"A list of status update history of the loan.","items":{"$ref":"#/components/schemas/CraLoanStatusHistoryUpdate"}},"payment_history":{"type":"array","description":"The updates to the payment history for the loan.","items":{"$ref":"#/components/schemas/CraLoanPaymentHistory"}}}},"CraLoanStatusHistoryUpdate":{"type":"object","description":"Contains the status and date of an update to the loan.","additionalProperties":true,"properties":{"status":{"$ref":"#/components/schemas/CraLoanStatus"},"date":{"$ref":"#/components/schemas/CraLoanStatusEffectiveDate"}},"required":["status","date"]},"CraLoanPaymentHistory":{"type":"object","description":"Contains the payment information for a loan payment period.","additionalProperties":true,"properties":{"period":{"type":"integer","description":"The index to identify the loan's payment period, starting from 1.\nFor example:\n  1 means the period between the loan's opening date and the 1st payment due date.\n  2 means the period between the loan's 1st payment due date and 2nd payment due date."},"due_date":{"type":"string","format":"date","description":"The payment due date or end date of the payment period. The date should be in ISO 8601 format (YYYY-MM-DD)."},"days_past_due":{"type":"integer","description":"The number of days the loan was delinquent at the end of the pay period.\nIf specified, should be greater than or equal to 0."},"amount_past_due":{"type":"number","description":"The amount past due or the charge-off amount of the loan at the end of the payment period."},"balance_remaining":{"type":"number","description":"The balance remaining on the loan at the end of the payment period."}},"required":["period","due_date","days_past_due"]},"CraLoansUnregisterRequest":{"type":"object","description":"CraLoansUnregisterRequest defines the request schema for `/cra/loans/unregister`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"loans":{"type":"array","description":"A list of loans to unregister.","items":{"$ref":"#/components/schemas/CraLoanUnregister"}}},"required":["loans"]},"CraLoanUnregisterResponse":{"title":"CraLoanUnregisterResponse","additionalProperties":true,"type":"object","description":"CraLoanUnregisterResponse defines the response schema for `/cra/loans/unregister`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"CraLoanUnregister":{"type":"object","description":"Contains loan data for the loan being unregistered.","additionalProperties":true,"properties":{"loan_id":{"$ref":"#/components/schemas/CraLoanID"},"closed_with_status":{"$ref":"#/components/schemas/CraLoanClosedStatus"}},"required":["loan_id","closed_with_status"]},"CraLoanType":{"type":"string","description":"The type of loan the user applied for.","enum":["PERSONAL","CREDIT_CARD","BUSINESS","MORTGAGE","AUTO","PAYDAY","STUDENT","HOME_EQUITY","OTHER"]},"CraLoanPaymentSchedule":{"type":"string","description":"The frequency of a loan's payment schedule.\n`BIWEEKLY` represents one payment every two weeks.","enum":["DAILY","WEEKLY","BIWEEKLY","MONTHLY","QUARTERLY","ANNUALLY","OTHER"]},"CraLoanStatus":{"type":"string","description":"The status of the loan.","enum":["APPROVED","DECLINED","BOOKED","CURRENT","DELINQUENT","DEFAULT","CHARGED_OFF","TRANSFERRED","PAID_OFF","OTHER"]},"CraLoanStatusEffectiveDate":{"type":"string","format":"date","description":"The effective date for the status of the loan. The date should be in ISO 8601 format (YYYY-MM-DD)."},"CraLoanUserToken":{"type":"string","description":"The user token for the user associated with the loan."},"CraLoanApplicationID":{"type":"string","description":"A unique identifier for the loan application.\nPersonally identifiable information, such as an email address or phone number, should not be used in the `application_id`."},"CraLoanID":{"type":"string","description":"A unique identifier for the loan.\nPersonally identifiable information, such as an email address or phone number, should not be used in the `loan_id`."},"CraLoanOpenedStatus":{"type":"object","description":"Contains the status and date information of the loan when registering.","additionalProperties":true,"properties":{"status":{"$ref":"#/components/schemas/CraLoanStatus"},"date":{"$ref":"#/components/schemas/CraLoanStatusEffectiveDate"}},"required":["status","date"]},"CraUserTier":{"type":["string","null"],"description":"The tier of the user.","x-hidden-from-docs":true,"enum":["free","paid",null]},"CraLoanClosedStatus":{"type":"object","description":"Contains the status and date information of the loan when unregistering.","additionalProperties":true,"properties":{"status":{"$ref":"#/components/schemas/CraLoanStatus"},"date":{"$ref":"#/components/schemas/CraLoanStatusEffectiveDate"}},"required":["status","date"]},"CraCreditProfileReportGetRequest":{"title":"CraCreditProfileReportGetRequest","type":"object","description":"CraCreditProfileReportGetRequest defines the request schema for `/cra/credit_profile/report/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"consumer_report_permissible_purpose":{"$ref":"#/components/schemas/ConsumerReportPermissiblePurpose"},"client_report_id":{"type":"string","description":"Client-generated identifier, which can be used by lenders to track loan applications."},"report_type":{"$ref":"#/components/schemas/CraCreditProfileReportType"},"inquiry_type":{"$ref":"#/components/schemas/CraCreditProfileInquiryType"},"version":{"$ref":"#/components/schemas/CraCreditProfileReportVersion"}},"required":["user_id","consumer_report_permissible_purpose","client_report_id","report_type","inquiry_type","version"]},"CraCreditProfileReportVersion":{"type":"string","description":"The version of the credit profile report to retrieve.","enum":["v1"]},"CraCreditProfileInquiryType":{"type":"string","description":"The inquiry type of credit profile report.","enum":["SOFT_INQUIRY","STANDARD_INQUIRY"]},"CraCreditProfileReportType":{"type":"string","description":"The product type for the credit profile report request.","enum":["QUALIFY"]},"CraCreditProfileReportGetResponse":{"title":"CraCreditProfileReportGetResponse","additionalProperties":true,"type":"object","description":"CraCreditProfileReportGetResponse defines the response schema for `/cra/credit_profile/report/get`.","properties":{"report":{"$ref":"#/components/schemas/CraCreditProfileReport"},"request_id":{"$ref":"#/components/schemas/RequestID"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"warnings":{"type":"array","description":"If the report generation was successful but a subset of data could not be retrieved, this array will contain information about the errors causing information to be missing","items":{"$ref":"#/components/schemas/CheckReportWarning"}}},"required":["report","request_id","warnings"]},"CraCreditProfileReport":{"type":"object","description":"Contains data for the CRA Credit Profile Report.","additionalProperties":true,"properties":{"date_retrieved":{"type":"string","description":"The time when the report was retrieved.","format":"date-time"},"inquiry_type":{"$ref":"#/components/schemas/CraCreditProfileInquiryType"},"client_report_id":{"type":"string","description":"Client-generated identifier, which can be used by lenders to track loan applications."},"lend_scores":{"type":"array","description":"The LendScore results for the credit profile report.","items":{"$ref":"#/components/schemas/CraCreditProfileLendScore"}},"cashflow_insights_attributes":{"$ref":"#/components/schemas/CraCreditProfileCashflowAttributesSchema"},"network_insights_attributes":{"$ref":"#/components/schemas/CraCreditProfileNetworkInsightsSchema"},"metadata":{"$ref":"#/components/schemas/CraCreditProfileReportMetadata"}},"required":["date_retrieved","inquiry_type","client_report_id","lend_scores","cashflow_insights_attributes","network_insights_attributes","metadata"]},"CraCreditProfileReportMetadata":{"type":["object","null"],"description":"Metadata about the CRA Credit Profile Report.","additionalProperties":true,"properties":{"item_count":{"type":"integer","description":"The number of items used to calculate the report."},"institution_ids":{"type":"array","description":"The institution IDs associated with the report.","items":{"type":"string"}},"account_count":{"type":"integer","description":"The total number of accounts in the report."},"primary_account_count":{"type":"integer","description":"The number of primary accounts in the report."},"depository_account_type_count":{"type":"integer","description":"The number of depository accounts in the report."},"credit_account_type_count":{"type":"integer","description":"The number of credit accounts in the report."},"investment_account_type_count":{"type":"integer","description":"The number of investment accounts in the report."},"other_account_type_count":{"type":"integer","description":"The number of accounts that are neither depository, credit, nor investment."},"multiple_owner_account_count":{"type":"integer","description":"The number of accounts with multiple owners in the report."},"generated_at":{"type":"string","format":"date-time","description":"The time when the report was generated."},"oldest_transaction_date":{"type":"string","format":"date","description":"The date of the oldest transaction in the report."},"most_recent_transaction_date":{"type":"string","format":"date","description":"The date of the most recent transaction in the report."}},"required":["item_count","institution_ids","account_count","primary_account_count","depository_account_type_count","credit_account_type_count","investment_account_type_count","other_account_type_count","multiple_owner_account_count","generated_at","oldest_transaction_date","most_recent_transaction_date"]},"CraBaseReportProductConfig":{"title":"CraBaseReportProductConfig","type":"object","additionalProperties":true,"description":"The Base Report product at a given version. Base Report accepts no additional configuration today.","properties":{"product":{"type":"string","enum":["cra_base_report"],"description":"The Base Report product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraIncomeInsightsProductConfig":{"title":"CraIncomeInsightsProductConfig","type":"object","additionalProperties":true,"description":"The Income Insights product at a given version, together with options for additional configuration.","properties":{"product":{"type":"string","enum":["cra_income_insights"],"description":"The Income Insights product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"options":{"$ref":"#/components/schemas/CraCheckReportCreateIncomeInsightsOptions"}},"required":["product","version"]},"CraQualifyProductConfig":{"title":"CraQualifyProductConfig","type":"object","additionalProperties":true,"description":"The Qualify product at a given version. Qualify accepts no additional configuration today.","properties":{"product":{"type":"string","enum":["cra_qualify"],"description":"The Qualify product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraIncomeInsightsProduct":{"title":"CraIncomeInsightsProduct","type":"object","additionalProperties":true,"description":"Names the Income Insights product at a given version.","properties":{"product":{"type":"string","enum":["cra_income_insights"],"description":"The Income Insights product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraQualifyProduct":{"title":"CraQualifyProduct","type":"object","additionalProperties":true,"description":"Names the Qualify product at a given version.","properties":{"product":{"type":"string","enum":["cra_qualify"],"description":"The Qualify product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraHomeLendingProduct":{"title":"CraHomeLendingProduct","type":"object","additionalProperties":true,"description":"Names the Home Lending product at a given version.","properties":{"product":{"type":"string","enum":["cra_home_lending"],"description":"The Home Lending product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraBaseReportProduct":{"title":"CraBaseReportProduct","type":"object","additionalProperties":true,"description":"Names the Base Report product at a given version.","properties":{"product":{"type":"string","enum":["cra_base_report"],"description":"The Base Report product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraLendScoreVariant":{"title":"CraLendScoreVariant","type":"string","description":"The variant identifier for a LendScore result.","enum":["GENERALIST","AUTO","MORTGAGE","SHORT_TERM_LOANS","ARC"]},"CraReportGetLendScoreOptions":{"title":"CraReportGetLendScoreOptions","type":["object","null"],"description":"Configures which LendScore variants are retrieved. Omit when retrieving a report generated by `/cra/report/create` or `/link/token/create`; the report is returned with the options it was generated with.","properties":{"variants":{"type":"array","description":"The LendScore variants to retrieve. If omitted or empty, `GENERALIST` is returned. When specified, `GENERALIST` must be included. A variant listed more than once is returned once. Only supported for version `V2`.","items":{"$ref":"#/components/schemas/CraLendScoreVariant"}}}},"CraLendScoreProduct":{"title":"CraLendScoreProduct","type":"object","additionalProperties":true,"description":"Names the LendScore product at a given version, with options for selecting variants.","properties":{"product":{"type":"string","enum":["cra_lend_score"],"description":"The LendScore product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"options":{"$ref":"#/components/schemas/CraReportGetLendScoreOptions"}},"required":["product","version"]},"CraCashflowInsightsProduct":{"title":"CraCashflowInsightsProduct","type":"object","additionalProperties":true,"description":"Names the Cashflow Insights product at a given version.","properties":{"product":{"type":"string","enum":["cra_cashflow_insights"],"description":"The Cashflow Insights product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraNetworkInsightsProduct":{"title":"CraNetworkInsightsProduct","type":"object","additionalProperties":true,"description":"Names the Network Insights product at a given version.","properties":{"product":{"type":"string","enum":["cra_network_insights"],"description":"The Network Insights product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraReportGetLendScoreCompleteOptions":{"title":"CraReportGetLendScoreCompleteOptions","type":["object","null"],"description":"Configures which LendScore variants are retrieved with the LendScore Complete product bundle. Omit when retrieving a report generated by `/cra/report/create` or `/link/token/create`; the report is returned with the options it was generated with.","properties":{"variants":{"type":"array","description":"The LendScore variants to retrieve. If omitted or empty, `GENERALIST` is returned. When specified, `GENERALIST` must be included. A variant listed more than once is returned once. Only supported for LendScore Complete version `V2`.","items":{"$ref":"#/components/schemas/CraLendScoreVariant"}}}},"CraLendScoreCompleteBundleProduct":{"title":"CraLendScoreCompleteBundleProduct","type":"object","additionalProperties":true,"description":"Names the LendScore Complete product bundle at a given version, with options for selecting LendScore variants.","properties":{"product":{"type":"string","enum":["cra_lend_score_complete"],"description":"The LendScore Complete product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"options":{"$ref":"#/components/schemas/CraReportGetLendScoreCompleteOptions"}},"required":["product","version"]},"CraIncomeCompleteBundleProduct":{"title":"CraIncomeCompleteBundleProduct","type":"object","additionalProperties":true,"description":"Names the Income Complete product bundle at a given version.","properties":{"product":{"type":"string","enum":["cra_income_complete"],"description":"The Income Complete product discriminator."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraReportGetRequestProduct":{"title":"CraReportGetRequestProduct","description":"CraReportGetRequestProduct specifies one product and version requested from `/cra/report/get`, selected by the `product` discriminator.","oneOf":[{"$ref":"#/components/schemas/CraQualifyProduct"},{"$ref":"#/components/schemas/CraIncomeInsightsProduct"},{"$ref":"#/components/schemas/CraHomeLendingProduct"},{"$ref":"#/components/schemas/CraBaseReportProduct"},{"$ref":"#/components/schemas/CraLendScoreProduct"},{"$ref":"#/components/schemas/CraCashflowInsightsProduct"},{"$ref":"#/components/schemas/CraNetworkInsightsProduct"},{"$ref":"#/components/schemas/CraLendScoreCompleteBundleProduct"},{"$ref":"#/components/schemas/CraIncomeCompleteBundleProduct"}],"discriminator":{"propertyName":"product","mapping":{"cra_qualify":"#/components/schemas/CraQualifyProduct","cra_income_insights":"#/components/schemas/CraIncomeInsightsProduct","cra_home_lending":"#/components/schemas/CraHomeLendingProduct","cra_base_report":"#/components/schemas/CraBaseReportProduct","cra_lend_score":"#/components/schemas/CraLendScoreProduct","cra_cashflow_insights":"#/components/schemas/CraCashflowInsightsProduct","cra_network_insights":"#/components/schemas/CraNetworkInsightsProduct","cra_lend_score_complete":"#/components/schemas/CraLendScoreCompleteBundleProduct","cra_income_complete":"#/components/schemas/CraIncomeCompleteBundleProduct"}}},"CraReportCreateBaseReportOptions":{"title":"CraReportCreateBaseReportOptions","type":["object","null"],"description":"Configures how the Base Report product is generated.","properties":{"require_identity":{"type":["boolean","null"],"description":"Require the report to include identity information. If identity information is not available, report generation fails."}}},"CraReportCreateIncomeInsightsOptions":{"title":"CraReportCreateIncomeInsightsOptions","type":["object","null"],"description":"Configures how the Income Insights product is generated.","properties":{"income_insights_filter":{"$ref":"#/components/schemas/IncomeInsightsFilter"}}},"CraReportCreateLendScoreOptions":{"title":"CraReportCreateLendScoreOptions","type":["object","null"],"description":"Configures how the LendScore product is generated.","properties":{"variants":{"type":"array","description":"The LendScore variants to generate. If omitted or empty, only `GENERALIST` is generated. When specified, `GENERALIST` must be included. A variant listed more than once is generated once. Only supported for version `V2`.","items":{"$ref":"#/components/schemas/CraLendScoreVariant"}}}},"CraReportCreateBaseReportProductConfig":{"title":"CraReportCreateBaseReportProductConfig","type":"object","additionalProperties":true,"description":"Requests the given version of the Base Report product, optionally configuring how it is generated.","properties":{"product":{"type":"string","enum":["cra_base_report"],"description":"Set to `cra_base_report` to request the Base Report product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"options":{"$ref":"#/components/schemas/CraReportCreateBaseReportOptions"}},"required":["product","version"]},"CraReportCreateCashflowInsightsProductConfig":{"title":"CraReportCreateCashflowInsightsProductConfig","type":"object","additionalProperties":true,"description":"Requests the given version of the Cashflow Insights product. Cashflow Insights accepts no additional configuration today.","properties":{"product":{"type":"string","enum":["cra_cashflow_insights"],"description":"Set to `cra_cashflow_insights` to request the Cashflow Insights product."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraReportCreateHomeLendingProductConfig":{"title":"CraReportCreateHomeLendingProductConfig","type":"object","additionalProperties":true,"description":"Requests the given version of the Home Lending product. Home Lending accepts no additional configuration today.","properties":{"product":{"type":"string","enum":["cra_home_lending"],"description":"Set to `cra_home_lending` to request the Home Lending product."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraReportCreateIncomeInsightsProductConfig":{"title":"CraReportCreateIncomeInsightsProductConfig","type":"object","additionalProperties":true,"description":"Requests the given version of the Income Insights product, optionally configuring how it is generated.","properties":{"product":{"type":"string","enum":["cra_income_insights"],"description":"Set to `cra_income_insights` to request the Income Insights product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"options":{"$ref":"#/components/schemas/CraReportCreateIncomeInsightsOptions"}},"required":["product","version"]},"CraReportCreateLendScoreProductConfig":{"title":"CraReportCreateLendScoreProductConfig","type":"object","additionalProperties":true,"description":"Requests the given version of the LendScore product, optionally configuring how it is generated.","properties":{"product":{"type":"string","enum":["cra_lend_score"],"description":"Set to `cra_lend_score` to request the LendScore product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"options":{"$ref":"#/components/schemas/CraReportCreateLendScoreOptions"}},"required":["product","version"]},"CraReportCreateNetworkInsightsProductConfig":{"title":"CraReportCreateNetworkInsightsProductConfig","type":"object","additionalProperties":true,"description":"Requests the given version of the Network Insights product. Network Insights accepts no additional configuration today.","properties":{"product":{"type":"string","enum":["cra_network_insights"],"description":"Set to `cra_network_insights` to request the Network Insights product."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraReportCreateQualifyProductConfig":{"title":"CraReportCreateQualifyProductConfig","x-hidden-from-docs":true,"type":"object","additionalProperties":true,"description":"Requests the given version of the Qualify product. Qualify accepts no additional configuration today.","properties":{"product":{"type":"string","enum":["cra_qualify"],"description":"Set to `cra_qualify` to request the Qualify product."},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraReportCreateLendScoreCompleteOptions":{"title":"CraReportCreateLendScoreCompleteOptions","type":["object","null"],"description":"Configures how the LendScore Complete product bundle is generated.","properties":{"variants":{"type":"array","description":"The LendScore variants to generate. If omitted or empty, only `GENERALIST` is generated. When specified, `GENERALIST` must be included. A variant listed more than once is generated once. Only supported for LendScore Complete version `V2`.","items":{"$ref":"#/components/schemas/CraLendScoreVariant"}}}},"CraReportCreateLendScoreCompleteBundleProductConfig":{"title":"CraReportCreateLendScoreCompleteBundleProductConfig","type":"object","additionalProperties":true,"description":"Requests the given version of the LendScore Complete product bundle, which combines LendScore with the Cashflow Insights and Network Insights attributes it was computed from. The Items and accounts used to generate it are returned only when the report's `scope` is `CLIENT_USER`.","properties":{"product":{"type":"string","enum":["cra_lend_score_complete"],"description":"Set to `cra_lend_score_complete` to request the LendScore Complete product bundle."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"options":{"$ref":"#/components/schemas/CraReportCreateLendScoreCompleteOptions"}},"required":["product","version"]},"CraReportCreateIncomeCompleteOptions":{"title":"CraReportCreateIncomeCompleteOptions","type":["object","null"],"description":"Configures how the Income Complete product bundle is generated.","properties":{"income_insights_filter":{"$ref":"#/components/schemas/IncomeInsightsFilter"}}},"CraReportCreateIncomeCompleteBundleProductConfig":{"title":"CraReportCreateIncomeCompleteBundleProductConfig","type":"object","additionalProperties":true,"description":"Requests the given version of the Income Complete product bundle, optionally configuring how it is generated. Income Complete bundles Income Insights with the Items and accounts used to generate it, which are returned only when the report's `scope` is `CLIENT_USER`.","properties":{"product":{"type":"string","enum":["cra_income_complete"],"description":"Set to `cra_income_complete` to request the Income Complete product bundle."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"options":{"$ref":"#/components/schemas/CraReportCreateIncomeCompleteOptions"}},"required":["product","version"]},"CraReportProduct":{"title":"CraReportProduct","description":"A Plaid Check product and version to generate for the report, with the options that apply to that product, selected by the `product` field.","oneOf":[{"$ref":"#/components/schemas/CraReportCreateBaseReportProductConfig"},{"$ref":"#/components/schemas/CraReportCreateCashflowInsightsProductConfig"},{"$ref":"#/components/schemas/CraReportCreateHomeLendingProductConfig"},{"$ref":"#/components/schemas/CraReportCreateIncomeInsightsProductConfig"},{"$ref":"#/components/schemas/CraReportCreateLendScoreProductConfig"},{"$ref":"#/components/schemas/CraReportCreateNetworkInsightsProductConfig"},{"$ref":"#/components/schemas/CraReportCreateQualifyProductConfig"},{"$ref":"#/components/schemas/CraReportCreateLendScoreCompleteBundleProductConfig"},{"$ref":"#/components/schemas/CraReportCreateIncomeCompleteBundleProductConfig"}],"discriminator":{"propertyName":"product","mapping":{"cra_base_report":"#/components/schemas/CraReportCreateBaseReportProductConfig","cra_cashflow_insights":"#/components/schemas/CraReportCreateCashflowInsightsProductConfig","cra_home_lending":"#/components/schemas/CraReportCreateHomeLendingProductConfig","cra_income_insights":"#/components/schemas/CraReportCreateIncomeInsightsProductConfig","cra_lend_score":"#/components/schemas/CraReportCreateLendScoreProductConfig","cra_network_insights":"#/components/schemas/CraReportCreateNetworkInsightsProductConfig","cra_qualify":"#/components/schemas/CraReportCreateQualifyProductConfig","cra_lend_score_complete":"#/components/schemas/CraReportCreateLendScoreCompleteBundleProductConfig","cra_income_complete":"#/components/schemas/CraReportCreateIncomeCompleteBundleProductConfig"}}},"CraReportId":{"title":"CraReportId","type":"string","description":"A unique ID identifying a Consumer Report. Like all Plaid identifiers, this ID is case sensitive."},"CraReportCreateRequest":{"title":"CraReportCreateRequest","type":"object","description":"CraReportCreateRequest defines the request schema for `/cra/report/create`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"products":{"type":"array","description":"The Plaid Check products, versions, and options to generate for the report.","minItems":1,"items":{"$ref":"#/components/schemas/CraReportProduct"},"x-override-enum-values-shown":["cra_base_report","cra_income_insights","cra_cashflow_insights","cra_lend_score","cra_network_insights","cra_home_lending","cra_lend_score_complete","cra_income_complete"]},"scope":{"allOf":[{"$ref":"#/components/schemas/CraReportScope"},{"description":"Determines which Items are used to generate the report. `PLAID_NETWORK` uses the Plaid Network view of the user's profile. `CLIENT_USER` uses only the Items linked by this client."}]},"decision_stage":{"$ref":"#/components/schemas/CraReportDecisionStage"},"consumer_report_permissible_purpose":{"allOf":[{"$ref":"#/components/schemas/ConsumerReportPermissiblePurpose"},{"description":"Describes the reason you are generating a Consumer Report for this user. The purpose must be one of the allowable permissible purposes for the `decision_stage`.\n\n`EXTENSION_OF_CREDIT`: In connection with a credit transaction initiated by and involving the consumer pursuant to FCRA Section 604(a)(3)(A).\n\n`LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING`: For a legitimate business need in connection with a business transaction initiated by the consumer primarily for personal, family, or household purposes in connection with a property rental assessment pursuant to FCRA Section 604(a)(3)(F)(i).\n\n`LEGITIMATE_BUSINESS_NEED_OTHER`: For a legitimate business need in connection with a business transaction made primarily for personal, family, or household initiated by the consumer pursuant to FCRA Section 604(a)(3)(F)(i).\n\n`WRITTEN_INSTRUCTION_PREQUALIFICATION`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), to evaluate an application's profile to make an offer to the consumer.\n\n`WRITTEN_INSTRUCTION_OTHER`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.\n\n`ELIGIBILITY_FOR_GOVT_BENEFITS`: In connection with an eligibility determination for a government benefit where the entity is required to consider an applicant's financial status pursuant to FCRA Section 604(a)(3)(D).\n\n`INSURANCE_UNDERWRITING`: In connection with the underwriting of insurance involving the consumer pursuant to FCRA Section 604(a)(3)(C)."}],"x-override-enum-values-shown":["EXTENSION_OF_CREDIT","LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING","LEGITIMATE_BUSINESS_NEED_OTHER","WRITTEN_INSTRUCTION_PREQUALIFICATION","WRITTEN_INSTRUCTION_OTHER","ELIGIBILITY_FOR_GOVT_BENEFITS","INSURANCE_UNDERWRITING"]},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"days_requested":{"type":["integer","null"],"description":"The number of days of history to include in Plaid Check products. Maximum is 731. If a value lower than 180 is provided, a minimum of 180 days of history will be requested.","minimum":0,"maximum":731},"days_required":{"type":["integer","null"],"description":"The minimum number of days of data required for the report to be successfully generated.","minimum":0,"maximum":184},"include_investments":{"type":["boolean","null"],"description":"Indicates that investment data should be extracted from the linked account(s)."},"include_identity_match":{"type":["boolean","null"],"description":"Indicates that identity match results should be included for all products in the report that contain identity information. Defaults to `false`."},"webhook":{"type":"string","format":"url","description":"The destination URL to which the report's webhooks will be sent."}},"required":["user_id","products","scope","decision_stage","consumer_report_permissible_purpose"]},"CraReportCreateResponse":{"title":"CraReportCreateResponse","additionalProperties":true,"type":"object","description":"CraReportCreateResponse defines the response schema for `/cra/report/create`.","properties":{"report_id":{"allOf":[{"$ref":"#/components/schemas/CraReportId"},{"description":"The identifier of the report being generated. Use it to retrieve the report once its products are ready."}]},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["report_id","request_id"]},"CraReportGetRequest":{"title":"CraReportGetRequest","type":"object","description":"CraReportGetRequest defines the request schema for `/cra/report/get`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"products":{"type":"array","description":"The requested products and their versions, e.g. `[{\"product\":\"cra_income_insights\",\"version\":\"V2\"}]`.","minItems":1,"items":{"$ref":"#/components/schemas/CraReportGetRequestProduct"},"x-override-enum-values-shown":["cra_qualify","cra_base_report","cra_income_insights","cra_cashflow_insights","cra_lend_score","cra_network_insights","cra_home_lending","cra_lend_score_complete","cra_income_complete"]},"scope":{"$ref":"#/components/schemas/CraReportScope"},"decision_stage":{"$ref":"#/components/schemas/CraReportDecisionStage"},"consumer_report_permissible_purpose":{"allOf":[{"$ref":"#/components/schemas/ConsumerReportPermissiblePurpose"},{"description":"Describes the reason you are generating a Consumer Report for this user. The purpose must be one of the allowable permissible purposes for the `decision_stage`.\n\n`EXTENSION_OF_CREDIT`: In connection with a credit transaction initiated by and involving the consumer pursuant to FCRA Section 604(a)(3)(A).\n\n`LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING`: For a legitimate business need in connection with a business transaction initiated by the consumer primarily for personal, family, or household purposes in connection with a property rental assessment pursuant to FCRA Section 604(a)(3)(F)(i).\n\n`LEGITIMATE_BUSINESS_NEED_OTHER`: For a legitimate business need in connection with a business transaction made primarily for personal, family, or household initiated by the consumer pursuant to FCRA Section 604(a)(3)(F)(i).\n\n`WRITTEN_INSTRUCTION_PREQUALIFICATION`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), to evaluate an application's profile to make an offer to the consumer.\n\n`WRITTEN_INSTRUCTION_OTHER`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.\n\n`ELIGIBILITY_FOR_GOVT_BENEFITS`: In connection with an eligibility determination for a government benefit where the entity is required to consider an applicant's financial status pursuant to FCRA Section 604(a)(3)(D).\n\n`INSURANCE_UNDERWRITING`: In connection with the underwriting of insurance involving the consumer pursuant to FCRA Section 604(a)(3)(C)."}],"x-override-enum-values-shown":["EXTENSION_OF_CREDIT","LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING","LEGITIMATE_BUSINESS_NEED_OTHER","WRITTEN_INSTRUCTION_PREQUALIFICATION","WRITTEN_INSTRUCTION_OTHER","ELIGIBILITY_FOR_GOVT_BENEFITS","INSURANCE_UNDERWRITING"]},"report_id":{"allOf":[{"$ref":"#/components/schemas/CraReportId"},{"description":"A unique ID identifying a Consumer Report. Like all Plaid identifiers, this ID is case sensitive. When provided, that specific report is returned; when omitted, the most recent report matching the request is returned. Omit this field when retrieving a report without a prior `/cra/report/create` or `/link/token/create` request."}]}},"required":["user_id","products","decision_stage","consumer_report_permissible_purpose"]},"CraReportGetReport":{"title":"CraReportGetReport","type":"object","additionalProperties":true,"description":"The Consumer Report returned by `/cra/report/get`.","properties":{"report_id":{"anyOf":[{"allOf":[{"$ref":"#/components/schemas/CraReportId"},{"description":"The identifier of the report that was returned. Pass this value to `/cra/report/get` to retrieve the same report again. `null` if the returned report has no stored identifier."}]},{"type":"null"}]},"client_report_id":{"type":["string","null"],"description":"Client-generated identifier, which can be used by lenders to track loan applications."},"retrieved_time":{"type":"string","format":"date-time","description":"The date and time the report was retrieved."},"scope":{"$ref":"#/components/schemas/CraReportScope"},"decision_stage":{"$ref":"#/components/schemas/CraReportDecisionStage"},"consumer_report_permissible_purpose":{"allOf":[{"$ref":"#/components/schemas/ConsumerReportPermissiblePurpose"},{"description":"Describes the reason you are generating a Consumer Report for this user. The purpose must be one of the allowable permissible purposes for the `decision_stage`.\n\n`EXTENSION_OF_CREDIT`: In connection with a credit transaction initiated by and involving the consumer pursuant to FCRA Section 604(a)(3)(A).\n\n`LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING`: For a legitimate business need in connection with a business transaction initiated by the consumer primarily for personal, family, or household purposes in connection with a property rental assessment pursuant to FCRA Section 604(a)(3)(F)(i).\n\n`LEGITIMATE_BUSINESS_NEED_OTHER`: For a legitimate business need in connection with a business transaction made primarily for personal, family, or household initiated by the consumer pursuant to FCRA Section 604(a)(3)(F)(i).\n\n`WRITTEN_INSTRUCTION_PREQUALIFICATION`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), to evaluate an application's profile to make an offer to the consumer.\n\n`WRITTEN_INSTRUCTION_OTHER`: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.\n\n`ELIGIBILITY_FOR_GOVT_BENEFITS`: In connection with an eligibility determination for a government benefit where the entity is required to consider an applicant's financial status pursuant to FCRA Section 604(a)(3)(D).\n\n`INSURANCE_UNDERWRITING`: In connection with the underwriting of insurance involving the consumer pursuant to FCRA Section 604(a)(3)(C)."}],"x-override-enum-values-shown":["EXTENSION_OF_CREDIT","LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING","LEGITIMATE_BUSINESS_NEED_OTHER","WRITTEN_INSTRUCTION_PREQUALIFICATION","WRITTEN_INSTRUCTION_OTHER","ELIGIBILITY_FOR_GOVT_BENEFITS","INSURANCE_UNDERWRITING"]},"products":{"type":"array","description":"Per-product report data. Each entry corresponds to one requested product.","items":{"$ref":"#/components/schemas/CraReportGetResponseProduct"}}},"required":["report_id","client_report_id","retrieved_time","scope","decision_stage","consumer_report_permissible_purpose","products"]},"CraReportErrorCode":{"title":"CraReportErrorCode","type":["string","null"],"description":"The reason every product in a Consumer Report failed to generate. `null` when at least one product succeeded.\n\n`DATA_UNAVAILABLE`: Plaid could not retrieve enough data from the user's Items to generate any of the requested products. Sending the user through Link to add or repair Items may resolve this.\n\n`INTERNAL_SERVER_ERROR`: Plaid encountered an unexpected error while generating the report.","enum":["DATA_UNAVAILABLE","INTERNAL_SERVER_ERROR",null]},"CraReportScope":{"title":"CraReportScope","type":"string","enum":["PLAID_NETWORK","CLIENT_USER"],"description":"Determines whose items are used. `PLAID_NETWORK` (default) uses the Plaid Network view of the user's profile. `CLIENT_USER` uses only the items linked by this client."},"CreditProduct":{"title":"CreditProduct","type":"object","description":"A product included in a Consumer Report, along with the version that was generated.","properties":{"product":{"allOf":[{"$ref":"#/components/schemas/Products"}],"x-override-enum-values-shown":["cra_base_report","cra_income_insights","cra_cashflow_insights","cra_lend_score","cra_network_insights"]},"version":{"$ref":"#/components/schemas/CraProductVersion"}},"required":["product","version"]},"CraSubscriptionID":{"title":"CraSubscriptionID","type":"string","description":"A CRA servicing subscription identifier, in the format `cra-sub-<environment>-<uuid>`."},"CraSubscriptionCadence":{"title":"CraSubscriptionCadence","type":["string","null"],"enum":["DAILY",null],"description":"The cadence at which products are generated and webhooks are fired. Required when `scope` is `CLIENT_USER`; must be null or omitted when `scope` is `PLAID_NETWORK`. If the Qualify product is requested, cadence must be null or omitted, because Qualify's generation cadence is controlled by Plaid."},"CraSubscriptionProductConfig":{"title":"CraSubscriptionProductConfig","description":"A product and its configuration, for use with CRA servicing subscription endpoints.","oneOf":[{"$ref":"#/components/schemas/CraQualifyProductConfig"},{"$ref":"#/components/schemas/CraBaseReportProductConfig"},{"$ref":"#/components/schemas/CraIncomeInsightsProductConfig"}],"discriminator":{"propertyName":"product","mapping":{"cra_qualify":"#/components/schemas/CraQualifyProductConfig","cra_base_report":"#/components/schemas/CraBaseReportProductConfig","cra_income_insights":"#/components/schemas/CraIncomeInsightsProductConfig"}}},"CraServicingSubscriptionCreateRequest":{"title":"CraServicingSubscriptionCreateRequest","type":"object","description":"CraServicingSubscriptionCreateRequest defines the request schema for `/cra/servicing/subscription/create`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"scope":{"allOf":[{"$ref":"#/components/schemas/CraReportScope"}],"x-override-enum-values-shown":["CLIENT_USER"]},"cadence":{"$ref":"#/components/schemas/CraSubscriptionCadence"},"webhook":{"type":"string","format":"url","description":"The URL to which the webhook should be sent. If provided, this will override the URL set in the dashboard."},"products":{"type":"array","minItems":1,"description":"The products included in this subscription.","items":{"$ref":"#/components/schemas/CraSubscriptionProductConfig"}}},"required":["user_id","scope","products"]},"CraServicingSubscriptionCreateResponse":{"title":"CraServicingSubscriptionCreateResponse","type":"object","additionalProperties":true,"description":"CraServicingSubscriptionCreateResponse defines the response schema for `/cra/servicing/subscription/create`.","properties":{"subscription_id":{"$ref":"#/components/schemas/CraSubscriptionID"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["subscription_id","request_id"]},"CraServicingSubscriptionDeleteRequest":{"title":"CraServicingSubscriptionDeleteRequest","type":"object","description":"CraServicingSubscriptionDeleteRequest defines the request schema for `/cra/servicing/subscription/delete`. Removes the subscription identified by `subscription_id`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"subscription_id":{"$ref":"#/components/schemas/CraSubscriptionID"}},"required":["subscription_id"]},"CraServicingSubscriptionDeleteResponse":{"title":"CraServicingSubscriptionDeleteResponse","type":"object","additionalProperties":true,"description":"CraServicingSubscriptionDeleteResponse defines the response schema for `/cra/servicing/subscription/delete`.","properties":{"subscription_id":{"$ref":"#/components/schemas/CraSubscriptionID"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["subscription_id","request_id"]},"CraServicingSubscriptionGetRequest":{"title":"CraServicingSubscriptionGetRequest","type":"object","description":"CraServicingSubscriptionGetRequest defines the request schema for `/cra/servicing/subscription/get`. Returns the subscription identified by `subscription_id`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"subscription_id":{"$ref":"#/components/schemas/CraSubscriptionID"}},"required":["subscription_id"]},"CraServicingSubscriptionGetResponse":{"title":"CraServicingSubscriptionGetResponse","type":"object","additionalProperties":true,"description":"CraServicingSubscriptionGetResponse defines the response schema for `/cra/servicing/subscription/get`.","properties":{"subscription":{"$ref":"#/components/schemas/CraServicingSubscription"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["subscription","request_id"]},"CraServicingSubscription":{"title":"CraServicingSubscription","type":"object","additionalProperties":true,"description":"A single CRA servicing subscription.","properties":{"subscription_id":{"$ref":"#/components/schemas/CraSubscriptionID"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"scope":{"allOf":[{"$ref":"#/components/schemas/CraReportScope"}],"x-override-enum-values-shown":["CLIENT_USER"]},"cadence":{"$ref":"#/components/schemas/CraSubscriptionCadence"},"webhook":{"type":["string","null"],"description":"The webhook URL Plaid sends report-update notifications to for this subscription, or null if none is set."},"products":{"type":"array","description":"The products this subscription covers, each with the options it is configured with.","items":{"$ref":"#/components/schemas/CraSubscriptionProductConfig"}}},"required":["subscription_id","user_id","scope","products"]},"CraServicingSubscriptionListRequest":{"title":"CraServicingSubscriptionListRequest","type":"object","description":"CraServicingSubscriptionListRequest defines the request schema for `/cra/servicing/subscription/list`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"$ref":"#/components/schemas/NewUserID"}},"required":["user_id"]},"CraServicingSubscriptionListResponse":{"title":"CraServicingSubscriptionListResponse","type":"object","additionalProperties":true,"description":"CraServicingSubscriptionListResponse defines the response schema for `/cra/servicing/subscription/list`.","properties":{"subscriptions":{"type":"array","description":"All CRA servicing subscriptions for the user, across scopes.","items":{"$ref":"#/components/schemas/CraServicingSubscription"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["subscriptions","request_id"]},"CraServicingSubscriptionUpdateRequest":{"title":"CraServicingSubscriptionUpdateRequest","type":"object","description":"CraServicingSubscriptionUpdateRequest defines the request schema for `/cra/servicing/subscription/update`. It follows field-mask semantics: omitted fields are left unchanged, while provided fields overwrite the current value. To clear a field, include its name in `reset_fields`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"subscription_id":{"$ref":"#/components/schemas/CraSubscriptionID"},"webhook":{"type":"string","format":"url","description":"The URL to which the webhook should be sent. If provided, this will override the URL set in the dashboard."},"products":{"type":"array","description":"The products included in this subscription. If provided, this replaces the subscription's entire product list.","items":{"$ref":"#/components/schemas/CraSubscriptionProductConfig"}},"reset_fields":{"$ref":"#/components/schemas/CraServicingSubscriptionUpdateRequestResettableFieldList"}},"required":["subscription_id"]},"CraServicingSubscriptionUpdateRequestResettableField":{"title":"CraServicingSubscriptionUpdateRequestResettableField","type":"string","enum":["webhook"],"description":"The name of a field that can be reset back to its default value."},"CraServicingSubscriptionUpdateRequestResettableFieldList":{"title":"CraServicingSubscriptionUpdateRequestResettableFieldList","type":["array","null"],"description":"A list of fields to reset back to their default value. Fields named here take precedence over any value provided for the same field elsewhere in the request.","items":{"$ref":"#/components/schemas/CraServicingSubscriptionUpdateRequestResettableField"}},"CraServicingSubscriptionUpdateResponse":{"title":"CraServicingSubscriptionUpdateResponse","type":"object","additionalProperties":true,"description":"CraServicingSubscriptionUpdateResponse defines the response schema for `/cra/servicing/subscription/update`.","properties":{"subscription_id":{"$ref":"#/components/schemas/CraSubscriptionID"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["subscription_id","request_id"]},"CraReportDecisionStage":{"title":"CraReportDecisionStage","type":"string","enum":["PREQUALIFICATION","DECISIONING","SERVICING"],"x-override-enum-values-shown":["PREQUALIFICATION","DECISIONING"],"description":"The stage in the credit or other eligibility decisioning lifecycle for which a given report will be utilized.\n\nAllowable permissible purposes for `PREQUALIFICATION`:\n\n- `WRITTEN_INSTRUCTION_PREQUALIFICATION`\n\nAllowable permissible purposes for `DECISIONING`:\n\n- `ELIGIBILITY_FOR_GOVT_BENEFITS`\n- `EXTENSION_OF_CREDIT`\n- `INSURANCE_UNDERWRITING`\n- `LEGITIMATE_BUSINESS_NEED_OTHER`\n- `LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING`\n- `WRITTEN_INSTRUCTION_OTHER`\n\nIf an incompatible `decision_stage` and `consumer_report_permissible_purpose` pairing is requested, an `INVALID_FIELD` error is returned. If your client isn't yet enabled for a given `decision_stage` on a product, a `DECISION_STAGE_NOT_ENABLED` error is returned instead (contact your Plaid account manager to enable it)."},"CraProductVersion":{"title":"CraProductVersion","type":"string","description":"A string that specifies a particular version of a CRA product."},"CraReportGetResponseProduct":{"title":"CraReportGetResponseProduct","description":"Per-product report data, selected by the `product` discriminator.","oneOf":[{"$ref":"#/components/schemas/CraReportGetQualifyResponseProduct"},{"$ref":"#/components/schemas/CraReportGetIncomeInsightsResponseProduct"},{"$ref":"#/components/schemas/CraReportGetHomeLendingResponseProduct"},{"$ref":"#/components/schemas/CraReportGetCashflowInsightsResponseProduct"},{"$ref":"#/components/schemas/CraReportGetNetworkInsightsResponseProduct"},{"$ref":"#/components/schemas/CraReportGetLendScoreResponseProduct"},{"$ref":"#/components/schemas/CraReportGetBaseReportResponseProduct"},{"$ref":"#/components/schemas/CraReportGetLendScoreCompleteResponseProduct"},{"$ref":"#/components/schemas/CraReportGetIncomeCompleteResponseProduct"}],"discriminator":{"propertyName":"product","mapping":{"cra_qualify":"#/components/schemas/CraReportGetQualifyResponseProduct","cra_income_insights":"#/components/schemas/CraReportGetIncomeInsightsResponseProduct","cra_home_lending":"#/components/schemas/CraReportGetHomeLendingResponseProduct","cra_cashflow_insights":"#/components/schemas/CraReportGetCashflowInsightsResponseProduct","cra_network_insights":"#/components/schemas/CraReportGetNetworkInsightsResponseProduct","cra_lend_score":"#/components/schemas/CraReportGetLendScoreResponseProduct","cra_base_report":"#/components/schemas/CraReportGetBaseReportResponseProduct","cra_lend_score_complete":"#/components/schemas/CraReportGetLendScoreCompleteResponseProduct","cra_income_complete":"#/components/schemas/CraReportGetIncomeCompleteResponseProduct"}}},"CraReportGetCashflowInsightsResponseProduct":{"title":"CraReportGetCashflowInsightsResponseProduct","type":"object","additionalProperties":true,"description":"Cashflow Insights data returned by `/cra/report/get`.","properties":{"product":{"type":"string","enum":["cra_cashflow_insights"],"description":"The Cashflow Insights product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"metadata":{"$ref":"#/components/schemas/CraReportGetCashflowInsightsMetadata"},"attributes":{"$ref":"#/components/schemas/CraReportGetCashflowInsightsAttributes"},"errors":{"type":"array","description":"Product-level errors. Non-empty when this product failed to generate; empty on success.","items":{"$ref":"#/components/schemas/PlaidError"}}},"required":["product","version","metadata","attributes","errors"],"x-examples":{"example-1":{"product":"cra_cashflow_insights","version":"V1","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":3,"account_count":5,"institution_ids":["ins_56"],"primary_account_count":1,"depository_account_type_count":3,"credit_account_type_count":2,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-15","most_recent_transaction_date":"2024-01-14"},"attributes":{"accounts_count":5,"depository_accounts_count":3,"credit_accounts_count":2,"depository_latest_balance_user_sum_1d":4823.56,"net_income_amt_sum_90d":13418.75,"income_sources_count_90d":1,"income_is_salaried_90d":1,"payment_behavior_nsf_late_fees_count_30d":0,"cash_reliance_atm_withdrawal_amt_cv_90d":0.42},"errors":[]}}},"CraReportGetNetworkInsightsResponseProduct":{"title":"CraReportGetNetworkInsightsResponseProduct","type":"object","additionalProperties":true,"description":"Network Insights data returned by `/cra/report/get`.","properties":{"product":{"type":"string","enum":["cra_network_insights"],"description":"The Network Insights product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"metadata":{"$ref":"#/components/schemas/CraReportGetNetworkInsightsMetadata"},"attributes":{"$ref":"#/components/schemas/CraReportGetNetworkInsightsAttributes"},"errors":{"type":"array","description":"Product-level errors. Non-empty when this product failed to generate; empty on success.","items":{"$ref":"#/components/schemas/PlaidError"}}},"required":["product","version","metadata","attributes","errors"],"x-examples":{"example-1":{"product":"cra_network_insights","version":"V1","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":3,"account_count":5,"institution_ids":["ins_56"],"primary_account_count":1,"depository_account_type_count":3,"credit_account_type_count":2,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-15","most_recent_transaction_date":"2024-01-14"},"attributes":{"plaid_conn_user_days_since_first_conn_all":412,"plaid_conn_user_lifetime_lending_count":3,"plaid_conn_user_lifetime_personal_lending_flag":1,"plaid_conn_user_active_lending_count_90d":1,"plaid_conn_user_lifetime_cash_advance_primary_count":0,"plaid_conn_user_active_ewa_primary_count_90d":0},"errors":[]}}},"CraReportGetCashflowInsightsAttributes":{"title":"CraReportGetCashflowInsightsAttributes","type":["object","null"],"additionalProperties":{},"description":"A map of Cashflow Insights attributes, where the key is a string and the value is a string, float, int, or boolean. The specific list of attributes depends on the version requested. For a full list, contact your account manager. May be `null` if attributes were not available."},"CraReportGetNetworkInsightsAttributes":{"title":"CraReportGetNetworkInsightsAttributes","type":["object","null"],"additionalProperties":{},"description":"A map of Network Insights attributes, where the key is a string and the value is a float, int, or boolean. The specific list of attributes depends on the version requested. For a full list, contact your account manager. May be `null` if attributes were not available."},"CraReportGetLendScoreResponseProduct":{"title":"CraReportGetLendScoreResponseProduct","type":"object","additionalProperties":true,"description":"LendScore data returned by `/cra/report/get`.","properties":{"product":{"type":"string","enum":["cra_lend_score"],"description":"The LendScore product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"metadata":{"$ref":"#/components/schemas/CraReportGetLendScoreMetadata"},"scores":{"type":"array","description":"The results for the requested LendScore variants. If a variant fails due to a client error, its `score` is `null` and its `error_code` is populated.","items":{"$ref":"#/components/schemas/CraReportGetLendScoreVariantScore"}},"errors":{"type":"array","description":"Product-level errors. Non-empty when this product failed to generate; empty on success.","items":{"$ref":"#/components/schemas/PlaidError"}}},"required":["product","version","metadata","scores","errors"],"x-examples":{"example-1":{"product":"cra_lend_score","version":"V1","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":3,"account_count":5,"institution_ids":["ins_56"],"primary_account_count":1,"depository_account_type_count":3,"credit_account_type_count":2,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-15","most_recent_transaction_date":"2024-01-14"},"scores":[{"variant":"GENERALIST","score":65,"reason_codes":["PCS0220","PCS0216"],"error_code":null}],"errors":[]}}},"CraReportGetLendScoreMetadata":{"title":"CraReportGetLendScoreMetadata","type":["object","null"],"additionalProperties":true,"description":"LendScore report metadata returned by `/cra/report/get`.","allOf":[{"$ref":"#/components/schemas/CraReportGetProductBaseMetadata"},{"type":"object","properties":{"primary_account_count":{"type":"integer","description":"The number of accounts carrying Plaid's primary account indicator, based on a report-level view of the user's transaction history."},"depository_account_type_count":{"type":"integer","description":"The number of depository accounts used to generate the report."},"credit_account_type_count":{"type":"integer","description":"The number of credit accounts used to generate the report."},"investment_account_type_count":{"type":"integer","description":"The number of investment accounts used to generate the report."},"other_account_type_count":{"type":"integer","description":"The number of accounts that are neither depository, credit, nor investment."},"multiple_owner_account_count":{"type":"integer","description":"The number of accounts with multiple owners."},"oldest_transaction_date":{"type":["string","null"],"format":"date","description":"The earliest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."},"most_recent_transaction_date":{"type":["string","null"],"format":"date","description":"The latest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."}},"required":["primary_account_count","depository_account_type_count","credit_account_type_count","investment_account_type_count","other_account_type_count","multiple_owner_account_count","oldest_transaction_date","most_recent_transaction_date"]}]},"CraReportGetLendScoreVariantScore":{"title":"CraReportGetLendScoreVariantScore","type":"object","additionalProperties":true,"description":"An individual LendScore variant result returned by `/cra/report/get`.","properties":{"variant":{"$ref":"#/components/schemas/CraLendScoreVariant"},"score":{"type":["integer","null"],"description":"The score returned by the LendScore model for this variant."},"reason_codes":{"type":"array","description":"The reasons for an individual having risk according to this LendScore variant. For a full list of possible reason codes and a mapping of reason codes to human-readable reasons, contact your Plaid account manager. Empty if the variant could not be computed.","items":{"type":"string"}},"error_code":{"type":["string","null"],"description":"The error code explaining why this LendScore variant could not be computed. `null` on success. Possible values:\n\n`INSUFFICIENT_TRANSACTION_HISTORY_30D`: User must have at least 30 days of transaction history\n\n`INSUFFICIENT_TRANSACTIONS_30D`: User must have at least 1 transaction in the past 30 days\n\n`INSUFFICIENT_INFLOW_TRANSACTIONS_30D`: User must have at least 1 inflow transaction in the past 30 days\n\n`INSUFFICIENT_INFLOW_TRANSACTIONS_180D`: User must have at least 2 inflow transactions in the past 180 days\n\n`INSUFFICIENT_OUTFLOW_TRANSACTIONS_30D`: User must have at least 2 outflow transactions in the past 30 days\n\n`INSUFFICIENT_OUTFLOW_TRANSACTIONS_180D`: User must have at least 4 outflow transactions in the past 180 days\n\n`BALANCE_UNAVAILABLE`: Balance unavailable for one or more of the user's accounts\n\nOther failures return `PRODUCT_GENERATION_FAILED`. New codes may be added over time, so treat an unrecognized value as a generic failure."}},"required":["variant","score","reason_codes","error_code"]},"CraReportGetBaseReportResponseProduct":{"title":"CraReportGetBaseReportResponseProduct","type":"object","additionalProperties":true,"description":"Base Report data returned by `/cra/report/get`.","properties":{"product":{"type":"string","enum":["cra_base_report"],"description":"The Base Report product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"metadata":{"$ref":"#/components/schemas/CraReportGetBaseReportMetadata"},"items":{"type":"array","description":"The Items included in the Base Report.","items":{"$ref":"#/components/schemas/CraReportGetBaseReportItem"}},"attributes":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/CraReportGetBaseReportAttributes"}]},"errors":{"type":"array","description":"Product-level errors. Non-empty when this product failed to generate; empty on success.","items":{"$ref":"#/components/schemas/PlaidError"}}},"required":["product","version","metadata","items","errors"],"x-examples":{"example-1":{"product":"cra_base_report","version":"V1","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":1,"account_count":1,"institution_ids":["ins_109508"],"days_requested":365,"primary_account_count":1,"depository_account_type_count":1,"credit_account_type_count":0,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-16","most_recent_transaction_date":"2024-01-12"},"items":[{"item_id":"eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6","institution_id":"ins_109508","institution_name":"First Platypus Bank","date_last_updated":"2024-01-15T10:29:41Z","accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","name":"Plaid Checking","official_name":"Plaid Gold Standard 0% Interest Checking","mask":"0000","type":"depository","subtype":"checking","days_available":361,"metadata":{"start_date":"2023-01-16","end_date":"2024-01-12"},"balances":{"available":1203.42,"current":1274.93,"limit":null,"iso_currency_code":"USD","unofficial_currency_code":null,"average_balance":1180.27,"most_recent_thirty_day_average_balance":1251.06,"average_monthly_balances":[{"start_date":"2023-12-01","end_date":"2023-12-31","average_balance":{"amount":1198.5,"iso_currency_code":"USD","unofficial_currency_code":null}}]},"owners":[{"names":["Alberta Bobbeth Charleson"],"phone_numbers":[{"data":"+1 111-555-3333","primary":true,"type":"home"}],"emails":[{"data":"accountholder0@example.com","primary":true,"type":"primary"}],"addresses":[{"data":{"street":"2992 Cameron Road","city":"Malakoff","region":"NY","postal_code":"14236","country":"US"},"primary":true}]}],"ownership_type":"individual","consumer_disputes":[],"transactions":[{"transaction_id":"lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-1500,"iso_currency_code":"USD","unofficial_currency_code":null,"original_description":"PLATYPUS PAYROLL PPD ID 1234567890","merchant_name":null,"credit_category":{"primary":"INCOME","detailed":"INCOME_SALARY"},"check_number":null,"date":"2024-01-12","date_transacted":"2024-01-12","pending":false,"account_owner":null,"location":{"address":null,"city":null,"region":null,"postal_code":null,"country":null,"lat":null,"lon":null,"store_number":null}},{"transaction_id":"4zBRq1Qem4uAPnoyKjJNTRQpQddM4ztlo1PLD","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":72.1,"iso_currency_code":"USD","unofficial_currency_code":null,"original_description":"PLATYPUS FRESH MARKET 0233 MALAKOFF NY","merchant_name":"Platypus Fresh Market","credit_category":{"primary":"FOOD_RETAIL","detailed":"FOOD_RETAIL_GROCERIES"},"check_number":null,"date":"2024-01-10","date_transacted":"2024-01-09","pending":false,"account_owner":null,"location":{"address":null,"city":"Malakoff","region":"NY","postal_code":"14236","country":"US","lat":null,"lon":null,"store_number":"0233"}}],"attributes":{"is_primary_account":true,"primary_account_score":0.93},"identity_match":{"legal_name":{"score":90,"is_first_name_or_last_name_match":true,"is_nickname_match":false,"is_business_name_detected":false},"phone_number":{"score":100},"email_address":{"score":100},"address":{"score":100,"is_postal_code_match":true}}}]}],"errors":[]}}},"CraReportGetBaseReportMetadata":{"title":"CraReportGetBaseReportMetadata","type":["object","null"],"additionalProperties":true,"description":"Base Report metadata returned by `/cra/report/get`.","allOf":[{"$ref":"#/components/schemas/CraReportGetProductBaseMetadata"},{"type":"object","properties":{"days_requested":{"type":"integer","description":"The number of days of transaction history requested."},"primary_account_count":{"type":"integer","description":"The number of accounts carrying Plaid's primary account indicator, based on a report-level view of the user's transaction history."},"depository_account_type_count":{"type":"integer","description":"The number of depository accounts used to generate the report."},"credit_account_type_count":{"type":"integer","description":"The number of credit accounts used to generate the report."},"investment_account_type_count":{"type":"integer","description":"The number of investment accounts used to generate the report."},"other_account_type_count":{"type":"integer","description":"The number of accounts that are neither depository, credit, nor investment."},"multiple_owner_account_count":{"type":"integer","description":"The number of accounts with multiple owners."},"oldest_transaction_date":{"type":["string","null"],"format":"date","description":"The earliest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."},"most_recent_transaction_date":{"type":["string","null"],"format":"date","description":"The latest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."}},"required":["days_requested","primary_account_count","depository_account_type_count","credit_account_type_count","investment_account_type_count","other_account_type_count","multiple_owner_account_count","oldest_transaction_date","most_recent_transaction_date"]}]},"CraReportGetBaseReportAttributes":{"title":"CraReportGetBaseReportAttributes","type":["object","null"],"additionalProperties":true,"x-hidden-from-docs":true,"description":"Attributes derived from transaction-level data, aggregated across all accounts in the Base Report. Omitted if attributes were not available.","properties":{"nsf_overdraft_transactions_count":{"x-hidden-from-docs":true,"type":["integer","null"],"description":"The number of net NSF fee transactions in the time range of the report, not counting fees reversed within that time range. Deprecated in `V1` and not supported beginning in `V2`."},"nsf_overdraft_transactions_count_30d":{"x-hidden-from-docs":true,"type":["integer","null"],"description":"The number of net NSF fee transactions in the last 30 days, not counting fees reversed within that time range. Deprecated in `V1` and not supported beginning in `V2`."},"nsf_overdraft_transactions_count_60d":{"x-hidden-from-docs":true,"type":["integer","null"],"description":"The number of net NSF fee transactions in the last 60 days, not counting fees reversed within that time range. Deprecated in `V1` and not supported beginning in `V2`."},"nsf_overdraft_transactions_count_90d":{"x-hidden-from-docs":true,"type":["integer","null"],"description":"The number of net NSF fee transactions in the last 90 days, not counting fees reversed within that time range. Deprecated in `V1` and not supported beginning in `V2`."},"total_inflow_amount":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalReportInflowAmount"}]},"total_inflow_amount_30d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalReportInflowAmount30d"}]},"total_inflow_amount_60d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalReportInflowAmount60d"}]},"total_inflow_amount_90d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalReportInflowAmount90d"}]},"total_outflow_amount":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalReportOutflowAmount"}]},"total_outflow_amount_30d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalReportOutflowAmount30d"}]},"total_outflow_amount_60d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalReportOutflowAmount60d"}]},"total_outflow_amount_90d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalReportOutflowAmount90d"}]}}},"CraReportGetBaseReportItem":{"title":"CraReportGetBaseReportItem","type":"object","additionalProperties":true,"description":"An Item included in a Base Report returned by `/cra/report/get`.","properties":{"item_id":{"$ref":"#/components/schemas/ItemId"},"institution_id":{"type":"string","description":"The ID of the financial institution associated with the Item."},"institution_name":{"type":"string","description":"The full financial institution name associated with the Item."},"date_last_updated":{"type":"string","format":"date-time","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."},"accounts":{"type":"array","description":"The accounts on the Item included in the Base Report.","items":{"$ref":"#/components/schemas/CraReportGetBaseReportAccount"}}},"required":["item_id","institution_id","institution_name","date_last_updated","accounts"]},"CraReportGetBaseReportAccount":{"title":"CraReportGetBaseReportAccount","type":"object","additionalProperties":true,"description":"An account included in a Base Report returned by `/cra/report/get`.","properties":{"account_id":{"type":"string","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.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself."},"official_name":{"type":["string","null"],"description":"The official name of the account as given by the financial institution."},"mask":{"type":["string","null"],"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."},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"},"days_available":{"type":"integer","description":"The number of days of transaction history available for the account, typically the time since the date of its earliest transaction."},"metadata":{"$ref":"#/components/schemas/BaseReportAccountMetadata"},"balances":{"$ref":"#/components/schemas/CraReportGetBaseReportAccountBalances"},"owners":{"type":"array","description":"Data returned by the financial institution about the account owner or owners. Multiple owners on a single account are represented in the same `owner` object, not in multiple owner objects within the array. Empty if no owners are found.","items":{"$ref":"#/components/schemas/Owner"}},"ownership_type":{"$ref":"#/components/schemas/OwnershipType"},"consumer_disputes":{"type":"array","description":"The valid dispute statements previously submitted by the consumer for this account.","items":{"$ref":"#/components/schemas/ConsumerDispute"}},"transactions":{"type":"array","description":"The transaction history of the account. Some transactions may have their details masked in accordance with the FCRA; these have a `credit_category` of `MASKED_TRANSACTION_CATEGORY`.","items":{"$ref":"#/components/schemas/CraReportGetBaseReportTransaction"}},"historical_balances":{"type":"array","x-hidden-from-docs":true,"description":"The calculated daily historical balances of the account. Omitted for `investment` accounts or when historical balances could not be computed.","items":{"$ref":"#/components/schemas/BaseReportHistoricalBalance"}},"account_insights":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/CraReportGetBaseReportAccountInsights"}]},"attributes":{"$ref":"#/components/schemas/CraReportGetBaseReportAccountAttributes"},"identity_match":{"$ref":"#/components/schemas/CraReportGetBaseReportAccountIdentityMatch"}},"required":["account_id","name","official_name","mask","type","subtype","days_available","metadata","balances","owners","ownership_type","consumer_disputes","transactions","attributes"]},"CraReportGetBaseReportAccountBalances":{"title":"CraReportGetBaseReportAccountBalances","type":"object","additionalProperties":true,"description":"The balances of an account in a Base Report.","properties":{"available":{"type":["number","null"],"format":"double","description":"The amount of funds available to be withdrawn from the account, as determined by the financial institution.\n\nFor `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows.\n\nFor `depository`-type accounts, the `available` balance typically equals the `current` balance less any pending outflows plus any pending inflows, and does not include the overdraft limit.\n\nFor `investment`-type accounts, the `available` balance is the total cash available to withdraw as presented by the institution.\n\n`null` if the institution does not provide an `available` balance. If `current` is `null`, this field is guaranteed not to be `null`."},"current":{"type":["number","null"],"format":"double","description":"The total amount of funds in or owed by the account.\n\nFor `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.\n\nFor `loan`-type accounts, the current balance is the principal remaining on the loan.\n\nFor `investment`-type accounts, the current balance is the total value of assets as presented by the institution.\n\nIf `available` is `null`, this field is guaranteed not to be `null`."},"limit":{"type":["number","null"],"format":"double","description":"For `credit`-type accounts, the credit limit.\n\nFor `depository`-type accounts, the pre-arranged overdraft limit.\n\nThis field is typically only available for `credit`-type accounts."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"},"average_balance":{"type":["number","null"],"format":"double","description":"The average historical balance over the time range of the report. `null` if it could not be computed."},"most_recent_thirty_day_average_balance":{"type":["number","null"],"format":"double","description":"The average historical balance over the most recent 30 days. `null` if it could not be computed."},"average_monthly_balances":{"type":"array","description":"The average historical balance for each calendar month. Empty if it could not be computed.","items":{"$ref":"#/components/schemas/CraReportGetBaseReportAverageMonthlyBalance"}}},"required":["available","current","limit","iso_currency_code","unofficial_currency_code","average_balance","most_recent_thirty_day_average_balance","average_monthly_balances"]},"CraReportGetBaseReportAverageMonthlyBalance":{"title":"CraReportGetBaseReportAverageMonthlyBalance","type":"object","additionalProperties":true,"description":"The average balance of an account over one calendar month.","properties":{"start_date":{"type":"string","format":"date","description":"The start date of the month, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The end date of the month, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)."},"average_balance":{"$ref":"#/components/schemas/CreditAmountWithCurrency"}},"required":["start_date","end_date","average_balance"]},"CraReportGetBaseReportAccountInsights":{"title":"CraReportGetBaseReportAccountInsights","type":["object","null"],"additionalProperties":true,"x-hidden-from-docs":true,"description":"Insights derived from the account's transaction-level data. Omitted if insights were not available.","properties":{"oldest_transaction_date":{"type":["string","null"],"format":"date","description":"The date of the earliest transaction on the account. `null` if the account has no transactions."},"most_recent_transaction_date":{"type":["string","null"],"format":"date","description":"The date of the most recent transaction on the account. `null` if the account has no transactions."},"average_days_between_transactions":{"type":["number","null"],"format":"double","description":"The average number of days between sequential transactions. `null` if it could not be computed."},"number_of_days_no_transactions":{"type":"integer","description":"The number of days with no transactions."},"longest_gaps_between_transactions":{"type":"array","description":"The longest gap between sequential transactions in each calendar month.","items":{"$ref":"#/components/schemas/CraReportGetBaseReportLongestGapInsight"}},"number_of_inflows":{"type":"array","description":"The number of transactions that moved money into the account in each calendar month. Empty for non-depository accounts.","items":{"$ref":"#/components/schemas/BaseReportNumberFlowInsights"}},"number_of_outflows":{"type":"array","description":"The number of transactions that moved money out of the account in each calendar month. Empty for non-depository accounts.","items":{"$ref":"#/components/schemas/BaseReportNumberFlowInsights"}},"average_inflow_amounts":{"type":"array","description":"The average amount of transactions that moved money into the account in each calendar month. Only USD transactions are counted. Empty for non-depository accounts.","items":{"$ref":"#/components/schemas/BaseReportAverageFlowInsights"}},"average_outflow_amounts":{"type":"array","description":"The average amount of transactions that moved money out of the account in each calendar month. Only USD transactions are counted. Empty for non-depository accounts.","items":{"$ref":"#/components/schemas/BaseReportAverageFlowInsights"}}},"required":["oldest_transaction_date","most_recent_transaction_date","average_days_between_transactions","number_of_days_no_transactions","longest_gaps_between_transactions","number_of_inflows","number_of_outflows","average_inflow_amounts","average_outflow_amounts"]},"CraReportGetBaseReportLongestGapInsight":{"title":"CraReportGetBaseReportLongestGapInsight","type":"object","additionalProperties":true,"x-hidden-from-docs":true,"description":"The largest number of days between sequential transactions in one calendar month.","properties":{"start_date":{"type":"string","format":"date","description":"The start date of the month, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)."},"end_date":{"type":"string","format":"date","description":"The end date of the month, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)."},"days":{"type":["integer","null"],"description":"The largest number of days between sequential transactions in the month. `null` if the month has fewer than two transactions."}},"required":["start_date","end_date","days"]},"CraReportGetBaseReportAccountAttributes":{"title":"CraReportGetBaseReportAccountAttributes","type":["object","null"],"additionalProperties":true,"description":"Attributes derived from the account's transaction-level data. May be `null` if attributes were not available.","properties":{"is_primary_account":{"type":["boolean","null"],"description":"Whether the account is predicted to be the user's primary account, based on an Item-level view of the user's transaction history. At most one account per account type across the user's Items is `true`. `null` if the prediction could not be computed."},"primary_account_score":{"type":["number","null"],"format":"double","description":"A value from 0 to 1 expressing confidence that the account is the user's primary account; higher is more confident. `null` if the score could not be computed."},"nsf_overdraft_transactions_count":{"x-hidden-from-docs":true,"type":["integer","null"],"description":"The number of net NSF fee transactions on the account in the time range of the report, not counting fees reversed within that time range. Deprecated in `V1` and not supported beginning in `V2`."},"nsf_overdraft_transactions_count_30d":{"x-hidden-from-docs":true,"type":["integer","null"],"description":"The number of net NSF fee transactions on the account in the last 30 days, not counting fees reversed within that time range. Deprecated in `V1` and not supported beginning in `V2`."},"nsf_overdraft_transactions_count_60d":{"x-hidden-from-docs":true,"type":["integer","null"],"description":"The number of net NSF fee transactions on the account in the last 60 days, not counting fees reversed within that time range. Deprecated in `V1` and not supported beginning in `V2`."},"nsf_overdraft_transactions_count_90d":{"x-hidden-from-docs":true,"type":["integer","null"],"description":"The number of net NSF fee transactions on the account in the last 90 days, not counting fees reversed within that time range. Deprecated in `V1` and not supported beginning in `V2`."},"total_inflow_amount":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalInflowAmount"}]},"total_inflow_amount_30d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalInflowAmount30d"}]},"total_inflow_amount_60d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalInflowAmount60d"}]},"total_inflow_amount_90d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalInflowAmount90d"}]},"total_outflow_amount":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalOutflowAmount"}]},"total_outflow_amount_30d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalOutflowAmount30d"}]},"total_outflow_amount_60d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalOutflowAmount60d"}]},"total_outflow_amount_90d":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/TotalOutflowAmount90d"}]}},"required":["is_primary_account","primary_account_score"]},"CraReportGetBaseReportAccountIdentityMatch":{"title":"CraReportGetBaseReportAccountIdentityMatch","type":["object","null"],"additionalProperties":true,"description":"Scores for how closely the user's identity, as provided via `/user/create` or `/user/update`, matches the account owner information reported by the financial institution. Only present if the report was created with `include_identity_match` set to `true`, and omitted for accounts that were not scored. Within each score object, `score` is `null` when either the user or the financial institution did not provide that field.","properties":{"legal_name":{"$ref":"#/components/schemas/NameMatchScore"},"phone_number":{"$ref":"#/components/schemas/PhoneNumberMatchScore"},"email_address":{"$ref":"#/components/schemas/EmailAddressMatchScore"},"address":{"$ref":"#/components/schemas/AddressMatchScore"}},"required":["legal_name","phone_number","email_address","address"]},"CraReportGetBaseReportTransaction":{"title":"CraReportGetBaseReportTransaction","type":"object","additionalProperties":true,"description":"A transaction in a Base Report returned by `/cra/report/get`.","properties":{"transaction_id":{"type":"string","description":"The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."},"account_id":{"type":"string","description":"The ID of the account in which this transaction occurred."},"amount":{"type":"number","format":"double","description":"The settled value of the transaction, denominated in the transaction's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative."},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"},"original_description":{"type":["string","null"],"description":"The string returned by the financial institution to describe the transaction."},"merchant_name":{"type":["string","null"],"description":"The merchant name, as enriched by Plaid. `null` for transactions with no meaningful merchant, such as checks or account transfers."},"credit_category":{"$ref":"#/components/schemas/CreditCategory"},"check_number":{"type":["string","null"],"description":"The check number of the transaction. Only populated for check transactions."},"date":{"type":"string","format":"date","description":"For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Returned in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD)."},"date_transacted":{"type":["string","null"],"format":"date","description":"The date on which the transaction took place, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). `null` if the financial institution did not provide it."},"pending":{"type":"boolean","description":"When `true`, identifies the transaction as pending or unsettled. Pending transaction details (`amount`, `merchant_name`, `credit_category`) may change before they are settled."},"account_owner":{"type":["string","null"],"description":"The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts."},"location":{"$ref":"#/components/schemas/Location"},"name":{"deprecated":true,"x-hidden-from-docs":true,"type":["string","null"],"description":"The merchant name or transaction description.\n\nNote: This is a legacy field that is not actively maintained. Use `merchant_name` instead for the merchant name."},"category":{"type":"array","x-hidden-from-docs":true,"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"}},"category_id":{"type":["string","null"],"x-hidden-from-docs":true,"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)."},"personal_finance_category":{"x-hidden-from-docs":true,"allOf":[{"$ref":"#/components/schemas/PersonalFinanceCategory"}]}},"required":["transaction_id","account_id","amount","iso_currency_code","unofficial_currency_code","original_description","merchant_name","credit_category","check_number","date","date_transacted","pending","account_owner","location"]},"CraReportGetQualifyResponseProduct":{"title":"CraReportGetQualifyResponseProduct","type":"object","additionalProperties":true,"description":"Qualify data returned by `/cra/report/get`.","properties":{"product":{"type":"string","enum":["cra_qualify"],"description":"The Qualify product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"metadata":{"$ref":"#/components/schemas/CraReportGetProductMetadata"},"attributes":{"$ref":"#/components/schemas/CraReportGetProductAttributes"},"errors":{"type":"array","description":"Product-level errors. Non-empty when this product failed to generate; empty on success.","items":{"$ref":"#/components/schemas/PlaidError"}}},"required":["product","version","metadata","attributes","errors"],"x-examples":{"example-1":{"product":"cra_qualify","version":"V1","metadata":{"account_count":3,"credit_account_type_count":1,"depository_account_type_count":2,"generated_time":"2026-06-29T18:56:05.380377202Z","institution_ids":["ins_116794","ins_3"],"investment_account_type_count":0,"item_count":2,"most_recent_transaction_date":"2026-03-11","multiple_owner_account_count":0,"oldest_transaction_date":"2023-09-01","other_account_type_count":0,"primary_account_count":2},"attributes":{"lend_scores":[{"error_reason":null,"reason_codes":["PCS0210","PCS0213"],"score":65,"variant":"GENERAL"}],"accounts_count":3,"net_income_amt_cv_90d":0.05,"income_sources_count_180d":1,"income_is_gig_worker_180d":0,"payment_behavior_cash_adv_overdraft_amt_sum_90d":0,"cash_reliance_atm_withdrawal_amt_cv_90d":0.25,"essential_spending_amt_pct_change_180d_90d":0.01,"discretionary_spending_dining_amt_sum_180d":1580,"loan_payments_amt_cv_90d":0.08,"plaid_conn_user_active_auto_loan_count_90d":0,"plaid_conn_user_active_bnpl_count_90d":0},"errors":[]}}},"CraReportGetIncomeInsightsResponseProduct":{"title":"CraReportGetIncomeInsightsResponseProduct","type":"object","additionalProperties":true,"description":"Income Insights data returned by `/cra/report/get`.","properties":{"product":{"type":"string","enum":["cra_income_insights"],"description":"The Income Insights product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"metadata":{"$ref":"#/components/schemas/CraReportGetIncomeInsightsMetadata"},"attributes":{"$ref":"#/components/schemas/CraReportGetIncomeInsightsAttributes"},"items":{"type":"array","description":"The Items, and their accounts, used to generate this product. Always empty when `scope` is `PLAID_NETWORK`, or if this product failed to generate.","items":{"$ref":"#/components/schemas/CraReportGetBaseItem"}},"errors":{"type":"array","description":"Product-level errors. Non-empty when this product failed to generate; empty on success.","items":{"$ref":"#/components/schemas/PlaidError"}}},"required":["product","version","metadata","attributes","items","errors"],"x-examples":{"example-1":{"product":"cra_income_insights","version":"V2","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":1,"account_count":1,"institution_ids":["ins_56"],"primary_account_count":1,"depository_account_type_count":1,"credit_account_type_count":0,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-15","most_recent_transaction_date":"2024-01-14"},"attributes":{"income_streams":[{"income_stream_id":"Xb0o9S88MI9mgWjwZscJ1UQVJycB4UrKg4Pnk","start_date":"2023-12-08","end_date":"2024-01-05","description":"ACME CORP PAYROLL","insights":{"income_category":{"primary":"EARNED_INCOME","secondary":"SALARY"},"pay_frequency":"BIWEEKLY","income_provider":{"name":"Acme Corp","is_normalized":true},"status":"ACTIVE","next_payment":{"date":"2024-01-19"}},"income_metrics":{"current":{"monthly":{"gross_income":8333.33,"net_income":6250},"annual":{"gross_income":100000,"net_income":75000}},"projected":{"monthly":{"gross_income":8333.33,"net_income":6250},"annual":{"gross_income":100000,"net_income":75000}},"iso_currency_code":"USD","unofficial_currency_code":null},"transactions":[{"transaction_id":"NlNM102sFvKPvkEHRM2IoolQGWrItW7DrSXL7","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-2884.62,"date":"2023-12-08","original_description":"ACME CORP PAYROLL PPD ID 9876543210","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}},{"transaction_id":"8ckTj04OaC05mKoov6gX8z3XG13BMpNu7jsTN","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-2884.62,"date":"2023-12-22","original_description":"ACME CORP PAYROLL PPD ID 9876543210","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}},{"transaction_id":"S0CQ0vHeLYC5ULWICjSbcQ4UPledKXXUoW4Sg","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-2884.62,"date":"2024-01-05","original_description":"ACME CORP PAYROLL PPD ID 9876543210","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}}]},{"income_stream_id":"wBf06a9Qql7NZljaf1wgV1PCgMGhrmjeSdU0j","start_date":"2023-12-15","end_date":"2024-01-12","description":"UPWORK ESCROW INC","insights":{"income_category":{"primary":"EARNED_INCOME","secondary":"GIG_ECONOMY"},"pay_frequency":"MONTHLY","income_provider":{"name":"Upwork","is_normalized":true},"status":"ACTIVE","next_payment":{"date":"2024-02-12"}},"income_metrics":{"current":{"monthly":{"gross_income":1050,"net_income":1050},"annual":{"gross_income":12600,"net_income":12600}},"projected":{"monthly":{"gross_income":1050,"net_income":1050},"annual":{"gross_income":12600,"net_income":12600}},"iso_currency_code":"USD","unofficial_currency_code":null},"transactions":[{"transaction_id":"fMXSpM1FbBJAn1g5qkzuh5mhwubJYar14mbGj","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-1120,"date":"2023-12-15","original_description":"UPWORK ESCROW INC PAYMENT","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}},{"transaction_id":"xmioAvxXxN6QaS9ZJnCpkyfIuZHBcYibyQf74","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-980,"date":"2024-01-12","original_description":"UPWORK ESCROW INC PAYMENT","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}}]}],"user_summary":{"income_metrics":[{"current":{"monthly":{"gross_income":9383.33,"net_income":7300},"annual":{"gross_income":112600,"net_income":87600}},"projected":{"monthly":{"gross_income":9383.33,"net_income":7300},"annual":{"gross_income":112600,"net_income":87600}},"iso_currency_code":"USD","unofficial_currency_code":null}]}},"items":[{"institution_id":"ins_56","institution_name":"Chase","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","last_updated_time":"2024-01-15T10:28:00Z","accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","name":"Plaid Checking Account","official_name":"Plaid Checking Account","mask":"8888","type":"depository","subtype":"checking"}]}],"errors":[]}}},"CraReportGetIncomeInsightsAttributes":{"title":"CraReportGetIncomeInsightsAttributes","type":["object","null"],"additionalProperties":true,"description":"Income Insights attribute data returned by `/cra/report/get`.","properties":{"income_streams":{"type":"array","description":"The income streams detected for the user.","items":{"$ref":"#/components/schemas/CraReportGetIncomeInsightsStream"}},"user_summary":{"$ref":"#/components/schemas/CraIncomeInsightsUserSummary"}},"required":["income_streams","user_summary"]},"CraReportGetIncomeInsightsStream":{"title":"CraReportGetIncomeInsightsStream","type":"object","additionalProperties":true,"description":"An income stream detected for the user.","properties":{"income_stream_id":{"type":"string","description":"A unique identifier for an income stream. If the report is regenerated and a new `report_id` is created, the new report will have a new set of `income_stream_id`s."},"start_date":{"type":["string","null"],"format":"date","description":"Minimum of all dates within the specific income stream. The date will be returned in an ISO 8601 format (YYYY-MM-DD). May be `null` if the producer could not compute a date range."},"end_date":{"type":["string","null"],"format":"date","description":"Maximum of all dates within the specific income stream. The date will be returned in an ISO 8601 format (YYYY-MM-DD). May be `null` if the producer could not compute a date range."},"description":{"type":["string","null"],"description":"The most common name or original description for the underlying income transactions. Only populated when `scope` is `CLIENT_USER`; `null` for any other scope."},"insights":{"$ref":"#/components/schemas/CraIncomeStreamInsights"},"income_metrics":{"$ref":"#/components/schemas/CraIncomeMetrics"},"transactions":{"type":"array","description":"The transactions data for the income stream ordered by ascending date. Only populated when `scope` is `CLIENT_USER`; empty for any other scope.","items":{"$ref":"#/components/schemas/CraIncomeTransaction"}}},"required":["income_stream_id","start_date","end_date","description","insights","income_metrics","transactions"]},"CraReportGetLendScoreCompleteResponseProduct":{"title":"CraReportGetLendScoreCompleteResponseProduct","type":"object","additionalProperties":true,"description":"LendScore Complete data returned by `/cra/report/get`.","properties":{"product":{"type":"string","enum":["cra_lend_score_complete"],"description":"The LendScore Complete product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"metadata":{"$ref":"#/components/schemas/CraReportGetLendScoreCompleteMetadata"},"attributes":{"$ref":"#/components/schemas/CraReportGetLendScoreCompleteAttributes"},"items":{"type":"array","description":"The Items, and their accounts, used to generate this product. Always empty when `scope` is `PLAID_NETWORK`, or if this product failed to generate.","items":{"$ref":"#/components/schemas/CraReportGetEnrichedItem"}},"errors":{"type":"array","description":"Product-level errors. Non-empty when this product failed to generate; empty on success.","items":{"$ref":"#/components/schemas/PlaidError"}}},"required":["product","version","metadata","attributes","items","errors"],"x-examples":{"example-1":{"product":"cra_lend_score_complete","version":"V1","metadata":{"generated_time":"2026-06-29T18:56:05.380377202Z","item_count":2,"account_count":3,"institution_ids":["ins_116794","ins_3"],"primary_account_count":2,"depository_account_type_count":2,"credit_account_type_count":1,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-09-01","most_recent_transaction_date":"2026-03-11"},"attributes":{"lend_scores":[{"variant":"GENERALIST","score":65,"reason_codes":["PCS0210","PCS0213"],"error_code":null}],"cashflow_insights":{"accounts_count":3,"net_income_amt_cv_90d":0.05,"income_sources_count_180d":1,"income_is_gig_worker_180d":0,"payment_behavior_cash_adv_overdraft_amt_sum_90d":0,"cash_reliance_atm_withdrawal_amt_cv_90d":0.25,"essential_spending_amt_pct_change_180d_90d":0.01,"discretionary_spending_dining_amt_sum_180d":1580,"loan_payments_amt_cv_90d":0.08},"network_insights":{"plaid_conn_user_active_auto_loan_count_90d":0,"plaid_conn_user_active_bnpl_count_90d":0}},"items":[{"institution_id":"ins_116794","institution_name":"Mercury","item_id":"d5zOsXJexe8HJWeXfK2RX1hvFXHGy5ezJWKSQ","last_updated_time":"2026-06-29T18:55:12Z","accounts":[{"account_id":"2nQG6pPhDotANwYwX8fy7SKF4ZWBmfD4XPAlh","name":"Mercury Checking","official_name":"Mercury Personal Checking","mask":"4821","type":"depository","subtype":"checking","primary_account":{"is_primary":true,"score":0.93},"identity_match":{"legal_name":{"score":90,"is_first_name_or_last_name_match":true,"is_nickname_match":false,"is_business_name_detected":false},"phone_number":{"score":100},"email_address":{"score":100},"address":{"score":100,"is_postal_code_match":true}},"owners":[{"names":["Alberta Bobbeth Charleson"],"phone_numbers":[{"data":"+1 111-555-3333","primary":true,"type":"home"}],"emails":[{"data":"accountholder0@example.com","primary":true,"type":"primary"}],"addresses":[{"data":{"street":"2992 Cameron Road","city":"Malakoff","region":"NY","postal_code":"14236","country":"US"},"primary":true}]}]}]},{"institution_id":"ins_3","institution_name":"Chase","item_id":"DAgobrKnd1haXKIO7S8wSJfAExPPqq3ErpAAt","last_updated_time":"2026-06-29T18:55:20Z","accounts":[{"account_id":"MwSqyi1naT8uZLcuPe1B0DsEa8CG5w3C8CgHi","name":"Chase Savings","official_name":"Chase Savings","mask":"3307","type":"depository","subtype":"savings","primary_account":{"is_primary":false,"score":0.08},"identity_match":{"legal_name":{"score":90,"is_first_name_or_last_name_match":true,"is_nickname_match":false,"is_business_name_detected":false},"phone_number":{"score":100},"email_address":{"score":100},"address":{"score":100,"is_postal_code_match":true}},"owners":[{"names":["Alberta Bobbeth Charleson"],"phone_numbers":[{"data":"+1 111-555-3333","primary":true,"type":"home"}],"emails":[{"data":"accountholder0@example.com","primary":true,"type":"primary"}],"addresses":[{"data":{"street":"2992 Cameron Road","city":"Malakoff","region":"NY","postal_code":"14236","country":"US"},"primary":true}]}]},{"account_id":"DAUOQzH2PCAJb9qJmFB75L7lhP1lSh5h6HfND","name":"Chase Freedom Unlimited","official_name":"Chase Freedom Unlimited Visa","mask":"1956","type":"credit","subtype":"credit card","primary_account":{"is_primary":true,"score":0.88},"identity_match":{"legal_name":{"score":90,"is_first_name_or_last_name_match":true,"is_nickname_match":false,"is_business_name_detected":false},"phone_number":{"score":100},"email_address":{"score":100},"address":{"score":100,"is_postal_code_match":true}},"owners":[{"names":["Alberta Bobbeth Charleson"],"phone_numbers":[{"data":"+1 111-555-3333","primary":true,"type":"home"}],"emails":[{"data":"accountholder0@example.com","primary":true,"type":"primary"}],"addresses":[{"data":{"street":"2992 Cameron Road","city":"Malakoff","region":"NY","postal_code":"14236","country":"US"},"primary":true}]}]}]}],"errors":[]}}},"CraReportGetLendScoreCompleteAttributes":{"title":"CraReportGetLendScoreCompleteAttributes","type":["object","null"],"additionalProperties":true,"description":"LendScore Complete attribute data returned by `/cra/report/get`.","properties":{"lend_scores":{"type":"array","description":"The results for the requested LendScore variants. If a variant fails due to a client error, its `score` is `null` and its `error_code` is populated.","items":{"$ref":"#/components/schemas/CraReportGetLendScoreVariantScore"}},"cashflow_insights":{"$ref":"#/components/schemas/CraReportGetCashflowInsightsAttributes"},"network_insights":{"$ref":"#/components/schemas/CraReportGetNetworkInsightsAttributes"}},"required":["lend_scores","cashflow_insights","network_insights"]},"CraReportGetLendScoreCompleteMetadata":{"title":"CraReportGetLendScoreCompleteMetadata","type":["object","null"],"additionalProperties":true,"description":"LendScore Complete report metadata returned by `/cra/report/get`.","allOf":[{"$ref":"#/components/schemas/CraReportGetProductBaseMetadata"},{"type":"object","properties":{"primary_account_count":{"type":"integer","description":"The number of accounts carrying Plaid's primary account indicator, based on a report-level view of the user's transaction history."},"depository_account_type_count":{"type":"integer","description":"The number of depository accounts used to generate the report."},"credit_account_type_count":{"type":"integer","description":"The number of credit accounts used to generate the report."},"investment_account_type_count":{"type":"integer","description":"The number of investment accounts used to generate the report."},"other_account_type_count":{"type":"integer","description":"The number of accounts that are neither depository, credit, nor investment."},"multiple_owner_account_count":{"type":"integer","description":"The number of accounts with multiple owners."},"oldest_transaction_date":{"type":["string","null"],"format":"date","description":"The earliest transaction date across the accounts the report was generated from. May be `null` if the producer could not compute a transaction range."},"most_recent_transaction_date":{"type":["string","null"],"format":"date","description":"The latest transaction date across the accounts the report was generated from. May be `null` if the producer could not compute a transaction range."}},"required":["primary_account_count","depository_account_type_count","credit_account_type_count","investment_account_type_count","other_account_type_count","multiple_owner_account_count","oldest_transaction_date","most_recent_transaction_date"]}]},"CraReportGetIncomeCompleteResponseProduct":{"title":"CraReportGetIncomeCompleteResponseProduct","type":"object","additionalProperties":true,"description":"Income Complete data returned by `/cra/report/get`.","properties":{"product":{"type":"string","enum":["cra_income_complete"],"description":"The Income Complete product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"metadata":{"$ref":"#/components/schemas/CraReportGetIncomeCompleteMetadata"},"attributes":{"$ref":"#/components/schemas/CraReportGetIncomeCompleteAttributes"},"items":{"type":"array","description":"The Items, and their accounts, used to generate this product. Always empty when `scope` is `PLAID_NETWORK`, or if this product failed to generate.","items":{"$ref":"#/components/schemas/CraReportGetEnrichedItem"}},"errors":{"type":"array","description":"Product-level errors. Non-empty when this product failed to generate; empty on success.","items":{"$ref":"#/components/schemas/PlaidError"}}},"required":["product","version","metadata","attributes","items","errors"],"x-examples":{"example-1":{"product":"cra_income_complete","version":"V2","metadata":{"generated_time":"2024-01-15T10:30:00Z","item_count":1,"account_count":1,"institution_ids":["ins_56"],"primary_account_count":1,"depository_account_type_count":1,"credit_account_type_count":0,"investment_account_type_count":0,"other_account_type_count":0,"multiple_owner_account_count":0,"oldest_transaction_date":"2023-01-15","most_recent_transaction_date":"2024-01-14"},"attributes":{"income_insights":{"income_streams":[{"income_stream_id":"Xb0o9S88MI9mgWjwZscJ1UQVJycB4UrKg4Pnk","start_date":"2023-12-08","end_date":"2024-01-05","description":"ACME CORP PAYROLL","insights":{"income_category":{"primary":"EARNED_INCOME","secondary":"SALARY"},"pay_frequency":"BIWEEKLY","income_provider":{"name":"Acme Corp","is_normalized":true},"status":"ACTIVE","next_payment":{"date":"2024-01-19"}},"income_metrics":{"current":{"monthly":{"gross_income":8333.33,"net_income":6250},"annual":{"gross_income":100000,"net_income":75000}},"projected":{"monthly":{"gross_income":8333.33,"net_income":6250},"annual":{"gross_income":100000,"net_income":75000}},"iso_currency_code":"USD","unofficial_currency_code":null},"transactions":[{"transaction_id":"NlNM102sFvKPvkEHRM2IoolQGWrItW7DrSXL7","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-2884.62,"date":"2023-12-08","original_description":"ACME CORP PAYROLL PPD ID 9876543210","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}},{"transaction_id":"8ckTj04OaC05mKoov6gX8z3XG13BMpNu7jsTN","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-2884.62,"date":"2023-12-22","original_description":"ACME CORP PAYROLL PPD ID 9876543210","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}},{"transaction_id":"S0CQ0vHeLYC5ULWICjSbcQ4UPledKXXUoW4Sg","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-2884.62,"date":"2024-01-05","original_description":"ACME CORP PAYROLL PPD ID 9876543210","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}}]},{"income_stream_id":"wBf06a9Qql7NZljaf1wgV1PCgMGhrmjeSdU0j","start_date":"2023-12-15","end_date":"2024-01-12","description":"UPWORK ESCROW INC","insights":{"income_category":{"primary":"EARNED_INCOME","secondary":"GIG_ECONOMY"},"pay_frequency":"MONTHLY","income_provider":{"name":"Upwork","is_normalized":true},"status":"ACTIVE","next_payment":{"date":"2024-02-12"}},"income_metrics":{"current":{"monthly":{"gross_income":1050,"net_income":1050},"annual":{"gross_income":12600,"net_income":12600}},"projected":{"monthly":{"gross_income":1050,"net_income":1050},"annual":{"gross_income":12600,"net_income":12600}},"iso_currency_code":"USD","unofficial_currency_code":null},"transactions":[{"transaction_id":"fMXSpM1FbBJAn1g5qkzuh5mhwubJYar14mbGj","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-1120,"date":"2023-12-15","original_description":"UPWORK ESCROW INC PAYMENT","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}},{"transaction_id":"xmioAvxXxN6QaS9ZJnCpkyfIuZHBcYibyQf74","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","amount":-980,"date":"2024-01-12","original_description":"UPWORK ESCROW INC PAYMENT","iso_currency_code":"USD","unofficial_currency_code":null,"outlier":{"is_outlier":false,"amount":null}}]}],"user_summary":{"income_metrics":[{"current":{"monthly":{"gross_income":9383.33,"net_income":7300},"annual":{"gross_income":112600,"net_income":87600}},"projected":{"monthly":{"gross_income":9383.33,"net_income":7300},"annual":{"gross_income":112600,"net_income":87600}},"iso_currency_code":"USD","unofficial_currency_code":null}]}}},"items":[{"institution_id":"ins_56","institution_name":"Chase","item_id":"AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7","last_updated_time":"2024-01-15T10:28:00Z","accounts":[{"account_id":"1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8","name":"Plaid Checking Account","official_name":"Plaid Checking Account","mask":"8888","type":"depository","subtype":"checking","primary_account":{"is_primary":true,"score":0.97},"identity_match":{"legal_name":{"score":90,"is_first_name_or_last_name_match":true,"is_nickname_match":false,"is_business_name_detected":false},"phone_number":{"score":100},"email_address":{"score":100},"address":{"score":100,"is_postal_code_match":true}},"owners":[{"names":["Alberta Bobbeth Charleson"],"phone_numbers":[{"data":"+1 111-555-3333","primary":true,"type":"home"}],"emails":[{"data":"accountholder0@example.com","primary":true,"type":"primary"}],"addresses":[{"data":{"street":"2992 Cameron Road","city":"Malakoff","region":"NY","postal_code":"14236","country":"US"},"primary":true}]}]}]}],"errors":[]}}},"CraReportGetIncomeCompleteAttributes":{"title":"CraReportGetIncomeCompleteAttributes","type":["object","null"],"additionalProperties":true,"description":"Income Complete attribute data returned by `/cra/report/get`.","properties":{"income_insights":{"$ref":"#/components/schemas/CraReportGetIncomeInsightsAttributes"}},"required":["income_insights"]},"CraReportGetIncomeCompleteMetadata":{"title":"CraReportGetIncomeCompleteMetadata","type":["object","null"],"additionalProperties":true,"description":"Income Complete report metadata returned by `/cra/report/get`.","allOf":[{"$ref":"#/components/schemas/CraReportGetProductBaseMetadata"},{"type":"object","properties":{"primary_account_count":{"type":"integer","description":"The number of accounts carrying Plaid's primary account indicator, based on a report-level view of the user's transaction history."},"depository_account_type_count":{"type":"integer","description":"The number of depository accounts used to generate the report."},"credit_account_type_count":{"type":"integer","description":"The number of credit accounts used to generate the report."},"investment_account_type_count":{"type":"integer","description":"The number of investment accounts used to generate the report."},"other_account_type_count":{"type":"integer","description":"The number of accounts that are neither depository, credit, nor investment."},"multiple_owner_account_count":{"type":"integer","description":"The number of accounts with multiple owners."},"oldest_transaction_date":{"type":["string","null"],"format":"date","description":"The earliest transaction date across the accounts the report was generated from. May be `null` if the producer could not compute a transaction range."},"most_recent_transaction_date":{"type":["string","null"],"format":"date","description":"The latest transaction date across the accounts the report was generated from. May be `null` if the producer could not compute a transaction range."}},"required":["primary_account_count","depository_account_type_count","credit_account_type_count","investment_account_type_count","other_account_type_count","multiple_owner_account_count","oldest_transaction_date","most_recent_transaction_date"]}]},"CraReportGetBaseItem":{"title":"CraReportGetBaseItem","type":"object","additionalProperties":true,"description":"An Item used to generate a `/cra/report/get` product.","properties":{"institution_id":{"type":"string","description":"The ID of the financial institution associated with the Item."},"institution_name":{"type":"string","description":"The full financial institution name associated with the Item."},"item_id":{"$ref":"#/components/schemas/ItemId"},"last_updated_time":{"type":"string","format":"date-time","description":"The time when this Item's data was last retrieved from the financial institution prior to report generation."},"accounts":{"type":"array","description":"The accounts on the Item used to generate the product.","items":{"$ref":"#/components/schemas/CraReportGetBaseAccount"}}},"required":["institution_id","institution_name","item_id","last_updated_time","accounts"]},"CraReportGetBaseAccount":{"title":"CraReportGetBaseAccount","type":"object","additionalProperties":true,"description":"An account used to generate a `/cra/report/get` product.","properties":{"account_id":{"type":"string","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. If this happens a new `account_id` will be assigned to the account.\n\nLike all Plaid identifiers, the `account_id` is case sensitive."},"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself."},"official_name":{"type":["string","null"],"description":"The official name of the account as given by the financial institution."},"mask":{"type":["string","null"],"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."},"type":{"$ref":"#/components/schemas/AccountType"},"subtype":{"$ref":"#/components/schemas/AccountSubtype"}},"required":["account_id","name","official_name","mask","type","subtype"]},"CraReportGetEnrichedItem":{"title":"CraReportGetEnrichedItem","type":"object","additionalProperties":true,"description":"An Item used to generate a `/cra/report/get` product, with each account's owners, identity match scores, and primary account prediction.","allOf":[{"$ref":"#/components/schemas/CraReportGetBaseItem"},{"type":"object","properties":{"institution_name":{"type":"string","description":"The full financial institution name associated with the Item."},"accounts":{"type":"array","description":"The accounts on the Item used to generate the product.","items":{"$ref":"#/components/schemas/CraReportGetEnrichedAccount"}}},"required":["accounts"]}]},"CraReportGetEnrichedAccount":{"title":"CraReportGetEnrichedAccount","type":"object","additionalProperties":true,"description":"An account used to generate a `/cra/report/get` product, with its owners, identity match scores, and primary account prediction.","allOf":[{"$ref":"#/components/schemas/CraReportGetBaseAccount"},{"type":"object","properties":{"name":{"type":"string","description":"The name of the account, either assigned by the user or by the financial institution itself."},"official_name":{"type":["string","null"],"description":"The official name of the account as given by the financial institution."},"mask":{"type":["string","null"],"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."},"primary_account":{"$ref":"#/components/schemas/CraReportGetAccountPrimaryAccount"},"identity_match":{"$ref":"#/components/schemas/CraReportGetAccountIdentityMatch"},"owners":{"type":"array","description":"Data returned by the financial institution about the account owner or owners. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. Empty if no owners are found, or if data is not supported by the product and/or scope.","items":{"$ref":"#/components/schemas/Owner"}}},"required":["primary_account","identity_match","owners"]}]},"CraReportGetAccountPrimaryAccount":{"title":"CraReportGetAccountPrimaryAccount","type":["object","null"],"additionalProperties":true,"description":"Plaid's prediction of whether the account is the user's primary account. `null` if the account could not be scored or if scoring is not supported by the product.","properties":{"is_primary":{"type":"boolean","description":"Whether the account is predicted to be a primary account. Only one account per account type across the user's Items will have a value of `true`."},"score":{"type":"number","description":"Value ranging from 0-1. The higher the score, the more confident Plaid is that the account is the primary account."}},"required":["is_primary","score"]},"CraReportGetAccountIdentityMatch":{"title":"CraReportGetAccountIdentityMatch","type":["object","null"],"additionalProperties":true,"description":"Scores for how closely the user's identity, as provided via `/user/create` or `/user/update`, matches the account owner information reported by the financial institution. `null` if the account was not scored or if identity matching is not supported by the product. Within each score object, `score` is `null` when either the user or the financial institution did not provide that field.","properties":{"legal_name":{"$ref":"#/components/schemas/NameMatchScore"},"phone_number":{"$ref":"#/components/schemas/PhoneNumberMatchScore"},"email_address":{"$ref":"#/components/schemas/EmailAddressMatchScore"},"address":{"$ref":"#/components/schemas/AddressMatchScore"}},"required":["legal_name","phone_number","email_address","address"]},"CraReportGetProductBaseMetadata":{"title":"CraReportGetProductBaseMetadata","type":["object","null"],"additionalProperties":true,"description":"Fields common to every /cra/report/get product's metadata.","properties":{"generated_time":{"type":["string","null"],"format":"date-time","description":"The time the report was generated. May be `null` if unavailable."},"item_count":{"type":"integer","description":"The number of Items used to generate the report."},"account_count":{"type":"integer","description":"The number of accounts used to generate the report."},"institution_ids":{"type":"array","description":"The institution IDs of the Items used to generate the report.","items":{"type":"string"}}},"required":["generated_time","item_count","account_count","institution_ids"]},"CraReportGetCashflowInsightsMetadata":{"title":"CraReportGetCashflowInsightsMetadata","type":["object","null"],"additionalProperties":true,"description":"Cashflow Insights report metadata returned by `/cra/report/get`.","allOf":[{"$ref":"#/components/schemas/CraReportGetProductBaseMetadata"},{"type":"object","properties":{"primary_account_count":{"type":"integer","description":"The number of accounts carrying Plaid's primary account indicator, based on a report-level view of the user's transaction history."},"depository_account_type_count":{"type":"integer","description":"The number of depository accounts used to generate the report."},"credit_account_type_count":{"type":"integer","description":"The number of credit accounts used to generate the report."},"investment_account_type_count":{"type":"integer","description":"The number of investment accounts used to generate the report."},"other_account_type_count":{"type":"integer","description":"The number of accounts that are neither depository, credit, nor investment."},"multiple_owner_account_count":{"type":"integer","description":"The number of accounts with multiple owners."},"oldest_transaction_date":{"type":["string","null"],"format":"date","description":"The earliest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."},"most_recent_transaction_date":{"type":["string","null"],"format":"date","description":"The latest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."}},"required":["primary_account_count","depository_account_type_count","credit_account_type_count","investment_account_type_count","other_account_type_count","multiple_owner_account_count","oldest_transaction_date","most_recent_transaction_date"]}]},"CraReportGetNetworkInsightsMetadata":{"title":"CraReportGetNetworkInsightsMetadata","type":["object","null"],"additionalProperties":true,"description":"Network Insights report metadata returned by `/cra/report/get`.","allOf":[{"$ref":"#/components/schemas/CraReportGetProductBaseMetadata"},{"type":"object","properties":{"primary_account_count":{"type":"integer","description":"The number of accounts carrying Plaid's primary account indicator, based on a report-level view of the user's transaction history."},"depository_account_type_count":{"type":"integer","description":"The number of depository accounts used to generate the report."},"credit_account_type_count":{"type":"integer","description":"The number of credit accounts used to generate the report."},"investment_account_type_count":{"type":"integer","description":"The number of investment accounts used to generate the report."},"other_account_type_count":{"type":"integer","description":"The number of accounts that are neither depository, credit, nor investment."},"multiple_owner_account_count":{"type":"integer","description":"The number of accounts with multiple owners."},"oldest_transaction_date":{"type":["string","null"],"format":"date","description":"The earliest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."},"most_recent_transaction_date":{"type":["string","null"],"format":"date","description":"The latest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."}},"required":["primary_account_count","depository_account_type_count","credit_account_type_count","investment_account_type_count","other_account_type_count","multiple_owner_account_count","oldest_transaction_date","most_recent_transaction_date"]}]},"CraReportGetIncomeInsightsMetadata":{"title":"CraReportGetIncomeInsightsMetadata","type":["object","null"],"additionalProperties":true,"description":"Income Insights report metadata returned by `/cra/report/get`.","allOf":[{"$ref":"#/components/schemas/CraReportGetProductBaseMetadata"},{"type":"object","properties":{"primary_account_count":{"type":"integer","description":"The number of accounts carrying Plaid's primary account indicator, based on a report-level view of the user's transaction history."},"depository_account_type_count":{"type":"integer","description":"The number of depository accounts used to generate the report."},"credit_account_type_count":{"type":"integer","description":"The number of credit accounts used to generate the report."},"investment_account_type_count":{"type":"integer","description":"The number of investment accounts used to generate the report."},"other_account_type_count":{"type":"integer","description":"The number of accounts that are neither depository, credit, nor investment."},"multiple_owner_account_count":{"type":"integer","description":"The number of accounts with multiple owners."},"oldest_transaction_date":{"type":["string","null"],"format":"date","description":"The earliest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."},"most_recent_transaction_date":{"type":["string","null"],"format":"date","description":"The latest transaction date across the accounts the report was generated from. `null` if none of those accounts have posted transactions."}},"required":["primary_account_count","depository_account_type_count","credit_account_type_count","investment_account_type_count","other_account_type_count","multiple_owner_account_count","oldest_transaction_date","most_recent_transaction_date"]}]},"CraReportGetHomeLendingResponseProduct":{"title":"CraReportGetHomeLendingResponseProduct","type":"object","additionalProperties":true,"description":"Home Lending data returned by `/cra/report/get`.","properties":{"product":{"type":"string","enum":["cra_home_lending"],"description":"The Home Lending product."},"version":{"$ref":"#/components/schemas/CraProductVersion"},"metadata":{"$ref":"#/components/schemas/CraReportGetHomeLendingMetadata"},"attributes":{"$ref":"#/components/schemas/CraReportGetHomeLendingAttributes"},"items":{"type":"array","description":"The Items, and their accounts, used to generate this product. Always empty when `scope` is `PLAID_NETWORK`, or if this product failed to generate.","items":{"$ref":"#/components/schemas/CraReportGetEnrichedItem"}},"errors":{"type":"array","description":"Product-level errors. Non-empty when this product failed to generate; empty on success.","items":{"$ref":"#/components/schemas/PlaidError"}}},"required":["product","version","metadata","attributes","items","errors"],"x-examples":{"example-1":{"product":"cra_home_lending","version":"V1","metadata":{"generated_time":"2026-06-01T12:00:00Z","item_count":2,"account_count":3,"institution_ids":["ins_56","ins_3"]},"attributes":{"income_metrics":[{"current":{"monthly":{"gross_income":7000,"net_income":4900},"annual":{"gross_income":84000,"net_income":58800}},"iso_currency_code":"USD","unofficial_currency_code":null}],"income_by_categories":[{"iso_currency_code":"USD","unofficial_currency_code":null,"categories":[{"income_category":{"primary":"EARNED_INCOME","secondary":"SALARY"},"current":{"monthly":{"gross_income":5200,"net_income":3600},"annual":{"gross_income":62400,"net_income":43200}}},{"income_category":{"primary":"EARNED_INCOME","secondary":"GIG_ECONOMY"},"current":{"monthly":{"gross_income":1400,"net_income":900},"annual":{"gross_income":16800,"net_income":10800}}},{"income_category":{"primary":"BENEFITS","secondary":"CHILD_SUPPORT"},"current":{"monthly":{"gross_income":400,"net_income":400},"annual":{"gross_income":4800,"net_income":4800}}}]}],"income_sources":{"income_stream_count":3,"income_providers":[{"name":"Acme Corp","is_normalized":true},{"name":"Lyft","is_normalized":true}]},"loan_payments_cash_advance_count_90d":0,"payment_behavior_nsf_late_fees_flag_90d":0,"loan_payments_bnpl_count_90d":0},"items":[],"errors":[]}}},"CraReportGetHomeLendingAttributes":{"title":"CraReportGetHomeLendingAttributes","type":["object","null"],"additionalProperties":true,"description":"Home Lending attribute data returned by `/cra/report/get`.","properties":{"income_metrics":{"type":"array","description":"Modeled income metrics, one entry per currency observed across the user's income streams.","items":{"$ref":"#/components/schemas/CraReportGetHomeLendingIncomeMetrics"}},"income_by_categories":{"type":"array","description":"Modeled income broken down by income category, one entry per currency observed across the user's income streams.","items":{"$ref":"#/components/schemas/CraReportGetHomeLendingIncomeByCategories"}},"income_sources":{"$ref":"#/components/schemas/CraReportGetHomeLendingIncomeSources"},"loan_payments_cash_advance_count_90d":{"type":"integer","description":"The number of cash advance loan payments observed in the trailing 90 days."},"loan_payments_bnpl_count_90d":{"type":"integer","description":"The number of buy-now-pay-later loan payments observed in the trailing 90 days."},"payment_behavior_nsf_late_fees_flag_90d":{"type":"integer","description":"A flag indicating whether non-sufficient-funds or late fees were observed in the trailing 90 days."}},"required":["income_metrics","income_by_categories","income_sources","loan_payments_cash_advance_count_90d","loan_payments_bnpl_count_90d","payment_behavior_nsf_late_fees_flag_90d"]},"CraReportGetHomeLendingIncomeMetrics":{"title":"CraReportGetHomeLendingIncomeMetrics","type":"object","additionalProperties":true,"description":"Modeled current income for a given currency. Home Lending reports current income only; there is no projected income figure.","properties":{"current":{"$ref":"#/components/schemas/CraCurrentModeledIncome"},"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"}},"required":["current","iso_currency_code","unofficial_currency_code"]},"CraReportGetHomeLendingIncomeByCategories":{"title":"CraReportGetHomeLendingIncomeByCategories","type":"object","additionalProperties":true,"description":"Modeled income for one currency, broken down by income category.","properties":{"iso_currency_code":{"$ref":"#/components/schemas/CreditIsoCurrencyCode"},"unofficial_currency_code":{"$ref":"#/components/schemas/CreditUnofficialCurrencyCode"},"categories":{"type":"array","description":"The income categories observed for this currency, ordered by primary and then secondary category.","items":{"$ref":"#/components/schemas/CraReportGetHomeLendingCategoryIncome"}}},"required":["iso_currency_code","unofficial_currency_code","categories"]},"CraReportGetHomeLendingCategoryIncome":{"title":"CraReportGetHomeLendingCategoryIncome","type":"object","additionalProperties":true,"description":"Modeled current income for a single income category.","properties":{"income_category":{"$ref":"#/components/schemas/CraIncomeCategory"},"current":{"$ref":"#/components/schemas/CraCurrentModeledIncome"}},"required":["income_category","current"]},"CraReportGetHomeLendingIncomeSources":{"title":"CraReportGetHomeLendingIncomeSources","type":["object","null"],"additionalProperties":true,"description":"Summary of the income sources backing the Home Lending report.","properties":{"income_stream_count":{"type":"integer","description":"The number of income streams detected for the user."},"income_providers":{"type":"array","description":"The income providers observed across the user's income streams, ordered by provider name.","items":{"$ref":"#/components/schemas/CraBankIncomeIncomeProvider"}}},"required":["income_stream_count","income_providers"]},"CraReportGetHomeLendingMetadata":{"title":"CraReportGetHomeLendingMetadata","type":["object","null"],"additionalProperties":true,"description":"Home Lending report metadata returned by `/cra/report/get`.","allOf":[{"$ref":"#/components/schemas/CraReportGetProductBaseMetadata"}]},"CraReportGetProductMetadata":{"title":"CraReportGetProductMetadata","type":["object","null"],"description":"A map of product report metadata, where the key is a string and the value varies by product. For a full list of metadata fields per product, see the data dictionary. May be `null` if metadata was not available.","additionalProperties":{}},"CraReportGetProductAttributes":{"title":"CraReportGetProductAttributes","type":["object","null"],"description":"A map of product attributes, where the key is a string and the value can be any JSON value. The specific list of attributes depends on the product and version. For a full list, see the data dictionary. May be `null` if attributes were not available.","additionalProperties":{}},"CraReportGetResponse":{"title":"CraReportGetResponse","additionalProperties":true,"type":"object","description":"CraReportGetResponse defines the response schema for `/cra/report/get`.","properties":{"report":{"$ref":"#/components/schemas/CraReportGetReport"},"request_id":{"$ref":"#/components/schemas/RequestID"},"user_id":{"$ref":"#/components/schemas/NewUserID"},"client_user_id":{"type":["string","null"],"description":"The unique ID representing the end user that you supplied as `client_user_id` when creating the user via `/user/create`. `null` if the user has no `client_user_id` on record."},"warnings":{"type":"array","description":"User or report-level errors that affected the overall report but do not map to a specific product failure.","items":{"$ref":"#/components/schemas/CheckReportWarning"}}},"required":["client_user_id","report","request_id","user_id","warnings"]},"AssetReportFreddieGetRequest":{"title":"AssetReportFreddieGetRequest","type":"object","additionalProperties":true,"description":"AssetReportFreddieGetRequest defines the request schema for `/credit/asset_report/freddie_mac/get`","properties":{"audit_copy_token":{"type":"string","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."},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["audit_copy_token"]},"AssetReportFreddieGetResponse":{"title":"AssetReportFreddieGetResponse","type":"object","additionalProperties":true,"description":"AssetReportFreddieGetResponse defines the response schema for `/credit/asset_report/freddie_mac/get`","properties":{"DEAL":{"$ref":"#/components/schemas/AssetReportFreddie"},"request_id":{"$ref":"#/components/schemas/RequestID"},"SchemaVersion":{"type":"number","description":"The Verification Of Assets (aka VOA or Freddie Mac Schema) schema version."}},"required":["DEAL","request_id","SchemaVersion"]},"AssetReportFreddie":{"title":"AssetReportFreddie","type":"object","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"]},"Loans":{"title":"Loans","type":"object","additionalProperties":true,"description":"A collection of loans that are part of a single deal.","properties":{"LOAN":{"$ref":"#/components/schemas/Loan"}},"required":["LOAN"]},"Loan":{"title":"Loan","type":"object","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"]},"LoanIdentifiers":{"title":"LoanIdentifiers","type":"object","additionalProperties":true,"description":"Collection of current and previous identifiers for this loan.","properties":{"LOAN_IDENTIFIER":{"$ref":"#/components/schemas/LoanIdentifier"}},"required":["LOAN_IDENTIFIER"]},"LoanIdentifier":{"title":"LoanIdentifier","type":"object","additionalProperties":true,"description":"The information used to identify this loan by various parties to the transaction or other organizations.","properties":{"LoanIdentifier":{"type":["string","null"],"description":"The value of the identifier for the specified type."},"LoanIdentifierType":{"$ref":"#/components/schemas/LoanIdentifierType"}},"required":["LoanIdentifier","LoanIdentifierType"]},"LoanIdentifierType":{"title":"LoanIdentifierType","type":["string","null"],"description":"A value from a MISMO prescribed list that specifies the type of loan identifier.","enum":["LenderLoan","UniversalLoan"]},"Parties":{"title":"Parties","type":"object","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":{"type":"array","items":{"$ref":"#/components/schemas/Party"}}},"required":["PARTY"]},"Party":{"title":"Party","type":"object","additionalProperties":true,"description":"A collection of information about a single party to a transaction. Includes 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"]},"PartyIndividual":{"title":"INDIVIDUAL","type":"object","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"]},"IndividualName":{"title":"NAME","type":"object","additionalProperties":true,"description":"Parent container for name that allows for choice group between parsed and unparsed containers.","properties":{"FirstName":{"type":"string","description":"The first name of the individual represented by the parent object."},"LastName":{"type":"string","description":"The last name of the individual represented by the parent object."}},"required":["FirstName","LastName"]},"Roles":{"title":"Roles","type":"object","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"]},"Role":{"title":"Role","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"ROLE_DETAIL":{"$ref":"#/components/schemas/RoleDetail"}},"required":["ROLE_DETAIL"]},"RoleDetail":{"title":"RoleDetail","type":"object","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"]},"PartyRoleType":{"title":"PartyRoleType","type":"string","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.","enum":["Borrower"]},"TaxpayerIdentifiers":{"title":"TaxpayerIdentifiers","type":"object","additionalProperties":true,"description":"The collection of `TAXPAYER_IDENTIFICATION` elements","properties":{"TAXPAYER_IDENTIFIER":{"$ref":"#/components/schemas/TaxpayerIdentifier"}},"required":["TAXPAYER_IDENTIFIER"]},"TaxpayerIdentifier":{"title":"TaxpayerIdentifier","type":"object","additionalProperties":true,"description":"Information about the Taxpayer identification values assigned to the individual or legal entity.","properties":{"TaxpayerIdentifierType":{"$ref":"#/components/schemas/TaxpayerIdentifierType"},"TaxpayerIdentifierValue":{"type":["string","null"],"description":"The value of the taxpayer identifier as assigned by the IRS to the individual or legal entity."}},"required":["TaxpayerIdentifierType","TaxpayerIdentifierValue"]},"TaxpayerIdentifierType":{"title":"TaxpayerIdentifierType","type":["string","null"],"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"]},"Services":{"title":"Services","type":"object","additionalProperties":true,"description":"A collection of objects that describe requests and responses for services.","properties":{"SERVICE":{"$ref":"#/components/schemas/Service"}},"required":["SERVICE"]},"Service":{"title":"Service","type":"object","additionalProperties":true,"description":"A collection of details related to a fulfillment service or product in terms of request, process and result.","properties":{"VERIFICATION_OF_ASSET":{"$ref":"#/components/schemas/VerificationOfAsset"},"STATUSES":{"$ref":"#/components/schemas/Statuses"}},"required":["VERIFICATION_OF_ASSET","STATUSES"]},"VerificationOfAsset":{"title":"VerificationOfAsset","type":"object","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"]},"ReportingInformation":{"title":"ReportingInformation","type":"object","additionalProperties":true,"description":"Information about a report identifier and a report name.","properties":{"ReportingInformationIdentifier":{"type":"string","description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."}},"required":["ReportingInformationIdentifier"]},"ServiceProductFulfillment":{"title":"ServiceProductFulfillment","type":"object","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"]},"ServiceProductFulfillmentDetail":{"title":"ServiceProductFulfillmentDetail","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"VendorOrderIdentifier":{"type":["string","null"],"description":"A string that uniquely identifies a type of order Verification of Asset."},"ServiceProductFulfillmentIdentifier":{"$ref":"#/components/schemas/ServiceProductFulfillmentIdentifier"}},"required":["VendorOrderIdentifier","ServiceProductFulfillmentIdentifier"]},"ServiceProductFulfillmentIdentifier":{"title":"ServiceProductFulfillmentIdentifier","type":"string","description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","enum":["VOA","VOE"]},"VerificationOfAssetResponse":{"title":"VerificationOfAssetResponse","type":"object","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"]},"Assets":{"title":"Assets","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"ASSET":{"type":"array","items":{"$ref":"#/components/schemas/Asset"},"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."}},"required":["ASSET"]},"Asset":{"title":"Asset","type":"object","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_OWNERS":{"$ref":"#/components/schemas/AssetOwners"},"ASSET_HOLDER":{"$ref":"#/components/schemas/AssetHolder"},"ASSET_TRANSACTIONS":{"$ref":"#/components/schemas/AssetTransactions"},"VALIDATION_SOURCES":{"$ref":"#/components/schemas/ValidationSources"}},"required":["ASSET_DETAIL","ASSET_OWNERS","ASSET_HOLDER","ASSET_TRANSACTIONS","VALIDATION_SOURCES"]},"AssetDetail":{"title":"AssetDetail","type":"object","additionalProperties":true,"description":"Details about an asset. In CRA reports, holdings-derived balances, `AssetRetirementIndicator`, and `AssetEmployerSponsoredIndicator` may be omitted when recent investment data was unavailable at report generation. The account's current and available balances remain included.","properties":{"AssetUniqueIdentifier":{"type":"string","description":"A vendor created unique Identifier."},"AssetAccountIdentifier":{"type":"string","description":"A unique alphanumeric string identifying an asset."},"AssetAsOfDate":{"type":"string","description":"Account Report As of Date / Create Date. Format YYYY-MM-DD"},"AssetDescription":{"type":["string","null"],"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."},"AssetAvailableBalanceAmount":{"type":"number","format":"double","description":"Asset Account Available Balance."},"AssetCurrentBalanceAmount":{"type":"number","format":"double","description":"Asset Account Current Balance."},"AssetHoldingBalanceAmount":{"type":["number","null"],"format":"double","description":"Total market value of holdings (non-restricted, vested, not crypto, not other, not cash) Note: Any employer stock plan balance must be excluded from the total account balance (identification is 'stock plan')"},"AssetHoldingBalanceNetMarginAmount":{"type":["number","null"],"format":"double","description":"HoldingsBalance net MarginAmount"},"AssetBondsBalanceAmount":{"type":["number","null"],"format":"double","description":"Total market value of all bonds held (non-restricted, vested)"},"AssetStocksBalanceAmount":{"type":["number","null"],"format":"double","description":"Total market value of all stocks held (non-restricted, vested, not employer sponsored stock plan)"},"AssetCryptoBalanceAmount":{"type":["number","null"],"format":"double","description":"Total balance of all cryptocurrency held (non-restricted, vested)"},"AssetOtherBalanceAmount":{"type":["number","null"],"format":"double","description":"Total balance of all other holding types (non-restricted, vested)"},"AssetMarginAmountBalance":{"type":["number","null"],"format":"double","description":"loan balance (amount owed by account owner)"},"AssetAvailableCashBalanceAmount":{"type":["number","null"],"format":"double","description":"amount available for cash withdrawal"},"AssetCashBalanceAmount":{"type":["number","null"],"format":"double","description":"cash balance of the account"},"AssetType":{"$ref":"#/components/schemas/AssetType"},"AssetTypeAdditionalDescription":{"type":["string","null"],"description":"Additional Asset Description. 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."},"AssetDaysRequestedCount":{"type":"integer","description":"The number of days requested from the Financial Institution. Example: When looking for 3 months of data from the FI, pass in 90 days."},"AssetOwnershipType":{"type":["string","null"],"description":"Ownership type of the asset account."},"AssetRetirementIndicator":{"type":["string","null"],"enum":["Yes","No"],"description":"Whether or not the account is a retirement account (e.g., 401K, 403b, 457, thrift savings plans, traditional and Roth, IRAs, SEP-IRA, SIMPLE-IRA, KEOGH, state retirement savings plans, other independent and IRS-qualified employer retirement plans)"},"AssetEmployerSponsoredIndicator":{"type":["string","null"],"enum":["Yes","No"],"description":"Whether the account is employer sponsored retirement account or not (e.g., 401K, 403b, 457, thrift savings plan)"}},"required":["AssetUniqueIdentifier","AssetAccountIdentifier","AssetAsOfDate","AssetDescription","AssetAvailableBalanceAmount","AssetCurrentBalanceAmount","AssetType","AssetTypeAdditionalDescription","AssetDaysRequestedCount","AssetOwnershipType"]},"AssetType":{"title":"AssetType","type":"string","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"]},"AssetOwners":{"title":"AssetOwners","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"ASSET_OWNER":{"type":"array","items":{"$ref":"#/components/schemas/AssetOwner"},"description":"A list of up to 4 account owners' full names."}},"required":["ASSET_OWNER"]},"AssetOwner":{"title":"AssetOwner","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"AssetOwnerText":{"type":["string","null"],"description":"Account Owner Full Name."}},"required":["AssetOwnerText"]},"AssetHolder":{"title":"AssetHolder","type":"object","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"]},"AssetHolderName":{"title":"NAME","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"FullName":{"type":"string","description":"The unparsed name of either an individual or a legal entity."}},"required":["FullName"]},"AssetHoldings":{"title":"AssetHoldings","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"ASSET_HOLDING":{"type":"array","description":"The holdings associated with the account. In CRA reports, this array may be empty when recent investment data was unavailable at report generation.","items":{"$ref":"#/components/schemas/AssetHolding"}}},"required":["ASSET_HOLDING"]},"AssetHolding":{"title":"AssetHolding","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"AssetHoldingID":{"type":["string","null"],"description":"Unique id of investment position"},"Currency":{"type":["string","null"],"description":"US Dollar"},"AssetHoldingDescription":{"type":["string","null"],"description":"Description of holding"},"AssetHoldingSymbol":{"type":["string","null"],"description":"Investment position's market ticker symbol"},"AssetHoldingSecurityName":{"type":["string","null"],"description":"Security name of investment holding"},"AssetHoldingUnits":{"type":["number","null"],"description":"Number of units of holding"},"AssetHoldingMarketValueAmount":{"type":["number","null"],"description":"market value of investment position"},"AssetHoldingCurrentPriceAmount":{"type":["number","null"],"description":"current price of investment holding"},"AssetHoldingType":{"type":["string","null"],"enum":["Bond","Stock","Crypto","Other"],"description":"Type of holding (e.g. bond, stock, crypto, other)"},"AssetHoldingRestrictedIndicator":{"type":["string","null"],"enum":["Yes","No"],"description":"Whether or not the stock is restricted, i.e. \"Restricted\" or \"Not Restricted\""},"AssetHoldingVestedAmount":{"type":["number","null"],"description":"Amount of holding vested"}},"required":["AssetHoldingID","Currency","AssetHoldingDescription","AssetHoldingSymbol","AssetHoldingSecurityName","AssetHoldingUnits","AssetHoldingMarketValueAmount","AssetHoldingCurrentPriceAmount","AssetHoldingType","AssetHoldingRestrictedIndicator","AssetHoldingVestedAmount"]},"AssetTransactions":{"title":"AssetTransactions","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"ASSET_TRANSACTION":{"type":"array","items":{"$ref":"#/components/schemas/AssetTransaction"}}},"required":["ASSET_TRANSACTION"]},"AssetTransaction":{"title":"AssetTransaction","type":"object","additionalProperties":true,"description":"An object representing...","properties":{"ASSET_TRANSACTION_DETAIL":{"$ref":"#/components/schemas/AssetTransactionDetail"},"ASSET_TRANSACTION_DESCRIPTON":{"type":"array","items":{"$ref":"#/components/schemas/AssetTransactionDescription"},"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac. Note that \"DESCRIPTON\" is an intentional misspelling matching the upstream MISMO field name."}},"required":["ASSET_TRANSACTION_DETAIL","ASSET_TRANSACTION_DESCRIPTON"]},"AssetTransactionDetail":{"title":"AssetTransactionDetail","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"AssetTransactionUniqueIdentifier":{"type":"string","description":"A vendor created unique Identifier."},"AssetTransactionAmount":{"type":"number","description":"Asset Transaction Amount."},"AssetTransactionDate":{"type":"string","format":"date","description":"Asset Transaction Date."},"AssetTransactionPostDate":{"type":"string","format":"date","description":"Asset Transaction Post Date."},"AssetTransactionType":{"$ref":"#/components/schemas/AssetTransactionType"},"AssetInvestmentTransactionType":{"$ref":"#/components/schemas/AssetInvestmentTransactionType"},"AssetTransactionPaidByName":{"type":["string","null"],"description":"Populate with who did the transaction."},"AssetTransactionPaidToName":{"type":["string","null"],"description":"Populate with for whom the transaction is done"},"AssetTransactionTypeAdditionalDescription":{"type":["string","null"],"description":"FI Provided - examples are atm, cash, check, credit, debit, deposit, directDebit, directDeposit, dividend, fee, interest, other, payment, pointOfSale, repeatPayment, serviceCharge, transfer."},"AssetInvestmentTransactionTypeDescription":{"type":["string","null"],"description":"Asset Investment Transaction Type Description."},"AssetTransactionCategoryType":{"$ref":"#/components/schemas/AssetTransactionCategoryType"},"FinancialInstitutionTransactionIdentifier":{"type":["string","null"],"description":"FI provided Transaction Identifier."}},"required":["AssetTransactionUniqueIdentifier","AssetTransactionAmount","AssetTransactionDate","AssetTransactionPostDate","AssetTransactionType","AssetTransactionPaidByName","AssetTransactionTypeAdditionalDescription","AssetInvestmentTransactionTypeDescription","AssetTransactionCategoryType","FinancialInstitutionTransactionIdentifier"]},"AssetTransactionType":{"title":"AssetTransactionType","type":"string","description":"Asset Transaction Type.","enum":["Credit","Debit"]},"AssetInvestmentTransactionType":{"title":"AssetInvestmentTransactionType","type":["string","null"],"description":"Asset Investment Transaction Type Enumerated derived by Vendor.","enum":["Buy","Sell","Dividends","Interest","Transfers","Reinvestments","FundsReceived","Other"]},"AssetTransactionCategoryType":{"title":"AssetTransactionCategoryType","type":["string","null"],"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"]},"AssetTransactionDescription":{"title":"AssetTransactionDescription","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"AssetTransactionDescription":{"type":"string","description":"Asset Transaction Description String up to 3 occurrences 1 required."}},"required":["AssetTransactionDescription"]},"ValidationSources":{"title":"ValidationSources","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"VALIDATION_SOURCE":{"type":"array","items":{"$ref":"#/components/schemas/ValidationSource"},"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."}},"required":["VALIDATION_SOURCE"]},"ValidationSource":{"title":"ValidationSource","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"ValidationSourceName":{"type":["string","null"],"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."},"ValidationSourceReferenceIdentifier":{"type":["string","null"],"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."}},"required":["ValidationSourceName","ValidationSourceReferenceIdentifier"]},"Statuses":{"title":"Statuses","type":"object","additionalProperties":true,"description":"A collection of STATUS containers.","properties":{"STATUS":{"$ref":"#/components/schemas/Status"}},"required":["STATUS"]},"Status":{"title":"Status","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"StatusCode":{"type":["string","null"],"description":"Status Code."},"StatusDescription":{"type":["string","null"],"description":"Status Description."}},"required":["StatusCode","StatusDescription"]},"CreditFreddieMacReportsGetRequest":{"title":"CreditFreddieMacReportsGetRequest","type":"object","description":"CreditFreddieMacReportsGetRequest defines the request schema for `/credit/freddie_mac/reports/get`","properties":{"audit_copy_token":{"type":"string","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."},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["audit_copy_token"]},"CreditFreddieMacReportsGetResponse":{"title":"CreditFreddieMacReportsGetResponse","type":"object","additionalProperties":true,"description":"CreditFreddieMacReportsGetResponse defines the response schema for `/credit/freddie_mac/reports/get`","properties":{"DEAL":{"$ref":"#/components/schemas/CreditFreddieMacVerificationOfAssetsDeal"},"request_id":{"$ref":"#/components/schemas/RequestID"},"SchemaVersion":{"type":"number","description":"The Verification Of Assets (VOA) schema version."}},"required":["request_id","DEAL","SchemaVersion"]},"CreditFreddieMacVerificationOfAssetsDeal":{"title":"CreditFreddieMacVerificationOfAssetsDeal","type":"object","additionalProperties":true,"description":"An object representing an Asset Report with Freddie Mac schema.","properties":{"LOANS":{"$ref":"#/components/schemas/CreditFreddieMacLoans"},"PARTIES":{"$ref":"#/components/schemas/CreditFreddieMacParties"},"SERVICES":{"$ref":"#/components/schemas/CreditFreddieMacServices"}},"required":["LOANS","PARTIES","SERVICES"]},"CreditFreddieMacLoans":{"title":"CreditFreddieMacLoans","type":"object","additionalProperties":true,"description":"A collection of loans that are part of a single deal.","properties":{"LOAN":{"$ref":"#/components/schemas/CreditFreddieMacLoan"}},"required":["LOAN"]},"CreditFreddieMacLoan":{"title":"CreditFreddieMacLoan","type":"object","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"},"LoanRoleType":{"type":"string","description":"Type of loan. The value can only be \"SubjectLoan\"."}},"required":["LOAN_IDENTIFIERS","LoanRoleType"]},"CreditFreddieMacLoanIdentifiers":{"title":"CreditFreddieMacLoanIdentifiers","type":"object","additionalProperties":true,"description":"Collection of current and previous identifiers for this loan.","properties":{"LOAN_IDENTIFIER":{"type":"array","items":{"$ref":"#/components/schemas/LoanIdentifier"}}},"required":["LOAN_IDENTIFIER"]},"CreditFreddieMacServices":{"title":"CreditFreddieMacServices","type":"object","additionalProperties":true,"description":"A collection of objects that describe requests and responses for services.","properties":{"SERVICE":{"$ref":"#/components/schemas/CreditFreddieMacService"}},"required":["SERVICE"]},"CreditFreddieMacService":{"title":"CreditFreddieMacService","type":"object","additionalProperties":true,"description":"A collection of details related to a fulfillment service or product in terms of request, process and result.","properties":{"VERIFICATION_OF_ASSET":{"type":"array","items":{"$ref":"#/components/schemas/CreditFreddieMacVerificationOfAsset"}},"STATUSES":{"$ref":"#/components/schemas/Statuses"}},"required":["VERIFICATION_OF_ASSET","STATUSES"]},"CreditFreddieMacVerificationOfAsset":{"title":"CreditFreddieMacVerificationOfAsset","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"REPORTING_INFORMATION":{"$ref":"#/components/schemas/CreditFreddieMacReportingInformation"},"SERVICE_PRODUCT_FULFILLMENT":{"$ref":"#/components/schemas/ServiceProductFulfillment"},"VERIFICATION_OF_ASSET_RESPONSE":{"$ref":"#/components/schemas/CreditFreddieMacVerificationOfAssetResponse"}},"required":["REPORTING_INFORMATION","SERVICE_PRODUCT_FULFILLMENT","VERIFICATION_OF_ASSET_RESPONSE"]},"CreditFreddieMacReportingInformation":{"title":"CreditFreddieMacReportingInformation","type":"object","additionalProperties":true,"description":"Information about a report identifier and a report name.","properties":{"ReportDateTime":{"type":"string","description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."},"ReportIdentifierType":{"type":"string","description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac. The value can only be \"ReportID\"."},"ReportingInformationParentIdentifier":{"type":"string","description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."},"ReportingInformationIdentifier":{"type":"string","description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."}},"required":["ReportingInformationIdentifier"]},"CreditFreddieMacVerificationOfAssetResponse":{"title":"CreditFreddieMacVerificationOfAssetResponse","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"ASSETS":{"$ref":"#/components/schemas/CreditFreddieMacAssets"}},"required":["ASSETS"]},"CreditFreddieMacAssets":{"title":"CreditFreddieMacAssets","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"ASSET":{"type":"array","items":{"$ref":"#/components/schemas/CreditFreddieMacAsset"},"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."}},"required":["ASSET"]},"CreditFreddieMacAsset":{"title":"CreditFreddieMacAsset","type":"object","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_OWNERS":{"$ref":"#/components/schemas/AssetOwners"},"ASSET_HOLDER":{"$ref":"#/components/schemas/AssetHolder"},"ASSET_HOLDINGS":{"$ref":"#/components/schemas/AssetHoldings"},"ASSET_TRANSACTIONS":{"$ref":"#/components/schemas/CreditFreddieMacAssetTransactions"},"VALIDATION_SOURCES":{"$ref":"#/components/schemas/ValidationSources"}},"required":["ASSET_DETAIL","ASSET_OWNERS","ASSET_HOLDER","ASSET_TRANSACTIONS","VALIDATION_SOURCES"]},"CreditFreddieMacAssetTransactions":{"title":"CreditFreddieMacAssetTransactions","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"ASSET_TRANSACTION":{"type":"array","items":{"$ref":"#/components/schemas/CreditFreddieMacAssetTransaction"},"description":"The transactions associated with the account. In CRA reports, investment transactions may be excluded when recent investment data was unavailable at report generation. Other account transactions remain included."}},"required":["ASSET_TRANSACTION"]},"CreditFreddieMacAssetTransaction":{"title":"CreditFreddieMacAssetTransaction","type":"object","additionalProperties":true,"description":"An object representing...","properties":{"ASSET_TRANSACTION_DETAIL":{"$ref":"#/components/schemas/AssetTransactionDetail"},"ASSET_TRANSACTION_DESCRIPTION":{"type":"array","items":{"$ref":"#/components/schemas/AssetTransactionDescription"},"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac."}},"required":["ASSET_TRANSACTION_DETAIL","ASSET_TRANSACTION_DESCRIPTION"]},"CreditFreddieMacParties":{"title":"CreditFreddieMacParties","type":"object","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":{"type":"array","items":{"$ref":"#/components/schemas/CreditFreddieMacParty"}}},"required":["PARTY"]},"CreditFreddieMacParty":{"title":"CreditFreddieMacParty","type":"object","additionalProperties":true,"description":"A collection of information about a single party to a transaction. Includes direct participants like the borrower and seller as well as indirect participants such as the flood certificate provider.","properties":{"INDIVIDUAL":{"$ref":"#/components/schemas/CreditFreddieMacPartyIndividual"},"ROLES":{"$ref":"#/components/schemas/Roles"},"TAXPAYER_IDENTIFIERS":{"$ref":"#/components/schemas/TaxpayerIdentifiers"}},"required":["INDIVIDUAL","ROLES","TAXPAYER_IDENTIFIERS"]},"CreditFreddieMacPartyIndividual":{"title":"CreditFreddieMacPartyIndividual","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"NAME":{"$ref":"#/components/schemas/CreditFreddieMacIndividualName"}},"required":["NAME"]},"CreditFreddieMacIndividualName":{"title":"CreditFreddieMacIndividualName","type":"object","additionalProperties":true,"description":"Documentation not found in the MISMO model viewer and not provided by Freddie Mac.","properties":{"FirstName":{"type":"string","description":"The first name of the individual represented by the parent object."},"LastName":{"type":"string","description":"The last name of the individual represented by the parent object."},"MiddleName":{"type":"string","description":"The middle name of the individual represented by the parent object."}},"required":["FirstName","LastName","MiddleName"]},"CraCheckReportFreddieMacGetRequest":{"title":"CraCheckReportFreddieMacGetRequest","type":"object","description":"CraCheckReportFreddieMacGetRequest defines the request schema for `/cra/check_report/freddie_mac/get`","properties":{"third_party_user_token":{"$ref":"#/components/schemas/ThirdPartyUserToken"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["third_party_user_token"]},"CraCheckReportFreddieMacGetResponse":{"title":"CraCheckReportFreddieMacGetResponse","type":"object","additionalProperties":true,"description":"CraCheckReportFreddieMacGetResponse defines the response schema for `/cra/check_report/freddie_mac/get`","properties":{"DEAL":{"$ref":"#/components/schemas/CraCheckReportFreddieMacVerificationOfAssetsDeal"},"request_id":{"$ref":"#/components/schemas/RequestID"},"SchemaVersion":{"type":"number","description":"The Verification Of Assets (VOA) schema version."}},"required":["request_id","DEAL","SchemaVersion"]},"CraCheckReportFreddieMacVerificationOfAssetsDeal":{"title":"CraCheckReportFreddieMacVerificationOfAssetsDeal","type":"object","additionalProperties":true,"description":"An object representing a Base Report with Freddie Mac schema.","properties":{"LOANS":{"$ref":"#/components/schemas/CreditFreddieMacLoans"},"PARTIES":{"$ref":"#/components/schemas/CreditFreddieMacParties"},"SERVICES":{"$ref":"#/components/schemas/CreditFreddieMacServices"}},"required":["LOANS","PARTIES","SERVICES"]},"IdentityDocumentsUploadsGetRequest":{"title":"IdentityDocumentsUploadsGetRequest","description":"IdentityDocumentsUploadsGetRequest defines the request schema for `/identity/documents/uploads/get`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"options":{"$ref":"#/components/schemas/IdentityDocumentsUploadsGetRequestOptions"}},"required":["access_token"]},"IdentityDocumentsUploadsGetRequestOptions":{"type":"object","description":"An optional object to filter `/identity/documents/uploads/get` results.","properties":{"account_ids":{"type":"array","description":"A list of `account_ids` to retrieve for the Item.\nNote: An error will be returned if a provided `account_id` is not associated with the Item.","items":{"type":"string"}}}},"IdentityDocumentsUploadsGetResponse":{"type":"object","additionalProperties":true,"description":"IdentityDocumentsUploadsGetResponse defines the response schema for `/identity/documents/uploads/get`","properties":{"accounts":{"type":"array","description":"The accounts for which Identity data has been requested","items":{"$ref":"#/components/schemas/AccountIdentityDocumentUpload"}},"item":{"$ref":"#/components/schemas/Item"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","item","request_id"]},"AccountIdentityDocumentUpload":{"description":"Identity information about an account","title":"AccountIdentityDocumentUpload","allOf":[{"$ref":"#/components/schemas/AccountBase"},{"type":"object","additionalProperties":true,"properties":{"owners":{"type":"array","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. To determine whether the linked account is a business account, use the `holder_category` field on the account object. 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"}},"documents":{"type":["array","null"],"description":"Data about the documents that were uploaded as proof of account ownership.","items":{"$ref":"#/components/schemas/IdentityDocumentUpload"}}},"required":["owners"]}]},"IdentityDocumentUpload":{"title":"IdentityDocumentUpload","type":"object","description":"Document object with metadata of the uploaded document","properties":{"document_id":{"type":"string","description":"A UUID identifying the document."},"metadata":{"$ref":"#/components/schemas/IdentityDocumentUploadMetadata"},"risk_insights":{"$ref":"#/components/schemas/IdentityDocumentUploadRiskInsights"}}},"IdentityDocumentUploadMetadata":{"title":"IdentityDocumentUploadMetadata","type":"object","additionalProperties":true,"description":"Metadata pertaining to the document.","properties":{"document_type":{"type":["string","null"],"description":"The submitted document type. Currently, this will always be `BANK_STATEMENT`."},"is_account_number_match":{"type":["boolean","null"],"description":"Boolean field indicating whether the uploaded document's account number matches the account number we have on file. If `false`, it is not recommended to accept the uploaded identity data as accurate without further verification."},"page_count":{"type":["integer","null"],"description":"The number of pages in the uploaded document."},"last_updated":{"type":"string","format":"date-time","description":"The timestamp when the document was last updated."},"uploaded_at":{"type":"string","format":"date-time","description":"The timestamp when the document was originally uploaded."}}},"IdentityDocumentUploadRiskInsights":{"title":"IdentityDocumentUploadRiskInsights","type":"object","additionalProperties":true,"description":"Object representing fraud risk data of the uploaded document. Only provided when using Identity Document Upload with Fraud Risk enabled.","properties":{"risk_summary":{"$ref":"#/components/schemas/IdentityDocumentUploadRiskSummary"},"risk_signals":{"title":"RiskSignals","type":"array","description":"An array of risk signals.","items":{"$ref":"#/components/schemas/IdentityDocumentUploadRiskSignal"}}}},"IdentityDocumentUploadRiskSummary":{"title":"IdentityDocumentUploadRiskSummary","type":"object","additionalProperties":true,"description":"Risk summary of an uploaded document.","properties":{"risk_score":{"type":["integer","null"],"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."}}},"IdentityDocumentUploadRiskSignal":{"title":"IdentityDocumentUploadRiskSignal","type":"object","additionalProperties":true,"description":"Risk signals tied to the document","properties":{"type":{"type":["string","null"],"description":"The type of risk found.","x-override-enum-values-shown":["FONT","MASKING","OVERLAID_TEXT","EDITED_TEXT","TEXT_COMPRESSION","ADDRESS_FORMAT_ANOMALY","DATE_FORMAT_ANOMALY","FONT_ANOMALY","NAME_FORMAT_ANOMALY","PDF_ALIGNMENT","BRUSH_DETECTION","METADATA_DATES_OUTSIDE_WINDOW","METADATA_DATES_INSIDE_WINDOW","METADATA_DATES_MISSING","METADATA_DATES_MATCH","ADOBE_FONTS","ANNOTATION_DATES","ANNOTATIONS","EDITED_WHILE_SCANNED","EXIF_DATA_MODIFIED","HIGH_USER_ACCESS","MALFORMED_DATE","QPDF","TEXT_LAYER_TEXT","TOUCHUP_TEXT","FLATTENED_PDF","BLACKLISTS","COPYCAT_IMAGE","COPYCAT_TEXT","REJECTED_CUSTOMER","TEMPLATES","SOFTWARE_BLACKLIST"]},"has_fraud_risk":{"description":"Indicates whether fraud risk was detected for this risk signal.","type":["boolean","null"]},"signal_description":{"description":"A human-readable explanation providing more detail about the specific risk signal.","type":["string","null"]},"page_number":{"type":["integer","null"],"description":"The relevant page associated with the risk signal. If the risk signal is not associated with a specific page, the value will be 0."}}},"ItemGetRequest":{"description":"ItemGetRequest defines the request schema for `/item/get`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"}},"required":["access_token"]},"ItemGetResponse":{"type":"object","additionalProperties":true,"description":"ItemGetResponse defines the response schema for `/item/get` and `/item/webhook/update`","properties":{"item":{"$ref":"#/components/schemas/ItemWithConsentFields"},"status":{"$ref":"#/components/schemas/ItemStatusNullable"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["item","request_id"]},"ItemRemoveRequest":{"type":"object","description":"ItemRemoveRequest defines the request schema for `/item/remove`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"reason_code":{"$ref":"#/components/schemas/ItemRemoveReasonCode"},"reason_note":{"type":["string","null"],"maxLength":512,"description":"Additional context or details about the reason for removing the Item. Personally identifiable information, such as an email address or phone number, should not be included in the `reason_note`."}},"required":["access_token"]},"ItemRemoveReasonCode":{"type":["string","null"],"description":"The reason for removing the Item\n\n`FRAUD_FIRST_PARTY`: The end user who owns the connected bank account committed fraud\n\n`FRAUD_FALSE_IDENTITY`: The end user created the connection using false identity information or stolen credentials\n\n`FRAUD_ABUSE`: The end user is abusing the client's service or platform through their connected account\n\n`FRAUD_OTHER`: Other fraud-related reasons involving the end user not covered by the specific fraud categories\n\n`CONNECTION_IS_NON_FUNCTIONAL`: The connection to the end user's financial institution is broken and cannot be restored\n\n`OTHER`: Any other reason for removing the connection not covered by the above categories\n","enum":["FRAUD_FIRST_PARTY","FRAUD_FALSE_IDENTITY","FRAUD_ABUSE","FRAUD_OTHER","CONNECTION_IS_NON_FUNCTIONAL","OTHER"]},"ItemRemoveResponse":{"type":"object","additionalProperties":true,"description":"ItemRemoveResponse defines the response schema for `/item/remove`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ItemWebhookUpdateRequest":{"type":"object","description":"ItemWebhookUpdateRequest defines the request schema for `/item/webhook/update`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"webhook":{"type":["string","null"],"description":"The new webhook URL to associate with the Item. To remove a webhook from an Item, set to `null`.","format":"url"}},"required":["access_token"]},"ItemWebhookUpdateResponse":{"type":"object","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"]},"ItemAccessTokenInvalidateRequest":{"type":"object","description":"ItemAccessTokenInvalidateRequest defines the request schema for `/item/access_token/invalidate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"}},"required":["access_token"]},"ItemAccessTokenInvalidateResponse":{"type":"object","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"]},"ItemPublicTokenExchangeRequest":{"type":"object","description":"ItemPublicTokenExchangeRequest defines the request schema for `/item/public_token/exchange`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"public_token":{"type":"string","description":"Your `public_token`, obtained from the Link `onSuccess` callback or `/sandbox/public_token/create`."}},"required":["public_token"]},"ItemPublicTokenExchangeResponse":{"type":"object","additionalProperties":true,"description":"ItemPublicTokenExchangeResponse defines the response schema for `/item/public_token/exchange`","properties":{"access_token":{"$ref":"#/components/schemas/AccessToken"},"item_id":{"type":"string","description":"The `item_id` value of the Item associated with the returned `access_token`"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["access_token","item_id","request_id"]},"ItemPublicTokenCreateRequest":{"type":"object","description":"ItemPublicTokenCreateRequest defines the request schema for `/item/public_token/create`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"}},"required":["access_token"]},"ItemPublicTokenCreateResponse":{"type":"object","additionalProperties":true,"description":"ItemPublicTokenCreateResponse defines the response schema for `/item/public_token/create`","properties":{"public_token":{"type":"string","description":"A `public_token` for the particular Item corresponding to the specified `access_token`"},"expiration":{"type":"string","format":"date-time"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["public_token","request_id"]},"ItemImportRequest":{"type":"object","description":"ItemImportRequest defines the request schema for `/item/import`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"institution_id":{"$ref":"#/components/schemas/ItemImportRequestInstitutionID"},"products":{"type":"array","description":"Array of product strings. Sent only by a Plaid-internal caller, the Data Partner Dashboard validation tool; external callers never need it. Not required for Permissions Manager callers, who authenticate with `user_auth.user_id`.","x-hidden-from-docs":true,"items":{"$ref":"#/components/schemas/Products"},"minItems":1,"x-override-enum-values-shown":["assets","auth","balance","employment","identity","income_verification","investments","liabilities","payment_initiation","standing_orders","transactions","transfer"]},"user_auth":{"$ref":"#/components/schemas/ItemImportRequestUserAuth"},"options":{"$ref":"#/components/schemas/ItemImportRequestOptions"}},"required":["user_auth"]},"ItemImportRequestInstitutionID":{"type":"string","description":"The Plaid Institution ID associated with the Item. Most callers omit this field; Plaid resolves your institution automatically. If your organization has multiple institutions, contact Plaid to determine whether you should send it."},"ItemAuthMethod":{"description":"The method used to populate Auth data for the Item. This field is only populated for Items that have had Auth numbers data set on at least one of their accounts, and will be omitted otherwise. For info about the various flows, see our [Auth coverage documentation](https://plaid.com/docs/auth/coverage/).\n\n`INSTANT_AUTH`: The Item's Auth data was provided directly by the user's institution connection.\n\n`INSTANT_MATCH`: The Item's Auth data was provided via the Instant Match fallback flow.\n\n`AUTOMATED_MICRODEPOSITS`: The Item's Auth data was provided via the Automated Micro-deposits flow.\n\n`SAME_DAY_MICRODEPOSITS`: The Item's Auth data was provided via the Same-Day Micro-deposits flow.\n\n`INSTANT_MICRODEPOSITS`: The Item's Auth data was provided via the Instant Micro-deposits flow.\n\n`DATABASE_MATCH`: The Item's Auth data was provided via the Database Match flow.\n\n`DATABASE_INSIGHTS`: The Item's Auth data was provided via the Database Insights flow.\n\n`TRANSFER_MIGRATED`: The Item's Auth data was provided via [`/transfer/migrate_account`](https://plaid.com/docs/api/products/transfer/account-linking/#migrate-account-into-transfers).\n\n`INVESTMENTS_FALLBACK`: The Item's Auth data for Investments Move was provided via a [fallback flow](https://plaid.com/docs/investments-move/#fallback-flows).","type":["string","null"],"enum":["INSTANT_AUTH","INSTANT_MATCH","AUTOMATED_MICRODEPOSITS","SAME_DAY_MICRODEPOSITS","INSTANT_MICRODEPOSITS","DATABASE_MATCH","DATABASE_INSIGHTS","TRANSFER_MIGRATED","INVESTMENTS_FALLBACK",null]},"ItemImportRequestOptions":{"type":"object","deprecated":true,"x-hidden-from-docs":true,"description":"An optional object to configure `/item/import` request. Retained for the legacy Plaid Exchange integration; not required for Permissions Manager callers.","properties":{"webhook":{"type":"string","format":"url","deprecated":true,"description":"Specifies a webhook URL to associate with an Item. Plaid fires a webhook if credentials fail.\n"}}},"ItemImportRequestUserAuth":{"type":"object","required":["user_id"],"description":"Object of user ID and auth token pair, permitting Plaid to aggregate a user's accounts","properties":{"user_id":{"type":"string","description":"Your persistent, unique identifier for the customer."},"auth_token":{"type":"string","deprecated":true,"description":"Authorization token used by the legacy Plaid Exchange integration; not required for Permissions Manager callers.","x-hidden-from-docs":true}}},"ItemImportResponse":{"type":"object","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"]},"Item":{"description":"Metadata about the Item.","type":"object","additionalProperties":true,"properties":{"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"},"institution_id":{"description":"The Plaid Institution ID associated with the Item. Field is omitted for Items created without an institution connection, such as Items created via Same-Day Micro-deposits.","type":["string","null"]},"institution_name":{"description":"The name of the institution associated with the Item. Field is omitted for Items created without an institution connection, such as Items created via Same-Day Micro-deposits.","type":["string","null"]},"webhook":{"description":"The URL registered to receive webhooks for the Item. Empty string if no webhook is set.","type":["string","null"]},"auth_method":{"$ref":"#/components/schemas/ItemAuthMethod"},"error":{"$ref":"#/components/schemas/PlaidError"},"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`.","type":"array","items":{"$ref":"#/components/schemas/Products"}},"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.\n","type":"array","items":{"$ref":"#/components/schemas/Products"}},"products":{"description":"A list of products added to the Item. In almost all cases, this will be the same as the `billed_products` field. For some products, it is possible for the product to be added to an Item but not yet billed (e.g. Assets, before `/asset_report/create` has been called, or Auth or Identity when added as Optional Products but before their endpoints have been called), in which case the product may appear in `products` but not in `billed_products`.\n","type":"array","items":{"$ref":"#/components/schemas/Products"}},"consented_products":{"description":"A list of products that the user has consented to for the Item via [Data Transparency Messaging](https://plaid.com/docs/link/data-transparency-messaging-migration-guide). This will consist of all products where both of the following are true: the user has consented to the required data scopes for that product and you have Production access for that product.\n","type":"array","items":{"$ref":"#/components/schemas/Products"},"x-override-enum-values-shown":["assets","auth","balance","balance_plus","beacon","identity","identity_match","investments","investments_auth","liabilities","transactions","income","income_verification","transfer","employment","recurring_transactions","signal","statements","processor_payments","processor_identity","cra_base_report","cra_income_insights","cra_lend_score","cra_partner_insights","cra_cashflow_insights","cra_monitoring","cra_lend_score_complete","cra_income_complete","layer"]},"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. If the Item does not have consent expiration scheduled, this field will be `null`. Currently, only institutions in Europe and a small number of institutions in the US have expiring consent. For a list of US institutions that currently expire consent, see the [OAuth Guide](https://plaid.com/docs/link/oauth/#refreshing-item-consent).","type":["string","null"],"format":"date-time"},"update_type":{"type":"string","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.\n\n`background` - Item can be updated in the background\n\n`user_present_required` - Item requires user interaction to be updated","enum":["background","user_present_required"]},"paired_item_id":{"description":"The `item_id` of the Item that was created alongside this one when a single Link session used both Plaid Inc and Plaid Check products (see [Using Plaid Check products alongside Plaid products](https://plaid.com/docs/check/add-to-app/#using-plaid-check-products-alongside-plaid-products)). For a Plaid Inc Item, this is the paired Plaid Check Item, and the reverse for a Plaid Check Item. The field is omitted for Items that have no paired Item. It is also omitted if Plaid cannot look up the paired Item at request time, so do not treat its absence as proof that an Item is unpaired.","type":["string","null"]}},"required":["item_id","webhook","error","available_products","billed_products","consent_expiration_time","update_type"]},"ItemWithConsentFields":{"description":"Metadata about the Item","type":"object","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/Item"},{"type":"object","properties":{"created_at":{"description":"The date and time when the Item was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.","type":"string","format":"date-time"},"consented_use_cases":{"type":"array","description":"A list of use cases that the user has consented to for the Item via [Data Transparency Messaging](https://plaid.com/docs/link/data-transparency-messaging-migration-guide).\n\nYou can see the full list of use cases or update the list of use cases to request at any time via the Link Customization section of the [Plaid Dashboard](https://dashboard.plaid.com/link/data-transparency-v5).","items":{"type":"string"}},"consented_data_scopes":{"type":"array","description":"A list of data scopes that the user has consented to for the Item via [Data Transparency Messaging](https://plaid.com/docs/link/data-transparency-messaging-migration-guide). These are based on the `consented_products`; see the [full mapping](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/#data-scopes-by-product) of data scopes and products.","items":{"$ref":"#/components/schemas/ItemConsentedDataScope"}}}}]},"ItemConsentedDataScope":{"title":"Consented Data Scope","description":"A data scope for the products that a user can consent to in [Data Transparency Messaging](https://plaid.com/docs/link/data-transparency-messaging-migration-guide)","type":"string","enum":["account_balance_info","contact_info","account_routing_number","transactions","credit_loan_info","investments","payroll_info","income_verification_paystubs_info","income_verification_w2s_info","income_verification_bank_statements","income_verification_employment_info","bank_statements","risk_info","network_insights_lite","fraud_info"]},"ItemStatus":{"description":"An object with information about the status of the Item.","type":["object","null"],"additionalProperties":true,"x-examples":{"example-1":{}},"title":"ItemStatus","properties":{"investments":{"$ref":"#/components/schemas/ItemStatusInvestments"},"transactions":{"$ref":"#/components/schemas/ItemStatusTransactions"},"last_webhook":{"$ref":"#/components/schemas/ItemStatusLastWebhook"}}},"ItemStatusNullable":{"description":"An object with information about the status of the Item.","anyOf":[{"allOf":[{"$ref":"#/components/schemas/ItemStatus"},{"type":"object","additionalProperties":true}]},{"type":"null"}]},"ItemStatusTransactions":{"description":"Information about the last successful and failed transactions update for the Item.","type":["object","null"],"additionalProperties":true,"properties":{"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. This field does not reflect transactions updates performed by non-Transactions products (e.g. Signal).","type":["string","null"],"format":"date-time"},"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. This field does not reflect transactions updates performed by non-Transactions products (e.g. Signal).","type":["string","null"],"format":"date-time"}}},"ItemStatusInvestments":{"description":"Information about the last successful and failed investments update for the Item.","type":["object","null"],"additionalProperties":true,"properties":{"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.","type":["string","null"],"format":"date-time"},"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.","type":["string","null"],"format":"date-time"}}},"ItemStatusLastWebhook":{"description":"Information about the last webhook fired for the Item.","type":["object","null"],"additionalProperties":true,"properties":{"sent_at":{"description":"[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of when the webhook was fired.\n","type":["string","null"],"format":"date-time"},"code_sent":{"description":"The last webhook code sent.","type":"string"}}},"ItemProductsTerminateRequest":{"type":"object","description":"ItemProductsTerminateRequest defines the request schema for `/item/products/terminate`","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"reason_code":{"$ref":"#/components/schemas/ProductsTerminateReasonCode"},"reason_note":{"type":["string","null"],"maxLength":512,"description":"Additional context or details about the reason for terminating products on the Item. Personally identifiable information, such as an email address or phone number, should not be included in the `reason_note`."}},"required":["access_token","reason_code"]},"ProductsTerminateReasonCode":{"type":"string","description":"The reason for terminating products.\n\n`FRAUD_FIRST_PARTY`: The end user who owns the connected bank account committed fraud using their real identity\n\n`FRAUD_FALSE_IDENTITY`: The connection was created using a false or stolen identity\n\n`FRAUD_ABUSE`: The end user is abusing the client's service or platform (for example, automation or excessive retries) through their connected account\n\n`FRAUD_OTHER`: Fraud-related, but not covered by the specific fraud categories above; `reason_note` should clarify\n\n`FRAUD_TRANSACTION`: Fraud occurred at the transaction level, such as an unauthorized transaction, card testing, chargeback, ACH return, or dispute\n\n`CONSUMER_LOAN_PAID_OFF`: The end user paid off their loan and no longer needs the product\n\n`CONSUMER_ACCOUNT_CLOSED`: The end user closed their account with the client and no longer needs the product\n\n`CONSUMER_CHARGE_OFF`: The end user's account has been charged off\n\n`CONSUMER_PAYMENT_METHOD_SWITCHED`: The end user switched to a different payment method and no longer needs the product\n\n`USER_OFFBOARDING`: The user is offboarding from the client's service or platform\n\n`DUPLICATE_ITEM`: This Item is a duplicate of another active Item for the same user\n\n`BILLING_TERMINATION`: The client's billing or subscription relationship with the end user has ended\n\n`OTHER`: None of the above; `reason_note` should clarify\n","enum":["FRAUD_FIRST_PARTY","FRAUD_FALSE_IDENTITY","FRAUD_ABUSE","FRAUD_OTHER","FRAUD_TRANSACTION","CONSUMER_LOAN_PAID_OFF","CONSUMER_ACCOUNT_CLOSED","CONSUMER_CHARGE_OFF","CONSUMER_PAYMENT_METHOD_SWITCHED","USER_OFFBOARDING","DUPLICATE_ITEM","BILLING_TERMINATION","OTHER"]},"ItemProductsTerminateResponse":{"type":"object","additionalProperties":true,"description":"ItemProductsTerminateResponse defines the response schema for `/item/products/terminate`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"OauthAPISecret":{"title":"APISecret","type":"string","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 as either `secret` or `client_secret`."},"OAuthScope":{"title":"OAuth Scope","type":"string","description":"A space-separated list of scopes associated with this token, in the format described in [https://datatracker.ietf.org/doc/html/rfc6749#section-3.3](https://datatracker.ietf.org/doc/html/rfc6749#section-3.3). Currently accepted values are:\n\n`user:read` allows reading user data.\n\n`user:write` allows writing user data.\n\n`exchange` allows exchanging a token using the `urn:plaid:params:oauth:user-token` subject token type.\n\n`mcp:dashboard` allows access to the MCP dashboard server.","examples":["user:read user:write exchange"]},"OAuthErrorCode":{"title":"OAuth Error Code","type":"string","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","invalid_scope","unsupported_grant_type"],"description":"OAuth error code"},"OAuthErrorDescription":{"title":"OAuth Error Description","type":"string","description":"A human-readable description of the error"},"OAuthErrorURI":{"title":"OAuth Error URI","type":"string","description":"A URI identifying the specific error"},"OAuthRefreshToken":{"title":"OAuth Refresh Token","type":"string","description":"Refresh token for OAuth"},"OAuthAccessToken":{"title":"OAuth Access Token","type":"string","description":"Access token for OAuth"},"OAuthAnyToken":{"title":"OAuth Generic Token","type":"string","description":"An OAuth token of any type (`refresh_token`, `access_token`, etc)"},"OAuthGrantType":{"type":"string","enum":["refresh_token","urn:ietf:params:oauth:grant-type:token-exchange","client_credentials"],"description":"The type of OAuth grant being requested:\n\n`client_credentials` allows exchanging a client id and client secret for a refresh and access token.\n\n`refresh_token` allows refreshing an access token using a refresh token. When using this grant type, only the `refresh_token` field is required (along with the `client_id` and `client_secret`).\n\n`urn:ietf:params:oauth:grant-type:token-exchange` allows exchanging a subject token for an OAuth token. When using this grant type, the `audience`, `subject_token` and `subject_token_type` fields are required.\n\nThese grants are defined in their respective RFCs. `refresh_token` and `client_credentials` are defined in RFC 6749 and `urn:ietf:params:oauth:grant-type:token-exchange` is defined in RFC 8693."},"OAuthSubjectTokenType":{"type":"string","enum":["urn:plaid:params:tokens:user","urn:plaid:params:oauth:user-token","urn:plaid:params:credit:multi-user"],"description":"The type of the subject token.\n\n`urn:plaid:params:tokens:user` allows exchanging a Plaid-issued user token for an OAuth token. When using this token type, `audience` must be the same as the `client_id`. `subject_token` must be a Plaid-issued user token issued from the `/user/create` endpoint.\n\n`urn:plaid:params:oauth:user-token` allows exchanging a refresh token for an OAuth token to another `client_id`. The other `client_id` is provided in `audience`. `subject_token` must be an OAuth refresh token issued from the `/oauth/token` endpoint.\n\n`urn:plaid:params:credit:multi-user` allows exchanging a Plaid-issued user token for an OAuth token. When using this token type, `audience` may be a client id or a supported CRA partner URN. `audience` supports a comma-delimited list of clients. When multiple clients are specified in the `audience` a multi-party token is created which can be used by all parties in the audience in conjunction with their `client_id` and `client_secret`."},"OAuthTokenRequest":{"type":"object","required":["grant_type"],"properties":{"grant_type":{"$ref":"#/components/schemas/OAuthGrantType"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"client_secret":{"$ref":"#/components/schemas/OauthAPISecret"},"secret":{"$ref":"#/components/schemas/OauthAPISecret"},"scope":{"$ref":"#/components/schemas/OAuthScope"},"refresh_token":{"$ref":"#/components/schemas/OAuthRefreshToken"},"resource":{"type":"string","description":"URI of the target resource server","examples":["https://production.plaid.com"]},"audience":{"type":"string","description":"Used when exchanging a token. The meaning depends on the `subject_token_type`:\n\n- For `urn:plaid:params:tokens:user`: Must be the same as the `client_id`.\n- For `urn:plaid:params:oauth:user-token`: The other `client_id` to exchange tokens to.\n- For `urn:plaid:params:credit:multi-user`:  a `client_id` or one of the supported CRA partner URNs: `urn:plaid:params:cra-partner:experian`, `urn:plaid:params:cra-partner:fannie-mae`, or `urn:plaid:params:cra-partner:freddie-mac`.","examples":["68028ce48d2b0dec68747f6c"]},"subject_token":{"type":"string","description":"Token representing the subject. The meaning depends on the `subject_token_type`. For `urn:plaid:params:tokens:user`, the `subject_token` must be a Plaid-issued user token from the `/user/create` endpoint. For `urn:plaid:params:oauth:user-token`, the `subject_token` must be an OAuth refresh token issued from the `/oauth/token` endpoint.","examples":["user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d"]},"subject_token_type":{"$ref":"#/components/schemas/OAuthSubjectTokenType"}},"description":"OAuth token grant request."},"OAuthTokenResponse":{"type":"object","required":["access_token","refresh_token","token_type","expires_in","request_id"],"additionalProperties":true,"properties":{"access_token":{"$ref":"#/components/schemas/OAuthAccessToken"},"refresh_token":{"$ref":"#/components/schemas/OAuthRefreshToken"},"token_type":{"type":"string","description":"The type of the returned token. `Bearer` for OAuth access tokens.","examples":["Bearer"]},"expires_in":{"type":"integer","description":"Time remaining in seconds before expiration.","examples":[900]},"request_id":{"$ref":"#/components/schemas/RequestID"}},"description":"OAuth token grant success response"},"OAuthIntrospectRequest":{"type":"object","required":["token"],"properties":{"token":{"$ref":"#/components/schemas/OAuthAnyToken"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"client_secret":{"$ref":"#/components/schemas/OauthAPISecret"},"secret":{"$ref":"#/components/schemas/OauthAPISecret"}},"description":"OAuth token introspect request."},"OAuthIntrospectResponse":{"type":"object","additionalProperties":true,"required":["active","request_id"],"properties":{"active":{"type":"boolean","description":"Boolean indicator of whether or not the presented token is currently active. A `true` value indicates that the token has been issued, has not been revoked, and is within the time window of validity."},"scope":{"$ref":"#/components/schemas/OAuthScope"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"exp":{"type":"integer","description":"Expiration time as UNIX timestamp since January 1 1970 UTC","examples":[1670000000]},"iat":{"type":"integer","description":"Issued at time as UNIX timestamp since January 1 1970 UTC","examples":[1670000000]},"sub":{"type":"string","description":"Subject of the token","examples":["68028ce48d2b0dec68747f6c"]},"aud":{"type":"string","description":"Audience of the token","examples":["https://production.plaid.com"]},"iss":{"type":"string","description":"Issuer of the token","examples":["https://production.plaid.com"]},"token_type":{"type":"string","description":"Type of the token","examples":["Bearer"]},"user_id":{"type":"string","description":"User ID of the token","examples":["wz666MBjYWTp2PDzzggYhM6oWWmBb"]},"request_id":{"$ref":"#/components/schemas/RequestID"}},"description":"OAuth token introspect response"},"OAuthErrorResponse":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"error":{"$ref":"#/components/schemas/OAuthErrorCode"},"error_description":{"$ref":"#/components/schemas/OAuthErrorDescription"},"error_uri":{"$ref":"#/components/schemas/OAuthErrorURI"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"description":"OAuth error response"},"OAuthRevokeRequest":{"type":"object","required":["token"],"properties":{"token":{"$ref":"#/components/schemas/OAuthAnyToken"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"client_secret":{"$ref":"#/components/schemas/OauthAPISecret"},"secret":{"$ref":"#/components/schemas/OauthAPISecret"}},"description":"OAuth token revoke request"},"OAuthRevokeResponse":{"type":"object","required":["request_id"],"additionalProperties":true,"properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"description":"Successful OAuth token revoke response"},"GetRecipientsResponse":{"type":"object","description":"GetRecipientsResponse defines the response schema for `/fdx/recipients`","additionalProperties":true,"properties":{"recipients":{"type":"array","items":{"$ref":"#/components/schemas/ExtendedRecipientMetadata"}}},"required":["recipients"]},"GetConsentsResponse":{"type":"object","description":"GetConsentsResponse defines the response schema for `/fdx/consents`","additionalProperties":true,"properties":{"consent_grants":{"type":"array","description":"Consent grants matching the customerId (and optional status) filter.","items":{"$ref":"#/components/schemas/FDXConsentGrant"}}},"required":["consent_grants"]},"GetRecipientResponse":{"type":"object","description":"GetRecipientResponse defines the response schema for `/fdx/recipient/{recipientId}`","additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/FDXRecipientMetadata"}]},"FDXError":{"type":"object","additionalProperties":true,"description":"Error response for the FDX Consent API. These endpoints use the FDX error format rather than Plaid's standard error object.","properties":{"error_type":{"type":"string","description":"Broad categorization of the error. Stable, and safe for programmatic use. Common values are `BAD_REQUEST`, `NOT_FOUND`, `CONFLICT`, and `INTERNAL_SERVER_ERROR`."},"error_code":{"type":"string","description":"The particular error code. Stable, and safe for programmatic use. For example `32` for a malformed request, `1107` when the consent grant is not found, `409` when the grant is already in a terminal state, and `01` for an internal error."},"error_message":{"type":"string","description":"A developer-friendly description of the error code. Subject to change, so it is not safe for programmatic use."}},"required":["error_type","error_code","error_message"]},"FDXConsentGrant":{"type":"object","additionalProperties":true,"description":"An FDX consent grant.","properties":{"id":{"type":"string","description":"The persistent identifier of the consent grant"},"status":{"$ref":"#/components/schemas/FDXConsentGrantStatus"},"createdTime":{"type":"string","format":"date-time","description":"When the consent was initially granted"},"updatedTime":{"type":"string","format":"date-time","description":"When the consent grant was last updated"},"expirationTime":{"type":"string","format":"date-time","description":"When the consent grant will expire. Omitted when the grant has no expiration."},"parties":{"type":"array","description":"Non-end-user parties participating in the consent grant (Data Recipient, Data Provider, Data Access Platform).","items":{"$ref":"#/components/schemas/FDXParty"}},"resources":{"type":"array","description":"Permissioned resource entries. Omitted when there are no resources.","items":{"$ref":"#/components/schemas/FDXConsentGrantResource"}}},"required":["id","status","createdTime","updatedTime","parties"]},"FDXConsentRevocation":{"type":"object","additionalProperties":true,"description":"Request body for PUT /fdx/consents/{consentId}/revocation.","properties":{"initiator":{"$ref":"#/components/schemas/FDXPartyType"},"reason":{"$ref":"#/components/schemas/FDXUpdateReason"},"otherReason":{"type":"string","description":"Additional information or description of an `OTHER` reason"},"updatedTime":{"type":"string","format":"date-time","description":"When the revocation was effected on the initiator's side"}},"required":["initiator","reason"]},"FDXConsentGrantResource":{"type":"object","additionalProperties":true,"description":"One permissioned resource on a consent grant.","properties":{"resourceType":{"$ref":"#/components/schemas/FDXConsentResourceType"},"resourceId":{"type":"string","description":"Identifier of the resource permissioned."},"dataClusters":{"type":"array","description":"Names of clusters of data elements permissioned.","items":{"$ref":"#/components/schemas/FDXDataCluster"}}},"required":["resourceType","resourceId","dataClusters"]},"FDXConsentRevocations":{"type":"object","additionalProperties":true,"description":"The revocation history of a consent grant. Response body for GET /fdx/consents/{consentId}/revocation.","properties":{"revocations":{"type":"array","description":"Revocation records for the consent grant, most recent first. Empty when the grant has never been revoked.","items":{"$ref":"#/components/schemas/FDXConsentRevocationRecord"}}},"required":["revocations"]},"FDXConsentRevocationRecord":{"type":"object","additionalProperties":true,"description":"One revocation record on a consent grant, mirroring the FDX ConsentRevocation entity.","properties":{"status":{"$ref":"#/components/schemas/FDXConsentGrantStatus"},"reason":{"$ref":"#/components/schemas/FDXUpdateReason"},"initiator":{"$ref":"#/components/schemas/FDXPartyType"},"updatedTime":{"type":"string","format":"date-time","description":"When the consent grant was revoked"}},"required":["status","reason","initiator","updatedTime"]},"FDXConsentGrantStatus":{"title":"FDX Consent Grant Status","description":"Current status of a consent grant. One of `ACTIVE`, `REVOKED`, `EXPIRED`.","type":"string","enum":["ACTIVE","REVOKED","EXPIRED"]},"FDXConsentResourceType":{"title":"FDX Consent Resource Type","description":"Type of resource permissioned on a consent grant.","type":"string","enum":["ACCOUNT","CUSTOMER","DOCUMENT"]},"FDXDataCluster":{"title":"FDX Data Cluster","description":"Name of a cluster of data elements permissioned by a consent grant.","type":"string","enum":["ACCOUNT_BASIC","ACCOUNT_DETAILED","ACCOUNT_PAYMENTS","BILLS","CUSTOMER_CONTACT","CUSTOMER_PERSONAL","IMAGES","INVESTMENTS","NOTIFICATIONS","PAYMENT_SUPPORT","REWARDS","STATEMENTS","TAX","TRANSACTIONS","BALANCES","SCHEDULED_PAYMENTS"]},"FDXRecipientMetadata":{"title":"FDXRecipientMetadata","type":"object","description":"Recipient metadata fields that are defined by FDX.","properties":{"recipient_id":{"title":"Recipient ID","type":"string","maxLength":256,"description":"The recipient's (application's) identifier"},"client_name":{"title":"Client Name","type":"string","maxLength":256,"description":"The recipient's (application's) name, as displayed to your customers during the consent flow"},"logo_uri":{"title":"Logo URI","type":["string","null"],"description":"URL for the recipient's (application's) logo"},"third_party_legal_name":{"title":"Third Party Legal Name","type":"string","maxLength":256,"description":"The recipient's (application's) legal entity name"}},"required":["recipient_id","client_name","third_party_legal_name"]},"ExtendedRecipientMetadata":{"title":"ExtendedRecipientMetadata","description":"Plaid and FDX-defined recipient metadata fields","allOf":[{"$ref":"#/components/schemas/FDXRecipientMetadata"},{"type":"object","properties":{"category":{"title":"Category","description":"The category the recipient (application) falls under","type":"string"},"joined_date":{"title":"Joined Date","description":"The date the recipient (application) gained production access to Plaid","type":"string","format":"date","examples":["2021-07-15"]},"connection_count":{"title":"Connection Count","description":"The number of your customers connected to this recipient (application)","type":"integer"}},"required":["category","joined_date","connection_count"]}]},"FDXNotificationCategory":{"type":"string","title":"Notification Category","enum":["SECURITY","MAINTENANCE","FRAUD","CONSENT","NEW_DATA","TOKENIZED_ACCOUNT_NUMBER"],"description":"Category of Notification"},"FDXTimestamp":{"title":"Timestamp","description":"ISO 8601 date-time in format 'YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]' according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339)","type":"string","format":"date-time","examples":["2021-07-15T14:46:41.375Z"]},"FDXNotificationType":{"type":"string","title":"Notification Type","enum":["ACCOUNT_TAKEOVER","ADDRESS_CHANGED","BALANCE","CONSENT_EXPIRED","CONSENT_GRANTED","CONSENT_REVOKED","CONSENT_UPDATED","CUSTOM","MFA_TARGET_CHANGED","PHONE_CHANGED","PLANNED_OUTAGE","RISK","SERVICE","SUSPECTED_INCIDENT","TAN_ACTIVATED","TAN_CREATED","TAN_REVOKED","TAN_SUSPENDED"],"description":"Type of Notification"},"FDXNotificationSeverity":{"type":"string","title":"Notification Severity","enum":["EMERGENCY","ALERT","WARNING","NOTICE","INFO"],"description":"Severity level of notification"},"FDXNotificationPriority":{"type":"string","title":"Notification Priority","description":"Priority of notification","enum":["HIGH","MEDIUM","LOW"]},"FDXEventStatus":{"title":"FDX Event Status","description":"Current status of indicated entity after reported event change. Not all statuses will be supported on all entity types by all data providers","type":"string","enum":["ACTIVE","EXPIRED","REVOKED","SUSPENDED"]},"FDXUpdateReason":{"title":"FDX Update Reason","description":"Reason for lifecycle event status change","type":"string","enum":["BUSINESS_RULE","SECURITY_EVENT","USER_ACTION","OTHER"]},"FDXPartyType":{"title":"Party Type","description":"Identifies the type of a party","type":"string","enum":["DATA_ACCESS_PLATFORM","DATA_PROVIDER","DATA_RECIPIENT","INDIVIDUAL","MERCHANT","VENDOR"]},"FDXPartyRegistry":{"title":"Party Registry","description":"The registry containing the party's registration with name and id","type":"string","enum":["FDX","GLEIF","ICANN","PRIVATE"]},"FDXParty":{"title":"Party entity","description":"FDX Participant - an entity or person that is a part of a FDX API transaction","type":"object","required":["name","type"],"properties":{"name":{"description":"Human recognizable common name","type":"string"},"type":{"$ref":"#/components/schemas/FDXPartyType"},"homeUri":{"description":"URI for party, where an end user could learn more about the company or application involved in the data sharing chain","type":"string","format":"uri"},"logoUri":{"description":"URI for a logo asset to be displayed to the end user","type":"string","format":"uri"},"registry":{"$ref":"#/components/schemas/FDXPartyRegistry"},"registeredEntityName":{"description":"Registered name of party","type":"string"},"registeredEntityId":{"description":"Registered id of party","type":"string"}}},"FDXNotificationPayloadIdType":{"type":"string","title":"Notification Payload Id Type","enum":["ACCOUNT","CUSTOMER","PARTY","MAINTENANCE","CONSENT"],"description":"Type of entity causing origination of a notification"},"FDXInitiatorFiAttribute":{"title":"Initiator Fi Attribute","description":"Initiator Fi Attribute","type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}},"FDXFiAttribute":{"title":"FI Attribute entity","description":"Financial Institution provider-specific attribute","type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of attribute"},"value":{"type":"string","description":"Value of attribute"}},"required":["name","value"]},"FDXNotificationPayload":{"title":"Notification Payload entity","type":"object","description":"Custom key-value pairs payload for a notification","properties":{"id":{"type":"string","description":"ID for the origination entity related to the notification"},"idType":{"$ref":"#/components/schemas/FDXNotificationPayloadIdType"},"event":{"$ref":"#/components/schemas/FDXLifecycleEvent"}}},"FDXHateoasLinkAction":{"type":"string","enum":["GET","POST","PATCH","DELETE","PUT"],"description":"HTTP Method to use for the request"},"FDXHateoasLink":{"title":"HATEOAS Link","description":"REST application constraint (Hypermedia As The Engine Of Application State)","required":["href"],"type":"object","properties":{"href":{"type":"string","format":"uri-reference","description":"URL to invoke the action on the resource","examples":["https://api.fi.com/fdx/v4/accounts/12345"]},"action":{"$ref":"#/components/schemas/FDXHateoasLinkAction"},"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":{"type":"array","items":{"$ref":"#/components/schemas/FDXContentTypes"},"description":"Content-types that can be used in the Accept header"}}},"FDXContentTypes":{"title":"Content Types","description":"Types of document formats. (Suggested values)","type":"string","enum":["application/pdf","image/gif","image/jpeg","image/tiff","image/png","application/json"]},"FDXNotification":{"title":"FDX Notification entity","type":"object","description":"Provides the base fields of a notification. Clients will read the `type` property to determine the expected notification payload.","properties":{"notificationId":{"type":"string","description":"Id of notification"},"type":{"$ref":"#/components/schemas/FDXNotificationType"},"subtype":{"type":"string","description":"An optional initiator-defined event subtype code or description if the event type needs to be further categorized or described."},"sentOn":{"$ref":"#/components/schemas/FDXTimestamp"},"category":{"$ref":"#/components/schemas/FDXNotificationCategory"},"severity":{"$ref":"#/components/schemas/FDXNotificationSeverity"},"priority":{"$ref":"#/components/schemas/FDXNotificationPriority"},"publisher":{"$ref":"#/components/schemas/FDXParty"},"subscriber":{"$ref":"#/components/schemas/FDXParty"},"notificationPayload":{"$ref":"#/components/schemas/FDXNotificationPayload"},"url":{"$ref":"#/components/schemas/FDXHateoasLink"}},"required":["notificationId","type","sentOn","category","notificationPayload"]},"FDXLifecycleEvent":{"title":"FDX Lifecycle Event entity","description":"Details of consent or payment network identifier or other entity's revocation request or other lifecycle status change event","type":"object","properties":{"status":{"$ref":"#/components/schemas/FDXEventStatus"},"reason":{"$ref":"#/components/schemas/FDXUpdateReason"},"otherReason":{"description":"Additional information or description of an `OTHER` reason","type":"string"},"initiator":{"$ref":"#/components/schemas/FDXPartyType"},"updatedTime":{"$ref":"#/components/schemas/FDXTimestamp"}}},"SignalEvaluateRequest":{"title":"SignalEvaluateRequest","description":"SignalEvaluateRequest defines the request schema for `/signal/evaluate`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"account_id":{"type":"string","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`](https://plaid.com/docs/link/ios/#link-ios-onsuccess-linkSuccess-metadata-accounts-id) callback metadata.\n\nThis will return an [`INVALID_ACCOUNT_ID`](https://plaid.com/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."},"client_transaction_id":{"type":"string","description":"The unique ID that you would like to use to refer to this evaluation attempt - for example, a payment attempt ID. You will use this later to debug this evaluation, and/or report an ACH return, etc. The max length for this field is 36 characters. The `client_transaction_id` also functions as an idempotency key; calling `/signal/evaluate` with a previously used `client_transaction_id` will return the results of the previous evaluation rather than triggering a fresh evaluation.","minLength":1,"maxLength":36},"amount":{"type":"number","format":"double","description":"The transaction amount, in USD (e.g. `102.05`)"},"user_present":{"type":["boolean","null"],"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). When using a Balance-only ruleset, this field is ignored. This field is not currently used as part of Signal Transaction Score evaluations, but may be used in the future.","deprecated":true,"x-hidden-from-docs":true},"client_user_id":{"type":"string","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. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`."},"is_recurring":{"type":["boolean","null"],"description":"Use `true` if the ACH transaction is a part of recurring schedule (for example, a monthly repayment); `false` otherwise. When using a Balance-only ruleset, this field is ignored."},"default_payment_method":{"type":["string","null"],"description":"The default ACH payment method to complete the transaction. When using a Balance-only ruleset, this field is ignored.\n\n`SAME_DAY_ACH`: Same Day ACH by Nacha. The debit transaction is processed and settled on the same day.\n\n`STANDARD_ACH`: Standard ACH by Nacha.\n\n`MULTIPLE_PAYMENT_METHODS`: If there is no default debit rail or there are multiple payment methods.\n\nPossible values:  `SAME_DAY_ACH`, `STANDARD_ACH`, `MULTIPLE_PAYMENT_METHODS`"},"user":{"$ref":"#/components/schemas/SignalUser"},"device":{"$ref":"#/components/schemas/SignalDevice"},"risk_profile_key":{"deprecated":true,"x-hidden-from-docs":true,"type":["string","null"],"description":"Specifying `risk_profile_key` is deprecated. Please provide `ruleset` instead."},"ruleset_key":{"type":["string","null"],"description":"The key of the ruleset to use for evaluating this transaction. You can create a ruleset using the Plaid Dashboard, under [Signal->Rules](https://dashboard.plaid.com/signal/risk-profiles). If not provided, for all new customers as of October 15, 2025, the `default` ruleset will be used. For existing Signal Transaction Scores customers as of October 15, 2025, by default, no ruleset will be used if the `ruleset_key` is not provided. For more information, or to opt out of using rulesets, see [Signal Rules](https://plaid.com/docs/signal/signal-rules/)."}},"required":["access_token","account_id","client_transaction_id","amount"]},"SignalEvaluateResponse":{"title":"SignalEvaluateResponse","description":"SignalEvaluateResponse defines the response schema for `/signal/evaluate`","type":"object","additionalProperties":true,"properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"scores":{"$ref":"#/components/schemas/SignalScores"},"core_attributes":{"$ref":"#/components/schemas/SignalEvaluateCoreAttributes"},"risk_profile":{"$ref":"#/components/schemas/RiskProfile"},"ruleset":{"$ref":"#/components/schemas/Ruleset"},"warnings":{"type":"array","description":"If bank information was not available to be used in the Signal Transaction Scores model, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of results in the case of missing bank data, file a support ticket or contact your Plaid account manager.","items":{"$ref":"#/components/schemas/SignalWarning"}}},"required":["request_id","scores","warnings"]},"SignalScheduleRequest":{"title":"SignalScheduleRequest","description":"SignalScheduleRequest defines the request schema for `/signal/schedule`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"},"account_id":{"type":"string","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`](https://plaid.com/docs/link/ios/#link-ios-onsuccess-linkSuccess-metadata-accounts-id) callback metadata.\n\nThis will return an [`INVALID_ACCOUNT_ID`](https://plaid.com/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."},"client_transaction_id":{"type":"string","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.","minLength":1,"maxLength":36},"amount":{"type":"number","format":"double","description":"The transaction amount, in USD (e.g. `102.05`)"},"default_payment_method":{"$ref":"#/components/schemas/SignalScheduleDefaultPaymentMethod"}},"required":["access_token","account_id","client_transaction_id","amount"]},"SignalScheduleResponse":{"title":"SignalScheduleResponse","description":"SignalScheduleResponse defines the response schema for `/signal/schedule`","type":"object","additionalProperties":true,"properties":{"optimal_date":{"type":["string","null"],"format":"date","description":"The recommended optimal date to submit the debit entry, formatted in ISO 8601 \"YYYY-MM-DD\" (e.g., \"2024-03-30\"). The `optimal_date` is derived from the date with rank = 1 in the following recommendations array.\n\nNOTE: The `default_payment_method` field specified in the request will affect the recommendation, since we're accounting for debit settlement time.\n\nThe debit scheduling evaluation covers the banking days within the seven calendar days after the /signal/schedule request is submitted; the day of the request is never recommended. If no date within this period is considered likely to result in a successful debit attempt, `null` will be returned for the `optimal_date`."},"recommendations":{"type":"array","description":"This array provides a date-by-date evaluation of debit submission recommendations within the evaluation period. Each object in the array represents a retry recommendation for a specific date.","items":{"$ref":"#/components/schemas/SignalScheduleRecommendation"}},"warnings":{"type":"array","description":"If bank information was not available to be used in the Signal Transaction Scores model, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of scores in the case of missing bank data, file a support ticket or contact your Plaid account manager.","items":{"$ref":"#/components/schemas/SignalWarning"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["optimal_date","recommendations","warnings","request_id"]},"SignalDecisionReportRequest":{"title":"SignalDecisionReportRequest","description":"SignalDecisionReportRequest defines the request schema for `/signal/decision/report`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_transaction_id":{"type":"string","description":"Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`","minLength":1,"maxLength":36},"initiated":{"type":"boolean","description":"`true` if the ACH transaction was initiated, `false` otherwise.\n\nThis field must be returned as a boolean. If formatted incorrectly, this will result in an [`INVALID_FIELD`](https://plaid.com/docs/errors/invalid-request/#invalid_field) error."},"days_funds_on_hold":{"type":["integer","null"],"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.\n\nFor 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},"decision_outcome":{"$ref":"#/components/schemas/SignalDecisionOutcome"},"payment_method":{"$ref":"#/components/schemas/SignalPaymentMethod"},"amount_instantly_available":{"type":["number","null"],"format":"double","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)."},"submitted_at":{"x-hidden-from-docs":true,"type":"string","format":"date-time","description":"The date the ACH debit was submitted to the bank for processing (in ISO 8601 format: `YYYY-MM-DDTHH:mm:ssZ`). This field should correspond to the attempt initiated after the `/signal/schedule` call."}},"required":["client_transaction_id","initiated"]},"SignalDecisionReportResponse":{"title":"SignalDecisionReportResponse","description":"SignalDecisionReportResponse defines the response schema for `/signal/decision/report`","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SignalReturnReportRequest":{"title":"SignalReturnReportRequest","description":"SignalReturnReportRequest defines the request schema for `/signal/return/report`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"client_transaction_id":{"type":"string","description":"Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`.","minLength":1,"maxLength":36},"return_code":{"type":"string","description":"Must be a valid ACH return code (e.g. \"R01\")\n\nIf formatted incorrectly, this will result in an [`INVALID_FIELD`](https://plaid.com/docs/errors/invalid-request/#invalid_field) error."},"returned_at":{"type":["string","null"],"format":"date-time","description":"Date and time when you receive the returns from your payment processors, in ISO 8601 format (`YYYY-MM-DDTHH:mm:ssZ`)."}},"required":["client_transaction_id","return_code"]},"SignalReturnReportResponse":{"title":"SignalReturnReportResponse","description":"SignalReturnReportResponse defines the response schema for `/signal/return/report`","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SignalPrepareRequest":{"title":"SignalPrepareRequest","description":"SignalPrepareRequest defines the request schema for `/signal/prepare`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"access_token":{"$ref":"#/components/schemas/AccessToken"}},"required":["access_token"]},"SignalPrepareResponse":{"title":"SignalPrepareResponse","description":"SignalPrepareResponse defines the response schema for `/signal/prepare`","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProcessorSignalEvaluateRequest":{"title":"ProcessorSignalEvaluateRequest","description":"ProcessorSignalEvaluateRequest defines the request schema for `/processor/signal/evaluate`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"client_transaction_id":{"type":"string","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.","minLength":1,"maxLength":36},"amount":{"type":"number","format":"double","description":"The transaction amount, in USD (e.g. `102.05`)"},"user_present":{"type":["boolean","null"],"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)."},"client_user_id":{"type":"string","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. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`."},"is_recurring":{"type":["boolean","null"],"description":"**true** if the ACH transaction is a recurring transaction; **false** otherwise."},"default_payment_method":{"type":["string","null"],"description":"The default ACH payment method to complete the transaction.\n\n`SAME_DAY_ACH`: Same Day ACH by Nacha. The debit transaction is processed and settled on the same day.\n\n`STANDARD_ACH`: Standard ACH by Nacha.\n\n`MULTIPLE_PAYMENT_METHODS`: If there is no default debit rail or there are multiple payment methods.\n\nPossible values:  `SAME_DAY_ACH`, `STANDARD_ACH`, `MULTIPLE_PAYMENT_METHODS`"},"user":{"$ref":"#/components/schemas/SignalUser"},"device":{"$ref":"#/components/schemas/SignalDevice"},"ruleset_key":{"type":["string","null"],"description":"The key of the ruleset to use for this transaction. You can configure a ruleset using the Plaid Dashboard, under [Signal->Rules](https://dashboard.plaid.com/signal/risk-profiles). If not provided, for customers who began using Signal Transaction Scores before October 15, 2025, by default, no ruleset will be used; for customers who began using Signal Transaction Scores after that date, or for Balance customers, the `default` ruleset will be used. For more details, or to opt out of using a ruleset, see [Signal Rules](https://plaid.com/docs/signal/signal-rules/)."}},"required":["processor_token","client_transaction_id","amount"]},"ProcessorSignalEvaluateResponse":{"title":"ProcessorSignalEvaluateResponse","description":"ProcessorSignalEvaluateResponse defines the response schema for `/processor/signal/evaluate`","type":"object","additionalProperties":true,"properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"scores":{"$ref":"#/components/schemas/SignalScores"},"core_attributes":{"$ref":"#/components/schemas/SignalEvaluateCoreAttributes"},"ruleset":{"$ref":"#/components/schemas/Ruleset"},"warnings":{"type":"array","description":"If bank information was not available to be used in the Signal Transaction Scores model, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of scores in the case of missing bank data, file a support ticket or contact your Plaid account manager.","items":{"$ref":"#/components/schemas/SignalWarning"}}},"required":["request_id","scores"]},"ProcessorSignalDecisionReportRequest":{"title":"ProcessorSignalDecisionReportRequest","description":"ProcessorSignalDecisionReportRequest defines the request schema for `/processor/signal/decision/report`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"client_transaction_id":{"type":"string","description":"Must be the same as the `client_transaction_id` supplied when calling `/processor/signal/evaluate`","minLength":1,"maxLength":36},"initiated":{"type":"boolean","description":"`true` if the ACH transaction was initiated, `false` otherwise.\n\nThis field must be returned as a boolean. If formatted incorrectly, this will result in an [`INVALID_FIELD`](https://plaid.com/docs/errors/invalid-request/#invalid_field) error."},"days_funds_on_hold":{"type":["integer","null"],"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.\n\nFor 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},"decision_outcome":{"$ref":"#/components/schemas/SignalDecisionOutcome"},"payment_method":{"$ref":"#/components/schemas/SignalPaymentMethod"},"amount_instantly_available":{"type":["number","null"],"format":"double","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)."}},"required":["processor_token","client_transaction_id","initiated"]},"ProcessorSignalDecisionReportResponse":{"title":"ProcessorSignalDecisionReportResponse","description":"ProcessorSignalDecisionReportResponse defines the response schema for `/processor/signal/decision/report`","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProcessorSignalReturnReportRequest":{"title":"ProcessorSignalReturnReportRequest","description":"ProcessorSignalReturnReportRequest defines the request schema for `/processor/signal/return/report`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"},"client_transaction_id":{"type":"string","description":"Must be the same as the `client_transaction_id` supplied when calling `/processor/signal/evaluate`","minLength":1,"maxLength":36},"return_code":{"type":"string","description":"Must be a valid ACH return code (e.g. \"R01\")\n\nIf formatted incorrectly, this will result in an [`INVALID_FIELD`](https://plaid.com/docs/errors/invalid-request/#invalid_field) error."},"returned_at":{"type":["string","null"],"format":"date-time","description":"Date and time when you receive the returns from your payment processors, in ISO 8601 format (`YYYY-MM-DDTHH:mm:ssZ`)."}},"required":["processor_token","client_transaction_id","return_code"]},"ProcessorSignalReturnReportResponse":{"title":"ProcessorSignalReturnReportResponse","description":"ProcessorSignalReturnReportResponse defines the response schema for `/processor/signal/return/report`","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProcessorSignalPrepareRequest":{"title":"ProcessorSignalPrepareRequest","description":"ProcessorSignalPrepareRequest defines the request schema for `/processor/signal/prepare`","type":"object","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"processor_token":{"$ref":"#/components/schemas/ProcessorToken"}},"required":["processor_token"]},"ProcessorSignalPrepareResponse":{"title":"ProcessorSignalPrepareResponse","description":"ProcessorSignalPrepareResponse defines the response schema for `/processor/signal/prepare`","additionalProperties":true,"type":"object","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"SignalScores":{"title":"SignalEvaluateScores","description":"Risk scoring details broken down by risk category. When using a Balance-only ruleset, this object will not be returned.","type":["object","null"],"additionalProperties":true,"properties":{"customer_initiated_return_risk":{"$ref":"#/components/schemas/CustomerInitiatedReturnRisk"},"bank_initiated_return_risk":{"$ref":"#/components/schemas/BankInitiatedReturnRisk"}}},"SignalScore":{"description":"A score from 1-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood.","type":"integer","minimum":1,"maximum":99},"CustomerInitiatedReturnRisk":{"title":"CustomerInitiatedReturnRisk","type":"object","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, customers of financial institutions can dispute a transaction as unauthorized.","properties":{"score":{"$ref":"#/components/schemas/SignalScore"},"risk_tier":{"$ref":"#/components/schemas/CustomerInitiatedRiskTier"}},"required":["risk_tier","score"]},"CustomerInitiatedRiskTier":{"x-hidden-from-docs":true,"deprecated":true,"description":"DEPRECATED. Use Signal Rules instead to transform the `score` into a useful action.\n\nA tier corresponding to the projected likelihood that the transaction, if initiated, will be subject to a return.\n\nIn the `customer_initiated_return_risk` object, there are five risk tiers corresponding to the scores:\n  1: Predicted customer-initiated return incidence rate between 0.00% - 0.02%\n  2: Predicted customer-initiated return incidence rate between 0.02% - 0.05%\n  3: Predicted customer-initiated return incidence rate between 0.05% - 0.1%\n  4: Predicted customer-initiated return incidence rate between 0.1% - 0.5%\n  5: Predicted customer-initiated return incidence rate greater than 0.5%\n","type":"integer","minimum":1,"maximum":5},"BankInitiatedReturnRisk":{"title":"BankInitiatedReturnRisk","type":"object","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":{"score":{"$ref":"#/components/schemas/SignalScore"},"risk_tier":{"$ref":"#/components/schemas/BankInitiatedRiskTier"}},"required":["risk_tier","score"]},"BankInitiatedRiskTier":{"x-hidden-from-docs":true,"deprecated":true,"description":"DEPRECATED. Use Signal Rules instead to transform the `score` into a useful action.\n\nIn the `bank_initiated_return_risk` object, there are eight risk tiers corresponding to the scores:\n  1: Predicted bank-initiated return incidence rate between 0.0% - 0.5%\n  2: Predicted bank-initiated return incidence rate between 0.5% - 1.5%\n  3: Predicted bank-initiated return incidence rate between 1.5% - 3%\n  4: Predicted bank-initiated return incidence rate between 3% - 5%\n  5: Predicted bank-initiated return incidence rate between 5% - 10%\n  6: Predicted bank-initiated return incidence rate between 10% - 15%\n  7: Predicted bank-initiated return incidence rate between 15% and 50%\n  8: Predicted bank-initiated return incidence rate greater than 50%\n","type":"integer","minimum":1,"maximum":8},"SignalScheduleDefaultPaymentMethod":{"title":"SignalScheduleDefaultPaymentMethod","type":"string","enum":["SAME_DAY_ACH","STANDARD_ACH","MULTIPLE_PAYMENT_METHODS"],"description":"The payment method specified in the `default_payment_method` field directly impacts the timing recommendations provided by the API for submitting the debit entry to your processor or ODFI. If unspecified, defaults to `STANDARD_ACH`.\n\n`SAME_DAY_ACH`: Same Day ACH (as defined by Nacha). The API assumes the settlement will occur on the same business day as submission. Note: The actual cutoff time can vary depending on your payment processor or ODFI. Nacha has established three processing windows for Same Day ACH (Eastern Time): 10:30 AM, 2:45 PM, and 4:45 PM.\n\n`STANDARD_ACH`: Standard ACH (as defined by Nacha), typically settled one to three business days after submission.\n\n`MULTIPLE_PAYMENT_METHODS`: Indicates that there is no default debit rail or multiple payment methods are available, and the transaction could use any of them based on customer policy or availability."},"RecommendationString":{"title":"RecommendationString","type":"string","enum":["RECOMMENDED","NOT_RECOMMENDED","UNKNOWN"],"description":"The recommendation result for that date."},"SignalScheduleRecommendation":{"title":"SignalScheduleRecommendation","type":"object","additionalProperties":true,"description":"Conveys information on if a retry is recommended on a given date","properties":{"date":{"type":"string","format":"date","description":"The specific date for submitting the debit entry, formatted in ISO 8601 (e.g., \"2025-01-17\")."},"recommendation":{"$ref":"#/components/schemas/RecommendationString"},"rank":{"type":["integer","null"],"description":"The rank of the recommendation based on the likelihood of debit success, with 1 representing the most optimal date. Dates with `NOT_RECOMMENDED` or `UNKNOWN` will have rank `null`."}}},"SignalWarning":{"title":"SignalWarning","type":"object","description":"Conveys information about the errors causing missing or stale bank data used to construct the `/signal/evaluate` scores and response","properties":{"warning_type":{"type":"string","description":"A broad categorization of the warning. Safe for programmatic use."},"warning_code":{"type":"string","description":"The warning code identifies a specific kind of warning that pertains to the error causing bank data to be missing. Safe for programmatic use. For more details on warning codes, please refer to Plaid standard error codes documentation. If you receive the `ITEM_LOGIN_REQUIRED` warning, we recommend re-authenticating your user by implementing Link's update mode. This will guide your user to fix their credentials, allowing Plaid to start fetching data again for future requests."},"warning_message":{"type":"string","description":"A developer-friendly representation of the warning type. This may change over time and is not safe for programmatic use."}}},"SignalUser":{"title":"SignalUser","type":"object","description":"Details about the end user initiating the transaction (i.e., the account holder). These fields are optional, but strongly recommended to increase the accuracy of results when using Signal Transaction Scores. When using a Balance-only ruleset, these fields are ignored.","properties":{"name":{"$ref":"#/components/schemas/SignalPersonName"},"phone_number":{"type":["string","null"],"description":"The user's phone number, in E.164 format: +{countrycode}{number}. For example: \"+14151234567\""},"email_address":{"type":["string","null"],"description":"The user's email address."},"address":{"$ref":"#/components/schemas/SignalAddressData"}}},"SignalPersonName":{"title":"SignalPersonName","type":["object","null"],"description":"The user's legal name","properties":{"prefix":{"type":["string","null"],"description":"The user's name prefix (e.g. \"Mr.\")"},"given_name":{"type":["string","null"],"description":"The user's given name. If the user has a one-word name, it should be provided in this field."},"middle_name":{"type":["string","null"],"description":"The user's middle name"},"family_name":{"type":["string","null"],"description":"The user's family name / surname"},"suffix":{"type":["string","null"],"description":"The user's name suffix (e.g. \"II\")"}}},"SignalAddressData":{"title":"AddressData","type":["object","null"],"additionalProperties":true,"description":"Data about the components comprising an address.","properties":{"city":{"type":"string","description":"The full city name"},"region":{"type":["string","null"],"description":"The region or state\nExample: `\"NC\"`"},"street":{"type":"string","description":"The full street address\nExample: `\"564 Main Street, APT 15\"`"},"postal_code":{"type":["string","null"],"description":"The postal code"},"country":{"type":["string","null"],"description":"The ISO 3166-1 alpha-2 country code"}}},"SignalDevice":{"title":"SignalEvaluateDevice","type":"object","description":"Details about the end user's device. These fields are optional, but strongly recommended to increase the accuracy of results when using Signal Transaction Scores. When using a Balance-only ruleset, these fields are ignored.","properties":{"ip_address":{"type":["string","null"],"description":"The IP address of the device that initiated the transaction"},"user_agent":{"type":["string","null"],"description":"The user agent of the device that initiated the transaction (e.g. \"Mozilla/5.0\")"}}},"RiskProfile":{"deprecated":true,"x-hidden-from-docs":true,"title":"SignalEvaluateRiskProfile","type":["object","null"],"description":"RiskProfile is deprecated, use `ruleset` instead.","properties":{"key":{"type":"string","description":"The key of the risk profile used for this transaction."},"outcome":{"type":"string","description":"Legacy method of inspecting the result of the ruleset. New integrations should simply use the \"result\" property instead. This value will be omitted if you do not have a live existing integration with rules using this field."}}},"Ruleset":{"title":"SignalEvaluateRuleset","type":["object","null"],"description":"Details about the transaction result after evaluation by the requested Ruleset. If a `ruleset_key` is not provided, for customers who began using Signal Transaction Scores before October 15, 2025, by default, this field will be omitted. To learn more, see [Signal Rules](https://plaid.com/docs/signal/signal-rules/).","additionalProperties":true,"properties":{"ruleset_key":{"type":"string","description":"The key of the Ruleset used for this transaction."},"result":{"$ref":"#/components/schemas/RuleResult"},"triggered_rule_details":{"$ref":"#/components/schemas/RuleDetails"},"outcome":{"deprecated":true,"type":"string","description":"The evaluated outcome for this transaction. This field is deprecated, use `result` or `triggered_rule_details.custom_action_key` instead.","x-hidden-from-docs":true}},"required":["result"]},"RuleDetails":{"title":"RuleDetails","type":["object","null"],"description":"Rules are run in numerical order. The first rule with a logic match is triggered. These are the details of that rule.","additionalProperties":true,"properties":{"internal_note":{"type":"string","description":"An optional message attached to the triggered rule, defined within the Dashboard, for your internal use. Useful for debugging, such as \"Account appears to be closed.\""},"custom_action_key":{"type":"string","description":"A string key, defined within the Dashboard, used to trigger programmatic behavior for a certain result. For instance, you could optionally choose to define a \"3-day-hold\" `custom_action_key` for an ACCEPT result."}}},"RuleResult":{"type":"string","enum":["ACCEPT","REROUTE","REVIEW"],"description":"The result of the rule that was triggered for this transaction.\n\n`ACCEPT`: Accept the transaction for processing.\n\n`REROUTE`: Reroute the transaction to a different payment method, as this transaction is too risky.\n\n`REVIEW`: Review the transaction before proceeding."},"SignalDecisionOutcome":{"type":["string","null"],"enum":["APPROVE","REVIEW","REJECT","TAKE_OTHER_RISK_MEASURES","NOT_EVALUATED"],"description":"The payment decision from the risk assessment.\n\n`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.\n\n`REVIEW`: the transaction requires manual review\n\n`REJECT`: reject the transaction\n\n`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\n\n`NOT_EVALUATED`: if only logging the results without using them\n"},"SignalPaymentMethod":{"type":["string","null"],"enum":["SAME_DAY_ACH","NEXT_DAY_ACH","STANDARD_ACH","MULTIPLE_PAYMENT_METHODS",null],"x-override-enum-values-shown":["SAME_DAY_ACH","STANDARD_ACH","MULTIPLE_PAYMENT_METHODS"],"description":"The payment method to complete the transaction after the risk assessment. It may be different from the default payment method.\n\n`SAME_DAY_ACH`: Same Day ACH by Nacha. The debit transaction is processed and settled on the same day.\n\n`STANDARD_ACH`: Standard ACH by Nacha.\n\n`MULTIPLE_PAYMENT_METHODS`: if there is no default debit rail or there are multiple payment methods.\n"},"SignalEvaluateCoreAttributes":{"title":"SignalEvaluateCoreAttributes","type":"object","description":"The core attributes object contains additional data that can be used to assess the ACH return risk.\n\nIf using a Balance-only ruleset, only `available_balance` and `current_balance` will be returned as core attributes. If using a Signal Transaction Scores ruleset, over 80 core attributes will be returned. Examples of attributes include:\n\n`available_balance` and `current_balance`: The balance in the ACH transaction funding account\n\n`days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid\n\n`plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days\n\n`plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days\n\n`total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid\n\n`is_savings_or_money_market_account`: Indicates whether the ACH transaction funding account is a savings/money market account\n\nFor 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":{"unauthorized_transactions_count_7d":{"type":["integer","null"],"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."},"unauthorized_transactions_count_30d":{"type":["integer","null"],"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."},"unauthorized_transactions_count_60d":{"type":["integer","null"],"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."},"unauthorized_transactions_count_90d":{"type":["integer","null"],"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."},"nsf_overdraft_transactions_count_7d":{"type":["integer","null"],"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."},"nsf_overdraft_transactions_count_30d":{"type":["integer","null"],"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."},"nsf_overdraft_transactions_count_60d":{"type":["integer","null"],"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."},"nsf_overdraft_transactions_count_90d":{"type":["integer","null"],"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."},"days_since_first_plaid_connection":{"type":["integer","null"],"description":"The number of days since the first time the Item was connected to an application via Plaid"},"plaid_connections_count_7d":{"type":["integer","null"],"description":"The number of times the Item has been connected to applications via Plaid over the past 7 days"},"plaid_connections_count_30d":{"type":["integer","null"],"description":"The number of times the Item has been connected to applications via Plaid over the past 30 days"},"total_plaid_connections_count":{"type":["integer","null"],"description":"The total number of times the Item has been connected to applications via Plaid"},"is_savings_or_money_market_account":{"type":["boolean","null"],"description":"Indicates if the ACH transaction funding account is a savings/money market account"},"total_credit_transactions_amount_10d":{"type":["number","null"],"format":"double","description":"The total credit (inflow) transaction amount over the past 10 days from the account that will be debited"},"total_debit_transactions_amount_10d":{"type":["number","null"],"format":"double","description":"The total debit (outflow) transaction amount over the past 10 days from the account that will be debited"},"p50_credit_transactions_amount_28d":{"type":["number","null"],"format":"double","description":"The 50th percentile of all credit (inflow) transaction amounts over the past 28 days from the account that will be debited"},"p50_debit_transactions_amount_28d":{"type":["number","null"],"format":"double","description":"The 50th percentile of all debit (outflow) transaction amounts over the past 28 days from the account that will be debited"},"p95_credit_transactions_amount_28d":{"type":["number","null"],"format":"double","description":"The 95th percentile of all credit (inflow) transaction amounts over the past 28 days from the account that will be debited"},"p95_debit_transactions_amount_28d":{"type":["number","null"],"format":"double","description":"The 95th percentile of all debit (outflow) transaction amounts over the past 28 days from the account that will be debited"},"days_with_negative_balance_count_90d":{"type":["integer","null"],"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"},"p90_eod_balance_30d":{"type":["number","null"],"format":"double","description":"The 90th percentile of the end-of-day available balance over the past 30 days of the account that will be debited"},"p90_eod_balance_60d":{"type":["number","null"],"format":"double","description":"The 90th percentile of the end-of-day available balance over the past 60 days of the account that will be debited"},"p90_eod_balance_90d":{"type":["number","null"],"format":"double","description":"The 90th percentile of the end-of-day available balance over the past 90 days of the account that will be debited"},"p10_eod_balance_30d":{"type":["number","null"],"format":"double","description":"The 10th percentile of the end-of-day available balance over the past 30 days of the account that will be debited"},"p10_eod_balance_60d":{"type":["number","null"],"format":"double","description":"The 10th percentile of the end-of-day available balance over the past 60 days of the account that will be debited"},"p10_eod_balance_90d":{"type":["number","null"],"format":"double","description":"The 10th percentile of the end-of-day available balance over the past 90 days of the account that will be debited"},"available_balance":{"type":["number","null"],"format":"double","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."},"current_balance":{"type":["number","null"],"format":"double","description":"Current balance, as of the `balance_last_updated` time. The current balance is the total amount of funds in the account."},"balance_last_updated":{"type":["string","null"],"format":"date-time","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."},"phone_change_count_28d":{"type":["integer","null"],"description":"The number of times the account's phone numbers on file have changed over the past 28 days"},"phone_change_count_90d":{"type":["integer","null"],"description":"The number of times the account's phone numbers on file have changed over the past 90 days"},"email_change_count_28d":{"type":["integer","null"],"description":"The number of times the account's email addresses on file have changed over the past 28 days"},"email_change_count_90d":{"type":["integer","null"],"description":"The number of times the account's email addresses on file have changed over the past 90 days"},"address_change_count_28d":{"type":["integer","null"],"description":"The number of times the account's addresses on file have changed over the past 28 days"},"address_change_count_90d":{"type":["integer","null"],"description":"The number of times the account's addresses on file have changed over the past 90 days"},"plaid_non_oauth_authentication_attempts_count_3d":{"type":["integer","null"],"description":"The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days"},"plaid_non_oauth_authentication_attempts_count_7d":{"type":["integer","null"],"description":"The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days"},"plaid_non_oauth_authentication_attempts_count_30d":{"type":["integer","null"],"description":"The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days"},"failed_plaid_non_oauth_authentication_attempts_count_3d":{"type":["integer","null"],"description":"The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days"},"failed_plaid_non_oauth_authentication_attempts_count_7d":{"type":["integer","null"],"description":"The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days"},"failed_plaid_non_oauth_authentication_attempts_count_30d":{"type":["integer","null"],"description":"The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days"},"debit_transactions_count_10d":{"type":["integer","null"],"description":"The total number of debit (outflow) transactions over the past 10 days from the account that will be debited"},"credit_transactions_count_10d":{"type":["integer","null"],"description":"The total number of credit (inflow) transactions over the past 10 days from the account that will be debited"},"debit_transactions_count_30d":{"type":["integer","null"],"description":"The total number of debit (outflow) transactions over the past 30 days from the account that will be debited"},"credit_transactions_count_30d":{"type":["integer","null"],"description":"The total number of credit (inflow) transactions over the past 30 days from the account that will be debited"},"debit_transactions_count_60d":{"type":["integer","null"],"description":"The total number of debit (outflow) transactions over the past 60 days from the account that will be debited"},"credit_transactions_count_60d":{"type":["integer","null"],"description":"The total number of credit (inflow) transactions over the past 60 days from the account that will be debited"},"debit_transactions_count_90d":{"type":["integer","null"],"description":"The total number of debit (outflow) transactions over the past 90 days from the account that will be debited"},"credit_transactions_count_90d":{"type":["integer","null"],"description":"The total number of credit (inflow) transactions over the past 90 days from the account that will be debited"},"total_debit_transactions_amount_30d":{"type":["number","null"],"format":"double","description":"The total debit (outflow) transaction amount over the past 30 days from the account that will be debited"},"total_credit_transactions_amount_30d":{"type":["number","null"],"format":"double","description":"The total credit (inflow) transaction amount over the past 30 days from the account that will be debited"},"total_debit_transactions_amount_60d":{"type":["number","null"],"format":"double","description":"The total debit (outflow) transaction amount over the past 60 days from the account that will be debited"},"total_credit_transactions_amount_60d":{"type":["number","null"],"format":"double","description":"The total credit (inflow) transaction amount over the past 60 days from the account that will be debited"},"total_debit_transactions_amount_90d":{"type":["number","null"],"format":"double","description":"The total debit (outflow) transaction amount over the past 90 days from the account that will be debited"},"total_credit_transactions_amount_90d":{"type":["number","null"],"format":"double","description":"The total credit (inflow) transaction amount over the past 90 days from the account that will be debited"},"p50_eod_balance_30d":{"type":["number","null"],"format":"double","description":"The 50th percentile of the end-of-day available balance over the past 30 days of the account that will be debited"},"p50_eod_balance_60d":{"type":["number","null"],"format":"double","description":"The 50th percentile of the end-of-day available balance over the past 60 days of the account that will be debited"},"p50_eod_balance_90d":{"type":["number","null"],"format":"double","description":"The 50th percentile of the end-of-day available balance over the past 90 days of the account that will be debited"},"p50_eod_balance_31d_to_60d":{"type":["number","null"],"format":"double","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"},"p50_eod_balance_61d_to_90d":{"type":["number","null"],"format":"double","description":"The 50th percentile of the end-of-day available balance between day 61 and day 90 over the past 90 days of the account that will be debited"},"p90_eod_balance_31d_to_60d":{"type":["number","null"],"format":"double","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"},"p90_eod_balance_61d_to_90d":{"type":["number","null"],"format":"double","description":"The 90th percentile of the end-of-day available balance between day 61 and day 90 over the past 90 days of the account that will be debited"},"p10_eod_balance_31d_to_60d":{"type":["number","null"],"format":"double","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"},"p10_eod_balance_61d_to_90d":{"type":["number","null"],"format":"double","description":"The 10th percentile of the end-of-day available balance between day 61 and day 90 over the past 90 days of the account that will be debited"},"transactions_last_updated":{"type":["string","null"],"format":"date-time","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."},"is_account_closed":{"type":["boolean","null"],"description":"Indicates if the account that will be debited is closed"},"is_account_frozen_or_restricted":{"type":["boolean","null"],"description":"Indicates if the account that will be debited is either frozen or restricted"},"distinct_ip_addresses_count_3d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 3 days"},"distinct_ip_addresses_count_7d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 7 days"},"distinct_ip_addresses_count_30d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 30 days (max 100)"},"distinct_ip_addresses_count_90d":{"type":["integer","null"],"description":"The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 90 days (max 100)"},"distinct_user_agents_count_3d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 3 days"},"distinct_user_agents_count_7d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 7 days"},"distinct_user_agents_count_30d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 30 days"},"distinct_user_agents_count_90d":{"type":["integer","null"],"description":"The number of distinct user agents linked to the same bank account during Plaid authentication in the last 90 days"},"distinct_ssl_tls_connection_sessions_count_3d":{"type":["integer","null"],"description":"The number of distinct SSL/TLS connection sessions linked to the same bank account during Plaid authentication in the last 3 days"},"distinct_ssl_tls_connection_sessions_count_7d":{"type":["integer","null"],"description":"The number of distinct SSL/TLS connection sessions linked to the same bank account during Plaid authentication in the last 7 days"},"distinct_ssl_tls_connection_sessions_count_30d":{"type":["integer","null"],"description":"The number of distinct SSL/TLS connection sessions linked to the same bank account during Plaid authentication in the last 30 days"},"distinct_ssl_tls_connection_sessions_count_90d":{"type":["integer","null"],"description":"The number of distinct SSL/TLS connection sessions linked to the same bank account during Plaid authentication in the last 90 days"},"days_since_account_opening":{"type":["integer","null"],"description":"The number of days since the bank account was opened, as reported by the financial institution"},"balance_to_transaction_amount_ratio":{"type":["number","null"],"format":"double","description":"Taking `available_or_current_balance` and dividing it by the transaction amount. Useful to say \"10% buffer\", for example. This is a convenience function to build Signal Rules upon."}}},"StatementsListRequest":{"title":"StatementsListRequest","type":"object","description":"StatementsListRequest defines the request schema for `/statements/list`","properties":{"access_token":{"$ref":"#/components/schemas/AccessToken"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"}},"required":["access_token"]},"StatementsListResponse":{"title":"StatementsListResponse","type":"object","additionalProperties":true,"description":"StatementsListResponse defines the response schema for `/statements/list`","properties":{"accounts":{"type":"array","items":{"$ref":"#/components/schemas/StatementsAccount"}},"institution_id":{"description":"The Plaid Institution ID associated with the Item.","type":"string"},"institution_name":{"description":"The name of the institution 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"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["accounts","institution_id","institution_name","item_id","request_id"]},"StatementsAccount":{"title":"StatementsAccount","type":"object","additionalProperties":true,"description":"Account associated with the Item.","properties":{"account_id":{"description":"Plaid's unique identifier for the account.","type":"string"},"account_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.","type":"string"},"account_name":{"description":"The name of the account, either assigned by the user or by the financial institution itself.","type":"string"},"account_official_name":{"description":"The official name of the account as given by the financial institution.","type":"string"},"account_subtype":{"description":"The subtype of the account. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).","type":"string"},"account_type":{"description":"The type of account. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).","type":"string"},"statements":{"description":"The list of statements' metadata associated with this account.","type":"array","items":{"$ref":"#/components/schemas/StatementsStatement"}}},"required":["account_id","account_name","account_official_name","account_subtype","account_type","account_mask","statements"]},"StatementsStatement":{"title":"StatementsStatement","type":"object","additionalProperties":true,"description":"A statement's metadata associated with an account","properties":{"statement_id":{"description":"Plaid's unique identifier for the statement.","type":"string"},"date_posted":{"description":"Date when the statement was posted by the FI, if known","type":["string","null"],"format":"date"},"month":{"description":"Month of the year. Possible values: 1 through 12 (January through December).","type":"integer"},"year":{"description":"The year of the statement, e.g. 2024.","type":"integer","minimum":2010}},"required":["statement_id","month","year"]},"StatementsDownloadRequest":{"title":"StatementsDownloadRequest","type":"object","description":"StatementsDownloadRequest defines the request schema for `/statements/download`","properties":{"access_token":{"$ref":"#/components/schemas/AccessToken"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"statement_id":{"description":"Plaid's unique identifier for the statement.","type":"string"}},"required":["access_token","statement_id"]},"StatementsDownloadResponse":{"contentMediaType":"application/octet-stream","title":"StatementsDownloadResponse","description":"StatementsDownloadResponse defines the response schema for `/statements/download`. The response will contain a `Plaid-Content-Hash` header containing a SHA 256 checksum of the statement. This can be used to verify that the file being sent by Plaid is the same file that was downloaded to your system."},"StatementsRefreshRequest":{"title":"StatementsRefreshRequest","type":"object","description":"StatementsRefreshRequest defines the request schema for `/statements/refresh`","properties":{"access_token":{"$ref":"#/components/schemas/AccessToken"},"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"start_date":{"description":"The start date for statements, in \"YYYY-MM-DD\" format, e.g. \"2023-08-30\". To determine whether a statement falls within the specified date range, Plaid will use the statement posted date. The statement posted date is typically either the last day of the statement period, or the following day.","type":"string","format":"date"},"end_date":{"description":"The end date for statements, in \"YYYY-MM-DD\" format, e.g. \"2023-10-30\". You can request up to two years of data. To determine whether a statement falls within the specified date range, Plaid will use the statement posted date. The statement posted date is typically either the last day of the statement period, or the following day.","type":"string","format":"date"}},"required":["access_token","start_date","end_date"]},"StatementsRefreshResponse":{"title":"StatementsRefreshResponse","type":"object","additionalProperties":true,"description":"StatementsRefreshResponse defines the response schema for `/statements/refresh`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProtectComputeRequest":{"type":"object","description":"Request object for /protect/compute","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"model":{"type":"string","maxLength":128,"description":"The name of the Trust Index model to use for scoring. Examples: `ti-link-session-3` or `ti-link-session-3.0` (link-session fraud), `ti-identity-2.0` (identity fraud), and `cash-advance-ongoing-<client>-1.0` (cash advances). Cash-advance models are client-scoped; use the model name issued for your client. The model specified may require certain fields within `model_inputs`; for example, `ti-link-session-2` requires the `link` field. Cash-advance models do not use `model_inputs`."},"user":{"$ref":"#/components/schemas/ProtectUser"},"model_inputs":{"$ref":"#/components/schemas/ProtectModelInputs"}},"required":["model","user"]},"ProtectModelInputs":{"type":["object","null"],"description":"Inputs required by certain Trust Index models. The `link` field is required for link-session models. Other model families (including cash-advance) are identified by `user` alone and do not use this object.","properties":{"link":{"$ref":"#/components/schemas/ProtectLinkModelInputs"},"device":{"$ref":"#/components/schemas/ProtectDeviceModelInputs"}}},"ProtectLinkModelInputs":{"type":["object","null"],"description":"Inputs for link session Trust Index models.","properties":{"link_session_id":{"type":"string","maxLength":128,"description":"A unique identifier for the Link session, used to compute a Trust Index score and fraud attributes."},"require_extracted_data":{"type":"boolean","x-hidden-from-docs":true,"description":"Controls whether transaction extraction must be complete before scoring. If `false` (default), returns a score whether or not transaction extraction is complete, as long as the link session is finished; if data has been extracted it will still be included in the score computation. If `true`, returns HTTP 400 with `error_type` = `INVALID_REQUEST` and `error_code` = `FAILED_PRECONDITION` if extraction is still in progress; once data is ready a score will be returned normally."}},"required":["link_session_id"]},"ProtectDeviceModelInputs":{"type":["object","null"],"description":"Inputs for device Trust Index models.","properties":{"device_session_id":{"type":"string","maxLength":128,"description":"A unique identifier for the device session started via the Protect SDK, used to compute a Trust Index score and fraud attributes."}},"required":["device_session_id"]},"ProtectComputeResponse":{"type":"object","additionalProperties":true,"description":"Response object for /protect/compute","properties":{"score":{"type":["integer","null"],"description":"The Trust Index score, on a 0-100 scale where higher values indicate lower risk."},"model":{"type":"string","description":"The versioned name of the Trust Index model used for scoring."},"attributes":{"$ref":"#/components/schemas/FraudAttributes"},"subscores":{"$ref":"#/components/schemas/ProtectComputeSubscores"},"timestamp":{"type":["string","null"],"format":"date-time","description":"The timestamp when the Trust Index score and fraud attributes were computed, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProtectComputeSubscores":{"type":["object","null"],"additionalProperties":true,"description":"Per-bucket subscores returned alongside the overall Trust Index score. For cash-advance models, each key maps to an amount-bucket subscore (0-100); higher values indicate lower fraud risk. Only buckets that were scored are included in the response.","properties":{"cash_advance_bucket_0_25":{"type":["integer","null"],"description":"Subscore for cash advance amounts in the range $0-$25."},"cash_advance_bucket_25_50":{"type":["integer","null"],"description":"Subscore for cash advance amounts in the range $25-$50."},"cash_advance_bucket_50_100":{"type":["integer","null"],"description":"Subscore for cash advance amounts in the range $50-$100."},"cash_advance_bucket_100_200":{"type":["integer","null"],"description":"Subscore for cash advance amounts in the range $100-$200."},"cash_advance_bucket_200_300":{"type":["integer","null"],"description":"Subscore for cash advance amounts in the range $200-$300."},"cash_advance_bucket_300_400":{"type":["integer","null"],"description":"Subscore for cash advance amounts in the range $300-$400."},"cash_advance_bucket_400_500":{"type":["integer","null"],"description":"Subscore for cash advance amounts in the range $400-$500."}}},"ProtectAPIToken":{"title":"ProtectAPIToken","type":"string","description":"The customer's Plaid Protect API Token. The `protect_api_token` is required and may be provided either in the `PROTECT-API-TOKEN` header or as part of a request body."},"ProtectClientSessionStartData":{"title":"ProtectClientSessionStartData","type":"string","deprecated":true,"description":"Deprecated. This field remains accepted for backward compatibility with existing SDK integrations. New integrations should omit it when starting a session and submit device data through `/protect/client/session/update` instead."},"ProtectReportCreateRequest":{"type":"object","description":"Request object for `/protect/report/create`.\nYou must provide either `user_id`, `client_user_id`, or an `incident_event` with at least one supported identifier: `link_session_id`, `idv_session_id`, `protect_event_id`, `signal_client_transaction_id`, or `access_token`. Context fields such as `internal_reference`, `time`, `amount`, and `bank_account` do not satisfy this identifier requirement.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"type":["string","null"],"description":"The Plaid User ID associated with the report. This or `client_user_id` can be provided, not both."},"client_user_id":{"type":["string","null"],"maxLength":128,"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`. This or `user_id` can be provided, not both. If a Plaid User does not already exist for this `client_user_id` within your client account, one will be created."},"incident_event":{"$ref":"#/components/schemas/ProtectIncidentEvent"},"report_confidence":{"$ref":"#/components/schemas/ProtectReportConfidence"},"report_type":{"$ref":"#/components/schemas/ProtectReportType"},"report_source":{"$ref":"#/components/schemas/ProtectReportSource"},"bank_account":{"$ref":"#/components/schemas/ProtectBankAccount"},"ach_return_code":{"type":["string","null"],"description":"Must be a valid ACH return code (e.g. `R01`), required if `report_type` is `ACH_RETURN`."},"notes":{"type":["string","null"],"description":"Additional context or details about the report."}},"required":["report_confidence","report_type","report_source"]},"ProtectReportCreateResponse":{"type":"object","additionalProperties":true,"description":"Response object for /protect/report/create","properties":{"report_id":{"type":"string","description":"A unique identifier representing the submitted report."},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["report_id","request_id"]},"ProtectCashAdvanceDecisionCreateRequest":{"type":"object","description":"Request object for `/protect/cash_advance/decision/create`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user":{"$ref":"#/components/schemas/ProtectUser"},"client_advance_id":{"type":["string","null"],"description":"Your unique identifier for a cash-advance. Required when `is_taken` is `true`. This should be the same identifier provided when recording a repayment."},"advance_type":{"$ref":"#/components/schemas/CashAdvanceType"},"previous_advance_count":{"type":["integer","null"],"minimum":0,"description":"The number of cash-advances a user has previously taken."},"decision_time":{"type":"string","format":"date-time","description":"The time the decision was made, in ISO 8601 / RFC 3339 format (`YYYY-MM-DDTHH:mm:ssZ`)."},"decision":{"$ref":"#/components/schemas/CashAdvanceDecisionOutcome"},"is_taken":{"type":["boolean","null"],"description":"Whether the end user took the cash-advance. Required when `decision` is APPROVED. When `true`, `client_advance_id` and `cash_advance` are required."},"cash_advance":{"$ref":"#/components/schemas/CashAdvanceInfo"}},"required":["user","decision_time","decision"]},"CashAdvanceInfo":{"type":["object","null"],"additionalProperties":true,"description":"The details of a cash-advance associated with the decision. Required when `is_taken` is `true`.","properties":{"amount_approved":{"description":"The amount a user was approved for in a cash-advance.","allOf":[{"$ref":"#/components/schemas/Amount"}]},"amount_due":{"description":"The amount a user is required to pay, including any fees or additional amounts. Required when `cash_advance` is provided.","allOf":[{"$ref":"#/components/schemas/Amount"}]},"due_date":{"type":"string","format":"date","description":"The date the cash-advance is due, in ISO 8601 format (`YYYY-MM-DD`). Required when `cash_advance` is provided."}},"required":["amount_approved"]},"Amount":{"type":"object","additionalProperties":true,"description":"A monetary amount and its currency.","properties":{"iso_currency_code":{"type":"string","description":"The ISO-4217 currency code of the amount. Defaults to USD if not specified.","default":"USD"},"value":{"type":"number","format":"double","description":"The amount value."}},"required":["value"]},"ProtectCashAdvanceDecisionCreateResponse":{"type":"object","additionalProperties":true,"description":"Response object for `/protect/cash_advance/decision/create`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProtectCashAdvanceRepaymentCreateRequest":{"type":"object","description":"Request object for `/protect/cash_advance/repayment/create`.","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user":{"$ref":"#/components/schemas/ProtectUser"},"client_advance_id":{"type":"string","description":"The client's unique identifier for the cash-advance."},"status":{"$ref":"#/components/schemas/CashAdvanceRepaymentStatus"},"repayment_time":{"type":["string","null"],"format":"date-time","description":"The time the repayment occurred. Required when `status` is `REPAID` or `PARTIAL_PAYMENT`. In ISO 8601 / RFC 3339 format (`YYYY-MM-DDTHH:mm:ssZ`)."},"repayment":{"$ref":"#/components/schemas/CashAdvanceRepayment"}},"required":["user","client_advance_id","status","repayment"]},"CashAdvanceRepayment":{"type":"object","additionalProperties":true,"description":"The repayment details for a cash-advance.","properties":{"amount_paid":{"description":"The amount a user paid. Required if there was a payment made.","anyOf":[{"$ref":"#/components/schemas/Amount"},{"type":"null"}]},"amount_due":{"description":"The amount a user is required to pay, including any fees or additional amounts.","allOf":[{"$ref":"#/components/schemas/Amount"}]},"due_date":{"type":"string","format":"date","description":"The date the cash-advance is due, in ISO 8601 format (`YYYY-MM-DD`)."}},"required":["amount_due","due_date"]},"ProtectCashAdvanceRepaymentCreateResponse":{"type":"object","additionalProperties":true,"description":"Response object for `/protect/cash_advance/repayment/create`.","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["request_id"]},"ProtectUser":{"type":"object","additionalProperties":true,"description":"Represents an end user for `/protect/compute` requests.","properties":{"user_id":{"type":"string","description":"The Plaid User ID returned from a previous call to `/user/create`. This or `client_user_id` can be provided, not both."},"client_user_id":{"type":"string","description":"A unique ID representing the end user, previously passed to `/user/create`. 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`."}}},"TrustIndex":{"type":["object","null"],"additionalProperties":true,"description":"Represents a calculated Trust Index Score.","properties":{"score":{"type":"integer","description":"The overall trust index score."},"model":{"type":"string","description":"The versioned name of the Trust Index model used for scoring."},"subscores":{"$ref":"#/components/schemas/TrustIndexSubscores"}},"required":["score","model","subscores"]},"TrustIndexSubscores":{"type":["object","null"],"additionalProperties":true,"description":"Contains sub-score metadata.","properties":{"device_and_connection":{"$ref":"#/components/schemas/TrustIndexSubscore"},"bank_account_insights":{"$ref":"#/components/schemas/TrustIndexSubscore"}}},"TrustIndexSubscore":{"type":["object","null"],"additionalProperties":true,"description":"Represents Trust Index Subscore.","properties":{"score":{"type":"integer","description":"The subscore score."}},"required":["score"]},"ProtectUserInsightsGetRequest":{"type":"object","description":"Request object for /protect/user/insights/get","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"user_id":{"type":"string","description":"The Plaid User ID. Either `user_id` or `client_user_id` must be provided."},"client_user_id":{"type":"string","description":"A unique ID representing the end user. Either `user_id` or `client_user_id` must be provided."}}},"ProtectReport":{"type":"object","additionalProperties":true,"description":"A Protect report associated with a user. Contains details about documented incidents, which may include fraud, investigation outcomes, or other risk events.","properties":{"report_id":{"type":"string","description":"A unique identifier representing the submitted report."},"incident_event":{"$ref":"#/components/schemas/ProtectIncidentEventResponse"},"report_confidence":{"$ref":"#/components/schemas/ProtectReportConfidence"},"report_type":{"$ref":"#/components/schemas/ProtectReportType"},"report_source":{"$ref":"#/components/schemas/ProtectReportSource"},"bank_account":{"$ref":"#/components/schemas/ProtectBankAccount"},"ach_return_code":{"type":["string","null"],"description":"ACH return code if the report type is `ACH_RETURN` (e.g. `R01`)."},"notes":{"type":["string","null"],"description":"Additional context or details about the report."},"created_at":{"type":"string","format":"date-time","description":"The timestamp when the report was created, in ISO 8601 format (e.g., '2020-07-24T03:26:02Z')."}},"required":["report_id","incident_event","report_confidence","report_type","report_source","bank_account","ach_return_code","notes","created_at"]},"ProtectUserInsightsGetResponse":{"type":"object","additionalProperties":true,"description":"Response object for /protect/user/insights/get","properties":{"user_id":{"type":"string","description":"The Plaid User ID. If a `client_user_id` was provided in the request instead of a `user_id`, a new `user_id` will be generated if one doesn't already exist for that `client_user_id`."},"latest_scored_event":{"$ref":"#/components/schemas/LatestScoredEvent"},"reports":{"type":"array","description":"List of Protect reports associated with this user, limited to the most recent 100 reports in reverse chronological order (newest first).","items":{"$ref":"#/components/schemas/ProtectReport"}},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["user_id","latest_scored_event","request_id"]},"ProtectEventSendRequest":{"type":"object","description":"Request object for /protect/event/send","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"timestamp":{"type":"string","format":"date-time","description":"Timestamp of the event. Might be the current moment or a time in the past. In [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`"},"event":{"$ref":"#/components/schemas/ProtectEvent"},"device_session_id":{"type":"string","description":"Device Session ID should be provided for any event correlated with a frontend user session started via the Protect SDK."},"request_trust_index":{"type":"boolean","description":"Whether this event should be scored with Trust Index. The default is false."}},"required":["event"]},"ProtectEventSendResponse":{"type":"object","additionalProperties":true,"description":"Response object for /protect/event/send","properties":{"event_id":{"type":"string","description":"The id of the recorded event."},"trust_index":{"$ref":"#/components/schemas/TrustIndex"},"fraud_attributes":{"$ref":"#/components/schemas/FraudAttributes"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["event_id","request_id"]},"ProtectEventGetRequest":{"type":"object","description":"Request object for /protect/event/get","properties":{"client_id":{"$ref":"#/components/schemas/APIClientID"},"secret":{"$ref":"#/components/schemas/APISecret"},"event_id":{"type":"string","description":"The event ID to retrieve information for."}},"required":["event_id"]},"ProtectEventGetResponse":{"type":"object","additionalProperties":true,"description":"Response object for /protect/event/get","properties":{"event_id":{"type":"string","description":"The event ID."},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`"},"event_type":{"type":"string","description":"The external event type, when one is available."},"trust_index":{"$ref":"#/components/schemas/TrustIndex"},"fraud_attributes":{"$ref":"#/components/schemas/FraudAttributes"},"request_id":{"$ref":"#/components/schemas/RequestID"}},"required":["event_id","timestamp","request_id"]},"LatestScoredEvent":{"type":["object","null"],"additionalProperties":true,"description":"The latest scored event for a user.","properties":{"event_id":{"type":"string","description":"The event ID."},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`"},"event_type":{"type":"string","description":"The external event type, when one is available."},"trust_index":{"$ref":"#/components/schemas/TrustIndex"},"fraud_attributes":{"$ref":"#/components/schemas/FraudAttributes"}},"required":["event_id","timestamp","trust_index","fraud_attributes"]},"ProtectEvent":{"type":["object","null"],"additionalProperties":true,"description":"Event data for Protect events.","properties":{"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `\"2017-09-14T14:42:19.350Z\"`"},"device_session_id":{"type":"string","description":"If present, contains the current Device Session ID from the Protect SDK."},"app_visit":{"$ref":"#/components/schemas/ProtectAppVisitEvent"},"user_sign_in":{"$ref":"#/components/schemas/ProtectUserSignInEvent"},"user_sign_up":{"$ref":"#/components/schemas/ProtectUserSignUpEvent"}},"required":["timestamp"]},"ProtectAppVisitEvent":{"type":["object","null"],"additionalProperties":true,"description":"This event type represents a user visiting the client application."},"ProtectUserSignInEvent":{"type":["object","null"],"additionalProperties":true,"description":"This event type represents a user signing in to the application."},"ProtectUserSignUpEvent":{"type":["object","null"],"additionalProperties":true,"description":"This event type represents a user signing up for the application."},"FraudAttributes":{"type":["object","null"],"additionalProperties":{},"description":"Event fraud attributes as an arbitrary set of key-value pairs. The set of attributes returned varies by model."},"ProtectIncidentEvent":{"type":["object","null"],"additionalProperties":true,"description":"Details about the incident event.","properties":{"protect_event_id":{"type":["string","null"],"description":"A globally unique identifier representing a Protect event that may be associated with this incident."},"link_session_id":{"type":["string","null"],"description":"A unique identifier for a Link session that may be associated with this incident."},"idv_session_id":{"type":["string","null"],"description":"A unique identifier for an Identity Verification session that may be associated with this incident."},"signal_client_transaction_id":{"type":["string","null"],"description":"The unique ID used to refer to a Signal transaction evaluation that may be associated with this incident."},"internal_reference":{"type":["string","null"],"description":"A unique ID representing the incident in your system. Personally identifiable information, such as an email address or phone number, should not be used in this field."},"time":{"type":["string","null"],"format":"date-time","description":"The timestamp when the incident occurred, in ISO 8601 format (e.g., '2020-07-24T03:26:02Z')."},"amount":{"$ref":"#/components/schemas/ProtectIncidentAmount"},"access_token":{"description":"An access token associated with the Item related to this incident.","allOf":[{"$ref":"#/components/schemas/AccessTokenNullable"}]},"item_id":{"type":["string","null"],"description":"An `item_id` associated with the Item related to this incident. To identify an Item when creating a report, provide `access_token`."}}},"ProtectIncidentEventResponse":{"type":["object","null"],"additionalProperties":true,"description":"Details about the incident event.","properties":{"protect_event_id":{"type":["string","null"],"description":"A globally unique identifier representing a Protect event that may be associated with this incident."},"link_session_id":{"type":["string","null"],"description":"A unique identifier for a Link session that may be associated with this incident."},"idv_session_id":{"type":["string","null"],"description":"A unique identifier for an Identity Verification session that may be associated with this incident."},"signal_client_transaction_id":{"type":["string","null"],"description":"The unique ID used to refer to a Signal transaction evaluation that may be associated with this incident."},"internal_reference":{"type":["string","null"],"description":"A unique ID representing the incident in your system. Personally identifiable information, such as an email address or phone number, should not be used in this field."},"time":{"type":["string","null"],"format":"date-time","description":"The timestamp when the incident occurred, in ISO 8601 format (e.g., '2020-07-24T03:26:02Z')."},"amount":{"$ref":"#/components/schemas/ProtectIncidentAmount"},"item_id":{"type":["string","null"],"description":"The `item_id` associated with the Item related to this incident."}}},"ProtectIncidentAmount":{"type":["object","null"],"additionalProperties":true,"description":"The monetary amount associated with the incident.","properties":{"iso_currency_code":{"type":["string","null"],"default":"USD","description":"The ISO-4217 currency code of the incident amount. Defaults to `USD` if not specified."},"value":{"type":"number","format":"double","description":"The monetary value of the incident amount."}},"required":["value"]},"CashAdvanceDecisionOutcome":{"type":"string","enum":["APPROVED","DECLINED"],"description":"The outcome of a cash-advance decision.\n\n`APPROVED` - The cash-advance was approved.\n\n`DECLINED` - The cash-advance was declined."},"CashAdvanceType":{"type":"string","enum":["FIRST","REPEAT"],"description":"Required when `is_taken` is `true`.\nIndicates if this would be a user's first or repeat cash-advance.\n\n`FIRST` - A user's first cash-advance.\n\n`REPEAT` - A user has previously taken out a cash-advance."},"CashAdvanceRepaymentStatus":{"type":"string","enum":["REPAID","PARTIAL_PAYMENT","UNPAID"],"description":"The repayment status of a cash-advance.\n\n`REPAID` - The cash-advance has been fully repaid.\n\n`PARTIAL_PAYMENT` - A payment has been made on the cash-advance, but there is still an outstanding balance.\n\n`UNPAID` - The cash-advance is past its due date and has not been repaid; the user is delinquent."},"ProtectReportConfidence":{"type":"string","enum":["CONFIRMED","SUSPECTED"],"description":"The confidence level of the incident report.\n`CONFIRMED` indicates the incident has been verified and definitively occurred.\n\n`SUSPECTED` indicates the incident is believed to have occurred but has not been fully verified."},"ProtectReportType":{"type":"string","enum":["USER_ACCOUNT_TAKEOVER","FALSE_IDENTITY","STOLEN_IDENTITY","SYNTHETIC_IDENTITY","MULTIPLE_USER_ACCOUNTS","SCAM_VICTIM","BANK_ACCOUNT_TAKEOVER","BANK_CONNECTION_REVOKED","CARD_TESTING","UNAUTHORIZED_TRANSACTION","CARD_CHARGEBACK","ACH_RETURN","DISPUTE","FIRST_PARTY_FRAUD","MISSED_PAYMENT","LOAN_STACKING","MONEY_LAUNDERING","NO_FRAUD","OTHER"],"description":"The type of incident being reported.\n\n`USER_ACCOUNT_TAKEOVER` - Indicates that a legitimate user's account was accessed or controlled by an unauthorized party.\n\n`FALSE_IDENTITY` - Indicates that a user created an account using stolen or fabricated identity information.\n\n`STOLEN_IDENTITY` - Indicates that a user created an account using identity information belonging to a real individual without their consent.\n\n`SYNTHETIC_IDENTITY` - Indicates that a user created an account using a fake or partially fabricated identity (e.g., combining real and fake information to form a new persona).\n\n`MULTIPLE_USER_ACCOUNTS` - Indicates that the same individual is operating multiple accounts in violation of policy.\n\n`SCAM_VICTIM` - Indicates that the user was tricked into authorizing or sending funds as part of a scam.\n\n`BANK_ACCOUNT_TAKEOVER` - Indicates that a user's linked bank account was accessed or misused by an unauthorized party.\n\n`BANK_CONNECTION_REVOKED` - Indicates that a linked bank account connection was revoked by the financial institution, often due to suspected misuse, fraud, or security concerns.\n\n`CARD_TESTING` - Indicates that a card was used in small or repeated transactions to test its validity.\n\n`UNAUTHORIZED_TRANSACTION` - Indicates that a transaction was made without the user's consent or authorization.\n\n`CARD_CHARGEBACK` - Indicates that a card transaction was reversed via a chargeback claim.\n\n`ACH_RETURN` - Indicates that an ACH transaction was returned or reversed by the bank.\n\n`DISPUTE` - Indicates that a user filed a dispute regarding a transaction or account activity.\n\n`FIRST_PARTY_FRAUD` - Indicates that a user intentionally misrepresented themselves or their actions for financial gain.\n\n`MISSED_PAYMENT` - Indicates that a user failed to make a required payment on time.\n\n`LOAN_STACKING` - Indicates that a user applied for or took out multiple loans simultaneously beyond their ability to repay.\n\n`MONEY_LAUNDERING` - Indicates that funds are being moved through accounts to obscure their illicit origin.\n\n`NO_FRAUD` - Indicates that an investigation determined no fraudulent activity occurred on user/event (positive label).\n\n`OTHER` - Indicates that the case involves fraud or financial risk not covered by other report types."},"ProtectReportSource":{"type":"string","enum":["INTERNAL_REVIEW","USER_SELF_REPORTED","BANK_FEEDBACK","NETWORK_FEEDBACK","AUTOMATED_SYSTEM","THIRD_PARTY_ALERT","OTHER"],"description":"The source that identified or reported the incident.\n\n`INTERNAL_REVIEW` - Incident was identified through internal fraud investigations or review processes.\n\n`USER_SELF_REPORTED` - Incident was reported directly by the affected user.\n\n`BANK_FEEDBACK` - Incident was identified through bank feedback, including ACH returns and connection revocations.\n\n`NETWORK_FEEDBACK` - Incident was identified through card network alerts or chargebacks.\n\n`AUTOMATED_SYSTEM` - Incident was detected by automated systems such as fraud models or rule engines.\n\n`THIRD_PARTY_ALERT` - Incident was identified through external vendor or consortium alerts.\n\n`OTHER` - Incident was identified through a source not covered by other categories."},"ProtectBankAccount":{"type":["object","null"],"additionalProperties":true,"description":"Bank account information associated with the incident.","properties":{"account_id":{"type":["string","null"],"description":"Plaid's unique identifier for the account."},"account_number":{"type":["string","null"],"description":"Full account number of the bank account."},"routing_number":{"type":["string","null"],"description":"Routing number of the bank account. Must be present if `account_number` is present."}}},"CashAdvanceFeedbackType":{"type":"string","title":"CashAdvanceFeedbackType","description":"The kind of feedback rows the file contains.","enum":["DECISION","REPAYMENT"]},"ProtectCashAdvanceFeedbackUploadRequest":{"title":"ProtectCashAdvanceFeedbackUploadRequest","type":"object","description":"Defines the request schema for `/protect/cash_advance/feedback/upload`","properties":{"feedback_type":{"$ref":"#/components/schemas/CashAdvanceFeedbackType"},"file":{"contentMediaType":"application/octet-stream","description":"A CSV file of feedback rows. Maximum 20 MB."}},"required":["feedback_type","file"]},"ProtectCashAdvanceFeedbackUploadResponse":{"title":"ProtectCashAdvanceFeedbackUploadResponse","type":"object","additionalProperties":true,"description":"Defines the response schema for `/protect/cash_advance/feedback/upload`","properties":{"request_id":{"$ref":"#/components/schemas/RequestID"},"upload_id":{"type":"string","description":"A unique identifier for the upload. Retain it: it is the identifier Plaid Support uses to look up this upload."}},"required":["request_id","upload_id"]}}}}