From c793f6d8737c506f8b1d44dc3f8ede0e1617b957 Mon Sep 17 00:00:00 2001 From: Li Zhang Date: Tue, 18 Jun 2024 14:18:18 -0400 Subject: [PATCH] OpenAPI generated code at 2024-06-18T18:18:16Z --- 2020-09-14.yml | 2063 +++++++++++++++++++++++++++++++++++++++++++----- CHANGELOG.md | 221 +++++- 2 files changed, 2102 insertions(+), 182 deletions(-) diff --git a/2020-09-14.yml b/2020-09-14.yml index 99d36d8..0a82333 100644 --- a/2020-09-14.yml +++ b/2020-09-14.yml @@ -8,7 +8,7 @@ servers: url: https://sandbox.plaid.com info: title: The Plaid API - version: 2020-09-14_1.517.0 + version: 2020-09-14_1.525.1 description: The Plaid REST API. Please see https://plaid.com/docs/api for more details. contact: name: Plaid Developer Team @@ -545,7 +545,8 @@ paths: days_requested: 5 items: - accounts: - - balances: + - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8 + balances: available: 43200 current: 43200 iso_currency_code: USD @@ -617,14 +618,17 @@ paths: ownership_type: null subtype: money market transactions: - - amount: 5850 + - 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 - - balances: + - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v + balances: available: 100 current: 110 iso_currency_code: USD @@ -696,34 +700,43 @@ paths: ownership_type: null subtype: checking transactions: - - amount: 89.4 + - 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 - - amount: 12 + - 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 - - amount: 4.33 + - 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 - - amount: -500 + - 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 request_id: GVzMdiDd8DDAQK4 description: This endpoint allows the customer to retrieve a Base Report. Customers should pass in the `user_token` created in `/link/token/create`. /cra/base_report/create: @@ -805,10 +818,12 @@ paths: days_requested: 90 items: - last_updated_time: "2022-01-31T22:47:53Z" + item_id: AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7 institution_id: ins_0 institution_name: Plaid Bank bank_income_accounts: - - mask: "8888" + - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8 + mask: "8888" name: Plaid Checking Account official_name: Plaid Checking Account type: depository @@ -852,7 +867,8 @@ paths: primary: false type: mobile bank_income_sources: - - income_source_id: “f17efbdd-caab-4278-8ece-963511cd3d51” + - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8 + income_source_id: “f17efbdd-caab-4278-8ece-963511cd3d51” income_description: “PLAID_INC_DIRECT_DEP_PPD” income_category: SALARY start_date: "2021-11-15" @@ -880,7 +896,8 @@ paths: iso_currency_code: USD unofficial_currency_code: null transactions: - - amount: -100 + - transaction_id: aH5klwqG3B19OMT7D6F24Syv8pdnJXmtZoKQ5 + amount: -100 date: "2021-11-15" name: “PLAID_INC_DIRECT_DEP_PPD” original_description: PLAID_INC_DIRECT_DEP_PPD 123 @@ -895,7 +912,8 @@ paths: iso_currency_code: USD unofficial_currency_code: null transactions: - - amount: -100 + - transaction_id: mN3rQ5iH8BC41T6UjKL9oD2vWJpZqXFomGwY1 + amount: -100 date: "2021-12-15" name: “PLAID_INC_DIRECT_DEP_PPD” original_description: PLAID_INC_DIRECT_DEP_PPD 123 @@ -910,7 +928,8 @@ paths: iso_currency_code: USD unofficial_currency_code: null transactions: - - amount: -100 + - transaction_id: zK9lDoR8uBH51PNQ3W4T6Mjy2VFXpGtJwsL4 + amount: -100 date: "2022-01-31" name: “PLAID_INC_DIRECT_DEP_PPD” original_description: PLAID_INC_DIRECT_DEP_PPD 123 @@ -960,7 +979,8 @@ paths: iso_currency_code: USD unofficial_currency_code: null transactions: - - amount: -100 + - transaction_id: aH5klwqG3B19OMT7D6F24Syv8pdnJXmtZoKQ5 + amount: -100 date: "2021-11-15" name: “PLAID_INC_DIRECT_DEP_PPD” original_description: PLAID_INC_DIRECT_DEP_PPD 123 @@ -975,7 +995,8 @@ paths: iso_currency_code: USD unofficial_currency_code: null transactions: - - amount: -100 + - transaction_id: mN3rQ5iH8BC41T6UjKL9oD2vWJpZqXFomGwY1 + amount: -100 date: "2021-12-15" name: “PLAID_INC_DIRECT_DEP_PPD” original_description: PLAID_INC_DIRECT_DEP_PPD 123 @@ -990,7 +1011,8 @@ paths: iso_currency_code: USD unofficial_currency_code: null transactions: - - amount: -100 + - transaction_id: zK9lDoR8uBH51PNQ3W4T6Mjy2VFXpGtJwsL4 + amount: -100 date: "2022-01-31" name: “PLAID_INC_DIRECT_DEP_PPD” original_description: PLAID_INC_DIRECT_DEP_PPD 123 @@ -1061,7 +1083,8 @@ paths: institution_name: Plaid Bank item_id: ABC123 accounts: - - mask: "8888" + - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8 + mask: "8888" name: Plaid Checking Account official_name: Plaid Checking Account type: depository @@ -1125,7 +1148,7 @@ paths: num_trxn_debit: 40 l1m_credit_value_cnt: 0 l1m_debit_value_cnt: 40 - detect: + first_detect: version: 3 score: 900 reason_codes: @@ -1158,6 +1181,647 @@ paths: application/json: schema: $ref: '#/components/schemas/CraPartnerInsightsGetRequest' + /cra/check_report/income_insights/get: + x-plaid-business-unit-context: BUSINESS_UNIT_CRA + post: + summary: Retrieve cash flow information from your user's banks + tags: + - plaid + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/CraCheckReportIncomeInsightsGetResponse' + examples: + example-1: + value: + request_id: LhQf0THi8SH1yJm + report: + report_id: abc123 + generated_time: "2022-01-31T22:47:53Z" + days_requested: 90 + items: + - item_id: AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7 + last_updated_time: "2022-01-31T22:47:53Z" + institution_id: ins_0 + institution_name: Plaid Bank + bank_income_accounts: + - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8 + 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: "1112223333" + primary: false + type: home + - data: "1112224444" + primary: false + type: work + - data: "1112225555" + primary: false + type: mobile + bank_income_sources: + - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8 + income_source_id: “f17efbdd-caab-4278-8ece-963511cd3d51” + income_description: “PLAID_INC_DIRECT_DEP_PPD” + income_category: SALARY + start_date: "2021-11-15" + end_date: "2022-01-15" + pay_frequency: MONTHLY + total_amount: 300 + iso_currency_code: USD + unofficial_currency_code: null + transaction_count: 1 + next_payment_date: "2022-12-15" + historical_average_monthly_gross_income: 390 + historical_average_monthly_income: 300 + forecasted_average_monthly_income: 300 + forecasted_average_monthly_income_prediction_intervals: + - lower_bound: 200 + upper_bound: 400 + probability: 0.8 + employer: + name: Plaid Inc + historical_summary: + - start_date: "2021-11-02" + end_date: "2021-11-30" + total_amounts: + - amount: 100 + iso_currency_code: USD + unofficial_currency_code: null + transactions: + - transaction_id: aH5klwqG3B19OMT7D6F24Syv8pdnJXmtZoKQ5 + amount: -100 + date: "2021-11-15" + name: “PLAID_INC_DIRECT_DEP_PPD” + original_description: PLAID_INC_DIRECT_DEP_PPD 123 + pending: false + check_number: null + iso_currency_code: USD + unofficial_currency_code: null + - start_date: "2021-12-01" + end_date: "2021-12-31" + total_amounts: + - amount: 100 + iso_currency_code: USD + unofficial_currency_code: null + transactions: + - transaction_id: mN3rQ5iH8BC41T6UjKL9oD2vWJpZqXFomGwY1 + amount: -100 + date: "2021-12-15" + name: “PLAID_INC_DIRECT_DEP_PPD” + original_description: PLAID_INC_DIRECT_DEP_PPD 123 + pending: false + check_number: null + iso_currency_code: USD + unofficial_currency_code: null + - start_date: "2022-01-01" + end_date: "2022-01-31" + total_amounts: + - amount: 100 + iso_currency_code: USD + unofficial_currency_code: null + transactions: + - transaction_id: zK9lDoR8uBH51PNQ3W4T6Mjy2VFXpGtJwsL4 + amount: -100 + date: "2022-01-31" + name: “PLAID_INC_DIRECT_DEP_PPD” + original_description: PLAID_INC_DIRECT_DEP_PPD 123 + pending: false + check_number: null + iso_currency_code: USD + unofficial_currency_code: null + bank_income_summary: + total_amounts: + - amount: 300 + iso_currency_code: USD + unofficial_currency_code: null + start_date: "2021-11-15" + end_date: "2022-01-15" + income_sources_count: 1 + income_categories_count: 1 + income_transactions_count: 1 + historical_average_monthly_gross_income: + - amount: 390 + iso_currency_code: USD + unofficial_currency_code: null + historical_average_monthly_income: + - amount: 300 + iso_currency_code: USD + unofficial_currency_code: null + forecasted_average_monthly_income: + - amount: 300 + iso_currency_code: USD + unofficial_currency_code: null + historical_annual_gross_income: + - amount: 4680 + iso_currency_code: USD + unofficial_currency_code: null + historical_annual_income: + - amount: 3600 + iso_currency_code: USD + unofficial_currency_code: null + forecasted_annual_income: + - amount: 3600 + iso_currency_code: USD + unofficial_currency_code: null + historical_summary: + - start_date: "2021-11-02" + end_date: "2021-11-30" + total_amounts: + - amount: 100 + iso_currency_code: USD + unofficial_currency_code: null + transactions: + - transaction_id: aH5klwqG3B19OMT7D6F24Syv8pdnJXmtZoKQ5 + amount: -100 + date: "2021-11-15" + name: “PLAID_INC_DIRECT_DEP_PPD” + original_description: PLAID_INC_DIRECT_DEP_PPD 123 + pending: false + check_number: null + iso_currency_code: USD + unofficial_currency_code: null + - start_date: "2021-12-01" + end_date: "2021-12-31" + total_amounts: + - amount: 100 + iso_currency_code: USD + unofficial_currency_code: null + transactions: + - transaction_id: mN3rQ5iH8BC41T6UjKL9oD2vWJpZqXFomGwY1 + amount: -100 + date: "2021-12-15" + name: “PLAID_INC_DIRECT_DEP_PPD” + original_description: PLAID_INC_DIRECT_DEP_PPD 123 + pending: false + check_number: null + iso_currency_code: USD + unofficial_currency_code: null + - start_date: "2022-01-01" + end_date: "2022-01-31" + total_amounts: + - amount: 100 + iso_currency_code: USD + unofficial_currency_code: null + transactions: + - transaction_id: zK9lDoR8uBH51PNQ3W4T6Mjy2VFXpGtJwsL4 + amount: -100 + date: "2022-01-31" + name: “PLAID_INC_DIRECT_DEP_PPD” + original_description: PLAID_INC_DIRECT_DEP_PPD 123 + pending: false + check_number: null + iso_currency_code: USD + unofficial_currency_code: null + warnings: [] + externalDocs: + url: /check/api/#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` 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`. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CraCheckReportIncomeInsightsGetRequest' + /cra/check_report/base_report/get: + x-plaid-business-unit-context: BUSINESS_UNIT_CRA + post: + summary: Retrieve a Base Report + tags: + - plaid + operationId: craCheckReportBaseReportGet + externalDocs: + url: /check/api/#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: + report_id: 028e8404-a013-4a45-ac9e-002482f9cafc + date_generated: "2023-03-30T18:27:37Z" + days_requested: 5 + items: + - accounts: + - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8 + balances: + available: 43200 + current: 43200 + iso_currency_code: USD + unofficial_currency_code: null + limit: null + days_available: 5 + historical_balances: + - current: 49050 + date: "2023-03-29" + iso_currency_code: USD + unofficial_currency_code: null + - current: 49050 + date: "2023-03-28" + iso_currency_code: USD + unofficial_currency_code: null + - current: 49050 + date: "2023-03-27" + iso_currency_code: USD + unofficial_currency_code: null + - current: 49050 + date: "2023-03-26" + iso_currency_code: USD + unofficial_currency_code: null + - current: 49050 + date: "2023-03-25" + iso_currency_code: USD + unofficial_currency_code: null + mask: "4444" + name: Plaid Money Market + official_name: Plaid Platinum Standard 1.85% Interest Money Market + owners: + - addresses: + - data: + city: Malakoff + 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: "1112223333" + primary: false + type: home + - data: "1112224444" + primary: false + type: work + - data: "1112225555" + primary: false + type: mobile + ownership_type: null + subtype: money market + transactions: + - account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8 + amount: 5850 + date: "2023-03-30" + iso_currency_code: USD + original_description: ACH Electronic CreditGUSTO PAY 123456 + pending: false + transaction_id: aH5klwqG3B19OMT7D6F24Syv8pdnJXmtZoKQ5 + unofficial_currency_code: null + type: depository + - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v + balances: + available: 100 + current: 110 + iso_currency_code: USD + unofficial_currency_code: null + limit: null + days_available: 5 + historical_balances: + - current: 110 + date: "2023-03-29" + iso_currency_code: USD + unofficial_currency_code: null + - current: -390 + date: "2023-03-28" + iso_currency_code: USD + unofficial_currency_code: null + - current: -373.67 + date: "2023-03-27" + iso_currency_code: USD + unofficial_currency_code: null + - current: -284.27 + date: "2023-03-26" + iso_currency_code: USD + unofficial_currency_code: null + - current: -284.27 + date: "2023-03-25" + iso_currency_code: USD + unofficial_currency_code: null + mask: "0000" + name: Plaid Checking + official_name: Plaid Gold Standard 0% Interest Checking + owners: + - addresses: + - data: + city: Malakoff + 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: "1112223333" + primary: false + type: home + - data: "1112224444" + primary: false + type: work + - data: "1112225555" + primary: false + type: mobile + ownership_type: null + subtype: checking + transactions: + - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v + amount: 89.4 + date: "2023-03-27" + iso_currency_code: USD + original_description: SparkFun + pending: false + transaction_id: 4zBRq1Qem4uAPnoyKjJNTRQpQddM4ztlo1PLD + unofficial_currency_code: null + - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v + amount: 12 + date: "2023-03-28" + iso_currency_code: USD + original_description: 'McDonalds #3322' + pending: false + transaction_id: dkjL41PnbKsPral79jpxhMWdW55gkPfBkWpRL + unofficial_currency_code: null + - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v + amount: 4.33 + date: "2023-03-28" + iso_currency_code: USD + original_description: Starbucks + pending: false + transaction_id: a84ZxQaWDAtDL3dRgmazT57K7jjN3WFkNWMDy + unofficial_currency_code: null + - account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v + amount: -500 + date: "2023-03-29" + iso_currency_code: USD + original_description: United Airlines **** REFUND **** + pending: false + transaction_id: xG9jbv3eMoFWepzB7wQLT3LoLggX5Duy1Gbe5 + unofficial_currency_code: null + type: depository + date_last_updated: "2023-03-30T18:25:26Z" + institution_id: ins_109508 + institution_name: First Platypus Bank + item_id: AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7 + request_id: GVzMdiDd8DDAQK4 + 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` 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: + x-plaid-business-unit-context: BUSINESS_UNIT_CRA + post: + summary: Retrieve the most recent Base Report in PDF format. You can also include other reports in the same PDF if you specify `add_ons`. + tags: + - plaid + responses: + "200": + description: OK + content: + application/pdf: + schema: + $ref: '#/components/schemas/CraCheckReportPDFGetResponse' + examples: + example-1: + value: JVBERi0xLjQKJeLjz9MKMyAwIG9iaiA8PC9MZW5ndGggNDY2MS9GaWx0ZXIvRmxhdGVEZWNvZGU+PnN0cmVhbQp4nF2SyY4cMRBF94VdzI0O... + externalDocs: + url: /none/ + operationId: craCheckReportPdfGet + x-hidden-from-docs: true + description: '`/cra/check_report/pdf/get` retrieve the most recent Bank Income report (if it exists) followed by the most recent Base Report (if it exists) in PDF format' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CraCheckReportPDFGetRequest' + /cra/check_report/create: + x-plaid-business-unit-context: BUSINESS_UNIT_CRA + post: + summary: 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 + externalDocs: + url: /check/api/#cracheck_reportcreate + operationId: craCheckReportCreate + description: '`/cra/check_report/create` creates a Consumer Report powered by Plaid Check. Plaid Check automatically starts creating Consumer Report data after the user completes the Link process with a Plaid Check product, so you typically would only call this endpoint if you wish to generate an updated report, some time after the initial report was generated.' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CraCheckReportCreateRequest' + /cra/check_report/partner_insights/get: + x-plaid-business-unit-context: BUSINESS_UNIT_CRA + 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 + 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" + 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: "1112223333" + primary: false + type: home + - data: "1112224444" + primary: false + type: work + - data: "1112225555" + primary: false + type: mobile + prism: + insights: + version: 3 + result: + l6m_cumbal_acc: 1 + cash_score: + version: 3 + score: 900 + reason_codes: + - CASHFLOW_D11 + 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 + score: 900 + reason_codes: + - CASHFLOW_D11 + 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: /check/api/#cracheck_reportpartner_insightsget + operationId: craCheckReportPartnerInsightsGet + description: |- + This endpoint allows you to retrieve the Partner Insights product for your user. You should call this endpoint after you've received the `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`. + + If you did not initialize Link with the `credit_partner_insights` product or have generated a report using `/cra/check_report/create`, we will call our partners to generate the insights when you call this endpoint. In this case, you may optionally provide parameters under `options` to configure which insights you want to receive. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CraCheckReportPartnerInsightsGetRequest' /cra/loans/applications/register: x-plaid-business-unit-context: BUSINESS_UNIT_CRA post: @@ -1594,6 +2258,59 @@ paths: schema: $ref: '#/components/schemas/ItemGetRequest' description: "" + /user_account/session/get: + x-plaid-business-unit-context: BUSINESS_UNIT_PLAID + post: + tags: + - plaid + summary: Retrieve User Account + externalDocs: + url: /api/user_account/#sessionget + operationId: sessionGet + description: Returns user permissioned account data including identity and item access tokens. + 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: "+14151234567" + date_of_birth: "1975-01-18" + ssn: "987654321" + ssn_last_4: "4321" + items: + - item_id: Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr + access_token: access-sandbox-435beced-94e8-4df3-a181-1dde1cfa19f0 + 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: "" /profile/get: x-hidden-from-docs: true x-plaid-business-unit-context: BUSINESS_UNIT_PLAID @@ -1959,7 +2676,7 @@ paths: If changes to transactions are discovered after calling `/transactions/refresh`, Plaid will fire a webhook: for `/transactions/sync` users, [`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available) will be fired if there are any transactions updated, added, or removed. For users of both `/transactions/sync` and `/transactions/get`, [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/transactions/get` or `/transactions/sync`. - Note that the `/transactions/refresh` endpoint is not supported for Capital One (`ins_128026`) and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on an Item from that institution. + Note 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. 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. @@ -2778,16 +3495,7 @@ paths: 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. - - Removing 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. - - Note that in the Development environment, issuing an `/item/remove` request will not decrement your live credential count. To increase your credential account in Development, contact Support. - - Also note that for certain OAuth-based institutions, an Item removed via `/item/remove` may still show as an active connection in the institution's OAuth permission manager. - - API versions 2019-05-29 and earlier return a `removed` boolean as part of the response. + 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.\n\nIn Limited Production, calling `/item/remove` does not impact the number of remaining Limited Production Items 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 @@ -2846,6 +3554,7 @@ paths: 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 @@ -3046,12 +3755,10 @@ paths: description: |- The `/sandbox/item/fire_webhook` endpoint is used to test that code correctly handles webhooks. This endpoint can trigger the following webhooks: - `DEFAULT_UPDATE`: Transactions update webhook to be fired for a given Sandbox Item. If the Item does not support Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result. + `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` responses include: `AUTH`, `IDENTITY`, `TRANSACTIONS`, `INVESTMENTS_TRANSACTIONS`, `LIABILITIES`, `HOLDINGS`. If the Item does not support the product, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result. `NEW_ACCOUNTS_AVAILABLE`: Webhook to be fired for a given Sandbox Item created with Account Select v2. - `AUTH_DATA_UPDATE`: Webhook to be fired for a given Sandbox Item created with Auth as an enabled product. - `SMS_MICRODEPOSITS_VERIFICATION`: Fired when a given same day micro-deposit item is verified via SMS verification. `LOGIN_REPAIRED`: Fired when an Item recovers from the `ITEM_LOGIN_REQUIRED` without the user going through update mode in your app. @@ -3117,6 +3824,7 @@ paths: 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 @@ -3164,6 +3872,100 @@ paths: update_type: background webhook: https://www.genericwebhookurl.com/webhook request_id: qk5Bxes3gDfv4F2 + example-2: + value: + accounts: + - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp + balances: + available: 100 + current: 110 + iso_currency_code: USD + limit: null + unofficial_currency_code: null + mask: "0000" + name: Plaid Checking + official_name: Plaid Gold Standard 0% Interest Checking + persistent_account_id: 8cfb8beb89b774ee43b090625f0d61d0814322b43bff984eaf60386e + subtype: checking + type: depository + - account_id: dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK + balances: + available: null + current: 410 + iso_currency_code: USD + limit: 2000 + unofficial_currency_code: null + mask: "3333" + name: Plaid Credit Card + official_name: Plaid Diamond 12.5% APR Interest Credit Card + subtype: credit card + type: credit + - account_id: Pp1Vpkl9w8sajvK6oEEKtr7vZxBnGpf7LxxLE + balances: + available: null + current: 65262 + iso_currency_code: USD + limit: null + unofficial_currency_code: null + mask: "7777" + name: Plaid Student Loan + official_name: null + subtype: student + type: loan + payment_risk_assessment: + risk_level: HIGH + risk_reasons: + - code: PL03 + description: 'High number of recent Plaid authentication attempts detected. Recommendation: Hold funds for 3-5 days or decline transactions at ''HIGH'' risk level.' + - code: PL05 + description: 'Requested ACH transaction amount exceeds 90% of latest bank account balance. Recommendation: Hold funds for 3-5 days, or decline transactions at ''HIGH'' risk level.' + exceeds_balance_threshold: true + balance_last_updated: "2024-03-30T18:25:26Z" + attributes: + unauthorized_transactions_count_7d: 0 + unauthorized_transactions_count_30d: 0 + unauthorized_transactions_count_60d: 1 + unauthorized_transactions_count_90d: 1 + nsf_overdraft_transactions_count_7d: 0 + nsf_overdraft_transactions_count_30d: 0 + nsf_overdraft_transactions_count_60d: 1 + nsf_overdraft_transactions_count_90d: 1 + days_since_first_plaid_connection: 380 + plaid_connections_count_7d: 2 + plaid_connections_count_30d: 5 + total_plaid_connections_count: 8 + plaid_non_oauth_authentication_attempts_count_3d: 3 + plaid_non_oauth_authentication_attempts_count_7d: 5 + plaid_non_oauth_authentication_attempts_count_30d: 7 + failed_plaid_non_oauth_authentication_attempts_count_3d: 2 + failed_plaid_non_oauth_authentication_attempts_count_7d: 4 + failed_plaid_non_oauth_authentication_attempts_count_30d: 4 + phone_change_count_28d: 0 + phone_change_count_90d: 1 + email_change_count_28d: 0 + email_change_count_90d: 1 + address_change_count_28d: 0 + address_change_count_90d: 1 + is_savings_or_money_market_account: false + is_account_closed: false + is_account_frozen_or_restricted: false + item: + available_products: + - balance + - identity + - investments + billed_products: + - assets + - auth + - liabilities + - transactions + consent_expiration_time: null + error: null + institution_id: ins_3 + item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6 + update_type: background + webhook: https://www.example.com/webhook + request_id: LhQf0THi8SH1yJk 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, only `/accounts/balance/get` forces the available and current balance fields to be refreshed rather than cached. This endpoint can be used for existing Items that were added via any of Plaid’s other products. This endpoint can be used as long as Link has been initialized with any other product, `balance` itself is not a product that can be used to initialize Link. As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (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. requestBody: required: true @@ -5256,6 +6058,8 @@ paths: examples: example-1: value: + item_ids: + - 515cd85321d3649aecddc015 id: becusr_42cF1MNo42r9Xj version: 1 created_at: "2020-07-24T03:26:02Z" @@ -5321,6 +6125,8 @@ paths: examples: example-1: value: + item_ids: + - 515cd85321d3649aecddc015 id: becusr_42cF1MNo42r9Xj version: 1 created_at: "2020-07-24T03:26:02Z" @@ -5380,6 +6186,8 @@ paths: examples: example-1: value: + item_ids: + - 515cd85321d3649aecddc015 id: becusr_42cF1MNo42r9Xj version: 1 created_at: "2020-07-24T03:26:02Z" @@ -5651,6 +6459,8 @@ paths: examples: example-1: value: + item_ids: + - 515cd85321d3649aecddc015 id: becusr_42cF1MNo42r9Xj version: 1 created_at: "2020-07-24T03:26:02Z" @@ -5815,7 +6625,9 @@ paths: example-1: value: beacon_users: - - id: becusr_42cF1MNo42r9Xj + - item_ids: + - 515cd85321d3649aecddc015 + id: becusr_42cF1MNo42r9Xj version: 1 created_at: "2020-07-24T03:26:02Z" updated_at: "2020-07-24T03:26:02Z" @@ -6351,7 +7163,7 @@ paths: $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 `/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`) and will result in a `PRODUCTS_NOT_SUPPORTED` error if called on a processor token from that institution. + `/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 `/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 `/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. 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. @@ -7783,7 +8595,7 @@ paths: schema: $ref: '#/components/schemas/UserCreateRequest' /user/update: - x-plaid-business-unit-context: BUSINESS_UNIT_CRA + x-plaid-business-unit-context: BUSINESS_UNIT_UNDETERMINED x-hidden-from-docs: true post: tags: @@ -9860,6 +10672,11 @@ paths: 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" default: description: Error response content: @@ -13316,7 +14133,7 @@ paths: name: form_1099_misc.pdf status: PROCESSING_COMPLETE excess_golden_parachute_payments: 1000 - feburary_amount: null + february_amount: null federal_income_tax_withheld: 1000 filer: address: @@ -14109,7 +14926,7 @@ paths: externalDocs: url: /api/products/signal#signaldecisionreport operationId: signalDecisionReport - description: After calling `/signal/evaluate`, call `/signal/decision/report` to report whether the transaction was initiated. + description: After calling `/signal/evaluate` (or `/accounts/balance/get`, for participants in the [Balance Plus](http://plaid.com/docs/balance/balance-plus) beta), call `/signal/decision/report` to report whether the transaction was initiated. responses: "200": description: OK @@ -14142,7 +14959,7 @@ paths: 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 trend in your portfolio. + description: Call the `/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/signal/evaluate` or (for participants in the [Balance Plus](http://plaid.com/docs/balance/balance-plus) beta) the `/accounts/balance/get` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio. responses: "200": description: OK @@ -15002,6 +15819,7 @@ paths: secrets: sandbox: b60b5201d006ca5a7081d27c824d77 development: 95e56a510204f293d3bebd4b9cf5c7 + production: 79g03eoofwl8240v776r2h667442119 request_id: 4zlKapIkTm8p5KM default: description: Error response @@ -15358,8 +16176,6 @@ components: type: string description: The profile token generated by the end user authorization session. required: - - client_id - - secret - profile_token ProfileGetResponse: type: object @@ -15473,6 +16289,36 @@ components: - eft - international - bacs + 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: + identity: + $ref: '#/components/schemas/UserAccountIdentity' + items: + type: array + items: + $ref: '#/components/schemas/UserAccountItem' + request_id: + $ref: '#/components/schemas/RequestID' + required: + - identity + - items + - request_id TransactionsGetRequest: type: object description: TransactionsGetRequest defines the request schema for `/transactions/get` @@ -16306,20 +17152,18 @@ components: - item - request_id AccountsBalanceGetResponsePaymentRiskAssessment: - x-hidden-from-docs: true + x-hidden-behind-flag: balance-plus type: object - description: This object provides detailed risk assessment for the requested transaction + description: Provides a detailed risk assessment for the requested transaction. For this field to be returned, the client must be enrolled in the Balance Plus beta program and the [`payment_details`](http://plaid.com/docs/balance/balance-plus/#accounts-balance-get-request-payment-details) object must have been sent in the request. additionalProperties: true nullable: true properties: risk_level: - type: string - description: |- - A five-tier risk assessment for the transaction, based on the probability of ACH returns, - measured by the incident rate. + $ref: '#/components/schemas/BalancePlusRiskLevel' attributes: $ref: '#/components/schemas/BalancePlusAttributes' score: + x-hidden-from-docs: true nullable: true description: |- A risk score ranging from 1-99, reflecting the likelihood of ACH debit return. @@ -16335,19 +17179,17 @@ components: format: date-time risk_reasons: type: array - description: |- - An array of objects, each representing a specific reason contributing to the risk assessment of an - ACH transaction. This field is particularly useful for understanding risk factors affecting the risk - level assigned to a transaction classified as “high”, “medium-high”, and “medium” risk. + description: An array of objects, each representing a specific reason contributing to the risk assessment of an ACH transaction. This field is only supplied for transactions classified as `HIGH`, `MEDIUM-HIGH`, or `MEDIUM` risk. items: $ref: '#/components/schemas/RiskReason' exceeds_balance_threshold: type: boolean - description: |- - This boolean field denotes if the requested ACH debit amount exceeds the calculated threshold based on either the available or current balance - of the bank account. Specifically, it checks if the amount is greater than the account balance multiplied by "balance_threshold_percentage"/100. - In cases where available_balance is not accessible, current_balance is used. This field is particularly useful for clients handling indirect items - who lack direct access to raw balance data. + description: "Whether the proposed transaction exceeds the balance threshold set in the request. `true` indicates higher risk; `false` indicates lower risk. If the `amount` multiplied by the `balance_threshold_percentage` (as a percentage) exceeds the balance in the account, then `exceeds_balance_threshold` will be true, otherwise, it will be false. For example, if the `amount` is 200 and the `balance_threshold_percentage` is 90, then the account balance must be at least 180 for `exceeds_balance_threshold` to be false. \n\nBy default, the available balance will be used for this calculation; if it cannot be obtained, the current balance will be used. \n\nThis field is particularly useful for customers using indirect Items and who do not have direct access to raw balance data. " + required: + - risk_level + - attributes + - exceeds_balance_threshold + - balance_last_updated CategoriesGetRequest: type: object description: CategoriesGetRequest defines the request schema for `/categories/get` @@ -16553,7 +17395,6 @@ components: enum: - DEFAULT_UPDATE - NEW_ACCOUNTS_AVAILABLE - - AUTH_DATA_UPDATE - SMS_MICRODEPOSITS_VERIFICATION - AUTHORIZATION_GRANTED - RECURRING_TRANSACTIONS_UPDATE @@ -16605,9 +17446,9 @@ components: required: - access_token AccountsBalanceGetRequestPaymentDetails: - x-hidden-from-docs: true + x-hidden-behind-flag: balance-plus type: object - description: An optional object containing payment details. If set, a payment risk assessment is performed and returned as AccountsBalanceGetResponsePaymentRiskAssessment. + description: To enable Balance Plus (beta), send this object as part of the `/accounts/balance/get` request. Only available to customers participating in the Balance Plus beta program; to enroll in the beta, contact your account manager. If this object is present in the request, the [`payment_risk_assessment`](https://plaid.com/docs/balance/balance-plus/#accounts-balance-get-response-payment-risk-assessment-risk-level) object will be present in the response. nullable: true additionalProperties: true properties: @@ -16619,7 +17460,7 @@ components: This will return an [`INVALID_ACCOUNT_ID`](/docs/errors/invalid-input/#invalid_account_id) error if the account has been removed at the bank or if the `account_id` is no longer valid. 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 identifier for this transaction. The max length for this field is 36 characters. + 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 identifier for this transaction. minLength: 1 maxLength: 36 amount: @@ -16629,12 +17470,16 @@ components: balance_threshold_percentage: type: integer minimum: 1 - maximum: 100 default: 90 - description: The threshold percentage of the account balance used for comparison with the requested ACH debit amount. + description: "If the `amount` multiplied by the `balance_threshold_percentage` (as a percentage) exceeds the balance in the account, then [`payment_risk_assessment.exceeds_balance_threshold`](https://plaid.com/docs/balance/balance-plus/#accounts-balance-get-response-payment-risk-assessment-exceeds-balance-threshold) in the response will be true, otherwise, it will be false. For example, if the `amount` is 200 and the `balance_threshold_percentage` is 90, then the account balance must be at least 180 for `exceeds_balance_threshold` to be false. \n\nBy default, the available balance will be used for this calculation; if it cannot be obtained, the current balance will be used. \n\nThis field is particularly useful for customers using indirect Items and who do not have direct access to raw balance data. " requires_real_time_balance_refresh: type: boolean - description: A boolean that determines whether the balance has to be refreshed in real time as part of the API call. + description: A boolean that determines whether the balance has to be refreshed in real time as part of the API call when using Balance Plus. Setting this to field to `true` will result in more recent balances, but latency may be up to 30 seconds or more. If making a regular (non-Balance Plus) Balance call, without the `payment_details` object present, `/accounts/balance/get` will always return real-time balances. + default: false + required: + - account_id + - client_transaction_id + - amount AccountsBalanceGetRequestOptions: type: object description: Optional parameters to `/accounts/balance/get`. @@ -17704,11 +18549,93 @@ components: $ref: '#/components/schemas/RequestID' required: - request_id + UserAccountIdentity: + type: object + nullable: true + additionalProperties: true + description: UserAccountIdentity defines 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 + nullable: true + date_of_birth: + description: The user's date of birth. + type: string + nullable: true + ssn: + description: The user's social security number. + type: string + nullable: true + ssn_last_4: + description: The last 4 digits of the user's social security number. + type: string + nullable: true + UserAccountIdentityName: + type: object + nullable: true + additionalProperties: true + description: UserAccountIdentityName defines the user's first name and last name. + properties: + first_name: + type: string + last_name: + type: string + UserAccountIdentityAddress: + description: UserAccountIdentityAddress defines the user's address. + additionalProperties: true + nullable: true + type: object + properties: + city: + type: string + description: The full city name + nullable: true + region: + type: string + description: |- + The region or state. + Example: `"NC"` + nullable: true + street: + type: string + description: |- + The full street address + Example: `"564 Main Street, APT 15"` + nullable: true + street2: + type: string + nullable: true + description: The second line street address + postal_code: + type: string + description: The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`. + nullable: true + country: + type: string + description: The ISO 3166-1 alpha-2 country code + nullable: true + UserAccountItem: + description: UserAccountItem defines 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' ProfileIdentity: type: object nullable: true additionalProperties: true - x-hidden-from-docs: true description: ProfileIdentity defines the identity data permissioned by the end user during the authorization flow. properties: name: @@ -17738,7 +18665,6 @@ components: type: object nullable: true additionalProperties: true - x-hidden-from-docs: true description: ProfileIdentityName defines the user's first name and last name. properties: first_name: @@ -17747,7 +18673,6 @@ components: type: string ProfileIdentityAddress: description: ProfileIdentityAddress defines the user's address. - x-hidden-from-docs: true additionalProperties: true nullable: true type: object @@ -17784,7 +18709,6 @@ components: description: ProfileItem defines an Item created during a profile authorization session. type: object additionalProperties: true - x-hidden-from-docs: 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. @@ -17795,8 +18719,7 @@ components: type: object nullable: true additionalProperties: true - x-hidden-from-docs: true - description: ConsumerReportUserIdentity defines the user identity data collected for consumer report purpose. This field is required to be set if you later use the created user for consumer report purpose. + description: This object defines the user identity data collected for consumer report purposes. This field is required if you are planning on using the user token with Plaid Check products. properties: first_name: type: string @@ -18746,6 +19669,9 @@ components: - sardine - alloy - finix + - layer + - boom + - paynote description: The processor you are integrating with. required: - access_token @@ -19071,6 +19997,10 @@ components: - transactions - transfer - signal + - cra_base_report + - cra_income_insights + - cra_partner_insights + - layer nullable: true required_if_supported_products: type: array @@ -19093,7 +20023,7 @@ components: optional_products: type: array description: |- - List of Plaid product(s) that you may wish to use but that are not required for your use case. 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. + 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. There 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. @@ -19111,8 +20041,7 @@ components: additional_consented_products: type: array description: |- - (Beta) This field has no effect unless you are participating in the [Data Transparency](https://plaid.com/docs/link/data-transparency-messaging-migration-guide) beta program. - List of additional Plaid product(s) you wish to collect consent for. These products will not be billed until you start using them by calling the relevant endpoints. + 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. `balance` is *not* a valid value, the Balance product does not require explicit initialization and will automatically have consent collected. @@ -19175,6 +20104,8 @@ components: $ref: '#/components/schemas/LinkTokenCreateRequestBaseReport' credit_partner_insights: $ref: '#/components/schemas/LinkTokenCreateRequestCreditPartnerInsights' + cra_options: + $ref: '#/components/schemas/LinkTokenCreateRequestCraOptions' consumer_report_permissible_purpose: $ref: '#/components/schemas/ConsumerReportPermissiblePurpose' auth: @@ -19559,7 +20490,7 @@ components: - description: The user's full name. Optional if using the [Identity Verification](https://plaid.com/docs/api/products/identity-verification) product; if not using Identity Verification, this field is not allowed. Users will not be asked for their name when this field is provided. phone_number: 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://www.plaid.com/docs/link/returning/user) and the [Identity Verification flow](https://www.plaid.com/docs/identity-verification). + 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://www.plaid.com/docs/link/returning-user) and the [Identity Verification flow](https://www.plaid.com/docs/identity-verification). phone_number_verified_time: nullable: true format: date-time @@ -19615,6 +20546,11 @@ components: 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 that do not use OAuth, or that use OAuth but do not have their own account selection flow. For institutions 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 + user: + type: boolean + description: If `true`, a `user_token` must also be provided, and Link will open in update mode for the given user. + default: false + x-hidden-from-docs: true 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. @@ -19702,7 +20638,7 @@ components: 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`. This field will only be present if your client is enabled for Backend Handoff. Session data will be provided for up to six hours after the session has ended. + 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: @@ -20257,6 +21193,8 @@ components: 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 is currently only supported for Chase Items. Because Chase accounts have a different account number each time they are linked, this field may be used instead of the account number to uniquely identify a Chase account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud. In Sandbox, this field may be populated for any account; in Production and Development, it will only be populated for Chase accounts. + holder_category: + $ref: '#/components/schemas/AccountHolderCategory' required: - account_id - balances @@ -20422,6 +21360,15 @@ components: - sarsep - payroll - null + AccountHolderCategory: + type: string + nullable: true + title: HolderCategory + description: Provides context as to whether the account is explicitly designated for business purposes in contrast to personal accounts. This label is orthogonal to existing account type/subtype labels (both “Business Checking” and “Personal Checking” would be labeled with a “depository” type and “checking” subtype) + enum: + - business + - personal + - unrecognized AccountVerificationInsights: title: VerificationInsights type: object @@ -21019,10 +21966,7 @@ components: $ref: '#/components/schemas/Location' name: type: string - description: |- - The merchant name or transaction description. - - If 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. + 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 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`. @@ -21548,7 +22492,6 @@ components: - BE description: ISO-3166-1 alpha-2 country code standard. ConsumerReportPermissiblePurpose: - x-hidden-from-docs: true type: string title: ConsumerReportPermissiblePurpose enum: @@ -21560,17 +22503,7 @@ components: - LEGITIMATE_BUSINESS_NEED_OTHER - WRITTEN_INSTRUCTION_PREQUALIFICATION - WRITTEN_INSTRUCTION_OTHER - description: |- - This enum describes the reason a consumer report is created for - - `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). - `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). - `EMPLOYMENT`: For employment purposes pursuant to FCRA 604(a)(3)(B), including hiring, retention and promotion purposes. - `EXTENSION_OF_CREDIT`: In connection with a credit transaction initiated by and involving the consumer pursuant to FCRA Section 604(a)(3)(A). - `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). - `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). - `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. - `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. + description: "This enum 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`EMPLOYMENT`: For employment purposes pursuant to FCRA 604(a)(3)(B), including hiring, retention and promotion purposes.\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." PaymentMeta: title: PaymentMeta type: object @@ -21916,15 +22849,15 @@ components: webhook_code: type: string description: '`STATUS_UPDATED`' - screening_id: + entity_screening_id: type: string - description: The ID of the associated screening. + description: The ID of the associated entity screening. environment: $ref: '#/components/schemas/WebhookEnvironmentValues' required: - webhook_type - webhook_code - - screening_id + - entity_screening_id - environment x-examples: example-1: @@ -23411,6 +24344,7 @@ components: - graduated - income-contingent repayment - income-based repayment + - income-sensitive repayment - interest-only - other - pay as you earn @@ -23873,6 +24807,10 @@ components: - processor_payments - processor_identity - profile + - cra_base_report + - cra_income_insights + - cra_partner_insights + - layer 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 ProductStatus: @@ -24113,7 +25051,7 @@ components: description: Will be used for the account number. ach_routing: type: string - description: Must be a valid ACH routing number. + 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. @@ -24336,7 +25274,7 @@ components: 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"`, `"interest only"`, `"other"`, `"pay as you earn"`, `"revised pay as you earn"`, `"standard"`, or `"saving on a valuable education"`.' + 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: string @@ -24903,6 +25841,66 @@ components: title: UserId type: string description: The Plaid `user_id` of the User associated with this webhook, warning, or error. + AuthDefaultUpdateWebhook: + x-examples: + example-1: + webhook_type: AUTH + webhook_code: DEFAULT_UPDATE + item_id: wz666MBjYWTp2PDzzggYhM6oWWmBb + account_ids_with_updated_identity: + 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. + + Example: `{ "XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58": ["ACCOUNT_NUMBER"] }` + AuthUpdateTypes: + type: string + description: The possible types of auth data that may have changed. + enum: + - ACCOUNT_NUMBER + - ROUTING_NUMBER AutomaticallyVerifiedWebhook: title: AutomaticallyVerifiedWebhook type: object @@ -28027,7 +29025,7 @@ components: `RISK` - Transaction is high-risk. - `TRANSFER_LIMIT_REACHED` - One or several transfer limits are reached, e.g. monthly transfer limit. + `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. enum: - NSF - RISK @@ -28375,12 +29373,15 @@ components: description: |- The network or rails used for the transfer. Defaults to `same-day-ach`. - For transfers submitted as `ach`, the next-day cutoff is 5:30 PM Eastern Time. + For transfers submitted using `ach`, the next-day cutoff is 5:30 PM Eastern Time. - For transfers submitted as `same-day-ach`, the same-day cutoff is 3:30 PM Eastern Time. If the transfer is submitted after this cutoff but before the next-day cutoff, it will be sent over next-day rails and will not incur same-day charges; this will apply to both legs of the transfer if applicable. + For transfers submitted using `same-day-ach`, the same-day cutoff is 3:30 PM Eastern Time. If the transfer is submitted after this cutoff but before the next-day cutoff, it will be sent over next-day rails and will not incur same-day charges. + + For 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 @@ -28393,6 +29394,8 @@ components: For transfers submitted as `same-day-ach`, the same-day cutoff is 3:30 PM Eastern Time. If the transfer is submitted after this cutoff but before the next-day cutoff, it will be sent over next-day rails and will not incur same-day charges; this will apply to both legs of the transfer if applicable. For transfers submitted as `rtp`, Plaid will automatically route between Real Time Payment 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`. + + Wire 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. enum: - ach - same-day-ach @@ -28879,6 +29882,8 @@ components: iso_currency_code: type: string description: The currency of the dollar amount, e.g. "USD". + return_rates: + $ref: '#/components/schemas/TransferMetricsGetReturnRates' required: - request_id - daily_debit_transfer_volume @@ -28887,6 +29892,31 @@ components: - monthly_debit_transfer_volume - monthly_credit_transfer_volume - iso_currency_code + TransferMetricsGetReturnRates: + title: TransferMetricsGetReturnRates + type: object + additionalProperties: true + nullable: true + description: Details regarding return rates. + properties: + last_60d: + $ref: '#/components/schemas/TransferMetricsGetReturnRatesOverInterval' + TransferMetricsGetReturnRatesOverInterval: + title: TransferMetricsGetReturnRatesOverInterval + type: object + additionalProperties: true + nullable: 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. TransferAuthorizationDecision: type: string description: |2- @@ -29454,6 +30484,14 @@ components: - sweep.settled - sweep.returned - sweep.failed + - refund.pending + - refund.cancelled + - refund.failed + - refund.posted + - refund.settled + - refund.returned + - refund.swept + - refund.return_swept TransferLedgerSweepSimulateEventType: type: string title: TransferLedgerSweepSimulateEventType @@ -32415,6 +33453,41 @@ components: 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 maximum integer number of days of history to include in Plaid Check products + minimum: 1 + maximum: 730 + partner_insights: + $ref: '#/components/schemas/LinkTokenCreateRequestCraOptionsPartnerInsights' + base_report: + $ref: '#/components/schemas/LinkTokenCreateRequestCraOptionsBaseReport' + required: + - days_requested + LinkTokenCreateRequestCraOptionsPartnerInsights: + title: LinkTokenCreateRequestCraOptionsPartnerInsights + type: object + description: Specifies options for initializing Link for use with the Credit Partner Insights product. + properties: + prism_products: + type: array + description: The specific Prism products to return. If none are passed in, then all products will be returned. + items: + $ref: '#/components/schemas/PrismProduct' + LinkTokenCreateRequestCraOptionsBaseReport: + title: LinkTokenCreateRequestCraOptionsBaseReport + type: object + description: Specifies options for initializing Link for use with the Base Report product. + properties: + client_report_id: + type: string + nullable: true + description: Client-generated identifier, which can be used by lenders to track loan applications. LinkTokenCreateRequestCreditPartnerInsights: title: LinkTokenCreateRequestCreditPartnerInsights type: object @@ -32428,16 +33501,16 @@ components: maximum: 730 prism_products: type: array - description: The specific prism products to return. If none are passed in, then all products will be returned. + description: The specific Prism products to return. If none are passed in, then all products will be returned. items: $ref: '#/components/schemas/PrismProduct' PrismProduct: title: PrismProduct x-hidden-from-docs: true enum: - - detect + - insights - scores - description: The prism products that can be returned by the Plaid API + description: The Prism products that can be returned by the Plaid API type: string LinkTokenCreateRequestEmployment: title: LinkTokenCreateRequestEmployment @@ -34660,6 +35733,26 @@ components: description: The name of the document status: $ref: '#/components/schemas/RiskSignalDocumentStatus' + document_type: + $ref: '#/components/schemas/RiskSignalDocumentType' + RiskSignalDocumentType: + title: RiskSignalDocumentType + type: string + description: Type of a document for risk signal analysis + nullable: true + enum: + - UNKNOWN + - BANK_STATEMENT + - BENEFITS_STATEMENT + - BUSINESS_FILING + - CHECK + - DRIVING_LICENSE + - FINANCIAL_STATEMENT + - INVOICE + - PAYSLIP + - SOCIAL_SECURITY_CARD + - TAX_FORM + - UTILITY_BILL RiskSignalDocumentStatus: title: RiskSignalDocumentStatus type: string @@ -34856,6 +35949,10 @@ components: type: integer description: The number of pages of the uploaded document (if available). nullable: true + error_message: + type: string + description: The reason why a failure occurred during document processing (if available). + nullable: true required: - name - document_type @@ -34894,7 +35991,7 @@ components: `US_MILITARY_LES`: A Leave and Earnings Statement (LES) issued by the US military. - `US_MILITARY_CLES`: A Civilian Leave and Earnings Statment (CLES) issued by the US military. + `US_MILITARY_CLES`: A Civilian Leave and Earnings Statement (CLES) issued by the US military. `GIG`: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type. @@ -35750,6 +36847,9 @@ components: - SICK_PAY - SIGNING_BONUS - TIPS_INCOME + - RETIREMENT + - GIG_ECONOMY + - STOCK_COMPENSATION - null nullable: true PayStubEarningsTotal: @@ -37452,11 +38552,14 @@ components: description: |- A code that represents the type of risk associated with the proposed transaction. - The codes are from PL01 to PL07 and from BK01 to BK07. + The 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 brief description explaining the risk associated with the proposed transaction and some recommended actions. + 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. @@ -38015,6 +39118,7 @@ components: - REFUND - FUNDS_SWEEP - RETURN + - RECALL description: |- The type of the transaction. The supported transaction types that are returned are: `BANK_TRANSFER:` a transaction which credits an e-wallet through an external bank transfer. @@ -38028,6 +39132,8 @@ components: `FUNDS_SWEEP`: an automated transaction which debits funds from an e-wallet to a designated client-owned account. `RETURN`: an automated transaction where a debit transaction was reversed and money moved back to originating account. + + `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. scheme: $ref: '#/components/schemas/WalletPaymentScheme' amount: @@ -39188,7 +40294,11 @@ components: 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. + description: The end customer's secret key for the Development environment. The Development environment will be decommissioned on June 20, 2024. + type: string + deprecated: 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. @@ -39482,7 +40592,7 @@ components: After 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_type: ITEM webhook_code: USER_ACCOUNT_REVOKED error: error_code: ACCESS_NOT_GRANTED @@ -39734,6 +40844,62 @@ components: `SUCCESS`: The bank income report was successfully generated and can be retrieved via `/credit/bank_income/get`. `FAILURE`: The bank income report failed to be generated + CraCheckReportReadyWebhook: + type: object + title: CraCheckReportReadyWebhook + description: Fired when products for the Check Report are ready to be retrieved + 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. + 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 + environment: production + CraCheckReportFailedWebhook: + type: object + title: CraCheckReportFailedWebhook + description: Fired when a Check Report has failed to generate + 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. + 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_FAILED + user_id: wz666MBjYWTp2PDzzggYhM6oWWmBb + environment: production CraPartnerInsightsCompleteWebhook: type: object title: CraPartnerInsightsCompleteWebhook @@ -39893,7 +41059,6 @@ components: type: object title: LinkEventMetadata description: Metadata about an event that occured while the user was going through Link - x-hidden-from-docs: true additionalProperties: true properties: error_code: @@ -39946,7 +41111,6 @@ components: LinkEvent: type: object title: LinkEvent - x-hidden-from-docs: true description: An event that occurred while the user was going through Link additionalProperties: true properties: @@ -39967,11 +41131,12 @@ components: - event_name - event_metadata LinkEventsWebhook: - x-hidden-from-docs: true title: LinkEventsWebhook type: object additionalProperties: true - description: Contains a summary of the events from a link session + 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 5-15 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. + By default, the `EVENTS` webhook is enabled only for clients that are enabled for Hosted Link. If you would like to receive this webhook and are not using Hosted Link, contact your Account Manager. properties: webhook_type: type: string @@ -39981,23 +41146,106 @@ components: description: '`EVENTS`' events: type: array - description: The link events emitted during the link session + 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 + 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 + description: The Link token used to create the Link session these events are from required: - webhook_type - webhook_code - events - link_session_id - link_token + 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: - x-hidden-from-docs: true title: ItemAddResultWebhook type: object additionalProperties: true @@ -40039,7 +41287,9 @@ components: title: LinkSessionFinishedWebhook type: object additionalProperties: true - description: Contains the state of a completed Link session, along with the public token if available. + description: |- + Contains the state of a completed Link session, along with the public token if available. + By default, the `SESSION_FINISHED` webhook is enabled only for clients that are enabled for Hosted Link. If you would like to receive this webhook and are not using Hosted Link, contact your Account Manager. properties: webhook_type: type: string @@ -40057,10 +41307,10 @@ components: 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. + description: The public token generated by the Link session. This field has been deprecated; please use `public_tokens` instead. public_tokens: - x-hidden-from-docs: true type: array description: The public tokens generated by the Link session. items: @@ -40081,7 +41331,8 @@ components: status: SUCCESS 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 + public_tokens: + - public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d environment: sandbox HostedMMDVerificationWebhook: title: HostedMMDVerificationWebhook @@ -40519,6 +41770,70 @@ components: $ref: '#/components/schemas/RequestID' required: - request_id + CraCheckReportPDFGetRequest: + title: CraCheckReportPDFGetRequest + type: object + x-hidden-from-docs: true + 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_token: + $ref: '#/components/schemas/UserToken' + add_ons: + type: array + description: Use this field to include other reports in the PDF. + items: + $ref: '#/components/schemas/CraPDFAddOns' + required: + - user_token + CraPDFAddOns: + title: CraPDFAddOns + enum: + - cra_income_insights + description: |- + A list of add-ons that can be included in the PDF. + + `cra_income_insights`: Include Income Insights report in the PDF. + type: string + CraCheckReportPDFGetResponse: + format: binary + type: string + x-hidden-from-docs: true + description: CraCheckReportPDFGetResponse defines the response schema for `/cra/check_report/pdf/get` + CraCheckReportBaseReportGetRequest: + title: CraCheckReportBaseReportGetRequest + type: object + description: BaseReportGetRequest defines the request schema for `/cra/check_report/base_report/get` + properties: + client_id: + $ref: '#/components/schemas/APIClientID' + secret: + $ref: '#/components/schemas/APISecret' + user_token: + $ref: '#/components/schemas/UserToken' + required: + - user_token + 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: If the Base 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/BaseReportWarning' + request_id: + $ref: '#/components/schemas/RequestID' + required: + - report + - request_id BaseReportGetRequest: type: object x-hidden-from-docs: true @@ -40554,7 +41869,7 @@ components: title: BaseReportWarning type: object additionalProperties: true - description: It is possible for an 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. + 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 @@ -40625,8 +41940,7 @@ components: type: string description: The `user_id` corresponding to the User ID the webhook has fired for. report_type: - type: string - description: The report type, indicating whether the Asset Report is a `full` or `fast` report. + $ref: '#/components/schemas/AssetReportType' environment: $ref: '#/components/schemas/WebhookEnvironmentValues' required: @@ -40639,7 +41953,13 @@ components: webhook_type: ASSETS webhook_code: PRODUCT_READY asset_report_id: 47dfc92b-bba3-4583-809e-ce871b321f05 - report_type: full + report_type: FULL + 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 @@ -40886,6 +42206,8 @@ components: 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 is currently an opt-in field and only supported for Chase Items. + holder_category: + $ref: '#/components/schemas/AccountHolderCategory' days_available: type: number description: The duration of transaction history available for this Item, typically defined as the time since the date of the earliest transaction in that account. @@ -41327,7 +42649,6 @@ components: type: object additionalProperties: true description: An object representing a Base Report - x-hidden-from-docs: true properties: report_id: $ref: '#/components/schemas/BaseReportId' @@ -41357,7 +42678,6 @@ components: type: object additionalProperties: true description: A representation of an Item within a Base Report. - x-hidden-from-docs: true properties: institution_name: type: string @@ -41369,6 +42689,8 @@ components: 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. @@ -41377,15 +42699,23 @@ components: required: - institution_name - institution_id + - item_id - date_last_updated - accounts BaseReportAccount: title: BaseReportAccount description: Base Report information about an account - x-hidden-from-docs: true 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. + + If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API. + + Like all Plaid identifiers, the `account_id` is case sensitive. balances: $ref: '#/components/schemas/BaseReportAccountBalances' mask: @@ -41426,6 +42756,7 @@ components: account_insights: $ref: '#/components/schemas/BaseReportAccountInsights' required: + - account_id - balances - mask - name @@ -41439,7 +42770,6 @@ components: BaseReportAccountBalances: title: BaseReportAccountBalances description: Base Report information about an account's balances - x-hidden-from-docs: true type: object additionalProperties: true allOf: @@ -41464,16 +42794,17 @@ components: nullable: true BaseReportId: title: BaseReportId - x-hidden-from-docs: true description: A unique ID identifying an Base Report. Like all Plaid identifiers, this ID is case sensitive. type: string BaseReportTransaction: title: BaseReportTransaction description: A transaction on the Base Report - x-hidden-from-docs: true 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 @@ -41520,6 +42851,9 @@ components: type: string description: The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts. nullable: true + 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: @@ -41533,11 +42867,13 @@ components: 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). required: + - transaction_id - pending - date - unofficial_currency_code - iso_currency_code - amount + - account_id - original_description BaseReportTransactionType: title: BaseReportTransactionType @@ -41560,7 +42896,6 @@ components: BaseReportAccountInsights: title: BaseReportAccountInsights description: Calculated insights derived from transaction-level data. - x-hidden-from-docs: true type: object additionalProperties: true properties: @@ -41694,51 +43029,52 @@ components: The date will be returned in an ISO 8601 format (YYYY-MM-DD). average_balance: $ref: '#/components/schemas/CreditAmountWithCurrency' + BalancePlusRiskLevel: + type: string + description: "A five-tier risk assessment for the transaction, based on the probability distribution of ACH returns,\nmeasured by the incident rate. \n\nEach tier corresponds to a distribution with a different mean (average) probability. \n\n`HIGH`: The mean probability of ACH return risk is above 40%.\n`MEDIUM_HIGH`: The mean probability of ACH return risk is 15%-25%. \n`MEDIUM`: The mean probability of ACH return risk is 5-10%.\n`MEDIUM_LOW`: The mean probability of ACH return risk is 1%-2%.\n`LOW`: The mean probability of ACH return risk is below 1%. \n\nNote that these tiers correspond to probability *distributions* and not to discrete probabilities. \n\nThese tier definitions are specific to Balance Plus and do not apply to risk tiers generated by other Plaid endpoints. " + enum: + - HIGH + - MEDIUM_HIGH + - MEDIUM + - MEDIUM_LOW + - LOW BalancePlusAttributes: title: BalancePlusAttributes type: object - description: |- - Contains additional data that can be used to assess the ACH return risk. Examples of data include: - - `days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid - `plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days - `plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days - `total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid - `is_savings_or_money_market_account`: Indicates whether the ACH transaction funding account is a savings/money market account - - For the full list and detailed documentation of attributes available, or to request that attributes not be returned, contact Sales or your Plaid account manager + description: Contains additional data that can be used to assess the ACH return risk + additionalProperties: true properties: unauthorized_transactions_count_7d: type: integer - 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. + description: The number of possible past returns due to unauthorized transactions over the past 7 days from the account that will be debited nullable: true unauthorized_transactions_count_30d: type: integer - 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. + description: The number of possible past returns due to unauthorized transactions over the past 30 days from the account that will be debited nullable: true unauthorized_transactions_count_60d: type: integer - 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. + description: The number of possible past returns due to unauthorized transactions over the past 60 days from the account that will be debited nullable: true unauthorized_transactions_count_90d: type: integer - 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. + description: The number of possible past returns due to unauthorized transactions over the past 90 days from the account that will be debited nullable: true nsf_overdraft_transactions_count_7d: type: integer - 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. + description: The number of possible past returns due to non-sufficient funds/overdrafts over the past 7 days from the account that will be debited nullable: true nsf_overdraft_transactions_count_30d: type: integer - 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. + description: The number of possible past returns due to non-sufficient funds/overdrafts over the past 30 days from the account that will be debited nullable: true nsf_overdraft_transactions_count_60d: type: integer - 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. + description: The number of possible past returns due to non-sufficient funds/overdrafts over the past 60 days from the account that will be debited nullable: true nsf_overdraft_transactions_count_90d: type: integer - 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. + description: The number of possible past returns due to non-sufficient funds/overdrafts over the past 90 days from the account that will be debited nullable: true days_since_first_plaid_connection: type: integer @@ -41816,6 +43152,34 @@ components: type: boolean description: Indicates if the receiver bank account is either frozen or restricted nullable: true + required: + - unauthorized_transactions_count_7d + - unauthorized_transactions_count_30d + - unauthorized_transactions_count_60d + - unauthorized_transactions_count_90d + - nsf_overdraft_transactions_count_7d + - nsf_overdraft_transactions_count_30d + - nsf_overdraft_transactions_count_60d + - nsf_overdraft_transactions_count_90d + - days_since_first_plaid_connection + - plaid_connections_count_7d + - plaid_connections_count_30d + - total_plaid_connections_count + - is_savings_or_money_market_account + - phone_change_count_28d + - phone_change_count_90d + - email_change_count_28d + - email_change_count_90d + - address_change_count_28d + - address_change_count_90d + - plaid_non_oauth_authentication_attempts_count_3d + - plaid_non_oauth_authentication_attempts_count_7d + - plaid_non_oauth_authentication_attempts_count_30d + - failed_plaid_non_oauth_authentication_attempts_count_3d + - failed_plaid_non_oauth_authentication_attempts_count_7d + - failed_plaid_non_oauth_authentication_attempts_count_30d + - is_account_closed + - is_account_frozen_or_restricted BeaconAccountRiskEvaluateRequest: title: BeaconAccountRiskEvaluateRequest description: BeaconAccountRiskEvaluateRequest defines the request schema for `/v1/beacon/account_risk/risk/evaluate` @@ -42029,6 +43393,130 @@ components: - commercial - no_data example: residential + BeaconAccountRiskAttributes: + title: BeaconAccountRiskAttributes + type: object + description: |- + The attributes object contains data that can be used to assess account risk. Examples of data include: + `days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid + `plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days + `plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days + `total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid + For the full list and detailed documentation of core attributes available, or to request that core attributes not be returned, contact Sales or your Plaid account manager + properties: + days_since_first_plaid_connection: + type: integer + description: The number of days since the first time the Item was connected to an application via Plaid + nullable: true + is_account_closed: + type: boolean + description: Indicates if the account has been closed by the financial institution or the consumer, or is at risk of being closed + nullable: true + is_account_frozen_or_restricted: + type: boolean + 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 + nullable: true + total_plaid_connections_count: + type: integer + description: The total number of times the item has been connected to applications via Plaid + nullable: true + plaid_connections_count_7d: + type: integer + description: The number of times the Item has been connected to applications via Plaid over the past 7 days + nullable: true + plaid_connections_count_30d: + type: integer + description: The number of times the Item has been connected to applications via Plaid over the past 30 days + nullable: true + failed_plaid_non_oauth_authentication_attempts_count_3d: + type: integer + description: The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days + nullable: true + plaid_non_oauth_authentication_attempts_count_3d: + type: integer + description: The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days + nullable: true + failed_plaid_non_oauth_authentication_attempts_count_7d: + type: integer + description: The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days + nullable: true + plaid_non_oauth_authentication_attempts_count_7d: + type: integer + description: The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days + nullable: true + failed_plaid_non_oauth_authentication_attempts_count_30d: + type: integer + description: The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days + nullable: true + plaid_non_oauth_authentication_attempts_count_30d: + type: integer + description: The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days + nullable: true + distinct_ip_addresses_count_3d: + type: integer + description: The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 3 days + nullable: true + distinct_ip_addresses_count_7d: + type: integer + description: The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 7 days + nullable: true + distinct_ip_addresses_count_30d: + type: integer + description: The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 30 days + nullable: true + distinct_ip_addresses_count_90d: + type: integer + description: The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 90 days + nullable: true + distinct_user_agents_count_3d: + type: integer + description: The number of distinct user agents linked to the same bank account during Plaid authentication in the last 3 days + nullable: true + distinct_user_agents_count_7d: + type: integer + description: The number of distinct user agents linked to the same bank account during Plaid authentication in the last 7 days + nullable: true + distinct_user_agents_count_30d: + type: integer + description: The number of distinct user agents linked to the same bank account during Plaid authentication in the last 30 days + nullable: true + distinct_user_agents_count_90d: + type: integer + description: The number of distinct user agents linked to the same bank account during Plaid authentication in the last 90 days + nullable: true + address_change_count_28d: + type: integer + description: The number of times the account's addresses on file have changed over the past 28 days + nullable: true + email_change_count_28d: + type: integer + description: The number of times the account's email addresses on file have changed over the past 28 days + nullable: true + phone_change_count_28d: + type: integer + description: The number of times the account's phone numbers on file have changed over the past 28 days + nullable: true + address_change_count_90d: + type: integer + description: The number of times the account's addresses on file have changed over the past 90 days + nullable: true + email_change_count_90d: + type: integer + description: The number of times the account's email addresses on file have changed over the past 90 days + nullable: true + phone_change_count_90d: + type: integer + description: The number of times the account's phone numbers on file have changed over the past 90 days + nullable: true + days_since_account_opening: + type: integer + description: The number of days since the bank account was opened, as reported by the financial institution + nullable: true + days_since_first_observed_transaction: + type: integer + 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 + nullable: true + additionalProperties: true BeaconAuditTrail: type: object title: BeaconAuditTrail @@ -42502,6 +43990,15 @@ components: 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 + example: 515cd85321d3649aecddc015 + uniqueItems: true + example: + - 515cd85321d3649aecddc015 id: $ref: '#/components/schemas/BeaconUserID' version: @@ -42532,6 +44029,7 @@ components: - client_user_id - user - audit_trail + - item_ids additionalProperties: true BeaconUserAddress: type: object @@ -42581,6 +44079,11 @@ components: $ref: '#/components/schemas/ClientUserID' user: $ref: '#/components/schemas/BeaconUserRequestData' + access_tokens: + type: array + items: + $ref: '#/components/schemas/AccessToken' + nullable: true client_id: $ref: '#/components/schemas/APIClientID' secret: @@ -42593,6 +44096,15 @@ components: 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 + example: 515cd85321d3649aecddc015 + uniqueItems: true + example: + - 515cd85321d3649aecddc015 id: $ref: '#/components/schemas/BeaconUserID' version: @@ -42625,6 +44137,7 @@ components: - client_user_id - user - audit_trail + - item_ids - request_id type: object BeaconUserData: @@ -42671,6 +44184,15 @@ components: 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 + example: 515cd85321d3649aecddc015 + uniqueItems: true + example: + - 515cd85321d3649aecddc015 id: $ref: '#/components/schemas/BeaconUserID' version: @@ -42703,6 +44225,7 @@ components: - client_user_id - user - audit_trail + - item_ids - request_id type: object BeaconUserHistoryListRequest: @@ -42911,6 +44434,11 @@ components: $ref: '#/components/schemas/BeaconUserID' user: $ref: '#/components/schemas/BeaconUserUpdateRequestData' + access_tokens: + type: array + items: + $ref: '#/components/schemas/AccessToken' + nullable: true client_id: $ref: '#/components/schemas/APIClientID' secret: @@ -42942,6 +44470,15 @@ components: 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 + example: 515cd85321d3649aecddc015 + uniqueItems: true + example: + - 515cd85321d3649aecddc015 id: $ref: '#/components/schemas/BeaconUserID' version: @@ -42974,6 +44511,7 @@ components: - client_user_id - user - audit_trail + - item_ids - request_id type: object City: @@ -42990,13 +44528,11 @@ components: ClientUserID: type: string title: ClientUserID - minLength: 1 example: your-db-id-3b24110 description: A unique ID that identifies the end user in your system. 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`. ClientUserIDNullable: type: string title: ClientUserID - minLength: 1 example: your-db-id-3b24110 description: A unique ID that identifies the end user in your system. 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`. nullable: true @@ -43124,7 +44660,6 @@ components: type: string title: CustomerReference deprecated: true - minLength: 1 example: your-db-id-3b24110 description: Specifying `user.client_user_id` is deprecated. Please provide `client_user_id` at the root level instead. nullable: true @@ -43624,14 +45159,12 @@ components: EntityWatchlistScreeningName: type: string title: EntityWatchlistScreeningName - minLength: 1 example: Al-Qaida description: The name of the organization being screened. EntityWatchlistScreeningProgramName: type: string title: EntityWatchlistScreeningProgramName example: Sample Program - minLength: 1 description: A name for the entity program to define its purpose. For example, "High Risk Organizations" or "Applicants". EntityWatchlistScreeningReview: title: EntityWatchlistScreeningReview @@ -43762,13 +45295,11 @@ components: GenericCountryCode: type: string title: GenericCountryCode - minLength: 2 example: US description: Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form. GenericCountryCodeNullable: type: string title: GenericCountryCode - minLength: 2 example: US description: Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form. nullable: true @@ -43857,7 +45388,6 @@ components: enum: - USD description: An ISO-4217 currency code. - minLength: 3 IdempotencyFlag: type: boolean example: true @@ -44177,7 +45707,6 @@ components: IdentityVerificationDocumentCountryCode: type: string title: IdentityVerificationDocumentCountryCode - minLength: 2 example: US description: Valid, capitalized, two-letter ISO code representing the country extracted from the document. Must be in ISO 3166-1 alpha-2 form. IdentityVerificationDocumentISO8601DateOfBirth: @@ -44793,7 +46322,6 @@ components: type: string title: IndividualWatchlistScreeningProgramName example: Sample Program - minLength: 1 description: A name for the program to define its purpose. For example, "High Risk Individuals", "US Cardholders", or "Applicants". InternalUID: type: string @@ -45101,7 +46629,6 @@ components: description: A comment submitted by a team member as part of reviewing a watchlist screening. type: string title: ReviewComment - minLength: 1 example: These look like legitimate matches, rejecting the customer. nullable: true RiskCheckBehavior: @@ -45632,7 +47159,6 @@ components: SourceUID: description: The identifier provided by the source sanction or watchlist. When one is not provided by the source, this is `null`. type: string - minLength: 1 example: 26192ABC nullable: true Strategy: @@ -45868,13 +47394,11 @@ components: WatchlistScreeningDocumentValue: type: string title: WatchlistScreeningDocumentValue - minLength: 4 example: C31195855 description: The numeric or alphanumeric identifier associated with this document. WatchlistScreeningDocumentValueNullable: type: string title: WatchlistScreeningDocumentValue - minLength: 4 example: C31195855 description: The numeric or alphanumeric identifier associated with this document. nullable: true @@ -46575,7 +48099,6 @@ components: WatchlistScreeningIndividualName: type: string title: WatchlistScreeningIndividualName - minLength: 1 example: Aleksey Potemkin description: The legal name of the individual being screened. WatchlistScreeningIndividualProgramGetRequest: @@ -46938,7 +48461,7 @@ components: CreditAuditCopyTokenUpdateResponse: type: object additionalProperties: true - description: CreditAuditCopyTokenUpdateResponse defines the response schema for `/credit/audit_copy_token/update` + description: Defines the response schema for `/credit/audit_copy_token/update` properties: request_id: $ref: '#/components/schemas/RequestID' @@ -46948,6 +48471,31 @@ components: 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' + required: + - user_token + 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' + required: + - request_id CraBankIncomeGetRequest: title: CraBankIncomeGetRequest type: object @@ -46989,6 +48537,33 @@ components: format: binary type: string description: ConsumerReportPDFGetResponse defines the response schema for `/consumer_report/pdf/get` + CraIncomeInsights: + type: object + additionalProperties: true + description: The report of the Bank Income data for an end user. + properties: + report_id: + type: string + description: The unique identifier associated with the Bank Income Report. + generated_time: + type: string + description: The time when the Bank Income Report was generated. + format: date-time + days_requested: + type: integer + description: The number of days requested by the customer for the Bank Income Report. + items: + type: array + description: The list of Items in the report along with the associated metadata about the Item. + items: + $ref: '#/components/schemas/CraBankIncomeItem' + bank_income_summary: + $ref: '#/components/schemas/CraBankIncomeSummary' + warnings: + type: array + description: If data from the Bank Income report was unable to be retrieved, the warnings will contain information about the error that caused the data to be incomplete. + items: + $ref: '#/components/schemas/CraBankIncomeWarning' CraBankIncome: type: object description: The report of the Bank Income data for an end user. @@ -47019,6 +48594,8 @@ components: type: object description: The details and metadata for an end user's Item. properties: + item_id: + $ref: '#/components/schemas/ItemId' bank_income_accounts: type: array description: The Item's accounts that have Bank Income data. @@ -47046,6 +48623,14 @@ components: 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. + + If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API. + + Like all Plaid identifiers, the `account_id` is case sensitive. mask: type: string description: |- @@ -47079,6 +48664,9 @@ components: type: object 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. @@ -47278,10 +48866,13 @@ components: description: The transactions data for the end user's income source(s). additionalProperties: 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 transactions's currency as stated in `iso_currency_code` or `unofficial_currency_code`. + The settled value of the transaction, denominated in the transaction's currency as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative. date: @@ -47315,7 +48906,7 @@ components: CraBankIncomeBonusType: type: string description: |- - The type of bonus that this transaction represents, if it is a bonus + The type of bonus that this transaction represents, if it is a bonus. `BONUS_INCLUDED`: Bonus is included in this transaction along with the normal pay `BONUS_ONLY`: This transaction is a standalone bonus enum: @@ -47324,6 +48915,7 @@ components: nullable: true CraBankIncomeWarning: type: object + additionalProperties: true description: The warning associated with the data that was unavailable for the Bank Income Report. properties: warning_type: @@ -47347,6 +48939,7 @@ components: - 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: @@ -47397,6 +48990,41 @@ components: properties: request_id: $ref: '#/components/schemas/RequestID' + 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_token: + $ref: '#/components/schemas/UserToken' + webhook: + type: string + description: | + The destination URL to which webhooks will be sent + days_requested: + type: integer + description: The number of days of data to request for the report + minimum: 1 + maximum: 731 + consumer_report_permissible_purpose: + $ref: '#/components/schemas/ConsumerReportPermissiblePurpose' + required: + - user_token + - webhook + - days_requested + - consumer_report_permissible_purpose + 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 @@ -47408,6 +49036,8 @@ components: $ref: '#/components/schemas/APISecret' user_token: $ref: '#/components/schemas/UserToken' + required: + - user_token CraPartnerInsightsGetResponse: title: CraPartnerInsightsGetResponse additionalProperties: true @@ -47422,17 +49052,55 @@ components: $ref: '#/components/schemas/RequestID' required: - request_id + CraCheckReportPartnerInsightsGetRequest: + title: CraCheckReportPartnerInsightsGetRequest + 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' + options: + $ref: '#/components/schemas/CraCheckReportPartnerInsightsGetOptions' + required: + - user_token + CraCheckReportPartnerInsightsGetOptions: + title: CraCheckReportPartnerInsightsGetOptions + type: object + nullable: true + description: Defines configuration options to generate Partner Insights + properties: + prism_products: + type: array + description: The specific Prism Data products to return. If none are passed in, then all products will be returned. + items: + $ref: '#/components/schemas/PrismProduct' + CraCheckReportPartnerInsightsGetResponse: + title: CraCheckReportPartnerInsightsGetResponse + additionalProperties: true + type: object + description: CraPartnerInsightsGetResponse defines the response schema for `/cra/partner_insights/get`. + properties: + report: + $ref: '#/components/schemas/CraPartnerInsights' + request_id: + $ref: '#/components/schemas/RequestID' + required: + - request_id CraPartnerInsights: type: object additionalProperties: true - description: The partner insights report of the bank data for an end user. + 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. + description: The time when the Partner Insights report was generated. format: date-time prism: $ref: '#/components/schemas/CraPartnerInsightsPrism' @@ -47465,6 +49133,14 @@ components: additionalProperties: true description: Account data corresponding to the item from which Partner Insights were generated from 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. + + If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API. + + Like all Plaid identifiers, the `account_id` is case sensitive. mask: type: string nullable: true @@ -47498,7 +49174,7 @@ components: CraPartnerInsightsPrism: type: object additionalProperties: true - description: The Prism insights for the user. + description: The Prism Data insights for the user. properties: insights: $ref: '#/components/schemas/PrismInsights' @@ -47508,18 +49184,18 @@ components: $ref: '#/components/schemas/PrismFirstDetect' status: type: string - description: Details on whether the Prism attributes succeeded or failed to be generated. + description: Details on whether the Prism Data attributes succeeded or failed to be generated. required: - status PrismInsights: type: object additionalProperties: true - description: The data from the Insights product returned by Prism. + description: The data from the Insights product returned by Prism Data. nullable: true properties: version: type: integer - description: The version of Prism's insights model used. + description: The version of Prism Data's insights model used. result: $ref: '#/components/schemas/PrismInsightsResult' required: @@ -47531,15 +49207,15 @@ components: PrismCashScore: type: object additionalProperties: true - description: The data from the Cash Score product returned by Prism. + description: The data from the CashScore® product returned by Prism Data. nullable: true properties: version: type: integer - description: The version of Prism's cash score model used. + description: The version of Prism Data's cash score model used. score: type: integer - description: The score returned by Prism. Ranges from 1-999, with higher score indicating lower risk. + 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. @@ -47609,18 +49285,18 @@ components: PrismFirstDetect: type: object additionalProperties: true - description: The data from the Firstdetect product returned by Prism. + description: The data from the FirstDetect product returned by Prism Data. nullable: true properties: version: type: integer - description: The version of Prism's Firstdetect model used. + description: The version of Prism Data's FirstDetect model used. score: type: integer - description: The score returned by Prism. Ranges from 1-999, with higher score indicating lower risk. + 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. + description: The reasons for an individual having risk according to the FirstDetect score. items: type: string metadata: @@ -49349,7 +51025,7 @@ components: $ref: '#/components/schemas/Products' consented_products: description: | - A list of products that have gone through consent collection for the Item. Only present for those enabled in the [Data Transparency](https://plaid.com/docs/link/data-transparency-messaging-migration-guide) beta. If you are not enrolled in Data Transparency, this field is not used. + A list of products that have gone through consent collection for the Item. If the session is not enrolled in [Data Transparency Messaging](/docs/link/data-transparency-messaging-migration-guide), this field is not used. type: array items: $ref: '#/components/schemas/Products' @@ -49720,8 +51396,16 @@ components: device: $ref: '#/components/schemas/SignalDevice' risk_profile_key: + deprecated: true + x-hidden-from-docs: true + type: string + description: Specifying `risk_profile_key` is deprecated. Please provide `ruleset` instead. + minLength: 1 + maxLength: 64 + nullable: true + ruleset_key: type: string - description: The key of the risk profile to use for this transaction. You can configure a risk profile using the Signal dashboard located within the Plaid Dashboard. If not provided, no risk profile will be used. This feature is currently in closed beta; to request access, contact your account manager. + description: The key of the Ruleset to use for this transaction. You can configure a Ruleset using the Signal dashboard located within the Plaid Dashboard. If not provided, no Ruleset will be used. This feature is currently in closed beta; to request access, contact your account manager. minLength: 1 maxLength: 64 nullable: true @@ -49744,6 +51428,8 @@ components: $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 model, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of Signal scores in the case of missing bank data, file a support ticket or contact your Plaid account manager. @@ -49814,7 +51500,7 @@ components: $ref: '#/components/schemas/APISecret' client_transaction_id: type: string - description: Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate` + description: Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate` or `/accounts/balance/get`. minLength: 1 maxLength: 36 return_code: @@ -50218,9 +51904,11 @@ components: description: The user agent of the device that initiated the transaction (e.g. "Mozilla/5.0") nullable: true RiskProfile: + deprecated: true + x-hidden-from-docs: true title: SignalEvaluateRiskProfile type: object - description: Details about the transaction result after evaluated by the requested risk profile. If a `risk_profile_key` is not provided, this field will be omitted. This feature is currently in closed beta; to request access, contact your account manager. + description: RiskProfile is deprecated, use `ruleset` instead. nullable: true properties: key: @@ -50229,6 +51917,19 @@ components: outcome: type: string description: The evaluated outcome for this transaction. You can configure a list of outcomes, such as "accept", "review", and "decline" using the Signal dashboard located within the Plaid Dashboard. + Ruleset: + title: SignalEvaluateRuleset + type: object + description: Details about the transaction result after evaluated by the requested Ruleset. If a `ruleset_key` is not provided, this field will be omitted. This feature is currently in closed beta; to request access, contact your account manager. + nullable: true + additionalProperties: true + properties: + ruleset_key: + type: string + description: The key of the Ruleset used for this transaction. + outcome: + type: string + description: The evaluated outcome for this transaction. You can configure a list of outcomes, such as "accept", "review", and "decline" using the Signal dashboard located within the Plaid Dashboard. SignalDecisionOutcome: type: string enum: diff --git a/CHANGELOG.md b/CHANGELOG.md index 2189086..91994b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,170 +1,334 @@ +### 2020-09-14_1.525.1 +[Breaking] Renamed `bank_income` to `report` in the `cra/check_report/income_insights/get` response + +### 2020-09-14_1.524.1 + +- Remove `minLength` validations from several attributes. Fixes multiple validation bugs in the ruby client libraries which do not handle `nil` gracefully before this change. + +### 2020-09-14_1.524.0 + +- Add transfer refund event types to TransferEventType enum. + +### 2020-09-14_1.523.0 + +- Added support for the `layer` product. + +### 2020-09-14_1.522.0 + +- Added support for the `/user_account/session/get` API. + +### 2020-09-14_1.521.0 + +- Internal changes only + +### 2020-09-14_1.520.0 + +- [Breaking] Contains fixes to Balance Plus (beta): + - [Breaking] Convert `risk_level` string to an enum object `RiskLevel`. + - [Breaking] Adds missing `required` labels to certain fields within `BalancePlusAttributes`, `AccountsBalanceGetResponsePaymentRiskAssessment`, `AccountsBalanceGetRequestPaymentDetails`, and `RiskReason`. + - Adds missing `additionalProperties` field to `BalancePlusAttributes` + - Fix incorrect response example for Balance Plus + - Docs updates for Balance Plus + +### 2020-09-14_1.519.0 + +- Add `rtp` to network options in `/transfer/intent/create` +- Added `access_tokens` field to `/beacon/user/create` and `/beacon/user/update` requests +- Added `item_ids` to `/beacon/user/*` responses + +### 2020-09-14_1.518.9 + +- Update `description` field for `decision_rationale` in `transfer/authorization/create` response + +### 2020-09-14_1.518.8 + +- Fix incorrect documentation for ENTITY_SCREENING: STATUS_UPDATED webhook which wrongly documented `screening_id` instead of `entity_screening_id` in the payload. + +### 2020-09-14_1.518.7 + +- Internal changes only + +### 2020-09-14_1.518.6 + +- Add `add_ons` in cra/check_report/pdf/get + +### 2020-09-14_1.518.5 + +- Internal changes only + +### 2020-09-14_1.518.4 + +- Add `Recall` as a possible Virtual Account wallet transaction type + +### 2020-09-14_1.518.3 + +- Internal changes only + +### 2020-09-14_1.518.2 + +- Documentation edits to cra endpoints +- Add `income-sensitive repayment` to StudentRepaymentPlan and update description for repayment plan type + +### 2020-09-14_1.518.1 + +- Documentation edits to cra endpoints +- Add item, account, and transaction IDs to `/cra/base_report/get` response + +### 2020-09-14_1.518.0 + +- Add several cra related properties to `/user/create` and `/link/token/create` + +### 2020-09-14_1.517.7 + +- Add `cra/check_report/pdf/get` endpoint + +### 2020-09-14_1.517.6 + +- Add `cra/check_report/base_report/get` endpoint + +### 2020-09-14_1.517.5 + +- Add `error_message` to `document_metadata` object for `credit/payroll_income/get` and `credit/bank_statements/uploads/get` + +### 2020-09-14_1.517.4 + +- Add `production` to the `secrets` object in `/partner/customer/create` response and deprecate `development` + +### 2020-09-14_1.517.3 + +- Add new enums to `canonical_description` in `credit/payroll_income/get`: `RETIREMENT`, `GIG ECONOMY`, and `STOCK COMPENSATION` + +### 2020-09-14_1.517.2 + +- Added `ITEM: EVENTS` webhook and example to documentation + +### 2020-09-14_1.517.1 + +- Added `public_tokens` on `SESSION_FINISHED` webhook +- Deprecated `public_token` on `SESSION_FINISHED` webhook +- Added `ITEM_ADD_RESULT` webhook + ### 2020-09-14_1.517.0 + - [Breaking] Update `/link/token/get` response structure ### 2020-09-14_1.516.0 + - Internal changes only ### 2020-09-14_1.515.0 + - Added `/cra/loans/applications/register` - Added `/cra/loans/register` - Added `/cra/loans/update` - Added `/cra/loans/unregister` ### 2020-09-14_1.514.2 + - Added `days_since_first_observed transaction` as a field in the Account Risk Insights response. ### 2020-09-14_1.514.1 + - Update `risk_profile_key`and `RiskProfile` description ### 2020-09-14_1.514.0 + - Added `transfer/authorization/cancel` endpoint ### 2020-09-14_1.513.0 + - Added `consumer_report/pdf/get` endpoint ### 2020-09-14_1.512.0 + - Added support for address and date of birth in `/payment_initiation/payment/reverse` request. ### 2020-09-14_1.511.0 + - Added `user_token` to `link/token/get` response metadata - Internal changes ### 2020-09-14_1.510.2 + - Added `include_insights` to `/credit/relay/get` request - + ### 2020-09-14_1.510.1 + - Add `database_insights_pending` as a potential enum value to `LinkDeliveryVerificationStatus` and `LinkSessionSuccessMetadataAccount.VerificationStatus`. - Remove `database_insights_pass`, `database_insights_pass_with_caution` and `database_insights_fail` as potential values from `LinkDeliveryVerificationStatus` and `LinkSessionSuccessMetadataAccount.VerificationStatus` ### 2020-09-14_1.510.0 + - Internal changes only ### 2020-09-14_1.509.4 + - Internal changes only ### 2020-09-14_1.509.3 + - Update description of transfer authorization decision code `MANUALLY_VERIFIED_ITEM` ### 2020-09-14_1.509.2 + - Fixes to `RemovedTransaction` object definition: set `additionalProperties` explicitly to true and list `account_id` and `transaction_id` as `required`. ### 2020-09-14_1.509.1 + - add `SMS_MICRODEPOSITS_VERIFICATION` to the `webhook_code` field of `/sandbox/item/fire_webhook` ### 2020-09-14_1.509.0 + - Add `supports_payment_consents` to institution's `payment_initiation_metadata`. ### 2020-09-14_1.508.0 + - Add new fields to `/cra/bank_income/get` endpoint ### 2020-09-14_1.507.3 + - Add `paystub` and `w2` values to custom sandbox configuration schema ### 2020-09-14_1.507.2 + - Mark `/transfer/balance/get` endpoint deprecated ### 2020-09-14_1.507.1 + - Update `funds_available` description ### 2020-09-14_1.507.0 + - Add `funds_available` transfer status and transfer event type ### 2020-09-14_1.506.0 + - Add `statements` to the `options` field in the request object for `/sandbox/public_token/create` endpoint ### 2020-09-14_1.505.1 + - Internal changes only ### 2020-09-14_1.505.0 + - Add `profile` product ### 2020-09-14_1.504.2 + - [Breaking] Update `network` field type in `/transfer/recurring/create` request from `TransferACHNetwork` to `TransferRecurringNetwork` as recurring now supports rtp. - [Breaking] Update `network` field type in `RecurringTransfer` and `RecurringTransferNullable` from `TransferACHNetwork` to `TransferRecurringNetwork` as recurring now supports rtp. ### 2020-09-14_1.504.1 + - Documentation updates for `/transactions/sync` and Database Match / Database Insights (beta). ### 2020-09-14_1.504.0 + - Add new fields to `/transactions/sync` and `/processor/transactions/sync` endpoints ### 2020-09-14_1.503.6 + - [Breaking change for Go client library] Make `start_date` and `end_date` required in the `statements` object for the `/link/token/create` endpoint ### 2020-09-14_1.503.5 + - Improve description for `RiskCheckIdentityAbuseSignals` ### 2020-09-14_1.503.4 + - Improve description for `TransferNetworkTraceID` ### 2020-09-14_1.503.3 + - Update description for `TransferNetworkTraceID` ### 2020-09-14_1.503.2 + - Change `forecasted_average_monthly_income_prediction_intervals` to plural. ### 2020-09-14_1.503.1 + - Add `has_more` field to /transfer/event/list and /transfer/event/sync to indicate there are more events to be pulled ### 2020-09-14_1.503.0 + - Add new `/cra/base_report/create` endpoint ### 2020-09-14_1.502.4 + - Add `sms_microdeposits_verification_enabled` to `auth` object inside `/link/token/create` calls. ### 2020-09-14_1.502.3 + - Added descriptions for `vested_quantity` and `vested_amount` fields for `investments/holdings/get` - Removed description for `vested_quantity` and `vested_amount` fields for `HoldingsOverride` object (for sandbox) ### 2020-09-14_1.502.2 + - [Breaking] Update `network` field type in `/transfer/recurring/create` request from `TransferNetwork` to `TransferACHNetwork` since recurring currently only works for ACH. - [Breaking] Update `network` field type in `RecurringTransfer` and `RecurringTransferNullable` from `TransferNetwork` to `TransferACHNetwork` since recurring currently only works for ACH. ### 2020-09-14_1.502.1 + - Update description for `/item/remove` and `/asset_report/remove` ### 2020-09-14_1.502.0 + - Add `client_report_id` fields to `/link/token/create` and `/cra/base_report/get` ### 2020-09-14_1.501.2 + - Updating `insights` field in `/cra/partner_insights/get` response to contain both numerical and string values ### 2020-09-14_1.501.1 + - Enable original description for all customers on `/transactions/get` endpoint ### 2020-09-14_1.501.0 + [Breaking change for Go client library] Mark `address` field in `/beacon/user/create` as optional ### 2020-09-14_1.500.0 + - Remove `prime_trust` processor partner ### 2020-09-14_1.499.2 + - Fix broken link from previous update ### 2020-09-14_1.499.1 + - Updated doc url for some Transfer and processor endpoints to support documentation reorganization - Minor documentation updates and clarifications ### 2020-09-14_1.499.0 + - [Breaking change for Go client library] Make `account_id` optional in `/transactions/recurring/get` endpoint ### 2020-09-14_1.489.3 + - Update description of `network_trace_id` ### 2020-09-14_1.489.2 + - Correct documentation to indicate that `assets` is not supported in the `additional_consented_products` field - Remove `additionalProperties: true` incorrectly applied to `transferIntentGet` object and missed in `2020-09-14_1.352.0`. This will result in more strict type checking for this object, but should not be a breaking change. ### 2020-09-14_1.498.1 + - Enable original description for all customers ### 2020-09-14_1.498.0 + - Add `POST /beacon/account_risk/v1/evaluate` endpoint ### 2020-09-14_1.497.0 + - Add `institution_id` to `processor/account/get` endpoint. ### 2020-09-14_1.496.5 + - Update the description and enum values for `linked_services` in the response of all of the identity verification endpoints: - `identity_verification/create` - `identity_verification/get` @@ -172,51 +336,66 @@ - `identity_verification/retry` ### 2020-09-14_1.496.4 - Add `POST /beacon/user/history/list` + +Add `POST /beacon/user/history/list` ### 2020-09-14_1.496.3 + - Add `timestamp` to the beacon user's `audit_trail` object - Add `version` to the beacon user object. ### 2020-09-14_1.496.2 + - Adds prediction interval to `/cra/bank_income/get` ### 2020-09-14_1.496.1 + - Update the descriptions for `risk_level` and `score` in `/accounts/balance/get` ### 2020-09-14_1.496.0 + - Add `verification_insights` object to `Account` (closed beta feature - Database Insights) - Add `database_insights_pass`, `database_insights_pass_with_caution`, and `database_insights_fail` as new values for `verification_status` field (closed beta feature - Database Insights) ### 2020-09-14_1.495.2 + - Add `pending idr` to student loan liability statuses ### 2020-09-14_1.495.1 + - Add `processor_identity` product ### 2020-09-14_1.494.1 + - Mark `wire_details` as nullable in the transfer object ### 2020-09-14_1.494.0 + - Add `vested_quantity` and `vested_value` fields to the `Holding` object. ### 2020-09-14_1.493.0 + - Add `POST /cra/partner_insights/get` ### 2020-09-14_1.492.1 + - Added documentation for the `HOSTED_VERIFICATION` webhook. - Add `wire` to request and response of `/transfer/authorization/create` ### 2020-09-14_1.492.0 + - Remove `page_count`, `name`, and `status` fields from Identity Document Upload's document metadata. ### 2020-09-14_1.491.3 + - Increase max length of description field on `/transfer/intent/create` from 8 to 15 ### 2020-09-14_1.491.2 + - Added documentation for the `securities.type` field in `investments/holdings/get` and `investments/transactions/get` endpoints. ### 2020-09-14_1.491.1 + - Add new `no_data` type to `name` and `date_of_birth` fields in `documentary_verification.documents[].analysis.extracted_data` in the response of all of the identity verification endpoints: - `identity_verification/create` - `identity_verification/get` @@ -224,124 +403,163 @@ - `identity_verification/retry` ### 2020-09-14_1.491.0 + - Add `identity` object to `link/token/create` request body ### 2020-09-14_1.490.0 + - Add `events` field to the `sessions` parameter in the `/link/token/get` response ### 2020-09-14_1.489.1 + - Mark optional `scope` and `reference` fields in `/payment_initiation/consent/payment/execute` as nullable ### 2020-09-14_1.489.0 + - Add optional `scope` and `reference` fields to `/payment_initiation/consent/payment/execute` ### 2020-09-14_1.488.0 + - Add optional `item_ids` field to the request of `credit/payroll_income/get` and `credit/bank_statements/uploads/get` ### 2020-09-14_1.487.2 + - Add `num_1099s_uploaded` to `document_income_results` object in `/credit/sessions/get` response ### 2020-09-14_1.487.1 + - Correct the Document Income Verification `parsing_config` enum used by `/link/token/create` to contain `risk_signals` instead of `fraud_risk` to match the actual API implementation. - Dcumentation updates to reflect updates to Signal, including that new Items with Signal should now be created with `signal` in `/link/token/create` instead of using `/signal/prepare`. ### 2020-09-14_1.487.0 + - [Breaking] Introduce a new `AssetReportAccountBalance` object which duplicates the existing `AccountBalance` object with an additional `margin_loan_amount` field. Updated `AccountAssets.balances` to return the new `AssetReportAccountBalance` object instead of the existing `AccountBalance` object. - Add `vested_quantity` and `vested_value` fields to the `AssetReportInvestments` object. ### 2020-09-14_1.486.1 + - Update `bank_income_sources` in CRA Bank Income Get to be required in response since the empty array is being omitted. ### 2020-09-14_1.486.0 + - Add `requires_real_time_balance_refresh`, `risk_reasons`, `attributes`, `balance_last_updated`, and `score` fields to `/accounts/balance/get` endpoint ### 2020-09-14_1.485.1 + - Update `legal_name` description in `user` object in `/link/token.create` request ### 2020-09-14_1.485.0 + - Add `/processor/liabilities/get` endpoint ### 2020-09-14_1.484.1 + - Add `/identity_verification/autofill/create` (closed beta) ### 2020-09-14_1.484.0 + - Add `/statements/refresh` endpoint ### 2020-09-14_1.483.2 + - Add `/beacon/duplicate/get` route ### 2020-09-14_1.483.1 + - Internal changes only ### 2020-09-14_1.483.0 + - Added net new fields to StatementsAccount object: `account_mask`, `account_subtype`, `account_official_name` ### 2020-09-14_1.482.3 + - Update `description` description for `/transfer/create` ### 2020-09-14_1.482.2 + - Update /credit/relay/get response example ### 2020-09-14_1.482.1 + - Update `funding_account_id` description for `/transfer/intent/create` ### 2020-09-14_1.482.0 + - Adds a new field `payment_details` to `/accounts/balance/get` request - Adds a new field `payment_risk_assessment` to `/accounts/balance/get` response ### 2020-09-14_1.481.1 + - Update `USER_ACCOUNT_REVOKED` description and set to visible ### 2020-09-14_1.481.0 + - Add `available` to balance object in `wallet/get` and `wallet/list` response ### 2020-09-14_1.480.1 + - Documentation-only change to Investments `Security` object for new fields and sandbox availability ### 2020-09-14_1.480.0 + - Add `phone_number` to `/transactions/enrich` response ### 2020-09-14_1.479.0 + - [Breaking change for Go client library] Make `street` and `city` optional in the address attribute of `identity_verification/create` ### 2020-09-14_1.478.4 + - Add `registration_number` to `/partner/customer/create` request ### 2020-09-14_1.478.3 + - Update `/identity/get` response for identity document upload beta customers ### 2020-09-14_1.478.2 + - Deprecate `funding_account_id` from `/transfer/recurring/create` request ### 2020-09-14_1.478.1 + - Description-only changes to support Hosted Link (beta) ### 2020-09-14_1.478.0 + - Add `market_identifier_code` and `option_contract` fields in the Security (investment) object - `option_contract` object contains `contract_type`, `expiration_date`, `strike_price`, and `underlying_security_ticker` ### 2020-09-14_1.477.1 + - Changes `last_user_modified_date` to `last_user_modified_datetime` on transaction stream object. ### 2020-09-14_1.477.0 + - Bug fix nullability definitions for `/beacon/user/create` and `/beacon/user/update` request payloads ### 2020-09-14_1.476.1 + - Update Recurring Transaction description ### 2020-09-14_1.476.0 + - Add `/beacon/user/update` ### 2020-09-14_1.475.0 + - Add `/beacon/report_syndication/get` route ### 2020-09-14_1.474.4 + - Add Statements Refresh webhook ### 2020-09-14_1.474.3 + - Internal changes only ### 2020-09-14_1.474.2 + - Deprecate `credit_funds_source` in `/transfer/authorization/create` request ### 2020-09-14_1.474.1 @@ -349,6 +567,7 @@ - Added `identity_match` to Products schema object ### 2020-09-14_1.474.0 + - Added `statements/refresh` endpoint ### 2020-09-14_1.473.0