/decisioning/v1/consumers/{consumerId}
Modify an existing consumer. All fields are required for a consumer record, but individual fields for this call are optional because fields that are not specified will be left unchanged.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| consumerId | path | optional | The consumer ID |
application/json
ConsumerUpdate
| Property | Type | Required |
|---|---|---|
| ssn | string | optional |
| zip | string | optional |
| city | string | optional |
| string | optional | |
| phone | string | optional |
| state | string | optional |
| suffix | string | optional |
| address | string | optional |
| birthday | object | optional |
| └ year | integer | optional |
| └ month | integer | optional |
| └ dayOfMonth | integer | optional |
| lastName | string | optional |
| firstName | string | optional |
The consumer was successfully updated
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
PUT /decisioning/v1/consumers/{consumerId}
/decisioning/v1/customers/{customerId}/consumer
Get the details of a consumer record by customer ID.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
The consumer was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /decisioning/v1/customers/{customerId}/consumer
/decisioning/v1/customers/{customerId}/consumer
Create a consumer record associated with the given customer. A consumer persists as the owner of any reports that are generated, even after the original customer is deleted from the system.
A consumer must be created for the given customer before calling any of the Generate Report services.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
application/json
NewConsumer
| Property | Type | Required |
|---|---|---|
| ssn | string | required |
| zip | string | required |
| city | string | required |
| string | optional | |
| phone | string | required |
| state | string | required |
| suffix | string | optional |
| address | string | required |
| birthday | object | required |
| └ year | integer | optional |
| └ month | integer | optional |
| └ dayOfMonth | integer | optional |
| lastName | string | required |
| firstName | string | required |
The consumer was successfully created
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
The resource already exists
POST /decisioning/v1/customers/{customerId}/consumer
/aggregation/v1/customers
Find all customers enrolled by the current partner, where the search text is found in the customer’s username or any combination of firstName and lastName fields. If no search text is provided, all customers will be returned.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| username | query | optional | Username for exact match (will return 0 or 1 record) |
|
| type | query | optional | “testing” or “active” to return only customers of that type, or leave empty to return all customers |
|
| search | query | optional | string | The text you wish to match. Leave this empty if you wish to return all customers. Must be URL-encoded (see: Handling Spaces in Queries). |
| start | query | optional | integer | Index of the page of results to return |
| limit | query | optional | integer | Maximum number of results per page |
Customers were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
GET /aggregation/v1/customers
/aggregation/v1/customers/{customerId}
Completely remove a customer from the system. This will remove the customer and all associated accounts and transactions.
⚠️ Use this service carefully! It will not pause for confirmation before performing the operation!
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
The customer was successfully deleted
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
DELETE /aggregation/v1/customers/{customerId}
/aggregation/v1/customers/{customerId}
Retrieve a customer by ID.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
The customer was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v1/customers/{customerId}
/aggregation/v1/customers/{customerId}
Modify an enrolled customer by ID.
You must specify either firstName, lastName, or both in the request.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
application/json
CustomerUpdate
| Property | Type | Required |
|---|---|---|
| lastName | string | optional |
| firstName | string | optional |
The customer was successfully updated
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
PUT /aggregation/v1/customers/{customerId}
/aggregation/v1/customers/{customerId}/application
Retrieve a customer along with additional details about the OAuth application.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
The customer was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v1/customers/{customerId}/application
/aggregation/v2/customers/active
Enroll an active customer, which is the actual owner of one or more real-world accounts. This is a billable customer.
Active customers must use the “FinBank Billable” profiles for testing purposes.
Supported regions:
application/json
NewCustomer
| Property | Type | Required |
|---|---|---|
| string | optional | |
| phone | string | optional |
| lastName | string | optional |
| username | string | required |
| firstName | string | optional |
| applicationId | string | optional |
The customer was successfully created
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The service can’t accept more requests or is not available from the Test Drive.
POST /aggregation/v2/customers/active
/aggregation/v2/customers/testing
Enroll a testing customer (Test Drive accounts).
For using testing customers with FinBank OAuth, you must register a test application with your systems engineer or account manager. Then, use that testing applicationId when creating testing customers.
Testing Customers can access FinBank profiles (except “FinBank Billable” profiles), and cannot access live financial institutions.
Supported regions:
application/json
NewCustomer
| Property | Type | Required |
|---|---|---|
| string | optional | |
| phone | string | optional |
| lastName | string | optional |
| username | string | required |
| firstName | string | optional |
| applicationId | string | optional |
The customer was successfully created
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
POST /aggregation/v2/customers/testing
/institution/v2/certifiedInstitutions
Search for financial institutions by certified product.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| search | query | optional | string | Search term (financial institution |
| start | query | optional | integer | Index of the page of results to return |
| limit | query | optional | integer | Maximum number of results per page |
| type | query | optional | string | A product type: “transAgg”, “ach”, “stateAgg”, “voi”, “voa”, “aha”, “availBalance”, “accountOwner” |
| supportedCountries | query | optional | array | A list of country codes, ‘*’ for all countries. |
Institutions were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
GET /institution/v2/certifiedInstitutions
/institution/v2/certifiedInstitutions/rssd
Search for certified financial institutions w/RSSD.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| search | query | optional | string | Search term (financial institution |
| start | query | optional | integer | Index of the page of results to return |
| limit | query | optional | integer | Maximum number of results per page |
| type | query | optional | string | A product type: “transAgg”, “ach”, “stateAgg”, “voi”, “voa”, “aha”, “availBalance”, “accountOwner” |
| supportedCountries | query | optional | array | A list of country codes, ‘*’ for all countries. |
Institutions were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
GET /institution/v2/certifiedInstitutions/rssd
/institution/v2/institutions
Search for financial institutions.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| search | query | optional | string | Search term (financial institution |
| start | query | optional | integer | Index of the page of results to return |
| limit | query | optional | integer | Maximum number of results per page |
| type | query | optional | string | A product type: “transAgg”, “ach”, “stateAgg”, “voi”, “voa”, “aha”, “availBalance”, “accountOwner” |
| supportedCountries | query | optional | array | A list of country codes, ‘*’ for all countries. |
Institutions were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
GET /institution/v2/institutions
/institution/v2/institutions/{institutionId}
Get financial institution details by ID.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| institutionId | path | optional | The institution ID |
Institution was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /institution/v2/institutions/{institutionId}
/institution/v2/institutions/{institutionId}/branding
Return the branding information for a financial institution.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| institutionId | path | optional | The institution ID |
Institution branding was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /institution/v2/institutions/{institutionId}/branding
/aggregation/v1/customers/{customerId}/payStatements
Upload pay statements for a customer.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
application/json
PayStatement
| Property | Type | Required |
|---|---|---|
| label | string | required |
| statement | string | required |
The pay statement was successfully uploaded
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /aggregation/v1/customers/{customerId}/payStatements
/analytics/payment-history/v1/customer/{customerId}
Payment history report analyzes up to 12-months of transactions and predicts the probability that a SMB will experience a payment risk event, such as NSF/Overdraft or missed recurring payments, in the near future when making a payment. The Risk Score provided in the report is a 2-digit ranking with four levels of risk going from low to high.
Some of the highlights of calculated risk present in the report include:
Risk Score representing the likelihood of a missed payment
based on analysis of permissioned open-banking data
Monthly average balance for all accounts by month in the requested
time period
Total deposit amount by month for all accounts in the requested time
period
Total withdrawal amounts by month for all accounts in the requested
time period
Number of NSF counts and aggregate amount per month in the requested
time period
This version of the API is intended for piloting and integration testing your application with the Payment History product. It does not adhere to FCRA requirements, and should not be used for production/lending purposes. See Generate Payment History - FCRA for the FCRA compliant version of this API.
Note: this is a premium service, billable per every successful API call for non-testing customers.
A successful call to this API will generate analytics and store a report within Finicity. The report can be retrieved via Get OBB Analytics Report (operation: GetObbAnalyticsReport).
Note: this is a premium service, billable per every successful API call for non-testing customers.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| reference-number | query | optional | string | Partner-provided reference number to correlate reports. |
Response given when payment history was generated successfully, providing the caller with a report ID which can be used to retrieve the report as JSON or a PDF.
A bad request was provided
Unauthorized request
Access forbidden
Resource not found
POST /analytics/payment-history/v1/customer/{customerId}
/analytics/payment-history/v1/customer/{customerId}/fcra
Payment history report analyzes up to 12-months of transactions and predicts the probability that a SMB will experience a payment risk event, such as NSF/Overdraft or missed recurring payments, in the near future when making a payment. The Risk Score provided in the report is a 2-digit ranking with four levels of risk going from low to high.
Some of the highlights of calculated risk present in the report include:
Risk Score representing the likelihood of a missed payment
based on analysis of permissioned open-banking data
Monthly average balance for all accounts by month in the requested
time period
Total deposit amount by month for all accounts in the requested time
period
Total withdrawal amounts by month for all accounts in the requested
time period
Number of NSF counts and aggregate amount per month in the requested
time period
This version of the API is intended for production use. It maintains and
enforces all compliance with FCRA rules and requirements.
Note: this is a premium service, billable per every successful API call for non-testing customers.
A successful call to this API will generate analytics and store a report within Finicity. The report can be retrieved via Get OBB Analytics Report - FCRA (operation: GetObbAnalyticsReportFcra).
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| reference-number | query | optional | string | Partner-provided reference number to correlate reports. |
Response given when payment history (FCRA) was generated successfully, providing the caller with a report ID which can be used to retrieve the report as JSON or a PDF.
A bad request was provided
Unauthorized request
Access forbidden
Resource not found
Resource conflict
POST /analytics/payment-history/v1/customer/{customerId}/fcra
/aggregation/v1/customers/{customerId}/accounts/{accountId}/availableBalance
Retrieve the latest cached available and cleared account balances for a customer. Since we update and store balances throughout the day, this is the most accurate balance information available when a connection to a financial institution is unavailable or when a faster response is needed. Only deposit account types are supported: Checking, Savings, Money Market, and CD.
Note: this is a premium service, billable per every successful API call. Enrollment is required.
Supported account types: “checking”, “savings”, “moneyMarket”, “cd”
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
The balance was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/availableBalance
/aggregation/v1/customers/{customerId}/accounts/{accountId}/availableBalance/live
Retrieve the available and cleared account balances for a single account in real-time directly from a financial institution.
Note: this is a premium service, billable per every successful API call.
Supported account types: “checking”, “savings”, “moneyMarket”, “cd”
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
The live balance was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/availableBalance/live
/aggregation/v1/customers/{customerId}/accounts/{accountId}/details
Return the real account number and routing number details for an ACH payment.
Note: this is a premium service, billable per every successful API call.
Supported account types: “checking”, “savings”, “moneyMarket”, “cd”
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
Account ACH details were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/details
/aggregation/v1/customers/{customerId}/accounts/{accountId}/owner
Retrieve the names and addresses of the account owner from a financial institution.
Note: this is a premium service, billable per every successful API call.
This service retrieves account data from the institution. This usually returns quickly, but in some scenarios may take a few minutes to complete. In the event of a timeout condition, retry the call.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
The account owner was successfully retrieved
The response contains an MFA challenge in XML or JSON format. Contact your Account Manager or Systems Engineers to determine the best route to handle this error.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/owner
/aggregation/v2/customers/{customerId}/accounts/{accountId}/loanDetails
Return the loan payment details of the customer for a loan-type account.
Note: this is a premium service, billable per every successful API call.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
The loan payment details were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v2/customers/{customerId}/accounts/{accountId}/loanDetails
/aggregation/v3/customers/{customerId}/accounts/{accountId}/details
Return the real account number and routing number details for an ACH payment along with the supported payment instruction details.
Note: this is a premium service, billable per every successful API call.
Supported account types: “checking”, “savings”, “moneyMarket”, “loan”
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
Account ACH details were successfully retrieved
The request was rejected due to validation failures
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v3/customers/{customerId}/accounts/{accountId}/details
/aggregation/v3/customers/{customerId}/accounts/{accountId}/owner
This service retrieves the account details for an account holder from an institution. The following data objects are available.
Account holders
Addresses
Emails
Phones
Documentations
Identity Insights
Note: The data returned varies from institution to institution as not all of them make the same data available. This is a premium service, billable per each successful API call.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
|
| withInsights | query | optional | If this parameter is true, Identity Insights data will be returned along with the account owner information |
The account owner was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
GET /aggregation/v3/customers/{customerId}/accounts/{accountId}/owner
/decisioning/v1/consumers/{consumerId}/portfolios/{portfolioId}
Return a portfolio of most recently generated reports for each report type for a given consumer. If there are multiple reports that were generated for a report type (VOA, VOI, etc.), only the most recently generated report for the type will be returned.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| consumerId | path | optional | The consumer ID |
|
| portfolioId | path | optional | A portfolio ID with the portfolio version number. Using the portfolio number without a version number will return the most recently generated reports. |
The portfolio was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /decisioning/v1/consumers/{consumerId}/portfolios/{portfolioId}
/decisioning/v1/customers/{customerId}/portfolios/{portfolioId}
Return a portfolio of most recently generated reports for each report type for the given customer. If there are multiple reports that were generated for a report type (VOA, VOI, etc.), only the most recently generated report for the type will be returned.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| portfolioId | path | optional | A portfolio ID with the portfolio version number. Using the portfolio number without a version number will return the most recently generated reports. |
The portfolio was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /decisioning/v1/customers/{customerId}/portfolios/{portfolioId}
/decisioning/v1/consumers/{consumerId}/reports
Get all reports that have been generated by previous calls to Generate Report services for the given consumer.
The status fields in the returned list contain “inProgress”, “failure”, or “success”. If the status shows “inProgress”, the client app should wait 20 seconds and then call this API again.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| purpose | query | optional | 2-digit code from Permissible Purpose Codes, specifying the reason for retrieving this report. Required for retrieving some reports. |
|
| consumerId | path | optional | The consumer ID |
The reports summaries were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
The service can’t accept more requests or is not available from the Test Drive.
GET /decisioning/v1/consumers/{consumerId}/reports
/decisioning/v1/customers/{customerId}/reports
Get all reports that have been generated by previous calls to Generate Report services for the given customer.
The status fields in the returned list contain “inProgress”, “failure”, or “success”. If the status shows “inProgress”, the client app should wait 20 seconds and then call this API again.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| purpose | query | optional | 2-digit code from Permissible Purpose Codes, specifying the reason for retrieving this report. Required for retrieving some reports. |
The reports summaries were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
The service can’t accept more requests or is not available from the Test Drive.
GET /decisioning/v1/customers/{customerId}/reports
/decisioning/v3/consumers/{consumerId}/reports/{reportId}
Get a report that has been generated by a previous call to one of the Generate Report services.
The report’s status field contains “inProgress”, “failure”, or “success”. If the status shows “inProgress”, the client app should wait 20 seconds and then call this API again.
Report data can either be retrieved as a JSON document or a PDF file. To specify the format required, set the Accept request header to either application/json or application/pdf. If neither is set, the report format will be returned as a JSON document.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| purpose | query | optional | 2-digit code from Permissible Purpose Codes, specifying the reason for retrieving this report. Required for retrieving some reports. |
|
| consumerId | path | optional | The consumer ID |
|
| reportId | path | optional | ID of the report |
|
| onBehalfOf | query | optional | string | The name of the entity you are retrieving the report on behalf of |
The report was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /decisioning/v3/consumers/{consumerId}/reports/{reportId}
/decisioning/v3/customers/{customerId}/reports/{reportId}
Get a report that has been generated by a previous call to one of the Generate Report services.
The report’s status field contains “inProgress”, “failure”, or “success”. If the status shows “inProgress”, the client app should wait 20 seconds and then call this API again.
Report data can either be retrieved as a JSON document or a PDF file. To specify the format required, set the Accept request header to either application/json or application/pdf. If neither is set, the report format will be returned as a JSON document.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| reportId | path | optional | ID of the report |
|
| onBehalfOf | query | optional | string | The name of the entity you are retrieving the report on behalf of |
| purpose | query | optional | 2-digit code from Permissible Purpose Codes, specifying the reason for retrieving this report. Required for retrieving some reports. |
The report was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /decisioning/v3/customers/{customerId}/reports/{reportId}
/aggregation/v1/partners/accessKey
Generate access key for third party partners.
A partner can provide access to third party partners with this access key.
application/json
ThirdPartyAccessKeyData
| Property | Type | Required |
|---|---|---|
| products | array | required |
| └ payorId | string | optional |
| └ product | string | required |
| └ maxCalls | integer | optional |
| └ accountId | string | required |
| └ accessPeriod | object | required |
| └ type | string | required |
| └ endTime | string | required |
| └ startTime | string | required |
| partnerId | string | required |
| customerId | string | required |
| provenance | object | optional |
| └ token | string | optional |
| └ ipAddress | string | optional |
| └ clientFingerprint | string | optional |
| thirdPartyPartnerId | string | required |
The third party access key was successfully generated
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /aggregation/v1/partners/accessKey
/aggregation/v1/partners/accessKey/{consentReceiptId}
Revoke access of third party partners
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| consentReceiptId | path | optional | Third party access key receipt ID |
The third party access key was successfully revoked
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
DELETE /aggregation/v1/partners/accessKey/{consentReceiptId}
/aggregation/v1/partners/accessKey/{consentReceiptId}
Update access for third party partners
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| consentReceiptId | path | optional | Third party access key receipt ID |
application/json
ThirdPartyAccessKeyData
| Property | Type | Required |
|---|---|---|
| products | array | required |
| └ payorId | string | optional |
| └ product | string | required |
| └ maxCalls | integer | optional |
| └ accountId | string | required |
| └ accessPeriod | object | required |
| └ type | string | required |
| └ endTime | string | required |
| └ startTime | string | required |
| partnerId | string | required |
| customerId | string | required |
| provenance | object | optional |
| └ token | string | optional |
| └ ipAddress | string | optional |
| └ clientFingerprint | string | optional |
| thirdPartyPartnerId | string | required |
The third party access key was successfully updated
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
PUT /aggregation/v1/partners/accessKey/{consentReceiptId}
/aggregation/v1/customers/{customerId}/accounts/{accountId}/transactions/historic
Connect to the account’s financial institution and load up to 24 months of historic transactions for the account. Length of history varies by institution.
This is a premium service. The billable event is a call to this service specifying a customer ID that has not been seen before by this service. (If this service is called multiple times with the same customer ID, to load transactions from multiple accounts, only one billable event has occurred.)
The recommended timeout setting for this request is 180 seconds in order to receive a response. However, you can terminate the connection after making the call the operation will still complete. You will have to pull the account records to check for an updated aggregation attempt date to know when the refresh is complete.
The date range sent to the institution is calculated from the account’s createdDate. This means that calling this service a second time for the same account normally will not add any new transactions for the account. For this reason, a second call to this service for a known account ID will usually return immediately.
In a few specific scenarios, it may be desirable to force a second connection to the institution for a known account ID. Some examples are:
In these cases, the POST request can contain the parameter force=true in the request body to force the second connection.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
The response contains an MFA challenge in XML or JSON format. Contact your Account Manager or Systems Engineers to determine the best route to handle this error.
Historic transactions have been loaded successfully. The transactions are now available by calling the Get Customer Account Transactions API.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /aggregation/v1/customers/{customerId}/accounts/{accountId}/transactions/historic
/aggregation/v2/customers/{customerId}/transactions/{transactionId}
Get details for the given transaction.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| transactionId | path | optional | A transaction ID |
The transaction was successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v2/customers/{customerId}/transactions/{transactionId}
/aggregation/v3/customers/{customerId}/transactions
Get all transactions available for this customer within the given date range, across all accounts. This service supports paging and sorting by transactionDate (or postedDate if no transaction date is provided), with a maximum of 1000 transactions per request.
Standard consumer aggregation provides up to 180 days of transactions prior to the date each account was added to the Finicity system. To access older transactions, you must first call the service Load Historic Transactions for Account.
There is no limit for the size of the window between fromDate and toDate, however, the maximum number of transactions returned on one page is 1000.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| fromDate | query | optional | A start date |
|
| toDate | query | optional | A end date |
|
| start | query | optional | integer | Index of the page of results to return |
| limit | query | optional | integer | Maximum number of results per page |
| sort | query | optional | string | Date sort order: “asc” for ascending, “desc” for descending |
| includePending | query | optional | If pending transactions must be included |
The transactions were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v3/customers/{customerId}/transactions
/aggregation/v4/customers/{customerId}/accounts/{accountId}/transactions
Get all transactions available for this customer account within the given date range. This service supports paging and sorting by transactionDate (or postedDate if no transaction date is provided), with a maximum of 1000 transactions per request.
Standard consumer aggregation provides up to 180 days of transactions prior to the date each account was added to the Finicity system. To access older transactions, you must first call the Cash Flow Verification service Load Historic Transactions for Account.
There is no limit for the size of the window between fromDate and toDate, however, the maximum number of transactions returned on one page is 1000.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
|
| fromDate | query | optional | A start date |
|
| toDate | query | optional | A end date |
|
| start | query | optional | integer | Index of the page of results to return |
| limit | query | optional | integer | Maximum number of results per page |
| sort | query | optional | string | Date sort order: “asc” for ascending, “desc” for descending |
| includePending | query | optional | If pending transactions must be included |
The transactions were successfully retrieved
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
GET /aggregation/v4/customers/{customerId}/accounts/{accountId}/transactions
/decisioning/v2/customers/{customerId}/transactions
Generate a Transaction Report for the given accounts under the given customer. This service retrieves up to 24 months of transaction history for the given customer. It then uses this information to generate the Transaction Report.
This is a premium service. A billable event will be created upon the successful generation of the Transactions Report.
Before calling this API, a consumer must be created for the given customer ID (see Consumers APIs).
There cannot be more than 24 months between fromDate and toDate.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| callbackUrl | query | optional | string | A Report Listener URL to receive notifications. The webhook must respond to the Finicity API with a 2xx HTTP status code. |
| customerId | path | optional | A customer ID |
|
| toDate | query | optional | A end date |
|
| includePending | query | optional | If pending transactions must be included |
application/json
TransactionsReportConstraints
| Property | Type | Required |
|---|---|---|
| fromDate | integer | optional |
| accountIds | string | optional |
| reportCustomFields | array | optional |
| └ label | string | optional |
| └ shown | boolean | optional |
| └ value | string | optional |
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.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /decisioning/v2/customers/{customerId}/transactions
/aggregation/v1/customers/{customerId}/accounts/{accountId}/transactions
Inject a transaction into the transaction list for a testing account. This allows an app to trigger TxPush notifications for the account in order to test the app’s TxPush Listener service. This causes the platform to send one transaction event and one account event (showing that the account balance has changed). This service is only supported for testing accounts.
For additional details on this process, see TxPush Listener Service.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
application/json
TestTxPushTransaction
| Property | Type | Required |
|---|---|---|
| amount | number | required |
| status | string | optional |
| postedDate | integer | optional |
| description | string | required |
| transactionDate | integer | required |
The test notification was successfully sent
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /aggregation/v1/customers/{customerId}/accounts/{accountId}/transactions
/aggregation/v1/customers/{customerId}/accounts/{accountId}/txpush
Delete all TxPush subscriptions with their notifications for the given account. No more notifications will be sent for account or transaction events.
For additional details on this process, see TxPush Listener Service.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
Subscriptions were successfully deleted for the given account
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
DELETE /aggregation/v1/customers/{customerId}/accounts/{accountId}/txpush
/aggregation/v1/customers/{customerId}/accounts/{accountId}/txpush
Register a client app’s TxPush Listener to receive TxPush notifications related to the given account.
Each call to this service will return two records, one with class account and one with class transaction. Account events are sent when values change in the account’s fields (such as balance or interestRate). Transaction events are sent whenever a new transaction is posted for the account. For institutions that do not provide TxPush services, notifications are sent as soon as Finicity finds a new transaction or new account data through regular aggregation processes.
The listener’s URL must be secure (HTTPS) for any real-world account. In addition, the client’s TxPush Listener will need to be verified. HTTP and HTTPS connections are only allowed on the standard ports 80 (HTTP) and 443 (HTTPS). The use of other ports will result with the call failing.
For additional details on this process, see TxPush Listener Service.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| accountId | path | optional | The account ID |
application/json
TxPushSubscriptionParameters
| Property | Type | Required |
|---|---|---|
| callbackUrl | string | required |
The subscription was successfully created
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /aggregation/v1/customers/{customerId}/accounts/{accountId}/txpush
/aggregation/v1/customers/{customerId}/subscriptions/{subscriptionId}
Delete a specific subscription to TxPush notifications for the given account. This could be individual deleting the account or transactions events. No more events will be sent for that specific subscription.
For additional details on this process, see TxPush Listener Service.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| subscriptionId | path | optional | The subscription ID |
The subscription was successfully deleted
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
DELETE /aggregation/v1/customers/{customerId}/subscriptions/{subscriptionId}
/decisioning/v2/customers/{customerId}/assetSummary
Retrieve all checking, savings, money market, and investment accounts for a customer. The account, owner information, and the number of insufficient funds (NSFs) for checking accounts are also provided.
If no account type of checking, savings, money market, or investment is found, the service will return HTTP 400 Bad Request.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| callbackUrl | query | optional | string | A Report Listener URL to receive notifications. The webhook must respond to the Finicity API with a 2xx HTTP status code. |
application/json
PrequalificationReportConstraints
| Property | Type | Required |
|---|---|---|
| showNsf | boolean | optional |
| fromDate | integer | optional |
| accountIds | string | optional |
| reportCustomFields | array | optional |
| └ label | string | optional |
| └ shown | boolean | optional |
| └ value | string | optional |
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.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /decisioning/v2/customers/{customerId}/assetSummary
/decisioning/v2/customers/{customerId}/preQualVoa
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 found, the service will return HTTP 400 Bad Request.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| callbackUrl | query | optional | string | A Report Listener URL to receive notifications. The webhook must respond to the Finicity API with a 2xx HTTP status code. |
application/json
PrequalificationReportConstraints
| Property | Type | Required |
|---|---|---|
| showNsf | boolean | optional |
| fromDate | integer | optional |
| accountIds | string | optional |
| reportCustomFields | array | optional |
| └ label | string | optional |
| └ shown | boolean | optional |
| └ value | string | optional |
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.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /decisioning/v2/customers/{customerId}/preQualVoa
/decisioning/v2/customers/{customerId}/voa
Generate a Verification of Assets (VOA) report for all checking, savings, money market, and investment accounts for the given customer. This service retrieves up to twelve months of transaction history for each account and uses this information to generate the VOA report.
This is a premium service. The billing rate is the variable rate for Verification of Assets under the current subscription plan. The billable event is the successful generation of a VOA report.
Before calling this API, a consumer must be created for the given customer ID (see Consumers APIs).
If no account of type checking, savings, money market, or investment is found, the service will return HTTP 400 Bad Request.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| callbackUrl | query | optional | string | A Report Listener URL to receive notifications. The webhook must respond to the Finicity API with a 2xx HTTP status code. |
application/json
VOAReportConstraints
| Property | Type | Required |
|---|---|---|
| showNsf | boolean | optional |
| fromDate | integer | optional |
| accountIds | string | optional |
| reportCustomFields | array | optional |
| └ label | string | optional |
| └ shown | boolean | optional |
| └ value | string | optional |
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.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /decisioning/v2/customers/{customerId}/voa
/decisioning/v2/customers/{customerId}/voaHistory
Generate a Verification of Assets with Income (VOAI) report for all checking, savings, money market, and investment accounts for the given customer. This service retrieves up to 24 months of transaction history for each account and uses this information to generate the VOAI report. The report includes 1 - 6 months of all debit and credit transactions for asset verification. By default, the history is set to 61 days, however, you can change the transaction history in this section by setting the fromDate parameter. The report also includes up to 24 months of income credit transactions (ordered by account and confidence level) regardless of fromDate for income verification.
This is a premium service. The billable event is the successful generation of a VOAI report.
Before calling this API, a consumer must be created for the given customer ID (see Consumers APIs).
If no account of type checking, savings, money market, or investment is found, the service will return HTTP 400 Bad Request.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| callbackUrl | query | optional | string | A Report Listener URL to receive notifications. The webhook must respond to the Finicity API with a 2xx HTTP status code. |
application/json
VOAWithIncomeReportConstraints
| Property | Type | Required |
|---|---|---|
| showNsf | boolean | optional |
| fromDate | integer | optional |
| accountIds | string | optional |
| reportCustomFields | array | optional |
| └ label | string | optional |
| └ shown | boolean | optional |
| └ value | string | optional |
| incomeStreamConfidenceMinimum | integer | optional |
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.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /decisioning/v2/customers/{customerId}/voaHistory
/decisioning/v2/customers/{customerId}/payStatement
Generate Pay Statement Extraction Report for the given customer. This service accepts asset IDs of the stored pay statements to generate a Pay Statement Extraction Report.
This is a premium service. The billing rate is the variable rate for Pay Statement Extraction Report under the current subscription plan. The billable event is the successful generation of a Pay Statement Extraction Report.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| callbackUrl | query | optional | string | A Report Listener URL to receive notifications. The webhook must respond to the Finicity API with a 2xx HTTP status code. |
application/json
PayStatementReportConstraints
| Property | Type | Required |
|---|---|---|
| paystatementReport | object | required |
| └ assetIds | array | required |
| └ extractEarnings | boolean | optional |
| └ extractDeductions | boolean | optional |
| └ extractDirectDeposit | boolean | optional |
| reportCustomFields | array | optional |
| └ label | string | optional |
| └ shown | boolean | optional |
| └ value | string | optional |
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.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /decisioning/v2/customers/{customerId}/payStatement
/decisioning/v2/customers/{customerId}/voePayroll
Generate or refresh a VOE - Payroll report. Often used as a complementary report to the VOIE-Payroll report to fulfill the pre-close VOE requirements. It retrieves the customer’s employment details and employment status through the payroll source without any income information.
This is a premium service. The billable event is the successful generation of a VOE - Payroll report.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| callbackUrl | query | optional | string | A Report Listener URL to receive notifications. The webhook must respond to the Finicity API with a 2xx HTTP status code. |
application/json
PayrollReportConstraints
| Property | Type | Required |
|---|---|---|
| purpose | string | optional |
| payrollData | object | required |
| └ dob | integer | required |
| └ ssn | string | required |
| └ reportId | string | optional |
| marketSegment | string | optional |
| excludeEmpInfo | boolean | optional |
| reportCustomFields | array | optional |
| └ label | string | optional |
| └ shown | boolean | optional |
| └ value | string | optional |
| payStatementsFromDate | integer | optional |
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.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /decisioning/v2/customers/{customerId}/voePayroll
/decisioning/v2/customers/{customerId}/voeTransactions
Premium Service: A billable event when the API response is successful.
MVS-Direct integration developers only.
Used as a complimentary report to the VOA with Income and VOIE - Paystub (with TXVerify) reports and used to fulfill the pre-close VOE requirements.
Retrieve the latest credit transaction information from the borrower’s connected bank accounts and groups them into income streams so that you can view their payment history to ensure a direct deport was made within the expected cadence. The report displays transaction descriptions without any dollar amounts so that income re-verification isn’t necessary.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| callbackUrl | query | optional | string | A Report Listener URL to receive notifications. The webhook must respond to the Finicity API with a 2xx HTTP status code. |
application/json
VOETransactionsReportConstraints
| Property | Type | Required |
|---|---|---|
| fromDate | integer | optional |
| reportId | string | optional |
| accountIds | string | optional |
| reportCustomFields | array | optional |
| └ label | string | optional |
| └ shown | boolean | optional |
| └ value | string | optional |
| incomeStreamConfidenceMinimum | integer | optional |
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.
The request was rejected
The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.
The resource doesn’t exist
POST /decisioning/v2/customers/{customerId}/voeTransactions