diff --git a/finicity.yaml b/finicity.yaml
index 26c320a..a0243b2 100644
--- a/finicity.yaml
+++ b/finicity.yaml
@@ -10,7 +10,7 @@ info:
name: Finicity
email: business.development@finicity.com
url: 'https://www.finicity.com/contact/'
- version: 1.6.0
+ version: 1.7.0
servers:
- url: 'https://api.finicity.com'
description: Production
@@ -1180,10 +1180,10 @@ paths:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/ReportCallbackUrlParameter'
requestBody:
- $ref: '#/components/requestBodies/GenerateReportRequest'
+ $ref: '#/components/requestBodies/GenerateVOAReportRequest'
responses:
'202':
- $ref: '#/components/responses/GenerateReportResponse'
+ $ref: '#/components/responses/GenerateVOAReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -1226,10 +1226,10 @@ paths:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/ReportCallbackUrlParameter'
requestBody:
- $ref: '#/components/requestBodies/GenerateReportRequest'
+ $ref: '#/components/requestBodies/GenerateVOAWithIncomeReportRequest'
responses:
'202':
- $ref: '#/components/responses/GenerateReportResponse'
+ $ref: '#/components/responses/GenerateVOAWithIncomeReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -1240,21 +1240,11 @@ paths:
post:
tags:
- Verify Assets
- summary: Generate Prequalification Report
+ summary: Generate Prequalification (CRA) Report
description: >-
- Generate a Prequalification Report (`preQualVoa`) for all checking,
- savings, money market, and investment accounts for the given customer.
- This service retrieves account and owner information as well as the
- number of NSFs for any account that is a checking account for the
- customer.
-
-
- This is a premium service. The billing rate is billed per report for the
- Prequalification report.
-
-
- Before calling this API, a consumer must be created for the given
- customer ID (see Consumers APIs).
+ Retrieve all checking, savings, money market, and investment accounts
+ for a consumer. The account, owner information, and the number of
+ insufficient funds (NSFs) for checking accounts are also provided.
If no account of type checking, savings, money market, or investment is
@@ -1262,15 +1252,15 @@ paths:
_Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)
- operationId: GeneratePrequalificationReport
+ operationId: GeneratePrequalificationCRAReport
parameters:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/ReportCallbackUrlParameter'
requestBody:
- $ref: '#/components/requestBodies/GenerateReportRequest'
+ $ref: '#/components/requestBodies/GeneratePrequalificationReportRequest'
responses:
'202':
- $ref: '#/components/responses/GenerateReportResponse'
+ $ref: '#/components/responses/GenerateCRAPrequalificationReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -1288,9 +1278,6 @@ paths:
insufficient funds (NSFs) for checking accounts are also provided.
- This is a premium service, billable per every successful API call.
-
-
If no account type of checking, savings, money market, or investment is
found, the service will return HTTP 400 Bad Request.
@@ -1301,10 +1288,10 @@ paths:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/ReportCallbackUrlParameter'
requestBody:
- $ref: '#/components/requestBodies/GenerateReportRequest'
+ $ref: '#/components/requestBodies/GeneratePrequalificationReportRequest'
responses:
'202':
- $ref: '#/components/responses/GenerateReportResponse'
+ $ref: '#/components/responses/GenerateNonCRAPrequalificationReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -1338,10 +1325,10 @@ paths:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/ReportCallbackUrlParameter'
requestBody:
- $ref: '#/components/requestBodies/GenerateReportRequest'
+ $ref: '#/components/requestBodies/GenerateVOIReportRequest'
responses:
'202':
- $ref: '#/components/responses/GenerateReportResponse'
+ $ref: '#/components/responses/GenerateVOIReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -1380,7 +1367,7 @@ paths:
$ref: '#/components/requestBodies/GeneratePayrollReportRequest'
responses:
'202':
- $ref: '#/components/responses/GeneratePayrollReportResponse'
+ $ref: '#/components/responses/GenerateVOEPayrollReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -1527,10 +1514,10 @@ paths:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/ReportCallbackUrlParameter'
requestBody:
- $ref: '#/components/requestBodies/GenerateVOIEPaystubWithStatementReportRequest'
+ $ref: '#/components/requestBodies/GenerateVOIEPaystubReportRequest'
responses:
'202':
- $ref: '#/components/responses/GenerateVOIEPaystubWithStatementReportResponse'
+ $ref: '#/components/responses/GenerateVOIEPaystubReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -1569,7 +1556,7 @@ paths:
$ref: '#/components/requestBodies/GeneratePayrollReportRequest'
responses:
'202':
- $ref: '#/components/responses/GeneratePayrollReportResponse'
+ $ref: '#/components/responses/RefreshVOIEPayrollReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -1806,7 +1793,7 @@ paths:
- $ref: '#/components/parameters/RequiredToDateParameter'
- $ref: '#/components/parameters/IncludePendingParameter'
requestBody:
- $ref: '#/components/requestBodies/GenerateReportRequest'
+ $ref: '#/components/requestBodies/GenerateTransactionsReportRequest'
responses:
'202':
$ref: '#/components/responses/GenerateTransactionsReportResponse'
@@ -2071,6 +2058,9 @@ paths:
Note: this is a premium service, billable per every successful API call.
+ _Supported account types_: "checking", "savings", "moneyMarket", "loan"
+
+
_Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)
operationId: GetAccountACHDetails
parameters:
@@ -2080,7 +2070,7 @@ paths:
'200':
$ref: '#/components/responses/GetAccountACHDetailsResponse'
'400':
- $ref: '#/components/responses/BadRequestErrorResponse'
+ $ref: '#/components/responses/GetAccountACHDetailsBadRequestErrorResponse'
'401':
$ref: '#/components/responses/UnauthorizedErrorResponse'
'404':
@@ -2109,7 +2099,7 @@ paths:
- $ref: '#/components/parameters/PurposeParameter'
responses:
'200':
- $ref: '#/components/responses/GetReportByCustomerResponse'
+ $ref: '#/components/responses/GetReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -2140,7 +2130,7 @@ paths:
- $ref: '#/components/parameters/OnBehalfOfParameter'
responses:
'200':
- $ref: '#/components/responses/GetReportByConsumerResponse'
+ $ref: '#/components/responses/GetReportResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -2169,7 +2159,7 @@ paths:
- $ref: '#/components/parameters/PurposeParameter'
responses:
'200':
- $ref: '#/components/responses/GetReportsByCustomerIdResponse'
+ $ref: '#/components/responses/GetReportsResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -2200,7 +2190,7 @@ paths:
- $ref: '#/components/parameters/ConsumerIdParameter'
responses:
'200':
- $ref: '#/components/responses/GetReportsByConsumerIdResponse'
+ $ref: '#/components/responses/GetReportsResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -2245,6 +2235,9 @@ paths:
Note: this is a premium service, billable per every successful API call.
+ _Supported account types_: "checking", "savings", "moneyMarket", "cd"
+
+
_Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)
operationId: GetAvailableBalanceLive
parameters:
@@ -2254,7 +2247,7 @@ paths:
'200':
$ref: '#/components/responses/GetAvailableBalanceLiveResponse'
'400':
- $ref: '#/components/responses/BadRequestErrorResponse'
+ $ref: '#/components/responses/GetAvailableBalanceLiveBadRequestErrorResponse'
'401':
$ref: '#/components/responses/UnauthorizedErrorResponse'
'404':
@@ -2274,7 +2267,10 @@ paths:
Note: this is a premium service, billable per every successful API call.
- Enrollment is required.
+ Enrollment is required.
+
+
+ _Supported account types_: "checking", "savings", "moneyMarket", "cd"
_Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)
@@ -2286,7 +2282,7 @@ paths:
'200':
$ref: '#/components/responses/GetAvailableBalanceResponse'
'400':
- $ref: '#/components/responses/BadRequestErrorResponse'
+ $ref: '#/components/responses/GetAvailableBalanceBadRequestErrorResponse'
'401':
$ref: '#/components/responses/UnauthorizedErrorResponse'
'404':
@@ -2318,10 +2314,10 @@ paths:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/ReportCallbackUrlParameter'
requestBody:
- $ref: '#/components/requestBodies/GenerateReportRequest'
+ $ref: '#/components/requestBodies/GenerateCashFlowReportRequest'
responses:
'202':
- $ref: '#/components/responses/GenerateReportResponse'
+ $ref: '#/components/responses/GenerateCashFlowReportBusinessResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -2365,10 +2361,10 @@ paths:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/ReportCallbackUrlParameter'
requestBody:
- $ref: '#/components/requestBodies/GenerateReportRequest'
+ $ref: '#/components/requestBodies/GenerateCashFlowReportRequest'
responses:
'202':
- $ref: '#/components/responses/GenerateReportResponse'
+ $ref: '#/components/responses/GenerateCashFlowReportPersonalResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
@@ -2632,36 +2628,96 @@ components:
content:
application/json:
schema: {}
- GenerateReportRequest:
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ReportConstraints'
GeneratePayrollReportRequest:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PayrollReportConstraints'
+ examples:
+ GeneratePayrollReportRequestExample:
+ $ref: '#/components/examples/GeneratePayrollReportRequestExample'
GeneratePayStatementReportRequest:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PayStatementReportConstraints'
+ examples:
+ GeneratePayStatementReportRequestExample:
+ $ref: '#/components/examples/GeneratePayStatementReportRequestExample'
+ GenerateCashFlowReportRequest:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CashFlowReportConstraints'
+ examples:
+ GenerateCashFlowReportRequestExample:
+ $ref: '#/components/examples/GenerateCashFlowReportRequestExample'
+ GenerateTransactionsReportRequest:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TransactionsReportConstraints'
+ examples:
+ GenerateTransactionsReportRequestExample:
+ $ref: '#/components/examples/GenerateTransactionsReportRequestExample'
+ GenerateVOAReportRequest:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VOAReportConstraints'
+ examples:
+ GenerateVOAReportRequestExample:
+ $ref: '#/components/examples/GenerateVOAReportRequestExample'
+ GenerateVOAWithIncomeReportRequest:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VOAWithIncomeReportConstraints'
+ examples:
+ GenerateVOAWithIncomeReportRequestExample:
+ $ref: '#/components/examples/GenerateVOAWithIncomeReportRequestExample'
+ GeneratePrequalificationReportRequest:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PrequalificationReportConstraints'
+ examples:
+ GeneratePrequalificationReportRequestExample:
+ $ref: '#/components/examples/GeneratePrequalificationReportRequestExample'
+ GenerateVOIReportRequest:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VOIReportConstraints'
+ examples:
+ GenerateVOIReportRequestExample:
+ $ref: '#/components/examples/GenerateVOIReportRequestExample'
GenerateVOIEPaystubWithTXVerifyReportRequest:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VOIEWithTXVerifyReportConstraints'
- GenerateVOIEPaystubWithStatementReportRequest:
+ examples:
+ GenerateVOIEPaystubWithTXVerifyReportRequestExample:
+ $ref: '#/components/examples/GenerateVOIEPaystubWithTXVerifyReportRequestExample'
+ GenerateVOIEPaystubReportRequest:
required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/VOIEWithStatementReportConstraints'
+ $ref: '#/components/schemas/VOIEReportConstraints'
+ examples:
+ GenerateVOIEPaystubReportRequestExample:
+ $ref: '#/components/examples/GenerateVOIEPaystubReportRequestExample'
StoreCustomerPayStatementRequest:
required: true
content:
@@ -2674,12 +2730,18 @@ components:
application/json:
schema:
$ref: '#/components/schemas/VOETransactionsReportConstraints'
+ examples:
+ GenerateVOETransactionsReportRequestExample:
+ $ref: '#/components/examples/GenerateVOETransactionsReportRequestExample'
GenerateStatementReportRequest:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StatementReportConstraints'
+ examples:
+ GenerateStatementReportRequestExample:
+ $ref: '#/components/examples/GenerateStatementReportRequestExample'
CreateTxPushTestTransactionRequest:
required: true
content:
@@ -2870,7 +2932,7 @@ components:
application/json:
schema:
$ref: '#/components/schemas/BrandingWrapper'
- GenerateReportResponse:
+ GenerateVOEPayrollReportResponse:
description:
"The report is being generated. When finished, a notification will be
sent to the specified callback URL (Report Listener Service) and the
@@ -2881,8 +2943,11 @@ components:
content:
application/json:
schema:
- $ref: '#/components/schemas/ReportData'
- GeneratePayrollReportResponse:
+ $ref: '#/components/schemas/PayrollReportAck'
+ examples:
+ GenerateVOEPayrollReportResponseExample:
+ $ref: '#/components/examples/GenerateVOEPayrollReportResponseExample'
+ RefreshVOIEPayrollReportResponse:
description:
"The report is being generated. When finished, a notification will be
sent to the specified callback URL (Report Listener Service) and the
@@ -2893,7 +2958,10 @@ components:
content:
application/json:
schema:
- $ref: '#/components/schemas/PayrollReportData'
+ $ref: '#/components/schemas/PayrollReportAck'
+ examples:
+ RefreshVOIEPayrollReportResponseExample:
+ $ref: '#/components/examples/RefreshVOIEPayrollReportResponseExample'
GenerateTransactionsReportResponse:
description:
"The report is being generated. When finished, a notification will be
@@ -2905,31 +2973,128 @@ components:
content:
application/json:
schema:
- $ref: '#/components/schemas/TransactionsReportData'
- GetReportByCustomerResponse:
- description: The report was successfully retrieved
+ $ref: '#/components/schemas/TransactionsReportAck'
+ examples:
+ GenerateTransactionsReportResponseExample:
+ $ref: '#/components/examples/GenerateTransactionsReportResponseExample'
+ GenerateVOAReportResponse:
+ description:
+ "The report is being generated. When finished, a notification will be
+ sent to the specified callback URL (Report Listener Service) and the
+ report can be fetched using Get Report APIs. If you don't use a callback
+ URL, Get Report returns a minimal report with the following status:
+ 'inProgress'. Repeat the call every 20 seconds until Get Report returns
+ a different status."
content:
application/json:
schema:
- $ref: '#/components/schemas/AuditableReport'
- GetReportsByCustomerIdResponse:
- description: The reports summaries were successfully retrieved
+ $ref: '#/components/schemas/VOAReportAck'
+ examples:
+ GenerateVOAReportResponseExample:
+ $ref: '#/components/examples/GenerateVOAReportResponseExample'
+ GenerateVOAWithIncomeReportResponse:
+ description:
+ "The report is being generated. When finished, a notification will be
+ sent to the specified callback URL (Report Listener Service) and the
+ report can be fetched using Get Report APIs. If you don't use a callback
+ URL, Get Report returns a minimal report with the following status:
+ 'inProgress'. Repeat the call every 20 seconds until Get Report returns
+ a different status."
content:
application/json:
schema:
- $ref: '#/components/schemas/ReportSummaries'
- GetReportsByConsumerIdResponse:
- description: The reports summaries were successfully retrieved
+ $ref: '#/components/schemas/VOAWithIncomeReportAck'
+ examples:
+ GenerateVOAWithIncomeReportResponseExample:
+ $ref: '#/components/examples/GenerateVOAWithIncomeReportResponseExample'
+ GenerateCRAPrequalificationReportResponse:
+ description:
+ "The report is being generated. When finished, a notification will be
+ sent to the specified callback URL (Report Listener Service) and the
+ report can be fetched using Get Report APIs. If you don't use a callback
+ URL, Get Report returns a minimal report with the following status:
+ 'inProgress'. Repeat the call every 20 seconds until Get Report returns
+ a different status."
content:
application/json:
schema:
- $ref: '#/components/schemas/ReportSummaries'
- GetReportByConsumerResponse:
+ $ref: '#/components/schemas/PrequalificationReportAck'
+ examples:
+ GenerateCRAPrequalificationReportResponseExample:
+ $ref: '#/components/examples/GenerateCRAPrequalificationReportResponseExample'
+ GenerateNonCRAPrequalificationReportResponse:
+ description:
+ "The report is being generated. When finished, a notification will be
+ sent to the specified callback URL (Report Listener Service) and the
+ report can be fetched using Get Report APIs. If you don't use a callback
+ URL, Get Report returns a minimal report with the following status:
+ 'inProgress'. Repeat the call every 20 seconds until Get Report returns
+ a different status."
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PrequalificationReportAck'
+ examples:
+ GenerateNonCRAPrequalificationReportResponseExample:
+ $ref: '#/components/examples/GenerateNonCRAPrequalificationReportResponseExample'
+ GenerateVOIReportResponse:
+ description:
+ "The report is being generated. When finished, a notification will be
+ sent to the specified callback URL (Report Listener Service) and the
+ report can be fetched using Get Report APIs. If you don't use a callback
+ URL, Get Report returns a minimal report with the following status:
+ 'inProgress'. Repeat the call every 20 seconds until Get Report returns
+ a different status."
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VOIReportAck'
+ examples:
+ GenerateVOIReportResponseExample:
+ $ref: '#/components/examples/GenerateVOIReportResponseExample'
+ GetReportResponse:
description: The report was successfully retrieved
content:
application/json:
schema:
- $ref: '#/components/schemas/AuditableReport'
+ $ref: '#/components/schemas/Report'
+ examples:
+ CashFlowPersonalReportExample:
+ $ref: '#/components/examples/CashFlowPersonalReportExample'
+ CashFlowBusinessReportExample:
+ $ref: '#/components/examples/CashFlowBusinessReportExample'
+ PrequalificationCRAReportExample:
+ $ref: '#/components/examples/PrequalificationCRAReportExample'
+ PrequalificationNonCRAReportExample:
+ $ref: '#/components/examples/PrequalificationNonCRAReportExample'
+ PayStatementReportExample:
+ $ref: '#/components/examples/PayStatementReportExample'
+ StatementReportExample:
+ $ref: '#/components/examples/StatementReportExample'
+ TransactionsReportExample:
+ $ref: '#/components/examples/TransactionsReportExample'
+ VOAReportExample:
+ $ref: '#/components/examples/VOAReportExample'
+ VOAWithIncomeReportExample:
+ $ref: '#/components/examples/VOAWithIncomeReportExample'
+ VOEPayrollReportExample:
+ $ref: '#/components/examples/VOEPayrollReportExample'
+ VOETransactionsReportExample:
+ $ref: '#/components/examples/VOETransactionsReportExample'
+ VOIReportExample:
+ $ref: '#/components/examples/VOIReportExample'
+ VOIEPayrollReportExample:
+ $ref: '#/components/examples/VOIEPayrollReportExample'
+ VOIEPaystubReportExample:
+ $ref: '#/components/examples/VOIEPaystubReportExample'
+ VOIEPaystubWithTXVerifyReportExample:
+ $ref: '#/components/examples/VOIEPaystubWithTXVerifyReportExample'
+ GetReportsResponse:
+ description: The reports summaries were successfully retrieved
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ReportSummaries'
GetAssetByCustomerIDResponse:
description: The asset was successfully downloaded
content:
@@ -2961,7 +3126,10 @@ components:
content:
application/json:
schema:
- $ref: '#/components/schemas/VOETransactionsReportData'
+ $ref: '#/components/schemas/VOETransactionsReportAck'
+ examples:
+ GenerateVOETransactionsReportResponseExample:
+ $ref: '#/components/examples/GenerateVOETransactionsReportResponseExample'
GeneratePayStatementReportResponse:
description:
"The report is being generated. When finished, a notification will be
@@ -2973,7 +3141,40 @@ components:
content:
application/json:
schema:
- $ref: '#/components/schemas/PayStatementReportData'
+ $ref: '#/components/schemas/PayStatementReportAck'
+ examples:
+ GeneratePayStatementReportResponseExample:
+ $ref: '#/components/examples/GeneratePayStatementReportResponseExample'
+ GenerateCashFlowReportBusinessResponse:
+ description:
+ "The report is being generated. When finished, a notification will be
+ sent to the specified callback URL (Report Listener Service) and the
+ report can be fetched using Get Report APIs. If you don't use a callback
+ URL, Get Report returns a minimal report with the following status:
+ 'inProgress'. Repeat the call every 20 seconds until Get Report returns
+ a different status."
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CashFlowReportAck'
+ examples:
+ GenerateCashFlowReportBusinessResponseExample:
+ $ref: '#/components/examples/GenerateCashFlowReportBusinessResponseExample'
+ GenerateCashFlowReportPersonalResponse:
+ description:
+ "The report is being generated. When finished, a notification will be
+ sent to the specified callback URL (Report Listener Service) and the
+ report can be fetched using Get Report APIs. If you don't use a callback
+ URL, Get Report returns a minimal report with the following status:
+ 'inProgress'. Repeat the call every 20 seconds until Get Report returns
+ a different status."
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CashFlowReportAck'
+ examples:
+ GenerateCashFlowReportPersonalResponseExample:
+ $ref: '#/components/examples/GenerateCashFlowReportPersonalResponseExample'
GenerateVOIEPaystubWithTXVerifyReportResponse:
description:
"The report is being generated. When finished, a notification will be
@@ -2985,8 +3186,11 @@ components:
content:
application/json:
schema:
- $ref: '#/components/schemas/VOIEPaystubWithTXVerifyReportData'
- GenerateVOIEPaystubWithStatementReportResponse:
+ $ref: '#/components/schemas/VOIEPaystubWithTXVerifyReportAck'
+ examples:
+ GenerateVOIEPaystubWithTXVerifyReportResponseExample:
+ $ref: '#/components/examples/GenerateVOIEPaystubWithTXVerifyReportResponseExample'
+ GenerateVOIEPaystubReportResponse:
description:
"The report is being generated. When finished, a notification will be
sent to the specified callback URL (Report Listener Service) and the
@@ -2997,7 +3201,10 @@ components:
content:
application/json:
schema:
- $ref: '#/components/schemas/VOIEPaystubWithStatementReportData'
+ $ref: '#/components/schemas/VOIEPaystubReportAck'
+ examples:
+ GenerateVOIEPaystubReportResponseExample:
+ $ref: '#/components/examples/GenerateVOIEPaystubReportResponseExample'
GenerateStatementReportResponse:
description:
"The report is being generated. When finished, a notification will be
@@ -3009,7 +3216,10 @@ components:
content:
application/json:
schema:
- $ref: '#/components/schemas/StatementReportData'
+ $ref: '#/components/schemas/StatementReportAck'
+ examples:
+ GenerateStatementReportResponseExample:
+ $ref: '#/components/examples/GenerateStatementReportResponseExample'
GetCustomerTransactionsResponse:
description: The transactions were successfully retrieved
content:
@@ -3133,6 +3343,8 @@ components:
$ref: '#/components/examples/InvalidExperienceFieldExample'
GenericBadRequestExample:
$ref: '#/components/examples/GenericBadRequestExample'
+ AccountTypeNotSupportedExample:
+ $ref: '#/components/examples/AccountTypeNotSupportedExample'
TooManyRequestsErrorResponse:
description:
The service can't accept more requests or is not available from the
@@ -3165,6 +3377,51 @@ components:
examples:
ConsumerExistsConflictExample:
$ref: '#/components/examples/ConsumerExistsConflictExample'
+ GetAccountACHDetailsBadRequestErrorResponse:
+ description: The request was rejected
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ examples:
+ MissingFieldExample:
+ $ref: '#/components/examples/MissingFieldExample'
+ InvalidFieldExample:
+ $ref: '#/components/examples/InvalidFieldExample'
+ GenericBadRequestExample:
+ $ref: '#/components/examples/GenericBadRequestExample'
+ AccountTypeNotSupportedExample:
+ $ref: '#/components/examples/AccountTypeNotSupportedExample'
+ GetAvailableBalanceLiveBadRequestErrorResponse:
+ description: The request was rejected
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ examples:
+ MissingFieldExample:
+ $ref: '#/components/examples/MissingFieldExample'
+ InvalidFieldExample:
+ $ref: '#/components/examples/InvalidFieldExample'
+ GenericBadRequestExample:
+ $ref: '#/components/examples/GenericBadRequestExample'
+ AccountTypeNotSupportedExample:
+ $ref: '#/components/examples/AccountTypeNotSupportedExample'
+ GetAvailableBalanceBadRequestErrorResponse:
+ description: The request was rejected
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ examples:
+ MissingFieldExample:
+ $ref: '#/components/examples/MissingFieldExample'
+ InvalidFieldExample:
+ $ref: '#/components/examples/InvalidFieldExample'
+ GenericBadRequestExample:
+ $ref: '#/components/examples/GenericBadRequestExample'
+ AccountTypeNotSupportedExample:
+ $ref: '#/components/examples/AccountTypeNotSupportedExample'
examples:
MissingFinicityAppKeyExample:
value:
@@ -3178,6 +3435,10 @@ components:
value:
code: 14020
message: Bad request.
+ AccountTypeNotSupportedExample:
+ value:
+ code: 14020
+ message: 'Bad request. (Account type not supported).'
MissingFieldExample:
value:
code: '10010'
@@ -3253,77 +3514,2252 @@ components:
value:
code: 11000
message: 'A consumer already exists for customer 4025024821'
- parameters:
- AssetIdParameter:
- description: The asset ID
- name: assetId
- in: path
- required: true
- schema:
- $ref: '#/components/schemas/AssetId'
- example: 097545c5-1c2a-4f20-a5ef-77f0820344c9-2018601178
- CustomerIdParameter:
- description: A customer ID
- name: customerId
- in: path
- required: true
- schema:
- $ref: '#/components/schemas/CustomerId'
- example: '1005061234'
- AccountStatusParameter:
- description: A filter to fetch account in the given status
- name: status
- in: query
- required: false
- schema:
- $ref: '#/components/schemas/AccountStatus'
- example: pending
- AnalyticIdParameter:
- description: The analytic ID
- name: analyticsId
- in: path
- required: true
- schema:
- $ref: '#/components/schemas/AnalyticId'
- example: CA-5dfbaa3ac-5321
- TransactionIdParameter:
- description: A transaction ID
- name: transactionId
- in: path
- required: true
- schema:
- $ref: '#/components/schemas/TransactionId'
- example: 21284820852
- IncludePendingParameter:
- description: If pending transactions must be included
- name: includePending
- in: query
- required: false
- schema:
- $ref: '#/components/schemas/IncludePending'
- example: false
- ApplicationIdPathParameter:
- description: The application ID
- name: applicationId
- in: path
- required: true
- schema:
- $ref: '#/components/schemas/ApplicationId'
- example: '123456789'
- ApplicationIdQueryParameter:
- description: The application ID
- name: applicationId
- in: query
- required: false
- schema:
- $ref: '#/components/schemas/ApplicationId'
- example: '123456789'
- AppRegistrationStatusParameter:
- description: Look up app registration requests by status
- name: status
- in: query
- required: false
- schema:
+ GeneratePayrollReportRequestExample:
+ value:
+ payrollData:
+ ssn: '999990000'
+ dob: '315576000'
+ reportId: abcdefghijkl-voiepayroll
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ payStatementsFromDate: 1580558400
+ GenerateVOEPayrollReportResponseExample:
+ value:
+ id: 41h4nzppn47u-voepayroll
+ portfolioId: 9qud7dtuzbew-3-port
+ customerType: active
+ customerId: 1011140000
+ requestId: 7a7qyps2iy
+ requesterName: Decisioning API
+ createdDate: 1579819592
+ title: Finicity Verification of Employment - Payroll
+ consumerId: 656cf7083c5c06e0c125a698579f0000
+ consumerSsn: '6789'
+ constraints:
+ payrollData:
+ payrollDataRetrievalId: hahvhe2k0000
+ employerNames:
+ - ACME INC
+ reportId: abcdefghijkl-voiepayroll
+ payStatementsFromDate: 1580558400
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ type: voePayroll
+ status: inProgress
+ RefreshVOIEPayrollReportResponseExample:
+ value:
+ id: 123456789012-voiepayroll
+ customerId: 1011140000
+ consumerId: 656cf7083c5c06e0c125a698579f0000
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ requestId: 7a7qyps2iy
+ type: voiePayroll
+ status: inProgress
+ createdDate: 1579819592
+ constraints:
+ payrollData:
+ payrollDataRetrievalId: hahvhe2k0000
+ employerNames:
+ - ACME INC
+ reportId: abcdefghijkl-voiepayroll
+ payStatementsFromDate: 1580558400
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ customerType: active
+ title: Finicity Verification of Income and Employment - Payroll
+ portfolioId: 9qud7dtuzbew-2-port
+ GeneratePayStatementReportRequestExample:
+ value:
+ paystatementReport:
+ assetIds:
+ - 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ extractEarnings: true
+ extractDeductions: false
+ extractDirectDeposit: true
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ GeneratePayStatementReportResponseExample:
+ value:
+ id: y0ejausptjg1-paystatement
+ portfolioId: spd8aehuw63i-10-port
+ customerType: active
+ customerId: 1003413624
+ requestId: 8wy5htqg8u
+ requesterName: Decisioning API
+ createdDate: 1588350269
+ title: Finicity Pay Statement Extraction Report
+ consumerId: 4089f408963dd6b90b28a935e9903c0e
+ consumerSsn: '6789'
+ constraints:
+ paystatementReport:
+ assetIds:
+ - 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ extractEarnings: true
+ extractDeductions: false
+ extractDirectDeposit: true
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ type: paystatement
+ status: inProgress
+ GenerateStatementReportRequestExample:
+ value:
+ statementReportData:
+ accountId: 1000076901
+ index: 1
+ reportCustomFields:
+ - label: loanID
+ value: '123456'
+ shown: true
+ GenerateStatementReportResponseExample:
+ value:
+ id: 38dknche83oh-statement
+ portfolioId: sy7aa68w2ugx-1-port
+ customerType: active
+ customerId: 1010560999
+ requestId: ny7x32stfq
+ requesterName: Demo
+ createdDate: 1596226182
+ title: Finicity Statement Report
+ consumerId: 555595ec74c8ec57adf44dadddb6a35
+ consumerSsn: '1234'
+ constraints:
+ statementReportData:
+ accountId: 1000076901
+ index: 1
+ reportCustomFields:
+ - label: loanID
+ value: '123456'
+ shown: true
+ type: statement
+ status: inProgress
+ GenerateCashFlowReportRequestExample:
+ value:
+ accountIds: '1000535275'
+ incomeStreamConfidenceMinimum: 50
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ fromDate: 1580558400
+ GenerateCashFlowReportBusinessResponseExample:
+ value:
+ id: 383z55zudewm-cfrb
+ customerType: active
+ customerId: 1275320
+ requestId: 7a7qyps2iy
+ requesterName: Decisioning API
+ createdDate: 1579819592
+ title: Finicity Cash Flow Report - Business
+ consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
+ consumerSsn: '1234'
+ constraints:
+ accountIds:
+ - '1000535275'
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ type: cfrb
+ status: inProgress
+ GenerateCashFlowReportPersonalResponseExample:
+ value:
+ id: 383z51zurqwo-cfrp
+ customerType: active
+ customerId: 1275320
+ requestId: 7a7qyps2iy
+ requesterName: Decisioning API
+ createdDate: 1579819592
+ title: Finicity Cash Flow Report - Personal
+ consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
+ consumerSsn: '1234'
+ constraints:
+ accountIds:
+ - '1000535275'
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ type: cfrp
+ status: inProgress
+ GenerateTransactionsReportRequestExample:
+ value:
+ accountIds: 1027339038 1027339039
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ fromDate: 1580558400
+ GenerateTransactionsReportResponseExample:
+ value:
+ id: dnuru2ua2trs-transactions
+ portfolioId: hupvwpdzr9dq-16-port
+ customerType: testing
+ customerId: 1000018865
+ requestID: ky2nhsufhv
+ requesterName: Decisioning API Tests
+ createdDate: 1594678007
+ title: Finicity Transactions Report
+ consumerId: a925b07c9e028c680ad9c1d18d2e7199
+ consumerSsn: '6789'
+ constraints:
+ accountIds:
+ - '1000075473'
+ fromDate: 1578952809
+ toDate: 1594677609
+ includePending: true
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ type: transactions
+ status: inProgress
+ GenerateVOAReportRequestExample:
+ value:
+ accountIds: '1000535275'
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ fromDate: 1580558400
+ GenerateVOAReportResponseExample:
+ value:
+ id: u4hstnnak45g
+ portfolioId: dyr6qvqd2yhb-1-port
+ customerType: active
+ customerId: 1000006677
+ requestId: sfb7xp439w
+ requesterName: Decisioning API
+ createdDate: 1588350269
+ title: Finicity Verification of Assets
+ consumerId: ac39e237c7619a4ecf014b8d399c0696
+ consumerSsn: '6789'
+ constraints:
+ accountIds:
+ - '1000535275'
+ - '1000535276'
+ fromDate: 1577986990
+ showNsf: false
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ type: voa
+ status: inProgress
+ GenerateVOAWithIncomeReportRequestExample:
+ value:
+ accountIds: '1000535275'
+ fromDate: 1580558400
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ incomeStreamConfidenceMinimum: 50
+ GenerateVOAWithIncomeReportResponseExample:
+ value:
+ id: u4hstnyak45g
+ portfolioId: dyr6weqd2yhb-1-port
+ customerType: active
+ customerId: 1000006677
+ requestId: sfb7x1we9w
+ requesterName: Decisioning API
+ createdDate: 1588350269
+ title: Verification of Asset and Income - Transactions
+ consumerId: ac39e237c7619a4ecf014b8d399c0696
+ consumerSsn: '6789'
+ constraints:
+ accountIds:
+ - '1000535275'
+ fromDate: 1580558400
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ incomeStreamConfidenceMinimum: 50
+ type: voaHistory
+ status: inProgress
+ GeneratePrequalificationReportRequestExample:
+ value:
+ accountIds: '1000535275'
+ fromDate: 1580558400
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ GenerateCRAPrequalificationReportResponseExample:
+ value:
+ id: 88w4fbssrbja-prequalvoa
+ portfolioId: 0whcism47a34-5-port
+ customerType: active
+ customerId: 1000006677
+ requestId: sfb7xacr9w
+ requesterName: Decisioning API
+ createdDate: 1588350269
+ title: Asset Ready Report (CRA)
+ consumerId: cb619e10185177cd92271c4da2df3fa3
+ consumerSsn: '6789'
+ constraints:
+ accountIds:
+ - '1000535275'
+ - '1000535276'
+ fromDate: 1577986990
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ type: preQualVoa
+ status: inProgress
+ GenerateNonCRAPrequalificationReportResponseExample:
+ value:
+ id: rceiqx616awa-assetsummary
+ portfolioId: 0whcism47ttt-5-port
+ customerType: active
+ customerId: 1000006677
+ requestId: sfb7xp4iui
+ requesterName: Decisioning API
+ createdDate: 1588350269
+ title: Asset Ready Report (NON-CRA)
+ constraints:
+ accountIds:
+ - '1000535275'
+ - '1000535276'
+ fromDate: 1577986990
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ type: assetSummary
+ status: inProgress
+ GenerateVOETransactionsReportRequestExample:
+ value:
+ reportId: j7k8qbgwsa7d-voietxverify
+ accountIds: '123456789'
+ fromDate: 1580558400
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ incomeStreamConfidenceMinimum: 50
+ GenerateVOETransactionsReportResponseExample:
+ value:
+ id: u4hstny1k25g-voetransactions
+ portfolioId: dyr6weqd2yhb-2-port
+ customerType: active
+ customerId: 1000006677
+ requestId: sfb7x1we9w
+ requesterName: Decisioning API
+ createdDate: 1588350269
+ title: Finicity Verification Employment - Transactions
+ consumerId: ac39e237c7619a4ecf014b8d399c0696
+ consumerSsn: '6789'
+ constraints:
+ reportId: j7k8qbgwsa7d-voietxverify
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ type: voeTransactions
+ status: inProgress
+ GenerateVOIEPaystubReportRequestExample:
+ value:
+ voieWithStatementData:
+ assetIds:
+ - d50ed92f-543b-431c-8286-c8b8f6556679
+ reportCustomFields:
+ - label: loanID
+ value: '123456'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ GenerateVOIEPaystubReportResponseExample:
+ value:
+ id: 2f3z55zuwewm-voietxverify
+ portfolioId: 9qud7dtuzbew-13-port
+ customerType: active
+ customerId: 1275320
+ requestId: 7a7qyps2iy
+ requesterName: Decisioning API
+ createdDate: 1579819592
+ title: Verification of Income and Employment - Paystub
+ consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
+ consumerSsn: '6789'
+ constraints:
+ voieWithStatementData:
+ assetIds:
+ - d50ed92f-543b-431c-8286-c8b8f6556679
+ extractEarnings: true
+ extractDeductions: false
+ extractDirectDeposit: true
+ reportCustomFields:
+ - label: loanID
+ value: '123456'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ type: voieTxVerify
+ status: inProgress
+ GenerateVOIEPaystubWithTXVerifyReportRequestExample:
+ value:
+ accountIds: '1028361677'
+ voieWithInterviewData:
+ txVerifyInterview:
+ - assetId: 7eb57060-6d98-4449-992d-4dd4490448f3-1236011097
+ reportCustomFields:
+ - label: loanID
+ value: '123456'
+ shown: true
+ GenerateVOIEPaystubWithTXVerifyReportResponseExample:
+ value:
+ id: 2f3z55zuwewm-voietxverify
+ customerId: 1275320
+ consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ requestId: 7a7qyps2iy
+ type: voieTxVerify
+ status: inProgress
+ createdDate: 1579819592
+ constraints:
+ accountIds:
+ - '1000535275'
+ voieWithInterviewData:
+ txVerifyInterview:
+ - assetId: 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ accounts: []
+ extractEarnings: true
+ extractDeductions: false
+ extractDirectDeposit: true
+ reportCustomFields:
+ - label: loanID
+ value: '123456'
+ shown: true
+ customerType: active
+ title:
+ Finicity Verification of Income and Employment - Paystub (with
+ TXVerify)
+ portfolioId: 9qud7dtuzbew-2-port
+ GenerateVOIReportRequestExample:
+ value:
+ accountIds: 1000535275 1000535276
+ fromDate: 1577986990
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ incomeStreamConfidenceMinimum: 50
+ GenerateVOIReportResponseExample:
+ value:
+ id: u4hstnnaewetr-voi
+ portfolioId: dyr6qvqd2erw-1-port
+ customerType: active
+ customerId: 1000006677
+ requestId: sfb7xp4wer
+ requesterName: Decisioning API
+ createdDate: 1588350269
+ title: Finicity Verification of Income
+ consumerId: ac39e237c7619a4ecf014b8d399c0696
+ consumerSsn: '6789'
+ constraints:
+ accountIds:
+ - '1000535275'
+ - '1000535276'
+ fromDate: 1577986990
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ type: voi
+ status: inProgress
+ CashFlowPersonalReportExample:
+ summary: Cash Flow Report - Personal
+ value:
+ id: sd1j45yn37wr-cfrp
+ portfolioId: igi5kj6hh58y-1-port
+ customerType: testing
+ customerId: '5555'
+ requestId: xtw6tjemt6
+ title: Finicity Cash Flow Report - Personal
+ consumerId: 555595ec74c8ec57adf44dadddb6a35
+ consumerSsn: '1111'
+ requesterName: Decisioning API Tests
+ type: cfrp
+ status: success
+ createdDate: 1575666823
+ startDate: 1512594823
+ endDate: 1575666823
+ days: '730'
+ seasoned: true
+ institutions:
+ - id: '102105'
+ name: FinBank Profiles
+ urlHomeApp: http://www.finbank.com
+ accounts:
+ - id: '6681984'
+ ownerName: PATRICK & LORRAINE PURCHASER
+ ownerAddress: 7195 BELMONT ST. PARLIN, NJ 08859
+ name: Checking
+ number: XX1111
+ type: checking
+ aggregationStatusCode: '0'
+ currentBalance: 100000
+ availableBalance: 1000
+ balanceDate: 1614880526
+ transactions:
+ - id: '100671406523'
+ amount: -81.7
+ postedDate: 1614859200
+ description: TMOBILE*AUTO PAY
+ normalizedPayee: T-Mobile
+ institutionTransactionId: '0000000000'
+ category: Mobile Phone
+ cashFlowBalance:
+ monthlyCashFlowBalances:
+ - month: 1551423600
+ minDailyBalance: -65894.54
+ maxDailyBalance: -62196.98
+ averageDailyBalance: -64594.87
+ standardDeviationOfDailyBalance: '1099'
+ numberOfDaysNegativeBalance: '28'
+ numberOfDaysPositiveBalance: '0'
+ minDailyBalance: 3479.39
+ maxDailyBalance: 3479.39
+ twelveMonthAverageDailyBalance: 3479.39
+ sixMonthAverageDailyBalance: 3479.39
+ twoMonthAverageDailyBalance: 3479.39
+ twelveMonthStandardDeviationOfDailyBalance: '20'
+ sixMonthStandardDeviationOfDailyBalance: '20'
+ twoMonthStandardDeviationOfDailyBalance: '20'
+ numberDaysNegativeBalance: '6'
+ numberOfDaysPositiveBalance: '0'
+ cashFlowCredit:
+ monthlyCashFlowCredits:
+ - month: 1551423600
+ numberOfCredits: '3'
+ totalCreditsAmount: 5000.29
+ largestCredit: 2182.34
+ numberOfCreditsLessTransfers: '3'
+ totalCreditsAmountLessTransfers: 5000.29
+ averageCreditAmount: 1666.76
+ estimatedNumberOfLoanDeposits: '0'
+ estimatedLoanDepositAmount: 0
+ twelveMonthCreditTotal: 1200
+ twelveMonthCreditTotalLessTransfers: 1000
+ sixMonthCreditTotal: 750
+ sixMonthCreditTotalLessTransfers: 500
+ twoMonthCreditTotal: 150
+ twoMonthCreditTotalLessTransfers: 100
+ cashFlowDebit:
+ monthlyCashFlowDebits:
+ - month: 1551423600
+ numberOfDebits: '12'
+ totalDebitsAmount: -2063.43
+ largestDebit: -953.73
+ numberOfDebitsLessTransfers: '12'
+ totalDebitsAmountLessTransfers: -2063.43
+ averageDebitAmount: -171.95
+ twelveMonthDebitTotal: 1200
+ twelveMonthDebitTotalLessTransfers: 1000
+ sixMonthDebitTotal: 750
+ sixMonthDebitTotalLessTransfers: 500
+ twoMonthDebitTotal: 150
+ twoMonthDebitTotalLessTransfers: 100
+ cashFlowCharacteristic:
+ monthlyCashFlowCharacteristics:
+ - month: 1551423600
+ totalCreditsLessTotalDebits: 2936.86
+ totalCreditsLessTotalDebitsLessTransfers: 2936.86
+ averageTransactionAmount: 195.79
+ averageMonthlyNet: 2350
+ averageMonthlyNetLessTransfers: 1000
+ twelveMonthTotalNet: 12500
+ twelveMonthTotalNetLessTransfers: 12400
+ sixMonthAverageTotalCreditsLessTotalDebits: 55555
+ sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers: 55555
+ twoMonthAverageTotalCreditsLessTotalDebits: 55555
+ twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers: 55555
+ cashFlowBalanceSummary:
+ monthlyCashFlowBalanceSummaries:
+ - month: 1551423600
+ minDailyBalance: -65894.54
+ maxDailyBalance: -62196.98
+ averageDailyBalance: -64594.87
+ standardDeviationOfDailyBalance: '1099'
+ numberOfDaysNegativeBalance: '28'
+ numberOfDaysPositiveBalance: '0'
+ minDailyBalance: 3479.39
+ maxDailyBalance: 3479.39
+ twelveMonthAverageDailyBalance: 3479.39
+ sixMonthAverageDailyBalance: 3479.39
+ twoMonthAverageDailyBalance: 3479.39
+ twelveMonthStandardDeviationOfDailyBalance: '20'
+ sixMonthStandardDeviationOfDailyBalance: '20'
+ twoMonthStandardDeviationOfDailyBalance: '20'
+ numberOfDaysNegativeBalance: '6'
+ numberOfDaysPositiveBalance: '11'
+ cashFlowCreditSummary:
+ monthlyCashFlowCreditSummaries:
+ - month: 1551423600
+ numberOfCredits: '3'
+ totalCreditsAmount: 5000.29
+ largestCredit: 2182.34
+ numberOfCreditsLessTransfers: '3'
+ totalCreditsAmountLessTransfers: 5000.29
+ averageCreditAmount: 1666.76
+ estimatedNumberOfLoanDeposits: '0'
+ estimatedLoanDepositAmount: 0
+ twelveMonthCreditTotal: 1200
+ twelveMonthCreditTotalLessTransfers: 1000
+ sixMonthCreditTotal: 750
+ sixMonthCreditTotalLessTransfers: 500
+ twoMonthCreditTotal: 150
+ twoMonthCreditTotalLessTransfers: 100
+ cashFlowDebitSummary:
+ monthlyCashFlowDebitSummaries:
+ - month: 1551423600
+ numberOfDebits: '12'
+ totalDebitsAmount: -2063.43
+ largestDebit: -953.73
+ numberOfDebitsLessTransfers: '12'
+ totalDebitsAmountLessTransfers: -2063.43
+ averageDebitAmount: -171.95
+ twelveMonthDebitTotal: -1200
+ twelveMonthDebitTotalLessTransfers: -1000
+ sixMonthDebitTotal: -750
+ sixMonthDebitTotalLessTransfers: -500
+ twoMonthDebitTotal: -150
+ twoMonthDebitTotalLessTransfers: -100
+ cashFlowCharacteristicsSummary:
+ monthlyCashFlowCharacteristicSummaries:
+ - month: 1551423600
+ totalCreditsLessTotalDebits: 2936.86
+ totalCreditsLessTotalDebitsLessTransfers: 2936.86
+ averageTransactionAmount: 195.79
+ averageMonthlyNet: 1250
+ averageMonthlyNetLessTransfers: 1000
+ twelveMonthTotalNet: 12500
+ twelveMonthTotalNetLessTransfers: 12400
+ sixMonthAverageTotalCreditsLessTotalDebits: 55555
+ sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers: 55555
+ twoMonthAverageTotalCreditsLessTotalDebits: 55555
+ twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers: 55555
+ possibleLoanDeposits:
+ - id: '102105'
+ name: FinBank Profiles
+ urlHomeApp: http://www.finbank.com
+ accounts:
+ - id: '6681984'
+ ownerName: PATRICK & LORRAINE PURCHASER
+ ownerAddress: 7195 BELMONT ST. PARLIN, NJ 08859
+ name: Checking
+ number: XX1111
+ type: checking
+ aggregationStatusCode: '0'
+ currentBalance: 100000
+ availableBalance: 1000
+ balanceDate: 1614880526
+ transactions:
+ - id: '100671406523'
+ amount: -81.7
+ postedDate: 1614859200
+ description: TMOBILE*AUTO PAY
+ normalizedPayee: T-Mobile
+ institutionTransactionId: '0000000000'
+ category: Mobile Phone
+ CashFlowBusinessReportExample:
+ summary: Cash Flow Report - Business
+ value:
+ id: sd1j45yn37wr-cfrb
+ customerType: testing
+ customerId: '5555'
+ requestId: xtw6tjemt6
+ title: Finicity Cash Flow Report - Business
+ requesterName: Decisioning API Tests
+ type: cfrb
+ status: success
+ createdDate: 1575666823
+ startDate: 1512594823
+ endDate: 1575666823
+ days: '730'
+ seasoned: true
+ institutions:
+ - id: '102105'
+ name: FinBank Profiles
+ urlHomeApp: http://www.finbank.com
+ accounts:
+ - id: '6681984'
+ ownerName: PATRICK & LORRAINE PURCHASER
+ ownerAddress: 7195 BELMONT ST. PARLIN, NJ 08859
+ name: Checking
+ number: XX1111
+ type: checking
+ aggregationStatusCode: '0'
+ currentBalance: 100000
+ availableBalance: 1000
+ balanceDate: 1614880526
+ transactions:
+ - id: '100671406523'
+ amount: -81.7
+ postedDate: 1614859200
+ description: TMOBILE*AUTO PAY
+ normalizedPayee: T-Mobile
+ institutionTransactionId: '0000000000'
+ category: Mobile Phone
+ cashFlowBalance:
+ monthlyCashFlowBalances:
+ - month: 1551423600
+ minDailyBalance: -65894.54
+ maxDailyBalance: -62196.98
+ averageDailyBalance: -64594.87
+ standardDeviationOfDailyBalance: '1099'
+ numberOfDaysNegativeBalance: '28'
+ numberOfDaysPositiveBalance: '0'
+ minDailyBalance: 3479.39
+ maxDailyBalance: 3479.39
+ twelveMonthAverageDailyBalance: 3479.39
+ sixMonthAverageDailyBalance: 3479.39
+ twoMonthAverageDailyBalance: 3479.39
+ twelveMonthStandardDeviationOfDailyBalance: '20'
+ sixMonthStandardDeviationOfDailyBalance: '20'
+ twoMonthStandardDeviationOfDailyBalance: '20'
+ numberDaysNegativeBalance: '6'
+ numberOfDaysPositiveBalance: '0'
+ cashFlowCredit:
+ monthlyCashFlowCredits:
+ - month: 1551423600
+ numberOfCredits: '3'
+ totalCreditsAmount: 5000.29
+ largestCredit: 2182.34
+ numberOfCreditsLessTransfers: '3'
+ totalCreditsAmountLessTransfers: 5000.29
+ averageCreditAmount: 1666.76
+ estimatedNumberOfLoanDeposits: '0'
+ estimatedLoanDepositAmount: 0
+ twelveMonthCreditTotal: 1200
+ twelveMonthCreditTotalLessTransfers: 1000
+ sixMonthCreditTotal: 750
+ sixMonthCreditTotalLessTransfers: 500
+ twoMonthCreditTotal: 150
+ twoMonthCreditTotalLessTransfers: 100
+ cashFlowDebit:
+ monthlyCashFlowDebits:
+ - month: 1551423600
+ numberOfDebits: '12'
+ totalDebitsAmount: -2063.43
+ largestDebit: -953.73
+ numberOfDebitsLessTransfers: '12'
+ totalDebitsAmountLessTransfers: -2063.43
+ averageDebitAmount: -171.95
+ twelveMonthDebitTotal: 1200
+ twelveMonthDebitTotalLessTransfers: 1000
+ sixMonthDebitTotal: 750
+ sixMonthDebitTotalLessTransfers: 500
+ twoMonthDebitTotal: 150
+ twoMonthDebitTotalLessTransfers: 100
+ cashFlowCharacteristic:
+ monthlyCashFlowCharacteristics:
+ - month: 1551423600
+ totalCreditsLessTotalDebits: 2936.86
+ totalCreditsLessTotalDebitsLessTransfers: 2936.86
+ averageTransactionAmount: 195.79
+ averageMonthlyNet: 2350
+ averageMonthlyNetLessTransfers: 1000
+ twelveMonthTotalNet: 12500
+ twelveMonthTotalNetLessTransfers: 12400
+ sixMonthAverageTotalCreditsLessTotalDebits: 55555
+ sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers: 55555
+ twoMonthAverageTotalCreditsLessTotalDebits: 55555
+ twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers: 55555
+ cashFlowBalanceSummary:
+ monthlyCashFlowBalanceSummaries:
+ - month: 1551423600
+ minDailyBalance: -65894.54
+ maxDailyBalance: -62196.98
+ averageDailyBalance: -64594.87
+ standardDeviationOfDailyBalance: '1099'
+ numberOfDaysNegativeBalance: '28'
+ numberOfDaysPositiveBalance: '0'
+ minDailyBalance: 3479.39
+ maxDailyBalance: 3479.39
+ twelveMonthAverageDailyBalance: 3479.39
+ sixMonthAverageDailyBalance: 3479.39
+ twoMonthAverageDailyBalance: 3479.39
+ twelveMonthStandardDeviationOfDailyBalance: '20'
+ sixMonthStandardDeviationOfDailyBalance: '20'
+ twoMonthStandardDeviationOfDailyBalance: '20'
+ numberOfDaysNegativeBalance: '6'
+ numberOfDaysPositiveBalance: '11'
+ cashFlowCreditSummary:
+ monthlyCashFlowCreditSummaries:
+ - month: 1551423600
+ numberOfCredits: '3'
+ totalCreditsAmount: 5000.29
+ largestCredit: 2182.34
+ numberOfCreditsLessTransfers: '3'
+ totalCreditsAmountLessTransfers: 5000.29
+ averageCreditAmount: 1666.76
+ estimatedNumberOfLoanDeposits: '0'
+ estimatedLoanDepositAmount: 0
+ twelveMonthCreditTotal: 1200
+ twelveMonthCreditTotalLessTransfers: 1000
+ sixMonthCreditTotal: 750
+ sixMonthCreditTotalLessTransfers: 500
+ twoMonthCreditTotal: 150
+ twoMonthCreditTotalLessTransfers: 100
+ cashFlowDebitSummary:
+ monthlyCashFlowDebitSummaries:
+ - month: 1551423600
+ numberOfDebits: '12'
+ totalDebitsAmount: -2063.43
+ largestDebit: -953.73
+ numberOfDebitsLessTransfers: '12'
+ totalDebitsAmountLessTransfers: -2063.43
+ averageDebitAmount: -171.95
+ twelveMonthDebitTotal: -1200
+ twelveMonthDebitTotalLessTransfers: -1000
+ sixMonthDebitTotal: -750
+ sixMonthDebitTotalLessTransfers: -500
+ twoMonthDebitTotal: -150
+ twoMonthDebitTotalLessTransfers: -100
+ cashFlowCharacteristicsSummary:
+ monthlyCashFlowCharacteristicSummaries:
+ - month: 1551423600
+ totalCreditsLessTotalDebits: 2936.86
+ totalCreditsLessTotalDebitsLessTransfers: 2936.86
+ averageTransactionAmount: 195.79
+ averageMonthlyNet: 1250
+ averageMonthlyNetLessTransfers: 1000
+ twelveMonthTotalNet: 12500
+ twelveMonthTotalNetLessTransfers: 12400
+ sixMonthAverageTotalCreditsLessTotalDebits: 55555
+ sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers: 55555
+ twoMonthAverageTotalCreditsLessTotalDebits: 55555
+ twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers: 55555
+ possibleLoanDeposits:
+ - id: '102105'
+ name: FinBank Profiles
+ urlHomeApp: http://www.finbank.com
+ accounts:
+ - id: '6681984'
+ ownerName: PATRICK & LORRAINE PURCHASER
+ ownerAddress: 7195 BELMONT ST. PARLIN, NJ 08859
+ name: Checking
+ number: XX1111
+ type: checking
+ aggregationStatusCode: '0'
+ currentBalance: 100000
+ availableBalance: 1000
+ balanceDate: 1614880526
+ transactions:
+ - id: '100671406523'
+ amount: -81.7
+ postedDate: 1614859200
+ description: TMOBILE*AUTO PAY
+ normalizedPayee: T-Mobile
+ institutionTransactionId: '0000000000'
+ category: Mobile Phone
+ PrequalificationCRAReportExample:
+ summary: Prequalification CRA Report
+ value:
+ id: 88w4fbssrbja-prequalvoa
+ customerId: 1000006677
+ requesterName: Decisioning API
+ requestId: sfb7xacr9w
+ type: preQualVoa
+ status: success
+ createdDate: 1588350269
+ constraints:
+ accountIds:
+ - '1000535275'
+ - '1000535276'
+ fromDate: 1577986990
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ customerType: active
+ title: Asset Ready Report (CRA)
+ startDate: 1572625469
+ endDate: 1588350269
+ days: 230
+ seasoned: true
+ consolidatedAvailableBalance: 1929.57
+ portfolioId: 0whcism47a34-5-port
+ consumerId: ac39e237c7619a4ecf014b8d399c0696
+ consumerSsn: '6789'
+ institutions:
+ id: 101732
+ name: FinBank
+ urlHomeApp: https://finbank.prod.fini.city/CCBankImageMFA/login.jsp
+ accounts:
+ id: 1000023996
+ number: '1111'
+ name: Checking
+ type: checking
+ aggregationStatusCode: 0
+ balance: 501.24
+ balanceDate: 1588350276
+ averageMonthlyBalance: 501.02
+ totNumberInsufficientFundsFeeDebitTxAccount: 0
+ totNumberInsufficientFundsFeeDebitTxOver6MonthsAccount: 0
+ totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount: 120
+ transactions: []
+ asset:
+ type: checking
+ availableBalance: 1000
+ currentBalance: 1000
+ twoMonthAverage: -1865.96
+ sixMonthAverage: -7616.01
+ beginningBalance: -17795.6
+ details:
+ interestMarginBalance: -50000
+ availableCashBalance: 1500
+ vestedBalance: 300000
+ currentLoanBalance: 0
+ availableBalanceAmount: 1000
+ assets:
+ currentBalance: 1000
+ availableBalance: 1000
+ twoMonthAverage: -1865.96
+ sixMonthAverage: -7616.01
+ beginningBalance: -17795.6
+ PrequalificationNonCRAReportExample:
+ summary: Prequalification Non-CRA Report
+ value:
+ id: rceiqx616awa-assetsummary
+ customerId: 1000006677
+ requesterName: Decisioning API
+ requestId: sfb7xp4iui
+ type: assetSummary
+ status: success
+ createdDate: 1588350269
+ constraints:
+ accountIds:
+ - '1000535275'
+ - '1000535276'
+ fromDate: 1577986990
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ customerType: active
+ title: Asset Ready Report (non-CRA)
+ startDate: 1572625469
+ endDate: 1588350269
+ days: 230
+ seasoned: true
+ consolidatedAvailableBalance: 1929.57
+ portfolioId: 0whcism47ttt-5-port
+ institutions:
+ - id: 101732
+ name: FinBank
+ urlHomeApp: https://finbank.prod.fini.city/CCBankImageMFA/login.jsp
+ accounts:
+ - id: 1000023996
+ number: '1111'
+ ownerName: JOHN DOE
+ ownerAddress: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
+ name: Checking
+ type: checking
+ availableBalance: 0
+ aggregationStatusCode: 0
+ balance: 501.24
+ balanceDate: 1588350276
+ averageMonthlyBalance: 501.02
+ totNumberInsufficientFundsFeeDebitTxAccount: 0
+ totNumberInsufficientFundsFeeDebitTxOver6MonthsAccount: 0
+ totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount: 120
+ transactions: []
+ asset:
+ type: checking
+ currentBalance: 1000
+ twoMonthAverage: -1865.96
+ sixMonthAverage: -7616.01
+ beginningBalance: -17795.6
+ details:
+ interestMarginBalance: -50000
+ availableCashBalance: 1500
+ vestedBalance: 300000
+ currentLoanBalance: 0
+ availableBalanceAmount: 1000
+ assets:
+ currentBalance: 1000
+ twoMonthAverage: -1865.96
+ sixMonthAverage: -7616.01
+ beginningBalance: -17795.6
+ PayStatementReportExample:
+ summary: Pay Statement Report
+ value:
+ id: y0ejausptjg1-paystatement
+ customerId: 1003413624
+ consumerId: 4089f408963dd6b90b28a935e9903c0e
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ requestId: 8wy5htqg8u
+ type: paystatement
+ status: success
+ createdDate: 1588350269
+ constraints:
+ paystatementReport:
+ assetIds:
+ - 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ extractEarnings: true
+ extractDeductions: false
+ extractDirectDeposit: true
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ customerType: active
+ title: Finicity Pay Statement Extraction Report
+ startDate: 1572625469
+ endDate: 1588350269
+ portfolioId: spd8aehuw63i-10-port
+ reportStyle: paystatement
+ numberOfBillableAssets: 1
+ assetIds:
+ - 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ payStatementTxVerifyDaoList:
+ payPeriod: LastPayPeriod
+ billable: true
+ assetId: 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ payDate: 1559241000
+ startDate: 1557513000
+ endDate: 1558722600
+ netPayCurrent: 1802.22
+ netPayYTD: 36000
+ grossPayCurrent: 24200
+ grossPayYTD: 72600
+ payrollProvider: Finicity
+ employer:
+ name: Rocket Surgery
+ employee:
+ name: Patrick Purchaser
+ payStat:
+ name: regular 1
+ type: regular
+ description: regular income
+ amountCurrent: 6000
+ amountYTD: 18000
+ deductions:
+ - name: '401'
+ description: 401k
+ amountCurrent: 1744.61
+ amountYTD: 1744.6
+ type: 401 Deductions
+ directDeposits:
+ - financialInstitutionName: America First
+ accountType: Checking
+ amountCurrent: 1744.61
+ accountLastFour: XX34
+ description: Payroll
+ StatementReportExample:
+ summary: Statement Report
+ value:
+ id: 38dknche83oh-statement
+ customerType: active
+ customerId: 1000262464
+ requestId: nd4b55a4bg
+ title: Finicity Statement Report
+ consumerId: d15ff15ed0c8627eae61c452928d7fc3
+ consumerSsn: '1111'
+ requesterName: Demo
+ constraints:
+ statementReportData:
+ accountId: 1000076901
+ index: 1
+ reportCustomFields:
+ - label: loanID
+ value: '123456'
+ shown: true
+ type: statement
+ status: success
+ createdDate: 1586189339
+ assetId: aaaa3be2-6f1a-4aac-a360-4ad240aa652d
+ TransactionsReportExample:
+ summary: Transactions Report
+ value:
+ id: '1000075473'
+ title: Finicity Transactions Report
+ customerType: testing
+ customerId: 1000018865
+ consumerId: a925b07c9e028c680ad9c1d18d2e7199
+ consumerSsn: '6789'
+ type: transactions
+ status: success
+ createdDate: 1594678007
+ constraints:
+ accountIds:
+ - '1000075473'
+ fromDate: 1578952809
+ toDate: 1594677609
+ includePending: true
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ startDate: 1579348800
+ endDate: 1594382400
+ days: 174
+ seasoned: false
+ portfolioId: wqbh0r2kbv5g-4-port
+ institutions:
+ - id: 102105
+ name: FinBank Profiles - A
+ urlHomeApp: http://www.finbank.com
+ accounts:
+ - id: 1000075473
+ number: '5015'
+ name: Super Checking
+ type: checking
+ availableBalance: 1000
+ aggregationStatusCode: 0
+ balance: 1000
+ balanceDate: 1594676289
+ transactions:
+ - id: 100001490719
+ amount: -224
+ postedDate: 1594382400
+ description: ACH Withdrawal AMERICA FIRST CR
+ normalizedPayee: America First Cr
+ institutionTransactionId: '0000000000'
+ category: Income
+ memo: AMERICA FIRST CR
+ - id: 100001490897
+ amount: -81.7
+ postedDate: 1594123200
+ description: TMOBILE*AUTO PAY
+ normalizedPayee: T-Mobile
+ institutionTransactionId: '0000000000'
+ category: Mobile Phone
+ memo: TMOBILE debit
+ VOAReportExample:
+ summary: VOA Report
+ value:
+ id: u4hstnnak45g
+ customerId: 1000006677
+ consumerId: ac39e237c7619a4ecf014b8d399c0696
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ requestId: sfb7xp439w
+ type: voa
+ status: success
+ createdDate: 1588350269
+ constraints:
+ accountIds:
+ - '1000535275'
+ - '1000535276'
+ fromDate: 1577986990
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ customerType: active
+ title: Finicity Verification of Assets
+ startDate: 1572625469
+ endDate: 1588350269
+ days: 180
+ seasoned: false
+ consolidatedAvailableBalance: 2345
+ portfolioId: dyr6qvqd2yhb-1-port
+ institutions:
+ id: 101732
+ name: FinBank
+ urlHomeApp: https://finbank.prod.fini.city/CCBankImageMFA/login.jsp
+ accounts:
+ id: 1000023996
+ number: '1111'
+ ownerName: JOHN DOE
+ ownerAddress: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
+ name: Checking
+ type: checking
+ availableBalance: 501.24
+ aggregationStatusCode: 0
+ balance: 501.24
+ balanceDate: 1588350276
+ averageMonthlyBalance: 501.02
+ totNumberInsufficientFundsFeeDebitTxAccount: 0
+ totNumberInsufficientFundsFeeDebitTxOver2MonthsAccount: 0
+ totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount: 120
+ transactions:
+ - id: 100000527471
+ amount: 22.21
+ postedDate: 1582286400
+ description: FINICITY INC PAYROLL
+ memo: Finicity amount credit
+ normalizedPayee: Finicity
+ institutionTransactionId: '100000000'
+ category: Paycheck
+ bestRepresentation: FINICITY INC PAYROLL
+ details:
+ interestMarginBalance: -50000
+ availableCashBalance: 1500
+ vestedBalance: 300000
+ currentLoanBalance: 0
+ availableBalanceAmount: 1000
+ asset:
+ currentBalance: 1000
+ twoMonthAverage: -1865.96
+ sixMonthAverage: -7616.01
+ beginningBalance: -17795.6
+ assets:
+ type: checking
+ availableBalance: 1000
+ currentBalance: 1000
+ twoMonthAverage: -1865.96
+ sixMonthAverage: -7616.01
+ beginningBalance: -17795.6
+ VOAWithIncomeReportExample:
+ summary: VOA With Income Report
+ value:
+ id: u4hstnyak45g
+ portfolioId: dyr6weqd2yhb-1-port
+ customerType: active
+ customerId: 1000006677
+ requestId: sfb7x1we9w
+ title: Finicity Verification of Asset and Income - Transactions
+ consumerId: ac39e237c7619a4ecf014b8d399c0696
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ constraints:
+ accountIds:
+ - '1000535275'
+ - '1000535276'
+ fromDate: 1577986990
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ - label: loanType
+ value: car
+ shown: false
+ - label: vendorID
+ value: 1613aa23
+ shown: true
+ - label: vendorName
+ value: PSC Finance
+ shown: false
+ showNsf: false
+ type: voaHistory
+ status: success
+ createdDate: 1588350269
+ startDate: 1572625469
+ endDate: 1588350269
+ days: 230
+ seasoned: true
+ institutions:
+ id: 101732
+ name: FinBank
+ urlHomeApp: https://finbank.prod.fini.city/CCBankImageMFA/login.jsp
+ accounts:
+ id: 6001966289
+ number: '1111'
+ ownerName: JOHN DOE
+ ownerAddress: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
+ name: Checking
+ type: checking
+ currency: USD
+ aggregationStatusCode: 0
+ balance: 509.37
+ balanceDate: 1652114265
+ averageMonthlyBalance: 507.37
+ totNumberInsufficientFundsFeeDebitTxAccount: 0
+ totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount: 0
+ transactions:
+ id: 100000527471
+ amount: 22.21
+ postedDate: 1582286400
+ description: FINICITY INC PAYROLL
+ normalizedPayee: Finicity
+ institutionTransactionId: '100000000'
+ category: Paycheck
+ asset:
+ type: checking
+ currentBalance: 1000
+ twoMonthAverage: -1865.96
+ sixMonthAverage: -7616.01
+ beginningBalance: -17795.6
+ details:
+ interestMarginBalance: -50000
+ availableCashBalance: 1500
+ vestedBalance: 300000
+ currentLoanBalance: 0
+ availableBalanceAmount: 1000
+ incomeStreams:
+ id: dens28i3vsch-voah
+ name: none
+ status: ACTIVE
+ estimateInclusion: MODERATE
+ confidence: 70
+ cadence:
+ startDate: 1577986990
+ stopDate: 1587986990
+ days: 14
+ netMonthly:
+ - month: 1522562400
+ net: 2004.77
+ netAnnual: 110475.7
+ projectedNetAnnual: 0
+ estimatedGrossAnnual:
+ projectedGrossAnnual: 151609
+ averageMonthlyIncomeNet: 9206.31
+ incomeStreamMonths: 18
+ transactions:
+ - id: 100000527471
+ amount: 22.21
+ postedDate: 1582286400
+ description: FINICITY INC PAYROLL
+ normalizedPayee: Finicity
+ institutionTransactionId: '100000000'
+ category: Paycheck
+ assets:
+ currentBalance: 1000
+ twoMonthAverage: -1865.96
+ sixMonthAverage: -7616.01
+ beginningBalance: -17795.6
+ consolidatedAvailableBalance: 2345
+ VOEPayrollReportExample:
+ summary: VOE - Payroll Report
+ value:
+ id: 41h4nzppn47u-voepayroll
+ portfolioId: 9qud7dtuzbew-3-port
+ createdDate: 1579819592
+ requesterName: Decisioning API
+ requestId: 7a7qyps2iy
+ customerType: active
+ customerId: 1275320
+ consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
+ consumerSsn: '6789'
+ type: voePayroll
+ title: Verification of Employment - Payroll
+ status: success
+ constraints:
+ payrollData:
+ payrollDataRetrievalId: hahvhe2k0000
+ employerNames:
+ - ACME INC
+ reportId: abcdefghijkl-voiepayroll
+ employmentHistory:
+ - asOfDate: 1596175200
+ employerName: ACME INC
+ payrollSource: finPayroll
+ employee:
+ name: John Doe Smith
+ givenName: John
+ middleName: Doe
+ familyName: Smith
+ address:
+ - address1: Address 1
+ city: City
+ state: TX
+ zip: '99999'
+ employment:
+ employerName: ACME INC
+ legalEntityId: '752760000'
+ originalHireDate: 1527832800
+ latestHireDate: 1527832800
+ latestPayDate: 1596175200
+ daysSinceLastPay: 10
+ numberPayCadenceWithoutPay: 1
+ employmentEndDate: 1527832800
+ employmentDuration: P1Y6M0D
+ employerAddress:
+ - address1: Address 1
+ city: City
+ state: TX
+ zip: '99999'
+ employmentStatusCode: A
+ employmentStatusName: Active
+ workLevelCode: FT
+ workLevelName: Full Time-Regular
+ workLevelStatus: Full Time
+ positionTitle: Shift Supervisor
+ positionDuration: P1Y6M0D
+ income:
+ payFrequency: Weekly
+ VOETransactionsReportExample:
+ summary: VOE - Transactions Report
+ value:
+ id: n1rndg1iz8yy-voetransactions
+ portfolioId: dyr6weqd2yhb-2-port
+ customerType: active
+ customerId: 1000006677
+ requestId: sfb7x1we9w
+ title: Finicity Verification of Employment - Transactions
+ consumerId: ac39e237c7619a4ecf014b8d399c0696
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ constraints:
+ reportId: j7k8qbgwsa7d-voietxverify
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ incomeStreamConfidenceMinimum: 50
+ type: voeTransactions
+ status: success
+ createdDate: 1588350269
+ startDate: 1572625469
+ endDate: 1588350269
+ days: 120
+ seasoned: true
+ institutions:
+ - id: 101732
+ name: FinBank
+ urlHomeApp: https://finbank.prod.fini.city/CCBankImageMFA/login.jsp
+ accounts:
+ - id: 1000023996
+ number: '1111'
+ ownerName: JOHN DOE
+ ownerAddress: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
+ name: Checking
+ type: checking
+ aggregationStatusCode: 0
+ incomeStreams:
+ - id: u4hstnyak45g1
+ name: none
+ status: ACTIVE
+ estimateInclusion: MODERATE
+ confidence: 70
+ cadence:
+ startDate: 1577986990
+ stopDate: 1587986990
+ days: 14
+ daysSinceLastTransaction: 15
+ nextExpectedTransactionDate: 1698788820
+ incomeStreamMonths: 18
+ transactions:
+ - id: 100000527471
+ postedDate: 1582286400
+ description: FINICITY INC PAYROLL
+ normalizedPayee: Finicity
+ institutionTransactionId: '100000000'
+ category: Paycheck
+ VOIReportExample:
+ summary: VOI Report
+ value:
+ id: u4hstnnaewetr-voi
+ customerId: 1000006677
+ consumerId: ac39e237c7619a4ecf014b8d399c0696
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ requestId: sfb7xp4wer
+ type: voi
+ status: success
+ createdDate: 1588350269
+ customerType: active
+ title: Finicity Verification of Income
+ startDate: 1572625469
+ endDate: 1588350269
+ days: 200
+ seasoned: true
+ portfolioId: dyr6qvqd2erw-1-port
+ institutions:
+ id: 101732
+ name: FinBank
+ urlHomeApp: https://finbank.prod.fini.city/CCBankImageMFA/login.jsp
+ accounts:
+ id: 1000023996
+ number: '1111'
+ name: Checking
+ type: checking
+ aggregationStatusCode: 0
+ incomeStreams:
+ id: dens28i3vsch-voi1
+ name: none
+ status: ACTIVE
+ estimateInclusion: MODERATE
+ confidence: 70
+ cadence:
+ startDate: 1577986990
+ stopDate: 1587986990
+ days: 14
+ netMonthly:
+ - month: 1522562400
+ net: 2004.77
+ netAnnual: 110475.7
+ projectedNetAnnual: 0
+ estimatedGrossAnnual:
+ projectedGrossAnnual: 151609
+ averageMonthlyIncomeNet: 9206.31
+ incomeStreamMonths: 18
+ transactions:
+ - id: 100000527471
+ amount: 22.21
+ postedDate: 1582286400
+ description: FINICITY INC PAYROLL
+ memo: Finicity amount credit
+ institutionTransactionId: '100000000'
+ category: Paycheck
+ balance: 714.16
+ averageMonthlyBalance: 720.75
+ transactions: []
+ availableBalance: 714.16
+ currentBalance: 714.16
+ beginningBalance: 714.77
+ miscDeposits:
+ - id: 100000527471
+ amount: 22.21
+ postedDate: 1582286400
+ description: FINICITY INC PAYROLL
+ memo: Finicity amount credit
+ institutionTransactionId: '100000000'
+ category: Paycheck
+ income:
+ - confidenceType: MODERATE
+ netMonthly:
+ - month: 1522562400
+ net: 2004.77
+ incomeEstimate:
+ netAnnual: 1000.12
+ projectedNetAnnual: 1500.23
+ estimatedGrossAnnual: 2000.12
+ projectedGrossAnnual: 2500.23
+ VOIEPayrollReportExample:
+ summary: VOIE - Payroll Report
+ value:
+ id: 41h4nzppn37u-voiepayroll
+ portfolioId: 9qud7dtuzbew-13-port
+ customerType: active
+ customerId: 1275320
+ requestId: 7a7qyps2iy
+ consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ type: voiePayroll
+ status: success
+ createdDate: 1579819592
+ title: Verification of Income and Employment - Payroll
+ constraints:
+ payrollData:
+ payrollDataRetrievalId: hahvhe2k0000
+ employerNames:
+ - ACME INC
+ reportCustomFields:
+ label: loanID
+ value: '12345'
+ shown: true
+ payStatementsFromDate: 1580558400
+ employmentHistory:
+ asOfDate: 1596175200
+ employerName: ACME INC
+ payrollSource: finPayroll
+ employee:
+ name: John Doe Smith
+ givenName: John
+ middleName: Doe
+ familyName: Smith
+ address:
+ - address1: Address 1
+ city: City
+ state: TX
+ zip: '99999'
+ employment:
+ employerName: ACME INC
+ legalEntityId: '752760000'
+ originalHireDate: 1527832800
+ latestHireDate: 1527832800
+ latestPayDate: 1596175200
+ daysSinceLastPay: 10
+ numberPayCadenceWithoutPay: 1
+ employmentEndDate: 1527832800
+ employmentDuration: P1Y6M0D
+ employerAddress:
+ - address1: Address 1
+ city: City
+ state: TX
+ zip: '99999'
+ employmentStatusCode: A
+ employmentStatusName: Active
+ workLevelCode: FT
+ workLevelName: Full Time-Regular
+ workLevelStatus: Full Time
+ positionTitle: Shift Supervisor
+ positionDuration: P1Y6M0D
+ income:
+ payFrequency: Weekly
+ payType: Hourly
+ basePayRate: 27.5
+ annualIncome:
+ - year: '2021'
+ grossPayAmountYTD: 73925.12
+ netPayAmountYTD: 73925.12
+ basePayAmountYTD: 73925.12
+ overtimePayAmountYTD: 100.01
+ - year: '2020'
+ grossPayAmountYTD: 73925.12
+ netPayAmountYTD: 73925.12
+ basePayAmountYTD: 73925.12
+ overtimePayAmountYTD: 100.01
+ - year: '2019'
+ grossPayAmountYTD: 73925.12
+ netPayAmountYTD: 73925.12
+ basePayAmountYTD: 73925.12
+ overtimePayAmountYTD: 100.01
+ monthlyIncome:
+ estimatedMonthlyBasePay: 2000
+ estimatedMonthlyOvertimePay: 100
+ directPayStatements:
+ - payrollPayHistoryId: cy1a742k28
+ lastPayPeriodIndicator: true
+ mainPayStatementFields:
+ payDate: 1596175200
+ startDate: 1595138400
+ endDate: 1595656800
+ payPeriodHours: 40
+ payFrequency: Weekly
+ payType: Hourly
+ grossPayAmount: 1888.75
+ grossPayAmountYTD: 73925
+ netPayAmount: 1401.95
+ netPayAmountYTD: 73925
+ earnings:
+ - name: basePayAmount
+ type: base
+ rate: 27.5
+ amount: 1100
+ amountYTD: 5500
+ deductions:
+ - type: Federal tax
+ amount: 143.45
+ - type: State tax
+ amount: 12.5
+ directDeposits:
+ - accountTypeCode: Savings
+ amount: 1401.95
+ accountLastFour: '1234'
+ routingNumber: '000000000'
+ VOIEPaystubReportExample:
+ summary: VOIE - Paystub Report
+ value:
+ id: 2f3z55zuwewm-voietxverify
+ portfolioId: 9qud7dtuzbew-13-port
+ customerType: active
+ customerId: 1275320
+ consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ requestId: 7a7qyps2iy
+ type: voieTxVerify
+ status: success
+ createdDate: 1579819592
+ title: Verification of Income and Employment - Paystub
+ reportStyle: voieWithStatement
+ constraints:
+ voieWithStatementData:
+ assetIds:
+ - d50ed92f-543b-431c-8286-c8b8f6556679
+ extractEarnings: true
+ extractDeductions: false
+ extractDirectDeposit: true
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ assetIds:
+ - 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ numberOfBillableAssets: 1
+ payStatements:
+ payPeriod: LastPayPeriod
+ billable: true
+ assetId: 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ payDate: 1559241000
+ startDate: 1557513000
+ endDate: 1558722600
+ netPayCurrent: 1802.22
+ netPayYTD: 36000
+ grossPayCurrent: 24200
+ grossPayYTD: 72600
+ employer:
+ name: Rocket Surgery
+ employee:
+ name: Patrick Purchaser
+ payStat:
+ name: regular 1
+ type: regular
+ description: regular income
+ amountCurrent: 6000
+ amountYTD: 18000
+ directDeposits:
+ - amountCurrent: 1744.61
+ accountLastFour: '1234'
+ monthlyIncome:
+ estimatedMonthlyBasePay: 2000
+ estimatedMonthlyOvertimePay: 50
+ estimatedMonthlyBonusPay: 20
+ estimatedMonthlyCommissionPay: 50
+ institutions: []
+ VOIEPaystubWithTXVerifyReportExample:
+ summary: VOIE - Paystub With TXVerify Report
+ value:
+ id: 2f3z55zuwewm-voietxverify
+ customerId: 1275320
+ consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
+ consumerSsn: '6789'
+ requesterName: Decisioning API
+ requestId: 7a7qyps2iy
+ type: voieTxVerify
+ status: success
+ createdDate: 1579819592
+ title: Verification of Income and Employment - Paystub (with TXVerify)
+ constraints:
+ accountIds:
+ - '1000535275'
+ - '6001966284'
+ fromDate: 1620322948
+ voieWithInterviewData:
+ txVerifyInterview:
+ - assetId: 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ accounts: []
+ extractEarnings: true
+ extractDeductions: false
+ extractDirectDeposit: true
+ reportCustomFields:
+ - label: loanID
+ value: '12345'
+ shown: true
+ - label: trackingID
+ value: '5555'
+ shown: true
+ incomeStreamConfidenceMinimum: 50
+ customerType: active
+ portfolioId: 9qud7dtuzbew-13-port
+ numberOfBillableAssets: 1
+ reportStyle: voieWithInterview
+ assetIds:
+ - 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ payStatements:
+ payPeriod: LastPayPeriod
+ billable: true
+ assetId: 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ payDate: 1559241000
+ startDate: 1557513000
+ endDate: 1558722600
+ netPayCurrent: 1802.22
+ netPayYTD: 36000
+ grossPayCurrent: 24200
+ grossPayYTD: 72600
+ matchType: NET_PAY_MATCH
+ employer:
+ name: Rocket Surgery
+ employee:
+ name: Patrick Purchaser
+ payStat:
+ name: regular 1
+ type: regular
+ description: regular income
+ amountCurrent: 6000
+ amountYTD: 18000
+ directDeposits:
+ - fiName: America First
+ accountType: Checking
+ amountCurrent: 1744.61
+ description: Payroll
+ monthlyIncome:
+ estimatedMonthlyBasePay: 2000
+ estimatedMonthlyOvertimePay: 50
+ estimatedMonthlyBonusPay: 20
+ estimatedMonthlyCommissionPay: 50
+ institutions:
+ id: 101732
+ name: FinBank
+ urlHomeApp: https://finbank.prod.fini.city/CCBankImageMFA/login.jsp
+ accounts:
+ id: 1000023996
+ number: '1111'
+ ownerName: JOHN DOE
+ ownerAddress: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
+ name: Checking
+ type: checking
+ availableBalance: 123.45
+ aggregationStatusCode: 0
+ balance: 123.45
+ balanceDate: 1588350276
+ averageMonthlyBalance: 301.45
+ transactions: []
+ details:
+ interestMarginBalance: -50000
+ availableCashBalance: 1500
+ vestedBalance: 300000
+ currentLoanBalance: 0
+ availableBalanceAmount: 2000
+ incomeStream:
+ id: dens28i3vsch-voitxverify2
+ name: none
+ status: ACTIVE
+ confidence: 70
+ cadence:
+ startDate: 1577986990
+ stopDate: 1587986990
+ days: 180
+ netAnnual: 110475.7
+ projectedNetAnnual: 0
+ estimatedGrossAnnual: 0
+ projectedGrossAnnual: 151609
+ incomeStreamMonths: 24
+ averageMonthlyIncomeNet: 9206.31
+ transactions:
+ - id: 100000527471
+ amount: 1802.22
+ postedDate: 1559241000
+ description: FINICITY INC PAYROLL
+ memo: Finicity amount credit
+ institutionTransactionId: '100000000'
+ category: Paycheck
+ payStatementMatchTypes:
+ - DATE
+ - NET_AMOUNT
+ - DIRECT_DEPOSIT_AMOUNT
+ - EMPLOYER_NAME
+ - INCOME_STREAM_PAYCHECK
+ incomeStreams:
+ - id: dens28i3vsch-voitxverify2
+ name: none
+ status: ACTIVE
+ confidence: 70
+ cadence:
+ startDate: 1577986990
+ stopDate: 1587986990
+ days: 180
+ netAnnual: 110475.7
+ projectedNetAnnual: 0
+ estimatedGrossAnnual: 0
+ projectedGrossAnnual: 151609
+ incomeStreamMonths: 24
+ averageMonthlyIncomeNet: 9206.31
+ transactions:
+ - id: 100000527471
+ amount: 1802.22
+ postedDate: 1559241000
+ description: FINICITY INC PAYROLL
+ memo: Finicity amount credit
+ institutionTransactionId: '100000000'
+ category: Paycheck
+ payStatementMatchTypes:
+ - DATE
+ - NET_AMOUNT
+ - DIRECT_DEPOSIT_AMOUNT
+ - EMPLOYER_NAME
+ - INCOME_STREAM_PAYCHECK
+ institutions:
+ id: 101732
+ name: FinBank
+ urlHomeApp: https://finbank.prod.fini.city/CCBankImageMFA/login.jsp
+ accounts:
+ - id: 1000023996
+ ownerName: JOHN DOE
+ ownerAddress: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
+ name: Checking
+ number: '1111'
+ type: checking
+ aggregationStatusCode: 0
+ incomeStreams:
+ - id: dens28i3vsch-voietxverify
+ name: none
+ status: ACTIVE
+ confidence: 70
+ cadence:
+ startDate: 1577986990
+ stopDate: 1587986990
+ days: 180
+ netMonthly:
+ - month: 1522562400
+ net: 2004.77
+ netAnnual: 110475.7
+ projectedNetAnnual: 0
+ estimatedGrossAnnual: 12392.1
+ projectedGrossAnnual: 151609
+ averageMonthlyIncomeNet: 9206.31
+ incomeStreamMonths: 24
+ transactions:
+ - id: 100000527471
+ amount: 1802.22
+ postedDate: 1559241000
+ description: FINICITY INC PAYROLL
+ memo: Finicity amount credit
+ institutionTransactionId: '100000000'
+ category: Paycheck
+ balance: 123.45
+ averageMonthlyBalance: 301.45
+ transactions: []
+ availableBalance: 123.45
+ parameters:
+ AssetIdParameter:
+ description: The asset ID
+ name: assetId
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/AssetId'
+ example: 097545c5-1c2a-4f20-a5ef-77f0820344c9-2018601178
+ CustomerIdParameter:
+ description: A customer ID
+ name: customerId
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/CustomerId'
+ example: '1005061234'
+ AccountStatusParameter:
+ description: A filter to fetch account in the given status
+ name: status
+ in: query
+ required: false
+ schema:
+ $ref: '#/components/schemas/AccountStatus'
+ example: pending
+ AnalyticIdParameter:
+ description: The analytic ID
+ name: analyticsId
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/AnalyticId'
+ example: CA-5dfbaa3ac-5321
+ TransactionIdParameter:
+ description: A transaction ID
+ name: transactionId
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/TransactionId'
+ example: 21284820852
+ IncludePendingParameter:
+ description: If pending transactions must be included
+ name: includePending
+ in: query
+ required: false
+ schema:
+ $ref: '#/components/schemas/IncludePending'
+ example: false
+ ApplicationIdPathParameter:
+ description: The application ID
+ name: applicationId
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/ApplicationId'
+ example: '123456789'
+ ApplicationIdQueryParameter:
+ description: The application ID
+ name: applicationId
+ in: query
+ required: false
+ schema:
+ $ref: '#/components/schemas/ApplicationId'
+ example: '123456789'
+ AppRegistrationStatusParameter:
+ description: Look up app registration requests by status
+ name: status
+ in: query
+ required: false
+ schema:
$ref: '#/components/schemas/AppRegistrationStatus'
example: P
ApplicationNameParameter:
@@ -3675,15 +6111,6 @@ components:
type: string
description: A report ID
example: u4hstnnak45g
- ReportCoveredDays:
- type: integer
- description: Number of days covered by the report
- format: int32
- example: 230
- Seasoned:
- type: boolean
- description: If a report covers more than 180 days
- example: true
ReportTitle:
type: string
description: Title of the report
@@ -4120,9 +6547,7 @@ components:
optionalConsumerInfo:
$ref: '#/components/schemas/ConsumerInfo'
BorrowerType:
- enum:
- - primary
- - jointBorrower
+ description: '"primary" or "jointBorrower"'
type: string
example: primary
ConsumerInfo:
@@ -4191,7 +6616,7 @@ components:
Experience:
type: string
description: >-
- The `experience` field allows you to customize:
+ The `experience` field allows you to customize:
* Brand: color and logo
@@ -4232,7 +6657,7 @@ components:
in the same call, the `singleUseUrl` value overrides the `singleUseUrl`
value configured in the `experience` parameter.
example: true
- ReportConstraints:
+ VOAReportConstraints:
type: object
properties:
accountIds:
@@ -4242,13 +6667,61 @@ components:
showNsf:
$ref: '#/components/schemas/ShowNsf'
fromDate:
- # Without this parameter, the report defaults to 6 months if available
- # If included, the epoch timestamp should be 10 digits long and be within
- # two years of the present day
+ # Limits the transaction history in the financial reports. Transactions are included if they are equal to or greater than the `fromDate`
+ $ref: '#/components/schemas/UnixDate'
+ VOAReportConstraintsOut:
+ type: object
+ properties:
+ accountIds:
+ $ref: '#/components/schemas/ReportAccountIds'
+ reportCustomFields:
+ $ref: '#/components/schemas/ReportCustomFields'
+ showNsf:
+ $ref: '#/components/schemas/ShowNsf'
+ fromDate:
+ # Limits the transaction history in the financial reports. Transactions are included if they are equal to or greater than the `fromDate`
+ $ref: '#/components/schemas/UnixDate'
+ VOAWithIncomeReportConstraints:
+ type: object
+ properties:
+ accountIds:
+ $ref: '#/components/schemas/ReportAccountIdsString'
+ reportCustomFields:
+ $ref: '#/components/schemas/ReportCustomFields'
+ showNsf:
+ $ref: '#/components/schemas/ShowNsf'
+ fromDate:
+ # Limits the transaction history in the financial reports. Transactions are included if they are equal to or greater than the `fromDate`
+ $ref: '#/components/schemas/UnixDate'
+ incomeStreamConfidenceMinimum:
+ $ref: '#/components/schemas/IncomeStreamConfidenceMinimum'
+ VOAWithIncomeReportConstraintsOut:
+ type: object
+ properties:
+ accountIds:
+ $ref: '#/components/schemas/ReportAccountIds'
+ reportCustomFields:
+ $ref: '#/components/schemas/ReportCustomFields'
+ showNsf:
+ $ref: '#/components/schemas/ShowNsf'
+ fromDate:
+ # Limits the transaction history in the financial reports. Transactions are included if they are equal to or greater than the `fromDate`
$ref: '#/components/schemas/UnixDate'
incomeStreamConfidenceMinimum:
$ref: '#/components/schemas/IncomeStreamConfidenceMinimum'
- ReportConstraintsOut:
+ PrequalificationReportConstraints:
+ type: object
+ properties:
+ accountIds:
+ $ref: '#/components/schemas/ReportAccountIdsString'
+ reportCustomFields:
+ $ref: '#/components/schemas/ReportCustomFields'
+ showNsf:
+ $ref: '#/components/schemas/ShowNsf'
+ fromDate:
+ # Limits the transaction history in the financial reports. Transactions are included if they are equal to or greater than the `fromDate`
+ $ref: '#/components/schemas/UnixDate'
+ PrequalificationReportConstraintsOut:
type: object
properties:
accountIds:
@@ -4258,6 +6731,29 @@ components:
showNsf:
$ref: '#/components/schemas/ShowNsf'
fromDate:
+ # Limits the transaction history in the financial reports. Transactions are included if they are equal to or greater than the `fromDate`
+ $ref: '#/components/schemas/UnixDate'
+ VOIReportConstraints:
+ type: object
+ properties:
+ accountIds:
+ $ref: '#/components/schemas/ReportAccountIdsString'
+ reportCustomFields:
+ $ref: '#/components/schemas/ReportCustomFields'
+ fromDate:
+ # Limits the transaction history in the financial reports. Transactions are included if they are equal to or greater than the `fromDate`
+ $ref: '#/components/schemas/UnixDate'
+ incomeStreamConfidenceMinimum:
+ $ref: '#/components/schemas/IncomeStreamConfidenceMinimum'
+ VOIReportConstraintsOut:
+ type: object
+ properties:
+ accountIds:
+ $ref: '#/components/schemas/ReportAccountIds'
+ reportCustomFields:
+ $ref: '#/components/schemas/ReportCustomFields'
+ fromDate:
+ # Limits the transaction history in the financial reports. Transactions are included if they are equal to or greater than the `fromDate`
$ref: '#/components/schemas/UnixDate'
incomeStreamConfidenceMinimum:
$ref: '#/components/schemas/IncomeStreamConfidenceMinimum'
@@ -4302,11 +6798,10 @@ components:
All custom fields display in the Reseller Billing API.
IncomeStreamConfidenceMinimum:
type: integer
- description: >-
- Designate a minimum confidence level threshold to include income streams
- with a specified confidence level or higher. For example, designate a
- `incomeStreamConfidenceMinimum` of 50 to see all income streams with a
- confidence level of 50 or higher.
+ description:
+ "Include income streams in the report, based on the income stream's
+ confidence score. For example, Use the value 50 to include only income
+ streams with a confidence score of 50 or higher."
format: int32
example: 50
ConnectFromDate:
@@ -5687,12 +8182,12 @@ components:
(Student Loan) The financial institution guarantor of the loan (who
will pay the loan amount to the owner if the borrower defaults)
example: 'FinBank'
- interestSubsityType:
+ interestSubsidyType:
type: string
description: >-
(Student Loan) The indication of the presence of an interest subsidy
(i.e. subsidized)
- example: Subsity type
+ example: Subsidy type
interestBalance:
type: number
description: (Student Loan) The total outstanding interest balance
@@ -6259,48 +8754,12 @@ components:
$ref: '#/components/schemas/InstitutionName'
institutionId:
$ref: '#/components/schemas/NumericInstitutionId'
- AccountDetail:
- required:
- - interestMarginBalance
- - availableCashBalance
- - vestedBalance
- - currentLoanBalance
- - availableBalanceAmount
- type: object
- properties:
- interestMarginBalance:
- type: number
- description: >-
- Only available for investment accounts. Net interest earned after
- deducting interest paid out.
- example: -50000
- availableCashBalance:
- type: number
- description: >-
- Only available for investment accounts. Amount available for cash
- withdrawal.
- example: 1500
- vestedBalance:
- type: number
- description:
- Only available for investment accounts. Vested amount in account.
- example: 300000
- currentLoanBalance:
- type: number
- description:
- Only available for investment accounts. Current loan balance.
- example: 0
- availableBalanceAmount:
- type: number
- description: The available balance for the account
- example: 1000
- BaseReportData:
+ BaseReportAck:
+ description: Properties shared by all generated reports
type: object
properties:
id:
$ref: '#/components/schemas/ReportId'
- portfolioId:
- $ref: '#/components/schemas/PortfolioId'
customerType:
$ref: '#/components/schemas/CustomerType'
customerId:
@@ -6326,7 +8785,16 @@ components:
type: array
items:
$ref: '#/components/schemas/ErrorMessage'
- ReportData:
+ BaseReportAckWithPortfolioId:
+ description:
+ Properties shared by all generated reports having a portfolio ID
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAck'
+ - type: object
+ properties:
+ portfolioId:
+ $ref: '#/components/schemas/PortfolioId'
+ VOAReportAck:
required:
- id
- portfolioId
@@ -6340,26 +8808,76 @@ components:
- consumerSsn
- type
- status
+ - constraints
allOf:
- - $ref: '#/components/schemas/BaseReportData'
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
- type: object
properties:
constraints:
- $ref: '#/components/schemas/ReportConstraintsOut'
- NetMonthly:
+ $ref: '#/components/schemas/VOAReportConstraintsOut'
+ VOAWithIncomeReportAck:
required:
- - month
- - net
- type: object
- properties:
- month:
- # Timestamp for the first day of this month
- $ref: '#/components/schemas/UnixDate'
- net:
- type: number
- description:
- Total income during the given month, across all income streams
- example: 2004.77
+ - id
+ - portfolioId
+ - customerType
+ - customerId
+ - requestId
+ - requesterName
+ - createdDate
+ - title
+ - consumerId
+ - consumerSsn
+ - type
+ - status
+ - constraints
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ constraints:
+ $ref: '#/components/schemas/VOAWithIncomeReportConstraintsOut'
+ PrequalificationReportAck:
+ required:
+ - id
+ - portfolioId
+ - customerType
+ - customerId
+ - requestId
+ - requesterName
+ - createdDate
+ - title
+ - consumerId
+ - consumerSsn
+ - type
+ - status
+ - constraints
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ constraints:
+ $ref: '#/components/schemas/PrequalificationReportConstraintsOut'
+ VOIReportAck:
+ required:
+ - id
+ - portfolioId
+ - customerType
+ - customerId
+ - requestId
+ - requesterName
+ - createdDate
+ - title
+ - consumerId
+ - consumerSsn
+ - type
+ - status
+ - constraints
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ constraints:
+ $ref: '#/components/schemas/VOIReportConstraintsOut'
PortfolioReport:
required:
- id
@@ -6601,154 +9119,6 @@ components:
type: string
example: VERIZON WIRELESS PAYMENTS
description: Categorization Record
- ReportIncomeStream:
- required:
- - id
- - name
- - status
- - estimateInclusion
- - confidence
- - cadence
- - netMonthly
- - netAnnual
- - projectedNetAnnual
- - estimatedGrossAnnual
- - projectedGrossAnnual
- - averageMonthlyIncomeNet
- - transactions
- type: object
- properties:
- id:
- type: string
- description: Finicity's income stream ID
- example: dens28i3vsch-voi1
- name:
- type: string
- description:
- A human-readable name based on the `normalizedPayee` name of the
- transactions for this income stream
- example: none
- status:
- $ref: '#/components/schemas/Status'
- estimateInclusion:
- $ref: '#/components/schemas/EstimateInclusion'
- confidence:
- type: integer
- description:
- Level of confidence that the deposit stream represents income
- format: int32
- example: 85
- cadence:
- $ref: '#/components/schemas/CadenceDetails'
- netMonthly:
- uniqueItems: true
- type: array
- items:
- $ref: '#/components/schemas/NetMonthly'
- description: >-
- A list of net monthly records. One instance for each complete
- calendar month in the report
- netAnnual:
- type: number
- description:
- Sum of all values in `netMonthlyIncome` over the previous 12 months
- example: 110475.7
- projectedNetAnnual:
- type: number
- description: >-
- Projected net income over the next 12 months, across all income
- streams, based on `netAnnualIncome`
- example: 0
- estimatedGrossAnnual:
- type: number
- description: >-
- Before-tax gross annual income (estimated from `netAnnual`) across
- all income stream in the past 12 months
- example: 100000
- projectedGrossAnnual:
- type: number
- description: >-
- Projected gross income over the next 12 months, across all active
- income streams, based on `projectedNetAnnual`
- example: 151609
- averageMonthlyIncomeNet:
- type: number
- description: Monthly average amount over the previous 24 months
- example: 9206.31
- transactions:
- type: array
- items:
- $ref: '#/components/schemas/ReportTransaction'
- description: A list of transaction records
- ReportTransaction:
- type: object
- properties:
- id:
- $ref: '#/components/schemas/TransactionId'
- amount:
- type: number
- description: >-
- The total amount of the transaction. Transactions for deposits are
- positive values, withdrawals and debits are negative values.
- example: 22.21
- postedDate:
- $ref: '#/components/schemas/TransactionPostedDate'
- description:
- type: string
- description: >-
- The description of the transaction, as provided by the institution
- (often known as payee). In the event that this field is left blank
- by the institution, Finicity will pass a value of "No description
- provided by institution". All other values are provided by the
- institution.
- example: FINICITY INC PAYROLL
- memo:
- type: string
- description: >-
- The memo field of the transaction, as provided by the institution.
- The institution must provide either a description, a memo, or both.
- It is recommended to concatenate the two fields into a single value
- example: Finicity amount credit
- normalizedPayee:
- type: string
- description:
- A normalized payee, derived from the transaction's `description` and
- `memo` fields.
- example: Finicity
- institutionTransactionId:
- type: string
- description:
- The unique identifier given by the FI for each transaction.
- example: '100000000'
- category:
- $ref: '#/components/schemas/Categories'
- type:
- $ref: '#/components/schemas/TransactionType'
- payStatementMatchTypes:
- type: array
- items:
- $ref: '#/components/schemas/ReportTransactionPayStatementMatchTypes'
- description:
- Field to indicate how transaction is matched with pay statement
- bestRepresentation:
- type: string
- description: >-
- Combines the description and memo data together, removes any
- duplicated information from description to memo, and removes any
- numbers or special characters
- example: FINICITY INC PAYROLL
- securityType:
- type: string
- description: The type of investment security (VOA only)
- example: Cash
- symbol:
- type: string
- description: Investment symbol (VOA only)
- example: JPM
- commission:
- description: Commission amount
- type: number
- example: 0
Birthday:
type: object
properties:
@@ -6793,6 +9163,7 @@ components:
description: A callback URL where to receive TxPush notifications
example: 'https://www.mydomain.com/txpush/listener'
PayStatementData:
+ description: Data to be included within the pay statement report
required:
- assetIds
type: object
@@ -6808,260 +9179,2962 @@ components:
$ref: '#/components/schemas/ExtractDeductions'
extractDirectDeposit:
$ref: '#/components/schemas/ExtractDirectDeposit'
- CadenceDetails:
- type: object
- properties:
- startDate:
- # Date of the first deposit transaction
- $ref: '#/components/schemas/UnixDate'
- stopDate:
- # Date of the final deposit transaction (omitted if status is active)
- $ref: '#/components/schemas/UnixDate'
- days:
- type: integer
- description: Number of days between the recurring deposits
- format: int32
- example: 14
- AuditableReport:
+ Report:
description: A report
+ type: object
required:
- id
+ - customerType
- customerId
- - requesterName
- requestId
- - type
- - status
+ - requesterName
- createdDate
- - constraints
- - customerType
- title
- - startDate
- - endDate
- - days
- - seasoned
- - portfolioId
- - consolidatedAvailableBalance
- - institutions
+ - consumerId
+ - consumerSsn
+ - type
+ - status
+ allOf:
+ - $ref: '#/components/schemas/CashFlowReport'
+ - $ref: '#/components/schemas/PrequalificationReport'
+ - $ref: '#/components/schemas/PayStatementReport'
+ - $ref: '#/components/schemas/StatementReport'
+ - $ref: '#/components/schemas/TransactionsReport'
+ - $ref: '#/components/schemas/VOAReport'
+ - $ref: '#/components/schemas/VOAWithIncomeReport'
+ - $ref: '#/components/schemas/VOEPayrollReport'
+ - $ref: '#/components/schemas/VOETransactionsReport'
+ - $ref: '#/components/schemas/VOIReport'
+ - $ref: '#/components/schemas/VOIEPayrollReport'
+ - $ref: '#/components/schemas/VOIEPaystubReport'
+ - $ref: '#/components/schemas/VOIEPaystubWithTXVerifyReport'
+ CashFlowMonthlyCashFlowCredits:
+ required:
+ - month
+ - numberOfCredits
+ - totalCreditsAmount
+ - largestCredit
+ - numberOfCreditsLessTransfers
+ - totalCreditsAmountLessTransfers
+ - averageCreditAmount
+ - estimatedNumberOfLoanDeposits
+ - estimatedLoanDepositAmount
type: object
properties:
- id:
- $ref: '#/components/schemas/ReportId'
- customerId:
- $ref: '#/components/schemas/NumericCustomerId'
- consumerId:
- $ref: '#/components/schemas/ConsumerId'
- consumerSsn:
- $ref: '#/components/schemas/SocialSecurityNumberLastDigits'
- requesterName:
- $ref: '#/components/schemas/PartnerName'
- requestId:
- $ref: '#/components/schemas/ReportRequestId'
- type:
- $ref: '#/components/schemas/ReportType'
- status:
- $ref: '#/components/schemas/ReportStatus'
- createdDate:
- $ref: '#/components/schemas/UnixDate'
- constraints:
- $ref: '#/components/schemas/ReportConstraintsOut'
- customerType:
- $ref: '#/components/schemas/CustomerType'
- title:
- $ref: '#/components/schemas/ReportTitle'
- startDate:
- # Date of the earliest transaction analyzed for this report
- $ref: '#/components/schemas/UnixDate'
- endDate:
- # Date of the latest transaction analyzed for this report
- $ref: '#/components/schemas/UnixDate'
- days:
- $ref: '#/components/schemas/ReportCoveredDays'
- seasoned:
- $ref: '#/components/schemas/Seasoned'
- portfolioId:
- $ref: '#/components/schemas/PortfolioId'
- consolidatedAvailableBalance:
- type: number
+ month:
+ type: integer
description:
- Sum of available balances for all of the accounts included in the
- report
- example: 1929.57
- institutions:
+ One instance for each complete calendar month in the report
+ format: int64
+ example: 1512111600
+ numberOfCredits:
+ type: string
+ description: Number of credits by month
+ example: '3'
+ totalCreditsAmount:
+ type: number
+ description: Total amount of credits by month
+ example: 5000
+ largestCredit:
+ type: number
+ description: Largest credit by month
+ example: 2000
+ numberOfCreditsLessTransfers:
+ type: string
+ description: Number of credits by month (less transfers)
+ example: '2'
+ totalCreditsAmountLessTransfers:
+ type: number
+ description: Total amount of credits by month (less transfers)
+ example: 4000
+ averageCreditAmount:
+ type: number
+ description: The average credit amount
+ example: 500
+ estimatedNumberOfLoanDeposits:
+ type: string
+ description: The estimated number of loan deposits
+ example: '0'
+ estimatedLoanDepositAmount:
+ type: number
+ description: The estimated loan deposit amount
+ example: 0
+ CashFlowCashFlowCredit:
+ required:
+ - monthlyCashFlowCredits
+ - twelveMonthCreditTotal
+ - twelveMonthCreditTotalLessTransfers
+ - sixMonthCreditTotal
+ - sixMonthCreditTotalLessTransfers
+ - twoMonthCreditTotal
+ - twoMonthCreditTotalLessTransfers
+ type: object
+ properties:
+ monthlyCashFlowCredits:
type: array
items:
- $ref: '#/components/schemas/ReportInstitution'
- description: >-
- A list of institution records, including information about the
- individual accounts used in this report
- assets:
- $ref: '#/components/schemas/ReportAssetSummary'
- errors:
- description: In case errors occurred during the report generation
+ $ref: '#/components/schemas/CashFlowMonthlyCashFlowCredits'
+ description: List of attributes for each month
+ twelveMonthCreditTotal:
+ type: number
+ description: Sum of all credit transactions for each month by account
+ example: 1200
+ twelveMonthCreditTotalLessTransfers:
+ type: number
+ description:
+ Sum of all monthly credit transactions without transfers for the
+ account
+ example: 1000
+ sixMonthCreditTotal:
+ type: number
+ description: Sum of six month credit transactions
+ example: 750
+ sixMonthCreditTotalLessTransfers:
+ type: number
+ description: Sum of six month credit transactions without transfers
+ example: 500
+ twoMonthCreditTotal:
+ type: number
+ description: Sum of two month credit transactions
+ example: 150
+ twoMonthCreditTotalLessTransfers:
+ type: number
+ description: Sum of two month credit transactions without transfers
+ example: 100
+ TransactionsReportAccount:
+ type: object
+ properties:
+ id:
+ type: integer
+ description: The Finicity account ID
+ format: int64
+ example: 1000075473
+ name:
+ type: string
+ description: The account name from the financial institution.
+ example: Super Checking
+ number:
+ type: string
+ description:
+ The account number from the financial institution (obfuscated)
+ example: '5015'
+ type:
+ $ref: '#/components/schemas/AccountType'
+ aggregationStatusCode:
+ type: integer
+ description:
+ 'The status of the most recent aggregation attempt for this account.
+ Note: non-zero means the account was not accessed successfully for
+ this report, and additional fields for this account may not be
+ reliable.'
+ format: int32
+ example: 0
+ balance:
+ type: number
+ description: The cleared balance of the account as-of `balanceDate`
+ example: 100000
+ balanceDate:
+ type: integer
+ description: A timestamp showing when the balance was captured
+ format: int64
+ example: 1594676289
+ transactions:
type: array
items:
- $ref: '#/components/schemas/ErrorMessage'
- ReportInstitution:
- required:
- - id
- - name
- - urlHomeApp
- - accounts
+ $ref: '#/components/schemas/ReportTransaction'
+ description: a list of transaction records
+ description: Fields used for the Transaction History Report (CRA products)
+ VOAReportAccount:
type: object
properties:
id:
- $ref: '#/components/schemas/NumericInstitutionId'
+ type: integer
+ description: The ID of the account
+ format: int64
+ example: 1000023996
+ number:
+ type: string
+ description:
+ The account number from the institution (all digits except the last
+ four are obfuscated)
+ example: '1111'
+ ownerName:
+ type: string
+ description:
+ The name(s) of the account owner(s). This field is optional. If no
+ owner information is available, this field will not appear in the
+ report.
+ example: JOHN DOE
+ ownerAddress:
+ type: string
+ description:
+ The mailing address of the account owner(s). This field is optional.
+ If no owner information is available, this field will not appear in
+ the report.
+ example: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
name:
- $ref: '#/components/schemas/InstitutionName'
- urlHomeApp:
type: string
- description: The URL of the institution's primary home page
- example: 'https://finbank.prod.fini.city/CCBankImageMFA/login.jsp'
- accounts:
+ description: The account name from the institution
+ example: Checking
+ type:
+ type: string
+ description: One of the values from account types
+ example: checking
+ availableBalance:
+ type: number
+ description: The available balance for the account
+ example: 501.24
+ aggregationStatusCode:
+ type: integer
+ description: The status of the most recent aggregation attempt
+ format: int32
+ example: 0
+ balance:
+ type: number
+ description: The cleared balance of the account as-of balanceDate
+ example: 501.24
+ balanceDate:
+ type: integer
+ description: A timestamp showing when the balance was captured
+ format: int64
+ example: 1588350276
+ averageMonthlyBalance:
+ type: number
+ description: The average monthly balance of this account
+ example: 501.02
+ totNumberInsufficientFundsFeeDebitTxAccount:
+ type: integer
+ description:
+ The count for the total number of insufficient funds transactions,
+ based on the `fromDate` of the report.
+ format: int64
+ example: 0
+ totNumberInsufficientFundsFeeDebitTxOver2MonthsAccount:
+ type: integer
+ description:
+ The count for the total number of insufficient funds transactions
+ for the last two months, based on the `fromDate` of the report.
+ format: int64
+ example: 0
+ totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount:
+ type: integer
+ description:
+ The number of days since the most recent insufficient funds
+ transaction, based on the `fromDate` of the report.
+ format: int64
+ example: 120
+ transactions:
type: array
items:
- $ref: '#/components/schemas/ReportAccount'
- description: An array of accounts
- ReportSummary:
- required:
- - id
- - consumerId
- - consumerSsn
- - requesterName
- - requestId
- - constraints
- - type
- - status
- - createdDate
+ $ref: '#/components/schemas/ReportTransaction'
+ description: a list of transaction records
+ details:
+ $ref: '#/components/schemas/AccountDetails'
+ asset:
+ $ref: '#/components/schemas/PrequalificationReportAssetSummary'
+ VOAWithIncomeReportAccount:
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/VOAReportAccount'
+ - type: object
+ properties:
+ incomeStreams:
+ type: array
+ items:
+ $ref: '#/components/schemas/VOAIReportIncomeStream'
+ description: A list of income stream records
+ VOETransactionsReportAccount:
type: object
properties:
id:
- $ref: '#/components/schemas/ReportId'
- consumerId:
- $ref: '#/components/schemas/ConsumerId'
- consumerSsn:
- $ref: '#/components/schemas/SocialSecurityNumberLastDigits'
- requesterName:
- $ref: '#/components/schemas/PartnerName'
- requestId:
- $ref: '#/components/schemas/ReportRequestId'
- constraints:
- $ref: '#/components/schemas/ReportConstraintsOut'
+ type: integer
+ description: The ID of the account
+ format: int64
+ example: 1000023996
+ number:
+ type: string
+ description:
+ The account number from the institution (all digits except the last
+ four are obfuscated)
+ example: '1111'
+ ownerName:
+ type: string
+ description:
+ The name(s) of the account owner(s). This field is optional. If no
+ owner information is available, this field will not appear in the
+ report.
+ example: JOHN DOE
+ ownerAddress:
+ type: string
+ description:
+ The mailing address of the account owner(s). This field is optional.
+ If no owner information is available, this field will not appear in
+ the report.
+ example: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
+ name:
+ type: string
+ description: The account name from the institution
+ example: Checking
type:
- $ref: '#/components/schemas/ReportType'
- status:
- $ref: '#/components/schemas/ReportStatus'
- createdDate:
- $ref: '#/components/schemas/UnixDate'
- ReportAccount:
+ type: string
+ description: One of the values from account types
+ example: checking
+ aggregationStatusCode:
+ type: integer
+ description: The status of the most recent aggregation attempt
+ format: int32
+ example: 0
+ incomeStreams:
+ type: array
+ items:
+ $ref: '#/components/schemas/VOETransactionsReportIncomeStream'
+ description: A list of income stream records
+ VOIETXVerifyReportAccount:
required:
- id
- - number
- ownerName
- ownerAddress
- name
+ - number
- type
- aggregationStatusCode
+ - incomeStreams
- balance
- - balanceDate
- averageMonthlyBalance
- transactions
- - asset
- - details
+ - availableBalance
type: object
properties:
id:
- $ref: '#/components/schemas/AccountId'
+ type: integer
+ description: The ID of the account
+ format: int64
+ example: 1000023996
number:
type: string
- description: >-
+ description:
The account number from the institution (all digits except the last
four are obfuscated)
example: '1111'
ownerName:
type: string
- description: >-
+ description:
The name(s) of the account owner(s). This field is optional. If no
owner information is available, this field will not appear in the
report.
example: JOHN DOE
ownerAddress:
type: string
- description: >-
+ description:
The mailing address of the account owner(s). This field is optional.
If no owner information is available, this field will not appear in
the report.
- example: '924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518'
+ example: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
name:
type: string
description: The account name from the institution
example: Checking
type:
type: string
- description: One of the values from Account Types
- example: checking
- currency:
- $ref: '#/components/schemas/Currency'
- availableBalance:
+ description: One of the values from account types
+ example: checking
+ aggregationStatusCode:
+ type: integer
+ description: The status of the most recent aggregation attempt
+ format: int32
+ incomeStreams:
+ type: array
+ items:
+ $ref: '#/components/schemas/VOIETXVerifyReportIncomeStream'
+ description: A list of income stream records
+ balance:
+ type: number
+ description: The cleared balance of the account as-of `balanceDate`
+ example: 123.45
+ averageMonthlyBalance:
+ type: number
+ description: The average monthly balance of this account
+ example: 301.45
+ transactions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: a list of transaction records
+ availableBalance:
+ type: number
+ description: The available balance for the account
+ example: 123.45
+ VOIReportAccount:
+ type: object
+ properties:
+ id:
+ type: integer
+ description: The ID of the account
+ format: int64
+ example: 1000023996
+ number:
+ type: string
+ description:
+ The account number from the institution (all digits except the last
+ four are obfuscated)
+ example: '1111'
+ ownerName:
+ type: string
+ description:
+ The name(s) of the account owner(s). This field is optional. If no
+ owner information is available, this field will not appear in the
+ report.
+ example: JOHN DOE
+ ownerAddress:
+ type: string
+ description:
+ The mailing address of the account owner(s). This field is optional.
+ If no owner information is available, this field will not appear in
+ the report.
+ example: 924 GAINSVILLE HIGHWAY SUITE 130 BUFORD, GA 30518
+ name:
+ type: string
+ description: The account name from the institution
+ example: Checking
+ type:
+ type: string
+ description: One of the values from account types
+ example: checking
+ aggregationStatusCode:
+ type: integer
+ description: The status of the most recent aggregation attempt
+ format: int32
+ example: 0
+ incomeStreams:
+ type: array
+ items:
+ $ref: '#/components/schemas/VOIReportIncomeStream'
+ description: A list of income stream records
+ balance:
+ type: number
+ description: The cleared balance of the account as-of `balanceDate`
+ example: 714.16
+ averageMonthlyBalance:
+ type: number
+ description: The average monthly balance of this account
+ example: 720.75
+ transactions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: a list of transaction records
+ availableBalance:
+ type: number
+ description: The available balance for the account
+ example: 714.16
+ currentBalance:
+ type: number
+ description: Current balance of the account
+ example: 714.16
+ beginningBalance:
+ type: number
+ description:
+ Beginning balance of account per the time period in the report
+ example: 714.77
+ miscDeposits:
+ maxItems: 100
+ minItems: 0
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: A list of miscellaneous deposits
+ VOIReportIncomeStream:
+ type: object
+ required:
+ - id
+ - name
+ - status
+ - estimateInclusion
+ - confidence
+ - cadence
+ - netMonthly
+ - netAnnual
+ - projectedNetAnnual
+ - estimatedGrossAnnual
+ - projectedGrossAnnual
+ - averageMonthlyIncomeNet
+ - incomeStreamMonths
+ - transactions
+ properties:
+ id:
+ type: string
+ description: Income stream ID
+ example: dens28i3vsch-voi1
+ name:
+ type: string
+ description:
+ A human-readable name based on the `normalizedPayee` name of the
+ transactions for this income stream
+ example: none
+ status:
+ $ref: '#/components/schemas/ActiveStatus'
+ estimateInclusion:
+ $ref: '#/components/schemas/EstimateInclusion'
+ confidence:
+ type: integer
+ description:
+ 'Level of confidence that the deposit stream represents income
+ (example: 85%)'
+ format: int32
+ example: 70
+ cadence:
+ $ref: '#/components/schemas/CadenceDetails'
+ netMonthly:
+ type: array
+ items:
+ $ref: '#/components/schemas/NetMonthly'
+ description:
+ A list of net monthly records. One instance for each complete
+ calendar month in the report.
+ netAnnual:
+ type: number
+ description:
+ Sum of all values in `netMonthlyIncome` over the previous 12 months
+ example: 110475.7
+ projectedNetAnnual:
+ type: number
+ description:
+ Projected net income over the next 12 months, across all income
+ streams, based on `netAnnualIncome`
+ example: 0
+ estimatedGrossAnnual:
+ type: number
+ description:
+ Before-tax gross annual income (estimated from `netAnnual`) across
+ all income stream in the past 12 months
+ projectedGrossAnnual:
+ type: number
+ description:
+ Projected gross income over the next 12 months, across all active
+ income streams, based on `projectedNetAnnual`
+ example: 151609
+ averageMonthlyIncomeNet:
+ type: number
+ description: Monthly average amount over the previous 24 months
+ example: 9206.31
+ incomeStreamMonths:
+ type: integer
+ description: The number of months the income transactions are observed
+ format: int32
+ example: 18
+ transactions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: A list of transaction records
+ VOETransactionsReportIncomeStream:
+ type: object
+ required:
+ - id
+ - name
+ - status
+ - estimateInclusion
+ - confidence
+ - cadence
+ - daysSinceLastTransaction
+ - nextExpectedTransactionDate
+ - incomeStreamMonths
+ - transactions
+ properties:
+ id:
+ type: string
+ description: Income stream ID
+ example: dens28i3vsch-voah
+ name:
+ type: string
+ description:
+ A human-readable name based on the `normalizedPayee` name of the
+ transactions for this income stream
+ example: none
+ status:
+ $ref: '#/components/schemas/ActiveStatus'
+ estimateInclusion:
+ $ref: '#/components/schemas/EstimateInclusion'
+ confidence:
+ type: integer
+ description:
+ 'Level of confidence that the deposit stream represents income
+ (example: 85%)'
+ format: int32
+ example: 70
+ cadence:
+ $ref: '#/components/schemas/CadenceDetails'
+ daysSinceLastTransaction:
+ type: integer
+ description:
+ The number of days since the last credit transaction for the
+ particular income stream
+ format: int32
+ example: 15
+ nextExpectedTransactionDate:
+ type: integer
+ description:
+ The next expected credit transaction date for the particular income
+ stream, based on the cadence
+ format: int64
+ example: 1572625469
+ incomeStreamMonths:
+ type: integer
+ description: The number of months the income transactions are observed
+ format: int32
+ example: 18
+ transactions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: A list of transaction records
+ VOIETXVerifyReportIncomeStream:
+ required:
+ - id
+ - name
+ - status
+ - confidence
+ - cadence
+ - netMonthly
+ - netAnnual
+ - projectedNetAnnual
+ - estimatedGrossAnnual
+ - projectedGrossAnnual
+ - averageMonthlyIncomeNet
+ - incomeStreamMonths
+ - transactions
+ type: object
+ properties:
+ id:
+ type: string
+ description: Finicity’s income stream ID
+ example: dens28i3vsch-voietxverify
+ name:
+ type: string
+ description:
+ A human-readable name based on the `normalizedPayee` name of the
+ transactions for this income stream
+ example: none
+ status:
+ $ref: '#/components/schemas/ActiveStatus'
+ confidence:
+ type: integer
+ description:
+ 'Level of confidence that the deposit stream represents income
+ (example: 85%)'
+ format: int32
+ example: 70
+ cadence:
+ $ref: '#/components/schemas/CadenceDetails'
+ netMonthly:
+ type: array
+ items:
+ $ref: '#/components/schemas/NetMonthly'
+ description:
+ A list of net monthly records. One instance for each complete
+ calendar month in the report.
+ netAnnual:
+ type: number
+ description:
+ Sum of all values in `netMonthlyIncome` over the previous 12 months
+ example: 110475.7
+ projectedNetAnnual:
+ type: number
+ description:
+ Projected net income over the next 12 months, across all income
+ streams, based on `netAnnualIncome`
+ example: 0
+ estimatedGrossAnnual:
+ type: number
+ description:
+ Before-tax gross annual income (estimated from `netAnnual`) across
+ all income stream in the past 12 months
+ example: 12321.1
+ projectedGrossAnnual:
+ type: number
+ description:
+ Projected gross income over the next 12 months, across all active
+ income streams, based on `projectedNetAnnual`
+ example: 151609
+ averageMonthlyIncomeNet:
+ type: number
+ description: Monthly average amount over the previous 24 months
+ example: 9206.31
+ incomeStreamMonths:
+ type: integer
+ description: The number of months the income transactions are observed
+ format: int32
+ example: 24
+ transactions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: A list of transaction records
+ VOAIReportIncomeStream:
+ description: A report income stream record
+ required:
+ - id
+ - name
+ - status
+ - estimateInclusion
+ - confidence
+ - cadence
+ - netMonthly
+ - netAnnual
+ - projectedNetAnnual
+ - estimatedGrossAnnual
+ - projectedGrossAnnual
+ - averageMonthlyIncomeNet
+ - incomeStreamMonths
+ - transactions
+ type: object
+ properties:
+ id:
+ type: string
+ description: Income stream ID
+ example: dens28i3vsch-voah
+ name:
+ type: string
+ description:
+ A human-readable name based on the `normalizedPayee` name of the
+ transactions for this income stream
+ example: none
+ status:
+ $ref: '#/components/schemas/ActiveStatus'
+ estimateInclusion:
+ $ref: '#/components/schemas/EstimateInclusion'
+ confidence:
+ type: integer
+ description:
+ 'Level of confidence that the deposit stream represents income
+ (example: 85%)'
+ format: int32
+ example: 70
+ cadence:
+ $ref: '#/components/schemas/CadenceDetails'
+ netMonthly:
+ type: array
+ items:
+ $ref: '#/components/schemas/NetMonthly'
+ description:
+ A list of net monthly records. One instance for each complete
+ calendar month in the report.
+ example:
+ - month: 1522562400
+ net: 2004.77
+ netAnnual:
+ type: number
+ description:
+ Sum of all values in `netMonthlyIncome` over the previous 12 months
+ example: 110475.7
+ projectedNetAnnual:
+ type: number
+ description:
+ Projected net income over the next 12 months, across all income
+ streams, based on `netAnnualIncome`
+ example: 0
+ estimatedGrossAnnual:
+ type: number
+ description:
+ Before-tax gross annual income (estimated from `netAnnual`) across
+ all income stream in the past 12 months
+ projectedGrossAnnual:
+ type: number
+ description:
+ Projected gross income over the next 12 months, across all active
+ income streams, based on `projectedNetAnnual`
+ example: 151609
+ averageMonthlyIncomeNet:
+ type: number
+ description: Monthly average amount over the previous 24 months
+ example: 9206.31
+ incomeStreamMonths:
+ type: integer
+ description: The number of months the income transactions are observed
+ format: int32
+ example: 18
+ transactions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: A list of transaction records
+ ActiveStatus:
+ description: 'Possible values: "ACTIVE", "INACTIVE"'
+ type: string
+ EstimateInclusion:
+ description: 'Possible values: "HIGH", "MODERATE", "LOW", "NO"'
+ type: string
+ CadenceDetails:
+ type: object
+ properties:
+ startDate:
+ type: integer
+ description: '`postedDate` of the first deposit transaction'
+ format: int64
+ example: 1577986990
+ stopDate:
+ type: integer
+ description:
+ '`postedDate` of the final deposit transaction (omitted if status is
+ active)'
+ format: int64
+ example: 1587986990
+ days:
+ type: integer
+ description: Number of days between the recurring deposits
+ format: int32
+ example: 14
+ NetMonthly:
+ required:
+ - month
+ - net
+ type: object
+ properties:
+ month:
+ type: integer
+ description: Timestamp for the first day of this month
+ format: int64
+ example: 1522562400
+ net:
+ type: number
+ description:
+ Total income during the given month, across all income streams
+ example: 2004.77
+ CashFlowReportAccount:
+ type: object
+ properties:
+ id:
+ type: string
+ description: Finicity account ID
+ example: '6681984'
+ ownerName:
+ type: string
+ description:
+ The name(s) of the account owner(s), retrieved from the institution.
+ example: PATRICK & LORRAINE PURCHASER
+ ownerAddress:
+ type: string
+ description:
+ The mailing address of the account owner, retrieved from the
+ institution.
+ example: 7195 BELMONT ST. PARLIN, NJ 08859
+ name:
+ type: string
+ description: The account name from the institution
+ example: Checking
+ number:
+ type: string
+ description: The account number from the institution (obfuscated)
+ example: XX1111
+ type:
+ type: string
+ description:
+ 'CFR: `ALL` (`checking` / `savings` / `loan` / `mortgage` / `credit
+ card` / `CD` / `MM` / `investment`...)'
+ example: checking
+ aggregationStatusCode:
+ type: string
+ description:
+ The status of the most recent aggregation attempt for this account
+ (non-zero means the account was not accessed successfully for this
+ report, and additional fields for this account may not be reliable)
+ example: '0'
+ currentBalance:
+ type: number
+ description: The cleared balance of the account as-of `balanceDate`
+ example: 100000
+ availableBalance:
+ type: number
+ description: Available balance
+ example: 1000
+ balanceDate:
+ type: integer
+ description: A timestamp showing when the `balance` was captured
+ format: int64
+ example: 1614880526
+ transactions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: a list of transaction records
+ cashFlowBalance:
+ $ref: '#/components/schemas/CashFlowCashFlowBalance'
+ cashFlowCredit:
+ $ref: '#/components/schemas/CashFlowCashFlowCredit'
+ cashFlowDebit:
+ $ref: '#/components/schemas/CashFlowCashFlowDebit'
+ cashFlowCharacteristic:
+ $ref: '#/components/schemas/CashFlowCashFlowCharacteristic'
+ CashFlowMonthlyCashFlowCharacteristics:
+ required:
+ - month
+ - totalCreditsLessTotalDebits
+ - totalCreditsLessTotalDebitsLessTransfers
+ - averageTransactionAmount
+ type: object
+ properties:
+ month:
+ type: integer
+ description:
+ One instance for each complete calendar month in the report
+ format: int64
+ example: 1512111600
+ totalCreditsLessTotalDebits:
+ type: number
+ description: Total Credits - Total Debits by month
+ example: 15000
+ totalCreditsLessTotalDebitsLessTransfers:
+ type: number
+ description: Total Credits - Total Debits by month (Without Transfers)
+ example: 11000
+ averageTransactionAmount:
+ type: number
+ description: Average transaction amount by month
+ example: 10
+ CashFlowCashFlowCharacteristic:
+ required:
+ - monthlyCashFlowCharacteristics
+ - averageMonthlyNet
+ - averageMonthlyNetLessTransfers
+ - twelveMonthTotalNet
+ - twelveMonthTotalNetLessTransfers
+ - sixMonthAverageTotalCreditsLessTotalDebits
+ - sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers
+ - twoMonthAverageTotalCreditsLessTotalDebits
+ - twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers
+ type: object
+ properties:
+ monthlyCashFlowCharacteristics:
+ type: array
+ items:
+ $ref: '#/components/schemas/CashFlowMonthlyCashFlowCharacteristics'
+ description: List of attributes for each month
+ averageMonthlyNet:
+ type: number
+ description: Average (Total Credits - Total Debits) for the account
+ example: 2350
+ averageMonthlyNetLessTransfers:
+ type: number
+ description:
+ Average (Total Credits - Total Debits) without transfers for the
+ account
+ example: 1000
+ twelveMonthTotalNet:
+ type: number
+ description:
+ Sum of all monthly (Total Credits - Total Debits) each month for the
+ account
+ example: 12500
+ twelveMonthTotalNetLessTransfers:
+ type: number
+ description:
+ Sum of all monthly (Total Credits - Total Debits) without transfers
+ for the account
+ example: 12400
+ sixMonthAverageTotalCreditsLessTotalDebits:
+ type: number
+ description: 6 Month Average (Total Credits - Total Debits)
+ example: 55555
+ sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers:
+ type: number
+ description:
+ 6 Month Average (Total Credits - Total Debits) - (Without Transfers)
+ example: 55555
+ twoMonthAverageTotalCreditsLessTotalDebits:
+ type: number
+ description: 2 Month Average (Total Credits - Total Debits)
+ example: 55555
+ twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers:
+ type: number
+ description:
+ 2 Month Average (Total Credits - Total Debits) - (Without Transfers)
+ example: 55555
+ CashFlowMonthlyCashFlowBalances:
+ required:
+ - month
+ - minDailyBalance
+ - maxDailyBalance
+ - averageDailyBalance
+ - standardDeviationOfDailyBalance
+ - numberOfDaysNegativeBalance
+ - numberOfDaysPositiveBalance
+ type: object
+ properties:
+ month:
+ type: integer
+ description:
+ One instance for each complete calendar month in the report
+ format: int64
+ example: 1512111600
+ minDailyBalance:
+ type: number
+ description: Min Daily Balance for each month
+ example: 3479.39
+ maxDailyBalance:
+ type: number
+ description: Max Daily Balance for each month
+ example: 3479.39
+ averageDailyBalance:
+ type: number
+ description: Average Daily Balance for each month
+ example: 3479.39
+ standardDeviationOfDailyBalance:
+ type: string
+ description: Standard Deviation of Daily Balance for each month
+ example: '20'
+ numberOfDaysNegativeBalance:
+ type: string
+ description: Number of Days Negative Balance for each month
+ example: '6'
+ numberOfDaysPositiveBalance:
+ type: string
+ description: Number of Days positive balance for each month
+ example: '0'
+ CashFlowCashFlowBalance:
+ required:
+ - monthlyCashFlowBalances
+ - minDailyBalance
+ - maxDailyBalance
+ - twelveMonthAverageDailyBalance
+ - sixMonthAverageDailyBalance
+ - twoMonthAverageDailyBalance
+ - twelveMonthStandardDeviationOfDailyBalance
+ - sixMonthStandardDeviationOfDailyBalance
+ - twoMonthStandardDeviationOfDailyBalance
+ - numberDaysNegativeBalance
+ - numberOfDaysPositiveBalance
+ type: object
+ properties:
+ monthlyCashFlowBalances:
+ type: array
+ items:
+ $ref: '#/components/schemas/CashFlowMonthlyCashFlowBalances'
+ description: List of attributes for each month
+ minDailyBalance:
+ type: number
+ description: Min daily balance across entire transaction history
+ example: 3479.39
+ maxDailyBalance:
+ type: number
+ description: Max Daily Balance across entire transaction history
+ example: 3479.39
+ twelveMonthAverageDailyBalance:
+ type: number
+ description:
+ Average Daily Balance across twelve months for the account
+ example: 3479.39
+ sixMonthAverageDailyBalance:
+ type: number
+ description: Average Daily Balance across six months for the account
+ example: 3479.39
+ twoMonthAverageDailyBalance:
+ type: number
+ description: Average Daily Balance across two months for the account
+ example: 3479.39
+ twelveMonthStandardDeviationOfDailyBalance:
+ type: string
+ description:
+ Standard Deviation of Daily Balance across twelve months for the
+ account
+ example: '20'
+ sixMonthStandardDeviationOfDailyBalance:
+ type: string
+ description:
+ Standard Deviation of Daily Balance across six months for the
+ account
+ example: '20'
+ twoMonthStandardDeviationOfDailyBalance:
+ type: string
+ description:
+ Standard Deviation of Daily Balance across two months for the
+ account
+ example: '20'
+ numberDaysNegativeBalance:
+ type: string
+ description:
+ Number of Days Negative Balance over entire transaction history
+ example: '6'
+ numberOfDaysPositiveBalance:
+ type: string
+ description:
+ Number of Days positive balance over entire transaction history
+ example: '0'
+ ReportInstitution:
+ required:
+ - id
+ - name
+ - urlHomeApp
+ - accounts
+ type: object
+ properties:
+ id:
+ $ref: '#/components/schemas/NumericInstitutionId'
+ name:
+ type: string
+ description: Finicity institution name
+ example: FinBank Profiles
+ urlHomeApp:
+ type: string
+ description: The URL of the Financial Institution
+ example: http://www.finbank.com
+ accounts:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportInstitutionAccount'
+ description: A list of account records
+ ReportInstitutionAccount:
+ description: An account record
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/CashFlowReportAccount'
+ - $ref: '#/components/schemas/PrequalificationReportAccount'
+ - $ref: '#/components/schemas/TransactionsReportAccount'
+ - $ref: '#/components/schemas/VOAReportAccount'
+ - $ref: '#/components/schemas/VOAWithIncomeReportAccount'
+ - $ref: '#/components/schemas/VOETransactionsReportAccount'
+ - $ref: '#/components/schemas/VOIReportAccount'
+ - $ref: '#/components/schemas/VOIETXVerifyReportAccount'
+ CashFlowReport:
+ description: A Cash Flow report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ startDate:
+ type: integer
+ description:
+ The `postedDate` of the earliest transaction analyzed for this
+ report
+ format: int64
+ example: 1512594823
+ endDate:
+ type: integer
+ description:
+ The `postedDate` of the latest transaction analyzed for this
+ report
+ format: int64
+ example: 1575666823
+ days:
+ type: integer
+ description: Number of days covered by the report
+ example: 730
+ seasoned:
+ type: boolean
+ description: '"true" if the report covers more than 365 days'
+ example: true
+ institutions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportInstitution'
+ description:
+ A list of institution records, including information about the
+ individual accounts used in this report
+ cashFlowBalanceSummary:
+ $ref: '#/components/schemas/CashFlowCashFlowBalanceSummary'
+ cashFlowCreditSummary:
+ $ref: '#/components/schemas/CashFlowCashFlowCreditSummary'
+ cashFlowDebitSummary:
+ $ref: '#/components/schemas/CashFlowCashFlowDebitSummary'
+ cashFlowCharacteristicsSummary:
+ $ref: '#/components/schemas/CashFlowCashFlowCharacteristicsSummary'
+ possibleLoanDeposits:
+ type: array
+ items:
+ $ref: '#/components/schemas/CashFlowPossibleLoanDeposits'
+ description: A possible loan deposits record
+ CashFlowPossibleLoanDeposits:
+ required:
+ - id
+ - name
+ - urlHomeApp
+ - accounts
+ type: object
+ properties:
+ id:
+ type: string
+ description: Finicity institution ID
+ example: '102105'
+ name:
+ type: string
+ description: Finicity institution name
+ example: FinBank Profiles
+ urlHomeApp:
+ type: string
+ description: The URL of the Financial Institution
+ example: http://www.finbank.com
+ accounts:
+ type: array
+ items:
+ $ref: '#/components/schemas/CashFlowPossibleLoanDepositsAccount'
+ description: A list of account records
+ CashFlowPossibleLoanDepositsAccount:
+ required:
+ - id
+ - ownerName
+ - ownerAddress
+ - name
+ - number
+ - type
+ - aggregationStatusCode
+ - currentBalance
+ - availableBalance
+ - balanceDate
+ - transactions
+ type: object
+ properties:
+ id:
+ type: string
+ description: Finicity account ID
+ example: '6681984'
+ ownerName:
+ type: string
+ description:
+ The name(s) of the account owner(s), retrieved from the institution.
+ example: PATRICK & LORRAINE PURCHASER
+ ownerAddress:
+ type: string
+ description:
+ The mailing address of the account owner, retrieved from the
+ institution.
+ example: 7195 BELMONT ST. PARLIN, NJ 08859
+ name:
+ type: string
+ description: The account name from the institution
+ example: Checking
+ number:
+ type: string
+ description: The account number from the institution (obfuscated)
+ example: XX1111
+ type:
+ type: string
+ description:
+ 'CFR: `ALL` (`checking` / `savings` / `loan` / `mortgage` / `credit
+ card` / `CD` / `MM` / `investment`...)'
+ example: checking
+ aggregationStatusCode:
+ type: string
+ description:
+ The status of the most recent aggregation attempt for this account
+ (non-zero means the account was not accessed successfully for this
+ report, and additional fields for this account may not be reliable)
+ example: '0'
+ currentBalance:
+ type: number
+ description: The cleared balance of the account as-of `balanceDate`
+ example: 100000
+ availableBalance:
+ type: number
+ description: Available balance
+ example: 1000
+ balanceDate:
+ type: integer
+ description: A timestamp showing when the `balance` was captured
+ format: int64
+ example: 1614880526
+ transactions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: a list of transaction records
+ ReportTransaction:
+ required:
+ - id
+ - postedDate
+ - description
+ - normalizedPayee
+ - institutionTransactionId
+ - category
+ type: object
+ properties:
+ id:
+ $ref: '#/components/schemas/TransactionId'
+ amount:
+ type: number
+ description:
+ The total amount of the transaction. Transactions for deposits are
+ positive values, withdrawals and debits are negative values.
+ example: 100
+ postedDate:
+ type: integer
+ description:
+ A timestamp showing when the transaction was posted or cleared by
+ the institution
+ format: int64
+ example: 1571313600
+ description:
+ type: string
+ description:
+ The description of the transaction, as provided by the institution
+ (often known as `payee`). In the event that this field is left blank
+ by the institution, Finicity will pass a value of "No description
+ provided by institution". All other values are provided by the
+ institution.
+ example: ATM CHECK DEPOSIT mm/dd
+ memo:
+ type: string
+ description:
+ The memo field of the transaction, as provided by the institution.
+ The institution must provide either a description, a memo, or both.
+ It is recommended to concatenate the two fields into a single value.
+ example: Some St Somewhere City State
+ normalizedPayee:
+ type: string
+ description:
+ A normalized payee, derived from the transaction's `description` and
+ `memo` fields
+ example: T-Mobile
+ institutionTransactionId:
+ type: string
+ description:
+ The unique identifier given by the FI for each transaction
+ example: '0000000000'
+ category:
+ type: string
+ description:
+ One of the values from Categories (assigned based on the payee name)
+ example: Income
+ type:
+ type: string
+ description: One of the values from transaction types
+ example: debit
+ securityType:
+ type: string
+ description: The type of investment security (VOA only)
+ symbol:
+ type: string
+ description: Investment symbol (VOA only)
+ commission:
+ type: number
+ CashFlowMonthlyCashFlowDebitSummaries:
+ required:
+ - month
+ - numberOfDebits
+ - totalDebitsAmount
+ - largestDebit
+ - numberOfDebitsLessTransfers
+ - totalDebitsAmountLessTransfers
+ - averageDebitAmount
+ type: object
+ properties:
+ month:
+ type: integer
+ description:
+ One instance for each complete calendar month in the report
+ format: int64
+ example: 1512111600
+ numberOfDebits:
+ type: string
+ description: Number of Debits by month across all accounts
+ example: '1500'
+ totalDebitsAmount:
+ type: number
+ description: Total Amount of Debits by month across all accounts
+ example: -12345.46
+ largestDebit:
+ type: number
+ description: Largest Debit by month
+ example: -20000
+ numberOfDebitsLessTransfers:
+ type: string
+ description: Number of Debits by month (less transfers)
+ example: '5'
+ totalDebitsAmountLessTransfers:
+ type: number
+ description: Total amount of debits by month (less transfers)
+ example: -2000
+ averageDebitAmount:
+ type: number
+ description: The average debit amount
+ example: 500
+ CashFlowCashFlowDebitSummary:
+ required:
+ - monthlyCashFlowDebitSummaries
+ - twelveMonthDebitTotal
+ - twelveMonthDebitTotalLessTransfers
+ - sixMonthDebitTotal
+ - sixMonthDebitTotalLessTransfers
+ - twoMonthDebitTotal
+ - twoMonthDebitTotalLessTransfers
+ type: object
+ properties:
+ monthlyCashFlowDebitSummaries:
+ type: array
+ items:
+ $ref: '#/components/schemas/CashFlowMonthlyCashFlowDebitSummaries'
+ description: List of attributes for each month
+ twelveMonthDebitTotal:
+ type: number
+ description:
+ Sum of all monthly debit transactions for each month by account
+ example: -1200
+ twelveMonthDebitTotalLessTransfers:
+ type: number
+ description:
+ Sum of all monthly debit transactions without transfers for the
+ account
+ example: -1000
+ sixMonthDebitTotal:
+ type: number
+ description: Six month sum of all debit transactions by account
+ example: -750
+ sixMonthDebitTotalLessTransfers:
+ type: number
+ description:
+ Six month sum of all debit transactions without transfers for the
+ account
+ example: -500
+ twoMonthDebitTotal:
+ type: number
+ description: Two month sum of all debit transactions by account
+ example: -150
+ twoMonthDebitTotalLessTransfers:
+ type: number
+ description:
+ Two month sum of all debit transactions without transfers for the
+ account
+ example: -100
+ CashFlowMonthlyCashFlowCharacteristicSummaries:
+ required:
+ - month
+ - totalCreditsLessTotalDebits
+ - totalCreditsLessTotalDebitsLessTransfers
+ - averageTransactionAmount
+ type: object
+ properties:
+ month:
+ type: integer
+ description:
+ One instance for each complete calendar month in the report
+ format: int64
+ example: 1512111600
+ totalCreditsLessTotalDebits:
+ type: number
+ description: Total Credits - Total Debits by month across all accounts
+ example: 15000
+ totalCreditsLessTotalDebitsLessTransfers:
+ type: number
+ description:
+ Total Credits - Total Debits by month (Without Transfers) across all
+ accounts
+ example: 11000
+ averageTransactionAmount:
+ type: number
+ description: Average transaction amount across all accounts
+ example: 10
+ CashFlowCashFlowCharacteristicsSummary:
+ required:
+ - monthlyCashFlowCharacteristicSummaries
+ - averageMonthlyNet
+ - averageMonthlyNetLessTransfers
+ - twelveMonthTotalNet
+ - twelveMonthTotalNetLessTransfers
+ - sixMonthAverageTotalCreditsLessTotalDebits
+ - sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers
+ - twoMonthAverageTotalCreditsLessTotalDebits
+ - twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers
+ type: object
+ properties:
+ monthlyCashFlowCharacteristicSummaries:
+ type: array
+ items:
+ $ref: '#/components/schemas/CashFlowMonthlyCashFlowCharacteristicSummaries'
+ description: List of attributes for each month
+ averageMonthlyNet:
+ type: number
+ description: Average monthly net amount
+ example: 1250
+ averageMonthlyNetLessTransfers:
+ type: number
+ description: Average monthly net less transfers
+ example: 1000
+ twelveMonthTotalNet:
+ type: number
+ description:
+ Sum of all monthly (Total Credits - Total Debits) each month by the
+ account
+ example: 12500
+ twelveMonthTotalNetLessTransfers:
+ type: number
+ description:
+ Sum of all monthly (Total Credits - Total Debits) without transfers
+ by the account
+ example: 12400
+ sixMonthAverageTotalCreditsLessTotalDebits:
+ type: number
+ description:
+ 6 Month Average (Total Credits - Total Debits) across all accounts
+ example: 55555
+ sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers:
+ type: number
+ description:
+ 6 Month Average (Total Credits - Total Debits) - (Without Transfers)
+ across all accounts
+ example: 55555
+ twoMonthAverageTotalCreditsLessTotalDebits:
+ type: number
+ description:
+ 2 Month Average (Total Credits - Total Debits) across all accounts
+ example: 55555
+ twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers:
+ type: number
+ description:
+ 2 Month Average (Total Credits - Total Debits) - (Without Transfers)
+ across all accounts
+ example: 55555
+ CashFlowCashFlowCreditSummary:
+ required:
+ - monthlyCashFlowCreditSummaries
+ - twelveMonthCreditTotal
+ - twelveMonthCreditTotalLessTransfers
+ - sixMonthCreditTotal
+ - sixMonthCreditTotalLessTransfers
+ - twoMonthCreditTotal
+ - twoMonthCreditTotalLessTransfers
+ type: object
+ properties:
+ monthlyCashFlowCreditSummaries:
+ type: array
+ items:
+ $ref: '#/components/schemas/CashFlowMonthlyCashFlowCreditSummaries'
+ description: List of attributes for each month
+ twelveMonthCreditTotal:
+ type: number
+ description:
+ Sum of all credit transactions for each month for all accounts
+ example: 1200
+ twelveMonthCreditTotalLessTransfers:
+ type: number
+ description:
+ Sum of all monthly credit transactions without transfers for all
+ accounts
+ example: 1000
+ sixMonthCreditTotal:
+ type: number
+ description: Six month sum of all credit transactions
+ example: 750
+ sixMonthCreditTotalLessTransfers:
+ type: number
+ description:
+ Six month sum of all monthly credit transactions without transfers
+ for all accounts
+ example: 500
+ twoMonthCreditTotal:
+ type: number
+ description: Two month sum of all credit transactions
+ example: 150
+ twoMonthCreditTotalLessTransfers:
+ type: number
+ description:
+ Two month sum of all monthly credit transactions without transfers
+ for all accounts
+ example: 100
+ CashFlowMonthlycashflowDebits:
+ required:
+ - month
+ - numberOfDebits
+ - totalDebitsAmount
+ - largestDebit
+ - numberOfDebitsLessTransfers
+ - totalDebitsAmountLessTransfers
+ - averageDebitAmount
+ type: object
+ properties:
+ month:
+ type: integer
+ description:
+ One instance for each complete calendar month in the report
+ format: int64
+ example: 1512111600
+ numberOfDebits:
+ type: string
+ description: Number of Debits by month
+ example: '5'
+ totalDebitsAmount:
+ type: number
+ description: Total Amount of Debits by month
+ example: -12345
+ largestDebit:
+ type: number
+ description: Largest Debit by month
+ example: -2000
+ numberOfDebitsLessTransfers:
+ type: string
+ description: Number of Debits by month (less transfers)
+ example: '3'
+ totalDebitsAmountLessTransfers:
+ type: number
+ description: Total amount of debits by month (less transfers)
+ example: -2000
+ averageDebitAmount:
+ type: number
+ description: The average debit amount
+ example: 500
+ CashFlowCashFlowDebit:
+ required:
+ - monthlyCashFlowDebits
+ - twelveMonthDebitTotal
+ - twelveMonthDebitTotalLessTransfers
+ - sixMonthDebitTotal
+ - sixMonthDebitTotalLessTransfers
+ - twoMonthDebitTotal
+ - twoMonthDebitTotalLessTransfers
+ type: object
+ properties:
+ monthlyCashFlowDebits:
+ type: array
+ items:
+ $ref: '#/components/schemas/CashFlowMonthlycashflowDebits'
+ description: List of attributes for each month
+ twelveMonthDebitTotal:
+ type: number
+ description:
+ Sum of all monthly debit transactions for each month by account
+ example: 1200
+ twelveMonthDebitTotalLessTransfers:
+ type: number
+ description:
+ Sum of all monthly debit transactions without transfers for the
+ account
+ example: 1000
+ sixMonthDebitTotal:
+ type: number
+ description: Six month sum of all debit transactions
+ example: 750
+ sixMonthDebitTotalLessTransfers:
+ type: number
+ description:
+ Six month sum of all debit transactions without transfers for the
+ account
+ example: 500
+ twoMonthDebitTotal:
+ type: number
+ description: Two month sum of all debit transactions
+ example: 150
+ twoMonthDebitTotalLessTransfers:
+ type: number
+ description:
+ Two month sum of all debit transactions without transfers for the
+ account
+ example: 100
+ CashFlowCashFlowBalanceSummary:
+ required:
+ - monthlyCashFlowBalanceSummaries
+ - minDailyBalance
+ - maxDailyBalance
+ - twelveMonthAverageDailyBalance
+ - sixMonthAverageDailyBalance
+ - twoMonthAverageDailyBalance
+ - twelveMonthStandardDeviationOfDailyBalance
+ - sixMonthStandardDeviationOfDailyBalance
+ - twoMonthStandardDeviationOfDailyBalance
+ - numberOfDaysNegativeBalance
+ - numberOfDaysPositiveBalance
+ type: object
+ properties:
+ monthlyCashFlowBalanceSummaries:
+ type: array
+ items:
+ $ref: '#/components/schemas/CashFlowMonthlyCashFlowBalanceSummaries'
+ description: List of attributes for each month
+ minDailyBalance:
+ type: number
+ description:
+ Min Daily Balance across entire transaction history for all
+ accounts
+ example: 3479.39
+ maxDailyBalance:
+ type: number
+ description:
+ Max Daily Balance across entire transaction history for all accounts
+ example: 3479.39
+ twelveMonthAverageDailyBalance:
+ type: number
+ description:
+ Average Daily Balance across twelve months for all accounts
+ example: 3479.39
+ sixMonthAverageDailyBalance:
+ type: number
+ description: Average Daily Balance across six months for all accounts
+ example: 3479.39
+ twoMonthAverageDailyBalance:
+ type: number
+ description: Average Daily Balance across two months for all accounts
+ example: 3479.39
+ twelveMonthStandardDeviationOfDailyBalance:
+ type: string
+ description:
+ Standard Deviation of Daily Balance across twelve months for all
+ accounts
+ example: '20'
+ sixMonthStandardDeviationOfDailyBalance:
+ type: string
+ description:
+ Standard Deviation of Daily Balance across six months for all
+ accounts
+ example: '20'
+ twoMonthStandardDeviationOfDailyBalance:
+ type: string
+ description:
+ Standard Deviation of Daily Balance across two months for all
+ accounts
+ example: '20'
+ numberOfDaysNegativeBalance:
+ type: string
+ description:
+ Number of Days Negative Balance over entire transaction history for
+ all accounts
+ example: '6'
+ numberOfDaysPositiveBalance:
+ type: string
+ description:
+ Number of Days Positive Balance over entire transaction history for
+ all accounts
+ example: '11'
+ CashFlowMonthlyCashFlowBalanceSummaries:
+ required:
+ - month
+ - minDailyBalance
+ - maxDailyBalance
+ - averageDailyBalance
+ - standardDeviationOfDailyBalance
+ - numberOfDaysNegativeBalance
+ - numberOfDaysPositiveBalance
+ type: object
+ properties:
+ month:
+ type: integer
+ description:
+ One instance for each complete calendar month in the report
+ format: int64
+ example: 1512111600
+ minDailyBalance:
+ type: number
+ description: Min Daily Balance for each month for all accounts
+ example: 3479.39
+ maxDailyBalance:
+ type: number
+ description: Max Daily Balance for each month for all accounts
+ example: 3479.39
+ averageDailyBalance:
+ type: number
+ description: Average Daily Balance for each month for all accounts
+ example: 3479.39
+ standardDeviationOfDailyBalance:
+ type: string
+ description:
+ Standard Deviation of Daily Balance for each month for all accounts
+ example: '20.45454545'
+ numberOfDaysNegativeBalance:
+ type: string
+ description:
+ Number of Days Negative Balance for each month for all accounts
+ example: '6'
+ numberOfDaysPositiveBalance:
+ type: string
+ description:
+ Number of Days Positive Balance for each month for all accounts
+ example: '0'
+ CashFlowMonthlyCashFlowCreditSummaries:
+ required:
+ - month
+ - numberOfCredits
+ - totalCreditsAmount
+ - largestCredit
+ - numberOfCreditsLessTransfers
+ - totalCreditsAmountLessTransfers
+ - averageCreditAmount
+ - estimatedNumberOfLoanDeposits
+ - estimatedLoanDepositAmount
+ type: object
+ properties:
+ month:
+ type: integer
+ description:
+ One instance for each complete calendar month in the report
+ format: int64
+ example: 1512111600
+ numberOfCredits:
+ type: string
+ description: Number of credits by month across all accounts
+ example: '57'
+ totalCreditsAmount:
+ type: number
+ description: Total amount of credits by month across all accounts
+ example: 3479.39
+ largestCredit:
+ type: number
+ description: Largest credit by month across all accounts
+ example: 3000.49
+ numberOfCreditsLessTransfers:
+ type: string
+ description:
+ Number of credits by month (less transfers) across all accounts
+ example: '5'
+ totalCreditsAmountLessTransfers:
+ type: number
+ description:
+ Total amount of credits by month (less transfers) across all
+ accounts
+ example: 25.46
+ averageCreditAmount:
+ type: number
+ description: The average credit amount
+ example: 500
+ estimatedNumberOfLoanDeposits:
+ type: string
+ description: The estimated number of loan deposits by month
+ example: '0'
+ estimatedLoanDepositAmount:
+ type: number
+ description: The estimated loan deposit amount by month
+ example: 0
+ PrequalificationReport:
+ description: A Prequalification report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ startDate:
+ type: integer
+ description:
+ The `postedDate` of the earliest transaction analyzed for this
+ report
+ format: int64
+ example: 1512594823
+ endDate:
+ type: integer
+ description:
+ The `postedDate` of the latest transaction analyzed for this
+ report
+ format: int64
+ example: 1575666823
+ days:
+ type: integer
+ description: The number of days covered by the report
+ example: 230
+ seasoned:
+ type: boolean
+ description: '"true" if the report covers more than 180 days'
+ example: true
+ consolidatedAvailableBalance:
+ type: number
+ description:
+ The sum of available balance for all of the accounts included in
+ the report
+ example: 1929.57
+ institutions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportInstitution'
+ description:
+ A list of institution records, including information about the
+ individual accounts in this report
+ assets:
+ $ref: '#/components/schemas/PrequalificationReportAssetSummary'
+ PrequalificationReportAccount:
+ type: object
+ properties:
+ id:
+ type: integer
+ description: The ID of the account
+ format: int64
+ example: 1000023996
+ number:
+ type: string
+ description:
+ The account number from the institution (all digits except the last
+ four are obfuscated)
+ example: '1111'
+ ownerName:
+ type: string
+ description:
+ The name of the account owner. If no owner information is available,
+ this field won't appear in the report.
+ example: JOHN DOE
+ ownerAddress:
+ type: string
+ description:
+ The mailing address of the account owner. If no owner information is
+ available, this field won't appear in the report.
+ example: 123 GAINSVILLE STREET BUFORD, GA 84937
+ name:
+ type: string
+ description: The account name from the institution
+ example: Checking
+ type:
+ type: string
+ description: One of the values from account types
+ example: checking
+ aggregationStatusCode:
+ type: integer
+ description: The status of the most recent aggregation attempt
+ format: int32
+ example: 0
+ balance:
+ type: number
+ description: The cleared balance of the account as-of `balanceDate`
+ example: 501.24
+ balanceDate:
+ type: integer
+ description: A timestamp of the balance
+ format: int64
+ example: 1588350276
+ availableBalance:
+ type: number
+ description: Available balance
+ example: 1000
+ averageMonthlyBalance:
+ type: number
+ description: The average monthly balance of the account
+ example: 501.02
+ totNumberInsufficientFundsFeeDebitTxAccount:
+ type: integer
+ description:
+ The count for the total number of insufficient funds transactions,
+ based on the `fromDate` of the report
+ format: int32
+ example: 0
+ totNumberInsufficientFundsFeeDebitTxOver6MonthsAccount:
+ type: integer
+ description:
+ The total number of insufficient funds fees for the account over
+ six months
+ format: int32
+ example: 0
+ totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount:
+ type: integer
+ description:
+ The total number of days since the most recent insufficient funds
+ fee for the account
+ format: int64
+ example: 120
+ transactions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportTransaction'
+ description: a list of transaction records
+ asset:
+ $ref: '#/components/schemas/PrequalificationReportAssetSummary'
+ details:
+ $ref: '#/components/schemas/AccountDetails'
+ PrequalificationReportAssetSummary:
+ required:
+ - currentBalance
+ - twoMonthAverage
+ - sixMonthAverage
+ - beginningBalance
+ type: object
+ properties:
+ type:
+ type: string
+ description:
+ 'The asset type: "checking", "savings", "moneyMarket", "cd",
+ "investment"'
+ example: checking
+ availableBalance:
+ type: number
+ description: The available balance for the account
+ example: 1000
+ currentBalance:
+ type: number
+ description: The current balance of the account
+ example: 1000
+ twoMonthAverage:
+ type: number
+ description: The two month average daily balance of the account
+ example: -1865.96
+ sixMonthAverage:
+ type: number
+ description: The six month average daily balance of the account
+ example: -7616.01
+ beginningBalance:
+ type: number
+ description:
+ The beginning balance of the account per the time period of the
+ report
+ example: -17795.6
+ AccountDetails:
+ type: object
+ properties:
+ interestMarginBalance:
+ type: number
+ description:
+ Only available for investment accounts. Net interest earned after
+ deducting interest paid out.
+ example: -50000
+ availableCashBalance:
+ type: number
+ description:
+ Only available for investment accounts. Amount available for cash
+ withdrawal.
+ example: 1500
+ vestedBalance:
+ type: number
+ description:
+ Only available for investment accounts. Vested amount in account.
+ example: 300000
+ currentLoanBalance:
+ type: number
+ description:
+ Only available for investment accounts. Current loan balance.
+ example: 0
+ availableBalanceAmount:
+ type: number
+ description: The available balance for the account
+ example: 1000
+ PayStatementReport:
+ description: A Pay Statement report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ startDate:
+ type: integer
+ description:
+ The `postedDate` of the earliest transaction analyzed for this
+ report
+ format: int64
+ example: 1572625469
+ endDate:
+ type: integer
+ description:
+ The `postedDate` of the latest transaction analyzed for this
+ report
+ format: int64
+ example: 1588350269
+ reportStyle:
+ type: string
+ example: paystatement
+ numberOfBillableAssets:
+ type: integer
+ description:
+ Total number of billable pay statements included in the report
+ format: int32
+ example: 1
+ assetIds:
+ type: array
+ items:
+ $ref: '#/components/schemas/AssetId'
+ payStatements:
+ type: array
+ items:
+ $ref: '#/components/schemas/VOIEPayStatement'
+ description: Extracted pay statement details
+ VOIEPayStatement:
+ type: object
+ properties:
+ payPeriod:
+ type: string
+ description: The pay period of the pay statement
+ example: LastPayPeriod
+ billable:
+ type: boolean
+ description: Designates whether the pay statement is billable
+ example: true
+ assetId:
+ type: string
+ description: The asset ID of the stored pay statement
+ example: 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ payDate:
+ type: integer
+ description: The listed pay date for the pay statement
+ format: int64
+ example: 1559241000
+ startDate:
+ type: integer
+ description: The beginning of the pay period
+ format: int64
+ example: 1557513000
+ endDate:
+ type: integer
+ description: The end of the pay period
+ format: int64
+ example: 1558722600
+ netPayCurrent:
+ type: number
+ description:
+ The total pay after deductions for the employee for the current pay
+ period
+ example: 1802.22
+ netPayYTD:
+ type: number
+ description:
+ The total accumulation of pay after deductions for the employee for
+ the current pay year
+ example: 36000
+ grossPayCurrent:
+ type: number
+ description:
+ The total pay before deductions for the employee for the current pay
+ period
+ example: 24200
+ grossPayYTD:
+ type: number
+ description:
+ The total accumulation of pay before deductions for the employee for
+ the current pay year
+ example: 72600
+ payrollProvider:
+ type: string
+ description: The company that provides the pay stub.
+ example: Finicity
+ employer:
+ $ref: '#/components/schemas/Employer'
+ employee:
+ $ref: '#/components/schemas/Employee'
+ payStat:
+ type: array
+ items:
+ $ref: '#/components/schemas/PayStat'
+ description:
+ Information pertaining to the earnings on the pay statement
+ deductions:
+ type: array
+ items:
+ $ref: '#/components/schemas/Deduction'
+ description: Information pertaining to deductions on the pay statement
+ directDeposits:
+ type: array
+ items:
+ $ref: '#/components/schemas/DirectDeposit'
+ description:
+ Information pertaining to direct deposits on the pay statement
+ Employer:
+ type: object
+ properties:
+ name:
+ type: string
+ description: The name of the employer
+ example: Rocket Surgery
+ Employee:
+ type: object
+ properties:
+ name:
+ type: string
+ description: The name of the employee
+ example: Patrick Purchaser
+ DirectDeposit:
+ type: object
+ properties:
+ amountCurrent:
+ type: number
+ description: The amount of the deposit
+ example: 1744.61
+ accountLastFour:
+ type: string
+ description:
+ The last four numbers of the account the deposit went into
+ example: '1234'
+ Deduction:
+ type: object
+ properties:
+ name:
+ type: string
+ description:
+ The normalized category of the deductions in the format
+ [type][number]. The number is the will be the iterating number of
+ the type's occurrence starting at one.
+ example: '401'
+ description:
+ type: string
+ description: The deduction line's deduction type description
+ example: 401k
+ amountCurrent:
+ type: number
+ description:
+ The amount for the deduction line deducted from employee's pay for
+ the specified pay period
+ example: 1744.61
+ amountYTD:
+ type: number
+ description:
+ The amount for the deduction line being deducted from the employee's
+ pay for the current pay year
+ example: 1744.6
+ type:
+ type: string
+ description: Categorization based on the deduction line's description
+ example: 401 Deductions
+ PayStat:
+ type: object
+ properties:
+ name:
+ type: string
+ description:
+ The normalized category of the earnings with a number appended. The
+ number is the will be the iterating number of the type's occurrence
+ starting at one.
+ example: regular 1
+ type:
+ $ref: '#/components/schemas/PayStatEarningsCategorizationType'
+ description:
+ type: string
+ description: The earnings line's pay type description
+ example: regular income
+ amountCurrent:
+ type: number
+ description:
+ The amount for the earning line paid out to the employee for the
+ specified pay period.
+ example: 6000
+ amountYTD:
+ type: number
+ description:
+ The amount for the earning line being paid out to the employee for
+ the current pay year.
+ example: 18000
+ PayStatEarningsCategorizationType:
+ type: string
+ description: >-
+ The categorization based on the earning line's description. Possible
+ values:
+
+ * "bereavement"
+
+
+ * "bonus"
+
+
+ * "commission"
+
+
+ * "holiday"
+
+
+ * "jury duty"
+
+
+ * "overtime"
+
+
+ * "pension"
+
+
+ * "pto"
+
+
+ * "regular"
+
+
+ * "sick"
+
+
+ * "tips"
+
+
+ * "unknown"
+
+
+ * "vacation"
+
+
+ * "reimbursement"
+
+
+ * "stock"
+
+
+ * "benefit"
+ StatementReport:
+ description: A Statement report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAck'
+ - type: object
+ properties:
+ assetId:
+ $ref: '#/components/schemas/AssetId'
+ TransactionsReport:
+ description: A Transactions report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ startDate:
+ type: integer
+ description:
+ The `postedDate` of the earliest transaction analyzed for this
+ report
+ format: int64
+ example: 1579348800
+ endDate:
+ type: integer
+ description:
+ The `postedDate` of the latest transaction analyzed for this
+ report
+ format: int64
+ example: 1594382400
+ days:
+ type: integer
+ description: Number of days covered by the report
+ format: int64
+ example: 174
+ seasoned:
+ type: boolean
+ description: '"true" if the report covers more than 365 days'
+ example: false
+ institutions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportInstitution'
+ description: A list of institution records
+ VOAReport:
+ description: A VOA report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ startDate:
+ type: integer
+ description:
+ The `postedDate` of the earliest transaction analyzed for this
+ report
+ format: int64
+ example: 1512594823
+ endDate:
+ type: integer
+ description:
+ The `postedDate` of the latest transaction analyzed for this
+ report
+ format: int64
+ example: 1575666823
+ days:
+ type: integer
+ description: Number of days covered by the report
+ example: 180
+ seasoned:
+ type: boolean
+ description: '"true" if the report covers more than 180 days'
+ example: true
+ consolidatedAvailableBalance:
+ type: number
+ description:
+ The sum of available balance for all of the accounts included in
+ the report
+ example: 1929.57
+ institutions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportInstitution'
+ description: A list of institution records
+ assets:
+ $ref: '#/components/schemas/PrequalificationReportAssetSummary'
+ VOAWithIncomeReport:
+ description: A VOA with income report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/VOAReport'
+ VOEPayrollReport:
+ description: A VOE Payroll report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ employmentHistory:
+ type: array
+ items:
+ $ref: '#/components/schemas/PayrollEmploymentHistory'
+ description:
+ An array of employment histories, one for each of the consumer's
+ verified employers
+ PayrollEmploymentHistory:
+ required:
+ - asOfDate
+ - employerName
+ - payrollSource
+ - employee
+ - employment
+ - income
+ type: object
+ properties:
+ asOfDate:
+ type: integer
+ description:
+ The last time the payroll data was updated in the payroll provider's
+ system
+ format: int64
+ example: 1596175200
+ employerName:
+ type: string
+ description:
+ Name of the employer as stated by the employer in the payroll system
+ example: ACME INC
+ payrollSource:
+ type: string
+ description:
+ The name of the payroll source where the data was retrieved
+ example: finPayroll
+ employee:
+ $ref: '#/components/schemas/PayrollEmployeeRecord'
+ employment:
+ $ref: '#/components/schemas/PayrollEmploymentRecord'
+ income:
+ $ref: '#/components/schemas/PayrollVOEIncomeRecord'
+ PayrollVOEIncomeRecord:
+ required:
+ - payFrequency
+ type: object
+ properties:
+ payFrequency:
+ type: string
+ description:
+ 'The current pay frequency:
* `Daily`
* `Weekly`
*
+ `Bi-Weekly`
* `Bi-Weekly Odd` (Bi-Weekly pay on odd weeks)
+ * `Bi-Weekly Even` (Bi-Weekly pay on even weeks)
*
+ `Semi-Monthly`
* `Monthly`
* `Quarterly`
*
+ `Semi-Annual`
* `Annual`
* `Every 2.6 wks`
* `Every
+ 4 wks`
* `Every 5.2 wks`'
+ example: Weekly
+ PayrollEmployeeRecord:
+ required:
+ - name
+ - givenName
+ - familyName
+ type: object
+ properties:
+ name:
+ type: string
+ description:
+ 'Full name of the employee: first, middle (if stated), and last name'
+ example: John Doe Smith
+ givenName:
+ type: string
+ description: First name of employee
+ example: John
+ middleName:
+ type: string
+ description: Middle name of employee, if stated
+ example: Doe
+ familyName:
+ type: string
+ description: Last name of employee
+ example: Smith
+ address:
+ type: array
+ items:
+ $ref: '#/components/schemas/PayrollEmployeeAddress'
+ description: Array of addresses
+ PayrollEmployerAddress:
+ type: object
+ properties:
+ address1:
+ type: string
+ description:
+ Employer address as stated by the employer in the payroll system
+ example: Address 1
+ city:
+ type: string
+ description:
+ Employer city as stated by the employer in the payroll system
+ example: City
+ state:
+ type: string
+ description:
+ Employer state as stated by the employer in the payroll system
+ example: TX
+ zip:
+ type: string
+ description:
+ Employer zip code as stated by the employer in the payroll system
+ example: '99999'
+ PayrollEmploymentRecord:
+ required:
+ - employerName
+ - latestPayDate
+ - daysSinceLastPay
+ - numberPayCadenceWithoutPay
+ - employmentStatusCode
+ - employmentStatusName
+ - workLevelStatus
+ type: object
+ properties:
+ employerName:
+ type: string
+ description:
+ Name of the employer as stated by the employer in the payroll system
+ example: ACME INC
+ legalEntityId:
+ type: string
+ description: Employer identification number (EIN)
+ example: '752760000'
+ originalHireDate:
+ type: integer
+ description: The original hired date of an employee at the company
+ format: int64
+ example: 1527832800
+ latestHireDate:
+ type: integer
+ description:
+ If an employee leaves the company and returns later, then the
+ employer states the latest hire date at the company
+ format: int64
+ example: 1527832800
+ latestPayDate:
+ type: integer
+ description: The most recent pay date from an employer
+ format: int64
+ example: 1596175200
+ daysSinceLastPay:
+ type: integer
+ description: The number of days since an employee was last paid
+ format: int32
+ example: 10
+ numberPayCadenceWithoutPay:
+ type: integer
+ description:
+ The number of pay cadences an employee has not been paid; determined
+ by the pay frequency
+ format: int32
+ example: 1
+ employmentEndDate:
+ type: integer
+ description:
+ The date an employee ended their employment at the company
+ format: int64
+ example: 1527832800
+ employmentDuration:
+ type: string
+ description:
+ The length of time an employee has been employed with that employer
+ in ISO 8601 format (eg P1Y6M0D)
+ example: P1Y6M0D
+ employerAddress:
+ type: array
+ items:
+ $ref: '#/components/schemas/PayrollEmployerAddress'
+ description: Array of addresses
+ employmentStatusCode:
+ type: string
+ description:
+ 'Status codes: `A` - Active, `NLE` - No Longer Employed, `L` - Leave'
+ example: A
+ employmentStatusName:
+ type: string
+ description: 'Status name: `Active`, `No Longer Employed`, or `Leave`'
+ example: Active
+ workLevelCode:
+ type: string
+ description:
+ The abbreviate code for the employment level names (workLevelName)
+ that we receive from the employer
+ example: FT
+ workLevelName:
+ type: string
+ description:
+ The employment level name is whatever we receive from the employer,
+ such as full time, part time, temp, contractor, and more
+ example: Full Time-Regular
+ workLevelStatus:
+ type: string
+ description:
+ 'The categorized work level status. Enumerations are:
*
+ `Temporary`
* `Seasonal`
* `Retired`
* `Student`
+ * `Full Time`
* `Part Time`
* `Unspecified`
This is a
+ new field, currently enabled only for testing reports. It will be
+ added for all reports in August 2021.'
+ example: Full Time
+ positionTitle:
+ type: string
+ description: Employee job title
+ example: Shift Supervisor
+ positionDuration:
+ type: string
+ description:
+ The length of time an employee has been employed at their current or
+ latest position for this employment in ISO 8601 format (eg P1Y6M0D)
+ example: P1Y6M0D
+ PayrollEmployeeAddress:
+ type: object
+ properties:
+ address1:
+ type: string
+ description:
+ Employee address as stated by the employer in the payroll system
+ example: Address 1
+ city:
+ type: string
+ description:
+ Employee city as stated by the employer in the payroll system
+ example: City
+ state:
+ type: string
+ description:
+ Employee state as stated by the employer in the payroll system
+ example: TX
+ zip:
+ type: string
+ description:
+ Employee zip code as stated by the employer in the payroll system
+ example: '99999'
+ VOETransactionsReport:
+ description: A VOE Transactions report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ startDate:
+ type: integer
+ description:
+ The `postedDate` of the earliest transaction analyzed for this
+ report
+ format: int64
+ example: 1512594823
+ endDate:
+ type: integer
+ description:
+ The `postedDate` of the latest transaction analyzed for this
+ report
+ format: int64
+ example: 1575666823
+ days:
+ type: integer
+ description: Number of days covered by the report
+ example: 120
+ seasoned:
+ type: boolean
+ description: '"true" if the report covers more than 180 days'
+ example: true
+ institutions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportInstitution'
+ description:
+ A list of institution records, including information about the
+ individual accounts used in this report
+ VOIReport:
+ description: A VOI report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ startDate:
+ type: integer
+ description:
+ The postedDate of the earliest transaction analyzed for this
+ report
+ format: int64
+ example: 1572625469
+ endDate:
+ type: integer
+ description:
+ The postedDate of the latest transaction analyzed for this
+ report
+ format: int64
+ example: 1588350269
+ days:
+ type: integer
+ description: Number of days covered by the report
+ format: int64
+ example: 200
+ seasoned:
+ type: boolean
+ description: '"true" if the report covers more than 180 days'
+ example: true
+ institutions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportInstitution'
+ description: A list of institution records
+ income:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportIncomeStreamSummary'
+ ReportIncomeStreamSummary:
+ required:
+ - confidenceType
+ - netMonthly
+ - incomeEstimate
+ type: object
+ properties:
+ confidenceType:
+ $ref: '#/components/schemas/EstimateInclusion'
+ netMonthly:
+ type: array
+ items:
+ $ref: '#/components/schemas/NetMonthly'
+ description: ''
+ incomeEstimate:
+ $ref: '#/components/schemas/ReportIncomeEstimate'
+ ReportIncomeEstimate:
+ required:
+ - netAnnual
+ - projectedNetAnnual
+ - estimatedGrossAnnual
+ - projectedGrossAnnual
+ type: object
+ properties:
+ netAnnual:
+ type: number
+ example: 1000.12
+ projectedNetAnnual:
+ type: number
+ example: 1500.23
+ estimatedGrossAnnual:
+ type: number
+ example: 2000.12
+ projectedGrossAnnual:
+ type: number
+ example: 2500.23
+ VOIEPayrollReport:
+ description: A VOIE Payroll report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ employmentHistory:
+ type: array
+ items:
+ $ref: '#/components/schemas/PayrollEmploymentHistory'
+ description:
+ An array of employment histories, one for each of the consumer's
+ verified employers
+ VOIEPaystubReport:
+ description: A VOIE Paystub report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ assetIds:
+ type: array
+ items:
+ $ref: '#/components/schemas/AssetId'
+ description: The pay statements included in the report
+ numberOfBillableAssets:
+ type: integer
+ description:
+ Total number of billable pay statements included in the report
+ format: int32
+ example: 1
+ payStatements:
+ type: array
+ items:
+ $ref: '#/components/schemas/VOIEPaystubWithStatementPayStatement'
+ description:
+ Extracted pay statement details, and the transaction matching
+ summary
+ VOIEPaystubWithStatementPayStatement:
+ required:
+ - payPeriod
+ - billable
+ - assetId
+ - payDate
+ - startDate
+ - endDate
+ - netPayCurrent
+ - netPayYTD
+ - grossPayCurrent
+ - grossPayYTD
+ - employer
+ - employee
+ - payStat
+ - directDeposits
+ - monthlyIncome
+ - institutions
+ type: object
+ properties:
+ payPeriod:
+ type: string
+ description: The pay period of the pay statement
+ example: LastPayPeriod
+ billable:
+ type: boolean
+ description:
+ This will display true if the pay statement is billable. If a pay
+ statement has been digitized previously, this will display as false
+ as it will not be billable.
+ example: true
+ assetId:
+ type: string
+ description: The asset ID of the stored pay statement
+ example: 6f8fb0a0-e882-4f57-b672-cf53f1397581
+ payDate:
+ type: integer
+ description: The listed pay date for the pay statement
+ format: int64
+ example: 1559241000
+ startDate:
+ type: integer
+ description: The beginning of the pay period
+ format: int64
+ example: 1557513000
+ endDate:
+ type: integer
+ description: The end of the pay period
+ format: int64
+ example: 1558722600
+ netPayCurrent:
type: number
- description: The available balance for the account
- example: 501.24
- aggregationStatusCode:
- $ref: '#/components/schemas/AggregationStatusCode'
- balance:
+ description:
+ The total pay after deductions for the employee for the current pay
+ period
+ example: 1802.22
+ netPayYTD:
type: number
- description: The cleared balance of the account as-of `balanceDate`
- example: 501.24
- balanceDate:
- # Date for when the balance was captured
- $ref: '#/components/schemas/UnixDate'
- averageMonthlyBalance:
+ description:
+ The total accumulation of pay after deductions for the employee for
+ the current pay year
+ example: 36000
+ grossPayCurrent:
type: number
- description: The average monthly balance of this account
- example: 501.02
- transactions:
+ description:
+ The total pay before deductions for the employee for the current pay
+ period
+ example: 24200
+ grossPayYTD:
+ type: number
+ description:
+ The total accumulation of pay before deductions for the employee for
+ the current pay year
+ example: 72600
+ payrollProvider:
+ type: string
+ description: The payroll provider extracted from the pay statement
+ example: Finicity
+ employer:
+ $ref: '#/components/schemas/Employer'
+ employee:
+ $ref: '#/components/schemas/Employee'
+ payStat:
type: array
items:
- $ref: '#/components/schemas/ReportTransaction'
- description: An array of transactions belonging to the account
- asset:
- $ref: '#/components/schemas/ReportAssetSummary'
- details:
- $ref: '#/components/schemas/AccountDetail'
- incomeStream:
- $ref: '#/components/schemas/ReportIncomeStream'
- incomeStreams:
+ $ref: '#/components/schemas/PayStat'
+ description:
+ Information pertaining to the earnings on the pay statement
+ directDeposits:
type: array
items:
- $ref: '#/components/schemas/ReportIncomeStream'
- description: A list of income stream records
- totNumberInsufficientFundsFeeDebitTxAccount:
- type: integer
+ $ref: '#/components/schemas/DirectDeposit'
description:
- The count for the total number of insufficient funds transactions,
- based on the `fromDate` of the report.
- format: int64
- example: 0
- totNumberInsufficientFundsFeeDebitTxOver2MonthsAccount:
- type: integer
+ Information pertaining to the direct deposits on the pay statement
+ monthlyIncome:
+ $ref: '#/components/schemas/PaystubMonthlyIncomeRecord'
+ institutions:
+ type: array
+ items:
+ type: string
description:
- The count for the total number of insufficient funds transactions
- for the last two months, based on the `fromDate` of the report.
- format: int64
- example: 0
- totNumberInsufficientFundsFeeDebitTxOver6MonthsAccount:
+ Not populated for the voieWithStatement style of paystub report. For
+ the VOIE - Paystub (with TXVerify) reports this would include
+ details of the financial institution accounts and income streams
+ with matching transactions to the pay statement.
+ example: []
+ errorCode:
type: integer
+ description: Error code for the asset
+ format: int32
+ errorMessage:
+ type: string
+ description: Error message for the asset
+ PaystubMonthlyIncomeRecord:
+ type: object
+ properties:
+ estimatedMonthlyBasePay:
+ type: number
description:
- The count for the total number of insufficient funds transactions
- for the last six months, based on the `fromDate` of the report.
- format: int64
- example: 0
- totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount:
- type: integer
+ The estimated monthly base pay amount for the employment from the
+ paystub, calculated by Finicity
+ example: 2000
+ estimatedMonthlyOvertimePay:
+ type: number
description:
- The number of days since the most recent insufficient funds
- transaction, based on the `fromDate` of the report.
- format: int64
- example: 120
+ The estimated monthly overtime pay amount for the employment from
+ the paystub, calculated by Finicity
+ example: 50
+ estimatedMonthlyBonusPay:
+ type: number
+ description:
+ The estimated monthly bonus pay amount for the employment from the
+ paystub, calculated by Finicity
+ example: 20
+ estimatedMonthlyCommissionPay:
+ type: number
+ description:
+ The estimated commission bonus pay amount for the employment from
+ the paystub, calculated by Finicity
+ example: 50
+ VOIEPaystubWithTXVerifyReport:
+ description: A VOIE Paystub With TXVerify report
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
+ - type: object
+ properties:
+ assetIds:
+ type: array
+ items:
+ $ref: '#/components/schemas/AssetId'
+ description: The pay statements included in the report
+ numberOfBillableAssets:
+ type: integer
+ description:
+ Total number of billable pay statements included in the report
+ format: int32
+ example: 1
+ payStatements:
+ type: array
+ items:
+ $ref: '#/components/schemas/VOIEPaystubWithStatementPayStatement'
+ description:
+ Extracted pay statement details, and the transaction matching
+ summary
+ institutions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReportInstitution'
+ description:
+ The details of the financial institution accounts included in
+ the report.
+ ReportSummary:
+ required:
+ - id
+ - requestId
+ - requesterName
+ - createdDate
+ - consumerId
+ - consumerSsn
+ - type
+ - status
+ properties:
+ id:
+ $ref: '#/components/schemas/ReportId'
+ requestId:
+ $ref: '#/components/schemas/ReportRequestId'
+ requesterName:
+ $ref: '#/components/schemas/PartnerName'
+ createdDate:
+ $ref: '#/components/schemas/UnixDate'
+ consumerId:
+ $ref: '#/components/schemas/ConsumerId'
+ consumerSsn:
+ $ref: '#/components/schemas/SocialSecurityNumberLastDigits'
+ type:
+ $ref: '#/components/schemas/ReportType'
+ status:
+ $ref: '#/components/schemas/ReportStatus'
+ # constraints:
+ # oneOf:
+ # - $ref: '#/components/schemas/PayStatementReportConstraints'
+ # - $ref: '#/components/schemas/StatementReportConstraints'
+ # - $ref: '#/components/schemas/TransactionsReportConstraintsOut'
+ # - $ref: '#/components/schemas/VOAReportConstraintsOut'
+ # - $ref: '#/components/schemas/VOAWithIncomeReportConstraintsOut'
+ # - $ref: '#/components/schemas/PrequalificationReportConstraintsOut'
+ # - $ref: '#/components/schemas/VOIReportConstraintsOut'
+ # - $ref: '#/components/schemas/PayrollReportConstraintsOut'
+ # - $ref: '#/components/schemas/VOIEWithTXVerifyReportConstraintsOut'
+ # - $ref: '#/components/schemas/VOIEReportConstraints'
+ # - $ref: '#/components/schemas/VOETransactionsReportConstraintsOut'
+ # - $ref: '#/components/schemas/CashFlowReportConstraintsOut'
VOIEWithInterviewData:
required:
- txVerifyInterview
@@ -7085,12 +12158,6 @@ components:
properties:
callbackUrl:
$ref: '#/components/schemas/TxPushCallbackUrl'
- Status:
- enum:
- - ACTIVE
- - INACTIVE
- type: string
- example: ACTIVE
TransactionType:
type: string
description: >-
@@ -7147,19 +12214,6 @@ components:
* "transfer"
example: atm
- ReportTransactionPayStatementMatchTypes:
- enum:
- - DATE
- - NET_AMOUNT
- - INTERVIEW_AMOUNT
- - LESS_THAN_NET_PAY
- - EMPLOYER_NAME
- - INCOME_STREAM_PAYCHECK
- - DIRECT_DEPOSIT_AMOUNT
- - PAYROLL_PROVIDER
- type: string
- description: Pay Statement matches found at the transaction level
- example: DATE
PayStatement:
description: A pay statement document and pay statement label
required:
@@ -7197,28 +12251,65 @@ components:
ReportStatus:
type: string
description:
- A report generation status ("inProgress", "success", "failure")
+ 'A report generation status. Possible values: "inProgress", "success",
+ "failure".'
example: inProgress
ReportType:
- enum:
- - voi
- - voa
- - voaHistory
- - history
- - voieTxVerify
- - voieWithReport
- - voieWithInterview
- - paystatement
- - preQualVoa
- - assetSummary
- - voieWithStatement
- - transactions
- - statement
- - voiePayroll
- - voeTransactions
- - voePayroll
- - cfrp
- - cfrb
+ description: >-
+ A report type. Possible values:
+
+ * "voi"
+
+
+ * "voa"
+
+
+ * "voaHistory"
+
+
+ * "history"
+
+
+ * "voieTxVerify"
+
+
+ * "voieWithReport"
+
+
+ * "voieWithInterview"
+
+
+ * "paystatement"
+
+
+ * "preQualVoa"
+
+
+ * "assetSummary"
+
+
+ * "voie"
+
+
+ * "transactions"
+
+
+ * "statement"
+
+
+ * "voiePayroll"
+
+
+ * "voeTransactions"
+
+
+ * "voePayroll"
+
+
+ * "cfrp"
+
+
+ * "cfrb"
type: string
example: voi
LoanPaymentDetails:
@@ -7323,7 +12414,39 @@ components:
$ref: '#/components/schemas/PayStatementData'
reportCustomFields:
$ref: '#/components/schemas/ReportCustomFields'
- PayStatementReportData:
+ CashFlowReportConstraints:
+ type: object
+ properties:
+ accountIds:
+ $ref: '#/components/schemas/ReportAccountIdsString'
+ reportCustomFields:
+ $ref: '#/components/schemas/ReportCustomFields'
+ showNsf:
+ $ref: '#/components/schemas/ShowNsf'
+ fromDate:
+ # Without this parameter, the report defaults to 61 days if available
+ # If included, the epoch timestamp should be 10 digits long and be within
+ # two years of the present day
+ $ref: '#/components/schemas/UnixDate'
+ incomeStreamConfidenceMinimum:
+ $ref: '#/components/schemas/IncomeStreamConfidenceMinimum'
+ CashFlowReportConstraintsOut:
+ type: object
+ properties:
+ accountIds:
+ $ref: '#/components/schemas/ReportAccountIds'
+ reportCustomFields:
+ $ref: '#/components/schemas/ReportCustomFields'
+ showNsf:
+ $ref: '#/components/schemas/ShowNsf'
+ fromDate:
+ # Without this parameter, the report defaults to 61 days if available
+ # If included, the epoch timestamp should be 10 digits long and be within
+ # two years of the present day
+ $ref: '#/components/schemas/UnixDate'
+ incomeStreamConfidenceMinimum:
+ $ref: '#/components/schemas/IncomeStreamConfidenceMinimum'
+ PayStatementReportAck:
required:
- id
- portfolioId
@@ -7337,12 +12460,33 @@ components:
- consumerSsn
- type
- status
+ - constraints
allOf:
- - $ref: '#/components/schemas/BaseReportData'
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
- type: object
properties:
constraints:
$ref: '#/components/schemas/PayStatementReportConstraints'
+ CashFlowReportAck:
+ required:
+ - id
+ - customerType
+ - customerId
+ - requestId
+ - requesterName
+ - createdDate
+ - title
+ - consumerId
+ - consumerSsn
+ - type
+ - status
+ - constraints
+ allOf:
+ - $ref: '#/components/schemas/BaseReportAck'
+ - type: object
+ properties:
+ constraints:
+ $ref: '#/components/schemas/CashFlowReportConstraintsOut'
VOIEWithTXVerifyReportConstraints:
required:
- voieWithInterviewData
@@ -7376,7 +12520,7 @@ components:
$ref: '#/components/schemas/UnixDate'
incomeStreamConfidenceMinimum:
$ref: '#/components/schemas/IncomeStreamConfidenceMinimum'
- VOIEPaystubWithTXVerifyReportData:
+ VOIEPaystubWithTXVerifyReportAck:
required:
- id
- portfolioId
@@ -7390,8 +12534,9 @@ components:
- consumerSsn
- type
- status
+ - constraints
allOf:
- - $ref: '#/components/schemas/BaseReportData'
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
- type: object
properties:
constraints:
@@ -7542,7 +12687,7 @@ components:
$ref: '#/components/schemas/UnixDate'
transactionDate:
$ref: '#/components/schemas/UnixDate'
- TransactionsReportData:
+ TransactionsReportAck:
required:
- id
- portfolioId
@@ -7556,13 +12701,26 @@ components:
- consumerSsn
- type
- status
+ - constraints
allOf:
- - $ref: '#/components/schemas/BaseReportData'
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
- type: object
properties:
constraints:
- $ref: '#/components/schemas/TransactionReportConstraints'
- TransactionReportConstraints:
+ $ref: '#/components/schemas/TransactionsReportConstraintsOut'
+ TransactionsReportConstraints:
+ type: object
+ properties:
+ accountIds:
+ $ref: '#/components/schemas/ReportAccountIdsString'
+ fromDate:
+ # Without this parameter, the report defaults to 61 days if available
+ # If included, the epoch timestamp should be 10 digits long and be within
+ # two years of the present day
+ $ref: '#/components/schemas/UnixDate'
+ reportCustomFields:
+ $ref: '#/components/schemas/ReportCustomFields'
+ TransactionsReportConstraintsOut:
type: object
properties:
accountIds:
@@ -7573,6 +12731,7 @@ components:
# two years of the present day
$ref: '#/components/schemas/UnixDate'
toDate:
+ # The ending timestamp for the date range. The value must be greater than `fromDate`
$ref: '#/components/schemas/UnixDate'
includePending:
$ref: '#/components/schemas/IncludePending'
@@ -7602,15 +12761,6 @@ components:
$ref: '#/components/schemas/Birthday'
suffix:
$ref: '#/components/schemas/Suffix'
- EstimateInclusion:
- enum:
- - HIGH
- - MODERATE
- - LOW
- - NO
- type: string
- description: Estimate Inclusion
- example: HIGH
StatementReportConstraints:
required:
- statementReportData
@@ -7635,7 +12785,7 @@ components:
example: 1
default: 1
maximum: 6
- StatementReportData:
+ StatementReportAck:
required:
- id
- portfolioId
@@ -7649,8 +12799,9 @@ components:
- consumerSsn
- type
- status
+ - constraints
allOf:
- - $ref: '#/components/schemas/BaseReportData'
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
- type: object
properties:
constraints:
@@ -7668,7 +12819,7 @@ components:
reportId:
# The Report Id of the original VOIE Payroll report
$ref: '#/components/schemas/ReportId'
- PayrollReportData:
+ PayrollReportAck:
required:
- id
- portfolioId
@@ -7682,8 +12833,9 @@ components:
- consumerSsn
- type
- status
+ - constraints
allOf:
- - $ref: '#/components/schemas/BaseReportData'
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
- type: object
properties:
constraints:
@@ -7788,7 +12940,7 @@ components:
$ref: '#/components/schemas/ExtractDeductions'
extractDirectDeposit:
$ref: '#/components/schemas/ExtractDirectDeposit'
- VOIEWithStatementReportConstraints:
+ VOIEReportConstraints:
required:
- voieWithStatementData
type: object
@@ -7800,7 +12952,7 @@ components:
description: >-
The request details from the report generation that were used to
generate the report
- VOIEPaystubWithStatementReportData:
+ VOIEPaystubReportAck:
required:
- id
- portfolioId
@@ -7814,13 +12966,14 @@ components:
- consumerSsn
- type
- status
+ - constraints
type: object
allOf:
- - $ref: '#/components/schemas/BaseReportData'
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
- type: object
properties:
constraints:
- $ref: '#/components/schemas/VOIEWithStatementReportConstraints'
+ $ref: '#/components/schemas/VOIEReportConstraints'
VOETransactionsReportConstraints:
type: object
properties:
@@ -7854,7 +13007,7 @@ components:
$ref: '#/components/schemas/UnixDate'
incomeStreamConfidenceMinimum:
$ref: '#/components/schemas/IncomeStreamConfidenceMinimum'
- VOETransactionsReportData:
+ VOETransactionsReportAck:
required:
- id
- portfolioId
@@ -7868,45 +13021,13 @@ components:
- consumerSsn
- type
- status
+ - constraints
allOf:
- - $ref: '#/components/schemas/BaseReportData'
+ - $ref: '#/components/schemas/BaseReportAckWithPortfolioId'
- type: object
properties:
constraints:
$ref: '#/components/schemas/VOETransactionsReportConstraintsOut'
- ReportAssetSummary:
- required:
- - currentBalance
- - twoMonthAverage
- - sixMonthAverage
- - beginningBalance
- type: object
- properties:
- type:
- type: string
- description: checking / savings / moneyMarket / cd / investment
- example: checking
- availableBalance:
- type: number
- description: The available balance for the account
- example: 1000
- currentBalance:
- type: number
- description: Current balance of the account
- example: 1000
- twoMonthAverage:
- type: number
- description: Two month average daily balance of the account
- example: -1865.96
- sixMonthAverage:
- type: number
- description: Six month average daily balance of the account
- example: -7616.01
- beginningBalance:
- type: number
- description:
- Beginning balance of account per the time period in the report
- example: -17795.6
LoanPaymentDetailsAccount:
required:
- accountId
@@ -8811,9 +13932,17 @@ components:
$ref: '#/components/schemas/AccountId'
ShowNsf:
type: boolean
- description:
- Include the non-sufficient funds (NSF) summary in the JSON and PDF
- reports
+ description: >-
+ Include the non-sufficient funds (NSF) summary JSON and the NSF summary
+ PDF section in the report. Data included:
+
+ * Account
+
+
+ * Total number of NSF funds
+
+
+ * Days since the most recent NFS funds fee
example: false
Categories:
type: string
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/BankStatementsApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/BankStatementsApiTest.java
index 7b12225..08336f3 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/BankStatementsApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/BankStatementsApiTest.java
@@ -2,7 +2,6 @@
import com.mastercard.finicity.client.ApiException;
import com.mastercard.finicity.client.model.CustomerAccount;
-import com.mastercard.finicity.client.model.ReportType;
import com.mastercard.finicity.client.model.StatementData;
import com.mastercard.finicity.client.model.StatementReportConstraints;
import com.mastercard.finicity.client.test.BaseTest;
@@ -44,9 +43,9 @@ void generateStatementReportTest() {
.statementReportData(new StatementData()
.index(1)
.accountId(Long.valueOf(existingAccountId)));
- var reportData = api.generateStatementReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.STATEMENT, reportData.getType());
+ var reportAck = api.generateStatementReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("statement", reportAck.getType());
} catch (ApiException e) {
fail(e);
}
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/CashFlowApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/CashFlowApiTest.java
index 894fe04..6ebb5a9 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/CashFlowApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/CashFlowApiTest.java
@@ -1,8 +1,7 @@
package com.mastercard.finicity.client.api;
import com.mastercard.finicity.client.ApiException;
-import com.mastercard.finicity.client.model.ReportConstraints;
-import com.mastercard.finicity.client.model.ReportType;
+import com.mastercard.finicity.client.model.CashFlowReportConstraints;
import com.mastercard.finicity.client.test.BaseTest;
import com.mastercard.finicity.client.test.utils.AccountUtils;
import com.mastercard.finicity.client.test.utils.ConsumerUtils;
@@ -32,12 +31,12 @@ protected static void beforeAll() {
@Test
void generateCashFlowReportBusinessTest() {
try {
- var constraints = new ReportConstraints()
+ var constraints = new CashFlowReportConstraints()
.showNsf(true)
.accountIds(customerAccountList);
- var reportData = api.generateCashFlowBusinessReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.CFRB, reportData.getType());
+ var reportAck = api.generateCashFlowBusinessReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("cfrb", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -47,12 +46,12 @@ void generateCashFlowReportBusinessTest() {
@Test
void generateCashFlowReportPersonalTest() {
try {
- var constraints = new ReportConstraints()
+ var constraints = new CashFlowReportConstraints()
.showNsf(true)
.accountIds(customerAccountList);
- var reportData = api.generateCashFlowPersonalReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.CFRP, reportData.getType());
+ var reportAck = api.generateCashFlowPersonalReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("cfrp", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/ConnectApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/ConnectApiTest.java
index 0191888..ba69420 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/ConnectApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/ConnectApiTest.java
@@ -7,8 +7,6 @@
import com.mastercard.finicity.client.test.utils.AccountUtils;
import org.junit.jupiter.api.Test;
-import static com.mastercard.finicity.client.model.BorrowerType.JOINTBORROWER;
-import static com.mastercard.finicity.client.model.BorrowerType.PRIMARY;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -151,8 +149,8 @@ void generateJointBorrowerConnectUrlTest() {
try {
var params = new ConnectJointBorrowerParameters()
.partnerId(PARTNER_ID)
- .addBorrowersItem(ModelFactory.newBorrower(PRIMARY, CONSUMER_ID, CUSTOMER_ID))
- .addBorrowersItem(ModelFactory.newBorrower(JOINTBORROWER, CONSUMER_ID, CUSTOMER_ID));
+ .addBorrowersItem(ModelFactory.newBorrower("primary", CONSUMER_ID, CUSTOMER_ID))
+ .addBorrowersItem(ModelFactory.newBorrower("jointBorrower", CONSUMER_ID, CUSTOMER_ID));
var connectUrl = api.generateJointBorrowerConnectUrl(params);
var link = connectUrl.getLink();
assertTrue(link.contains("partnerId=" + PARTNER_ID));
@@ -168,8 +166,8 @@ void sendJointBorrowerConnectEmailTest() {
try {
var params = new ConnectJointBorrowerEmailParameters()
.partnerId(PARTNER_ID)
- .addBorrowersItem(ModelFactory.newBorrower(PRIMARY, CONSUMER_ID, CUSTOMER_ID))
- .addBorrowersItem(ModelFactory.newBorrower(JOINTBORROWER, CONSUMER_ID, CUSTOMER_ID))
+ .addBorrowersItem(ModelFactory.newBorrower("primary", CONSUMER_ID, CUSTOMER_ID))
+ .addBorrowersItem(ModelFactory.newBorrower("jointBorrower", CONSUMER_ID, CUSTOMER_ID))
.email(new EmailOptions().to("someone@company.com"));
var connectEmailUrl = api.sendJointBorrowerConnectEmail(params);
var link = connectEmailUrl.getLink();
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/CustomersApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/CustomersApiTest.java
index 7df9ab2..238a104 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/CustomersApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/CustomersApiTest.java
@@ -35,8 +35,11 @@ void addCustomerTest() {
var username = "customer_" + RandomStringUtils.randomAlphabetic(10);
var newCustomer = new NewCustomer()
.username(username);
- api.addCustomer(newCustomer);
- fail();
+ var customer = api.addCustomer(newCustomer);
+ assertNotNull(customer.getId());
+ assertNotNull(customer.getCreatedDate());
+ assertEquals(newCustomer.getUsername(), customer.getUsername());
+ createdCustomerIds.add(customer.getId());
} catch (ApiException e) {
// HTTP 401: Not available from the Test Drive
logApiException(e);
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/PaymentsApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/PaymentsApiTest.java
index ac2d5fa..f084cc7 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/PaymentsApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/PaymentsApiTest.java
@@ -32,7 +32,9 @@ void getAccountACHDetailsTest() {
assertNotNull(achDetails.getRealAccountNumber());
assertNotNull(achDetails.getRoutingNumber());
} catch (ApiException e) {
- fail(e);
+ // {"code":20000,"message":"Routing number not found"}
+ assertErrorCodeEquals(20000, e);
+ logApiException(e);
}
}
@@ -64,6 +66,7 @@ void getLoanPaymentDetailsTest() {
fail();
} catch (ApiException e) {
// {"code":14020,"message":"Bad request. (Account type not supported)"}
+ assertErrorCodeEquals(14020, e);
logApiException(e);
}
}
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/PortfoliosApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/PortfoliosApiTest.java
index 5e3a012..04e418c 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/PortfoliosApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/PortfoliosApiTest.java
@@ -1,7 +1,7 @@
package com.mastercard.finicity.client.api;
import com.mastercard.finicity.client.ApiException;
-import com.mastercard.finicity.client.model.ReportConstraints;
+import com.mastercard.finicity.client.model.VOAReportConstraints;
import com.mastercard.finicity.client.test.BaseTest;
import com.mastercard.finicity.client.test.utils.ConsumerUtils;
import org.junit.jupiter.api.BeforeAll;
@@ -24,7 +24,7 @@ protected static void beforeAll() {
// Create a report and get the portfolio ID
var verifyAssetsApi = new VerifyAssetsApi(apiClient);
- portfolioId = verifyAssetsApi.generateVOAReport(CUSTOMER_ID, new ReportConstraints(), null).getPortfolioId();
+ portfolioId = verifyAssetsApi.generateVOAReport(CUSTOMER_ID, new VOAReportConstraints(), null).getPortfolioId();
} catch (ApiException e) {
fail(e);
}
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/ReportsApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/ReportsApiTest.java
index 4f3c303..b94e4eb 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/ReportsApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/ReportsApiTest.java
@@ -4,6 +4,7 @@
import com.mastercard.finicity.client.model.*;
import com.mastercard.finicity.client.test.BaseTest;
import com.mastercard.finicity.client.test.ModelFactory;
+import com.mastercard.finicity.client.test.utils.AccountUtils;
import com.mastercard.finicity.client.test.utils.ConsumerUtils;
import com.mastercard.finicity.client.test.utils.PayStatementUtils;
import org.junit.jupiter.api.BeforeAll;
@@ -11,6 +12,7 @@
import java.time.LocalDateTime;
import java.util.Map;
+import java.util.Optional;
import java.util.stream.Collectors;
import static java.time.ZoneOffset.UTC;
@@ -24,10 +26,12 @@ class ReportsApiTest extends BaseTest {
private final VerifyIncomeAndEmploymentApi verifyIncomeAndEmploymentApi = new VerifyIncomeAndEmploymentApi(apiClient);
private final TransactionsApi transactionsApi = new TransactionsApi(apiClient);
private final CashFlowApi cashFlowApi = new CashFlowApi(apiClient);
+ private final BankStatementsApi bankStatementsApi = new BankStatementsApi(apiClient);
private static String existingAssetId;
+ private static String existingAccountId;
private static String consumerId;
- private static Map reportsByType; // type <-> id
+ private static Map reportsByType; // type <-> id
private final static String IN_PROGRESS = "inProgress";
private final static String ON_BEHALF_OF = "Someone";
@@ -42,6 +46,15 @@ protected static void beforeAll() {
// Upload a pay statement for the tests
existingAssetId = PayStatementUtils.storeAsset(new PayStatementsApi(apiClient), CUSTOMER_ID);
+ // Find an existing account ID
+ Optional account = AccountUtils.getCustomerAccounts(new AccountsApi(apiClient), CUSTOMER_ID)
+ .stream()
+ .findFirst();
+ if (account.isEmpty()) {
+ fail();
+ }
+ existingAccountId = account.get().getId();
+
// Fetch existing reports
var reports = new ReportsApi(apiClient).getReportsByCustomerId(CUSTOMER_ID, null);
reportsByType = reports.getReports()
@@ -53,29 +66,33 @@ protected static void beforeAll() {
}
@Test
- void getPrequalificationReportByCustomerTest() throws Exception {
+ void getReportsByConsumerTest() {
try {
- var reportId = reportsByType.get(ReportType.PREQUALVOA);
- if (reportId == null) {
- // Create a report the first time
- var reportData = verifyAssetsApi.generatePrequalificationReport(CUSTOMER_ID, new ReportConstraints(), null);
- reportId = reportData.getId();
- }
- fetchReport(reportId, consumerId);
+ var reports = api.getReportsByConsumerId(consumerId, null);
+ assertNotNull(reports);
} catch (ApiException e) {
- // Status code: 429, Reason: Too Many Requests
- logApiException(e);
+ fail(e);
+ }
+ }
+
+ @Test
+ void getReportsByCustomerTest() {
+ try {
+ var reports = api.getReportsByCustomerId(CUSTOMER_ID, null);
+ assertNotNull(reports);
+ } catch (ApiException e) {
+ fail(e);
}
}
@Test
- void getVOAReportByConsumerTest() throws Exception {
+ void getPrequalificationCRAReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.VOA);
+ var reportId = reportsByType.get("preQualVoa");
if (reportId == null) {
// Create a report the first time
- var reportData = verifyAssetsApi.generateVOAReport(CUSTOMER_ID, new ReportConstraints(), null);
- reportId = reportData.getId();
+ var reportAck = verifyAssetsApi.generatePrequalificationCRAReport(CUSTOMER_ID, new PrequalificationReportConstraints(), null);
+ reportId = reportAck.getId();
}
fetchReport(reportId, consumerId);
} catch (ApiException e) {
@@ -85,13 +102,13 @@ void getVOAReportByConsumerTest() throws Exception {
}
@Test
- void getVOAWithIncomeReportByConsumerTest() throws Exception {
+ void getVOAReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.VOAHISTORY);
+ var reportId = reportsByType.get("voa");
if (reportId == null) {
// Create a report the first time
- var reportData = verifyAssetsApi.generateVOAWithIncomeReport(CUSTOMER_ID, new ReportConstraints(), null);
- reportId = reportData.getId();
+ var reportAck = verifyAssetsApi.generateVOAReport(CUSTOMER_ID, new VOAReportConstraints(), null);
+ reportId = reportAck.getId();
}
fetchReport(reportId, consumerId);
} catch (ApiException e) {
@@ -101,13 +118,13 @@ void getVOAWithIncomeReportByConsumerTest() throws Exception {
}
@Test
- void getPrequalificationNonCRAReportByConsumerTest() throws Exception {
+ void getVOAWithIncomeReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.ASSETSUMMARY);
+ var reportId = reportsByType.get("voaHistory");
if (reportId == null) {
// Create a report the first time
- var reportData = verifyAssetsApi.generatePrequalificationNonCRAReport(CUSTOMER_ID, new ReportConstraints(), null);
- reportId = reportData.getId();
+ var reportAck = verifyAssetsApi.generateVOAWithIncomeReport(CUSTOMER_ID, new VOAWithIncomeReportConstraints(), null);
+ reportId = reportAck.getId();
}
fetchReport(reportId, consumerId);
} catch (ApiException e) {
@@ -117,33 +134,46 @@ void getPrequalificationNonCRAReportByConsumerTest() throws Exception {
}
@Test
- void getReportsByConsumerTest() {
+ void getPrequalificationNonCRAReportByConsumerOrCustomerTest() throws Exception {
try {
- var reports = api.getReportsByConsumerId(consumerId, null);
- assertNotNull(reports);
+ var reportId = reportsByType.get("assetSummary");
+ if (reportId == null) {
+ // Create a report the first time
+ var reportAck = verifyAssetsApi.generatePrequalificationNonCRAReport(CUSTOMER_ID, new PrequalificationReportConstraints(), null);
+ reportId = reportAck.getId();
+ }
+ fetchReport(reportId, consumerId);
} catch (ApiException e) {
- fail(e);
+ // Status code: 429, Reason: Too Many Requests
+ logApiException(e);
}
}
@Test
- void getReportsByCustomerTest() {
+ void getVOIReportByConsumerOrCustomerTest() throws Exception {
try {
- var reports = api.getReportsByCustomerId(CUSTOMER_ID, null);
- assertNotNull(reports);
+ var reportId = reportsByType.get("voi");
+ if (reportId == null) {
+ // Create a report the first time
+ var reportAck = verifyIncomeAndEmploymentApi.generateVOIReport(CUSTOMER_ID, new VOIReportConstraints(), null);
+ reportId = reportAck.getId();
+ }
+ fetchReport(reportId, consumerId);
} catch (ApiException e) {
- fail(e);
+ // Status code: 429, Reason: Too Many Requests
+ logApiException(e);
}
}
@Test
- void getVOIReportByConsumerTest() throws Exception {
+ void getVOEPayrollReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.VOI);
+ var reportId = reportsByType.get("voePayroll");
if (reportId == null) {
// Create a report the first time
- var reportData = verifyIncomeAndEmploymentApi.generateVOIReport(CUSTOMER_ID, new ReportConstraints(), null);
- reportId = reportData.getId();
+ var constraints = new PayrollReportConstraints().payrollData(ModelFactory.newPayrollData());
+ var reportAck = verifyIncomeAndEmploymentApi.generateVOEPayrollReport(CUSTOMER_ID, constraints, null);
+ reportId = reportAck.getId();
}
fetchReport(reportId, consumerId);
} catch (ApiException e) {
@@ -153,15 +183,16 @@ void getVOIReportByConsumerTest() throws Exception {
}
@Test
- void getVOEPayrollReportByConsumerTest() throws Exception {
+ void getPayStatementReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.VOEPAYROLL);
+ var reportId = reportsByType.get("paystatement");
if (reportId == null) {
// Create a report the first time
- var constraints = new PayrollReportConstraints().payrollData(ModelFactory.newPayrollData());
- var reportData = verifyIncomeAndEmploymentApi.generateVOEPayrollReport(CUSTOMER_ID, constraints, null);
- reportId = reportData.getId();
+ var constraints = new PayStatementReportConstraints().paystatementReport(new PayStatementData().addAssetIdsItem(existingAssetId));
+ var reportAck = verifyIncomeAndEmploymentApi.generatePayStatementReport(CUSTOMER_ID, constraints, null);
+ reportId = reportAck.getId();
}
+ // This report's final status will be 'failure' since the asset uploaded isn't a valid statement
fetchReport(reportId, consumerId);
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
@@ -170,18 +201,19 @@ void getVOEPayrollReportByConsumerTest() throws Exception {
}
@Test
- void getPayStatementReportByConsumerTest() {
+ void getStatementReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.PAYSTATEMENT);
+ var reportId = reportsByType.get("statement");
if (reportId == null) {
// Create a report the first time
- var constraints = new PayStatementReportConstraints().paystatementReport(new PayStatementData().addAssetIdsItem(existingAssetId));
- var reportData = verifyIncomeAndEmploymentApi.generatePayStatementReport(CUSTOMER_ID, constraints, null);
- reportId = reportData.getId();
+ var constraints = new StatementReportConstraints()
+ .statementReportData(new StatementData()
+ .index(1)
+ .accountId(Long.valueOf(existingAccountId)));
+ var reportAck = bankStatementsApi.generateStatementReport(CUSTOMER_ID, constraints, null);
+ reportId = reportAck.getId();
}
- // This report's final status will be 'failure' since the asset uploaded isn't a valid statement
- var report = api.getReportByConsumer(consumerId, reportId, ON_BEHALF_OF, PURPOSE);
- assertNotNull(report);
+ fetchReport(reportId, consumerId);
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -189,19 +221,18 @@ void getPayStatementReportByConsumerTest() {
}
@Test
- void getVOIEPaystubReportByConsumerTest() {
+ void getVOIEPaystubReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.VOIETXVERIFY);
+ var reportId = reportsByType.get("voieTxVerify");
if (reportId == null) {
// Create a report the first time
var voieWithStatementData = new VOIEWithStatementData().addAssetIdsItem(existingAssetId);
- var constraints = new VOIEWithStatementReportConstraints().voieWithStatementData(voieWithStatementData);
- var reportData = verifyIncomeAndEmploymentApi.generateVOIEPaystubReport(CUSTOMER_ID, constraints, null);
- reportId = reportData.getId();
+ var constraints = new VOIEReportConstraints().voieWithStatementData(voieWithStatementData);
+ var reportAck = verifyIncomeAndEmploymentApi.generateVOIEPaystubReport(CUSTOMER_ID, constraints, null);
+ reportId = reportAck.getId();
}
// This report's final status will be 'failure' since the asset uploaded isn't a valid statement
- var report = api.getReportByConsumer(consumerId, reportId, ON_BEHALF_OF, PURPOSE);
- assertNotNull(report);
+ fetchReport(reportId, consumerId);
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -209,19 +240,18 @@ void getVOIEPaystubReportByConsumerTest() {
}
@Test
- void getVOIEPaystubWithTXVerifyReportByConsumerTest() {
+ void getVOIEPaystubWithTXVerifyReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.VOIETXVERIFY);
+ var reportId = reportsByType.get("voieTxVerify");
if (reportId == null) {
// Create a report the first time
var voieWithInterviewData = new VOIEWithInterviewData().addTxVerifyInterviewItem(new TxVerifyInterview().assetId(existingAssetId));
var constraints = new VOIEWithTXVerifyReportConstraints().voieWithInterviewData(voieWithInterviewData);
- var reportData = verifyIncomeAndEmploymentApi.generateVOIEPaystubWithTXVerifyReport(CUSTOMER_ID, constraints, null);
- reportId = reportData.getId();
+ var reportAck = verifyIncomeAndEmploymentApi.generateVOIEPaystubWithTXVerifyReport(CUSTOMER_ID, constraints, null);
+ reportId = reportAck.getId();
}
// This report's final status will be 'failure' since the asset uploaded isn't a valid statement
- var report = api.getReportByConsumer(consumerId, reportId, ON_BEHALF_OF, PURPOSE);
- assertNotNull(report);
+ fetchReport(reportId, consumerId);
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -229,14 +259,14 @@ void getVOIEPaystubWithTXVerifyReportByConsumerTest() {
}
@Test
- void getTransactionReportByConsumerTest() throws Exception {
+ void getTransactionsReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.TRANSACTIONS);
+ var reportId = reportsByType.get("transactions");
if (reportId == null) {
// Create a report the first time
var toDate = LocalDateTime.now().toEpochSecond(UTC);
- var reportData = transactionsApi.generateTransactionsReport(CUSTOMER_ID, toDate, new ReportConstraints(), null, true);
- reportId = reportData.getId();
+ var reportAck = transactionsApi.generateTransactionsReport(CUSTOMER_ID, toDate, new TransactionsReportConstraints(), null, true);
+ reportId = reportAck.getId();
}
fetchReport(reportId, consumerId);
} catch (ApiException e) {
@@ -246,13 +276,13 @@ void getTransactionReportByConsumerTest() throws Exception {
}
@Test
- void getVOETransactionsReportByConsumerTest() throws Exception {
+ void getVOETransactionsReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.VOETRANSACTIONS);
+ var reportId = reportsByType.get("voeTransactions");
if (reportId == null) {
// Create a report the first time
- var reportData = verifyIncomeAndEmploymentApi.generateVOETransactionsReport(CUSTOMER_ID, new VOETransactionsReportConstraints(), null);
- reportId = reportData.getId();
+ var reportAck = verifyIncomeAndEmploymentApi.generateVOETransactionsReport(CUSTOMER_ID, new VOETransactionsReportConstraints(), null);
+ reportId = reportAck.getId();
}
fetchReport(reportId, consumerId);
} catch (ApiException e) {
@@ -262,13 +292,13 @@ void getVOETransactionsReportByConsumerTest() throws Exception {
}
@Test
- void getCashFlowBusinessReportByConsumerTest() throws Exception {
+ void getCashFlowBusinessReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.CFRB);
+ var reportId = reportsByType.get("cfrb");
if (reportId == null) {
// Create a report the first time
- var reportData = cashFlowApi.generateCashFlowBusinessReport(CUSTOMER_ID, new ReportConstraints(), null);
- reportId = reportData.getId();
+ var reportAck = cashFlowApi.generateCashFlowBusinessReport(CUSTOMER_ID, new CashFlowReportConstraints(), null);
+ reportId = reportAck.getId();
}
fetchReport(reportId, consumerId);
} catch (ApiException e) {
@@ -278,13 +308,13 @@ void getCashFlowBusinessReportByConsumerTest() throws Exception {
}
@Test
- void getCashFlowPersonalReportByConsumerTest() throws Exception {
+ void getCashFlowPersonalReportByConsumerOrCustomerTest() throws Exception {
try {
- var reportId = reportsByType.get(ReportType.CFRP);
+ var reportId = reportsByType.get("cfrp");
if (reportId == null) {
// Create a report the first time
- var reportData = cashFlowApi.generateCashFlowPersonalReport(CUSTOMER_ID, new ReportConstraints(), null);
- reportId = reportData.getId();
+ var reportAck = cashFlowApi.generateCashFlowPersonalReport(CUSTOMER_ID, new CashFlowReportConstraints(), null);
+ reportId = reportAck.getId();
}
fetchReport(reportId, consumerId);
} catch (ApiException e) {
@@ -296,11 +326,18 @@ void getCashFlowPersonalReportByConsumerTest() throws Exception {
private static void fetchReport(String reportId, String consumerId) throws Exception {
String status;
do {
- System.out.println("Waiting for report " + reportId + " ...");
+ System.out.println("Fetching report " + reportId + " by consumer ID ...");
Thread.sleep(5000);
var report = api.getReportByConsumer(consumerId, reportId, ON_BEHALF_OF, PURPOSE);
assertNotNull(report);
status = report.getStatus();
} while (IN_PROGRESS.equals(status));
+ do {
+ System.out.println("Waiting for report " + reportId + " by customer ID ...");
+ Thread.sleep(5000);
+ var report = api.getReportByCustomer(CUSTOMER_ID, reportId, ON_BEHALF_OF, PURPOSE);
+ assertNotNull(report);
+ status = report.getStatus();
+ } while (IN_PROGRESS.equals(status));
}
}
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/TransactionsApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/TransactionsApiTest.java
index 46e4105..b4b3e30 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/TransactionsApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/TransactionsApiTest.java
@@ -1,8 +1,7 @@
package com.mastercard.finicity.client.api;
import com.mastercard.finicity.client.ApiException;
-import com.mastercard.finicity.client.model.ReportConstraints;
-import com.mastercard.finicity.client.model.ReportType;
+import com.mastercard.finicity.client.model.TransactionsReportConstraints;
import com.mastercard.finicity.client.test.BaseTest;
import com.mastercard.finicity.client.test.utils.AccountUtils;
import org.junit.jupiter.api.BeforeAll;
@@ -52,10 +51,10 @@ protected static void beforeAll() {
@Test
void generateTransactionsReportTest() {
try {
- var constraints = new ReportConstraints().accountIds(customerAccountList);
- var reportData = api.generateTransactionsReport(CUSTOMER_ID, toDate, constraints, null, true);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.TRANSACTIONS, reportData.getType());
+ var constraints = new TransactionsReportConstraints().accountIds(customerAccountList);
+ var reportAck = api.generateTransactionsReport(CUSTOMER_ID, toDate, constraints, null, true);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("transactions", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/VerifyAssetsApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/VerifyAssetsApiTest.java
index 0ea5cef..36423b0 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/VerifyAssetsApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/VerifyAssetsApiTest.java
@@ -1,8 +1,9 @@
package com.mastercard.finicity.client.api;
import com.mastercard.finicity.client.ApiException;
-import com.mastercard.finicity.client.model.ReportConstraints;
-import com.mastercard.finicity.client.model.ReportType;
+import com.mastercard.finicity.client.model.PrequalificationReportConstraints;
+import com.mastercard.finicity.client.model.VOAReportConstraints;
+import com.mastercard.finicity.client.model.VOAWithIncomeReportConstraints;
import com.mastercard.finicity.client.test.BaseTest;
import com.mastercard.finicity.client.test.utils.AccountUtils;
import com.mastercard.finicity.client.test.utils.ConsumerUtils;
@@ -33,11 +34,11 @@ protected static void beforeAll() {
@Test
void generatePrequalificationNonCRAReportTest() {
try {
- var reportConstraints = new ReportConstraints().accountIds(customerAccountList);
- var reportData = api.generatePrequalificationNonCRAReport(CUSTOMER_ID, reportConstraints, null);
- assertNotNull(reportData);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.ASSETSUMMARY, reportData.getType());
+ var reportConstraints = new PrequalificationReportConstraints().accountIds(customerAccountList);
+ var reportAck = api.generatePrequalificationNonCRAReport(CUSTOMER_ID, reportConstraints, null);
+ assertNotNull(reportAck);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("assetSummary", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -45,13 +46,13 @@ void generatePrequalificationNonCRAReportTest() {
}
@Test
- void generatePrequalificationReportTest() {
+ void generatePrequalificationCRAReportTest() {
try {
- var reportConstraints = new ReportConstraints().accountIds(customerAccountList);
- var reportData = api.generatePrequalificationReport(CUSTOMER_ID, reportConstraints, null);
- assertNotNull(reportData);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.PREQUALVOA, reportData.getType());
+ var reportConstraints = new PrequalificationReportConstraints().accountIds(customerAccountList);
+ var reportAck = api.generatePrequalificationCRAReport(CUSTOMER_ID, reportConstraints, null);
+ assertNotNull(reportAck);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("preQualVoa", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -61,11 +62,11 @@ void generatePrequalificationReportTest() {
@Test
void generateVOAReportTest() {
try {
- var reportConstraints = new ReportConstraints().accountIds(customerAccountList);
- var reportData = api.generateVOAReport(CUSTOMER_ID, reportConstraints, null);
- assertNotNull(reportData);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.VOA, reportData.getType());
+ var reportConstraints = new VOAReportConstraints().accountIds(customerAccountList);
+ var reportAck = api.generateVOAReport(CUSTOMER_ID, reportConstraints, null);
+ assertNotNull(reportAck);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("voa", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -75,11 +76,11 @@ void generateVOAReportTest() {
@Test
void generateVOAWithIncomeReportTest() {
try {
- var reportConstraints = new ReportConstraints().accountIds(customerAccountList);
- var reportData = api.generateVOAWithIncomeReport(CUSTOMER_ID, reportConstraints, null);
- assertNotNull(reportData);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.VOAHISTORY, reportData.getType());
+ var reportConstraints = new VOAWithIncomeReportConstraints().accountIds(customerAccountList);
+ var reportAck = api.generateVOAWithIncomeReport(CUSTOMER_ID, reportConstraints, null);
+ assertNotNull(reportAck);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("voaHistory", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
diff --git a/tests/src/test/java/com/mastercard/finicity/client/api/VerifyIncomeAndEmploymentApiTest.java b/tests/src/test/java/com/mastercard/finicity/client/api/VerifyIncomeAndEmploymentApiTest.java
index bf6c46a..8e54f1e 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/api/VerifyIncomeAndEmploymentApiTest.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/api/VerifyIncomeAndEmploymentApiTest.java
@@ -38,10 +38,10 @@ protected static void beforeAll() {
@Test
void generateVOIReportTest() {
try {
- var constraints = new ReportConstraints().accountIds(customerAccountList);
- var reportData = api.generateVOIReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.VOI, reportData.getType());
+ var constraints = new VOIReportConstraints().accountIds(customerAccountList);
+ var reportAck = api.generateVOIReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("voi", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -52,9 +52,9 @@ void generateVOIReportTest() {
void generateVOEPayrollReportTest() {
try {
var constraints = new PayrollReportConstraints().payrollData(ModelFactory.newPayrollData());
- var reportData = api.generateVOEPayrollReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.VOEPAYROLL, reportData.getType());
+ var reportAck = api.generateVOEPayrollReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("voePayroll", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -65,9 +65,9 @@ void generateVOEPayrollReportTest() {
void refreshVOIEPayrollReportTest() {
try {
var constraints = new PayrollReportConstraints().payrollData(ModelFactory.newPayrollData());
- var reportData = api.refreshVOIEPayrollReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.VOIEPAYROLL, reportData.getType());
+ var reportAck = api.refreshVOIEPayrollReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("voiePayroll", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -79,9 +79,9 @@ void generatePayStatementReportTest() {
try {
var constraints = new PayStatementReportConstraints().paystatementReport(new PayStatementData().addAssetIdsItem(existingAssetId));
// This report's final status will be 'failure' since the asset uploaded isn't a valid statement
- var reportData = api.generatePayStatementReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.PAYSTATEMENT, reportData.getType());
+ var reportAck = api.generatePayStatementReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("paystatement", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -104,10 +104,10 @@ void generatePayStatementReportTest_UnknownAsset() {
void generateVOIEPaystubReportTest() {
try {
var voieWithStatementData = new VOIEWithStatementData().addAssetIdsItem(existingAssetId);
- var constraints = new VOIEWithStatementReportConstraints().voieWithStatementData(voieWithStatementData);
- var reportData = api.generateVOIEPaystubReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.VOIETXVERIFY, reportData.getType());
+ var constraints = new VOIEReportConstraints().voieWithStatementData(voieWithStatementData);
+ var reportAck = api.generateVOIEPaystubReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("voieTxVerify", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -121,9 +121,9 @@ void generateVOIEPaystubWithTXVerifyReportTest() {
var constraints = new VOIEWithTXVerifyReportConstraints()
.voieWithInterviewData(voieWithInterviewData)
.accountIds(customerAccountList);
- var reportData = api.generateVOIEPaystubWithTXVerifyReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.VOIETXVERIFY, reportData.getType());
+ var reportAck = api.generateVOIEPaystubWithTXVerifyReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("voieTxVerify", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
@@ -134,9 +134,9 @@ void generateVOIEPaystubWithTXVerifyReportTest() {
void generateVOETransactionsReportTest() {
try {
var constraints = new VOETransactionsReportConstraints().accountIds(customerAccountList);
- var reportData = api.generateVOETransactionsReport(CUSTOMER_ID, constraints, null);
- assertEquals("inProgress", reportData.getStatus());
- assertEquals(ReportType.VOETRANSACTIONS, reportData.getType());
+ var reportAck = api.generateVOETransactionsReport(CUSTOMER_ID, constraints, null);
+ assertEquals("inProgress", reportAck.getStatus());
+ assertEquals("voeTransactions", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
diff --git a/tests/src/test/java/com/mastercard/finicity/client/test/ModelFactory.java b/tests/src/test/java/com/mastercard/finicity/client/test/ModelFactory.java
index 0a36076..31b0d9f 100644
--- a/tests/src/test/java/com/mastercard/finicity/client/test/ModelFactory.java
+++ b/tests/src/test/java/com/mastercard/finicity/client/test/ModelFactory.java
@@ -5,11 +5,11 @@
public final class ModelFactory {
- public static Borrower newBorrower(BorrowerType primary, String consumerId, String customerId) {
+ public static Borrower newBorrower(String borrower, String consumerId, String customerId) {
return new Borrower()
.consumerId(consumerId)
.customerId(customerId)
- .type(primary)
+ .type(borrower)
.optionalConsumerInfo(new ConsumerInfo()
.ssn("999999999")
.dob(470275200L)