Consumers 3 endpoints

PUT /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:

operationId: Consumers_modifyById

Parameters

Name In Required Type Description
consumerId path optional

The consumer ID

Request Body

application/json
schema ConsumerUpdate
Property Type Required
ssn string optional
zip string optional
city string optional
email 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

Responses

204

The consumer was successfully updated

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

PUT /decisioning/v1/consumers/{consumerId}
GET /decisioning/v1/customers/{customerId}/consumer

Get the details of a consumer record by customer ID.

Supported regions:

operationId: Consumers_getByCustomerId

Parameters

Name In Required Type Description
customerId path optional

A customer ID

Responses

200

The consumer was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /decisioning/v1/customers/{customerId}/consumer
POST /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:

operationId: Consumers_createConsumerRecord

Parameters

Name In Required Type Description
customerId path optional

A customer ID

Request Body

application/json
schema NewConsumer
Property Type Required
ssn string required
zip string required
city string required
email 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

Responses

201

The consumer was successfully created

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

409

The resource already exists

POST /decisioning/v1/customers/{customerId}/consumer

Customers 7 endpoints

GET /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:

operationId: Customers_findEnrolledUsers

Parameters

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

Responses

200

Customers were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

GET /aggregation/v1/customers
DELETE /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:

operationId: Customers_removeById

Parameters

Name In Required Type Description
customerId path optional

A customer ID

Responses

204

The customer was successfully deleted

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

DELETE /aggregation/v1/customers/{customerId}
GET /aggregation/v1/customers/{customerId}

Retrieve a customer by ID.

Supported regions:

operationId: Customers_getById

Parameters

Name In Required Type Description
customerId path optional

A customer ID

Responses

200

The customer was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v1/customers/{customerId}
PUT /aggregation/v1/customers/{customerId}

Modify an enrolled customer by ID.

You must specify either firstName, lastName, or both in the request.

Supported regions:

operationId: Customers_modifyById

Parameters

Name In Required Type Description
customerId path optional

A customer ID

Request Body

application/json
schema CustomerUpdate
Property Type Required
lastName string optional
firstName string optional

Responses

204

The customer was successfully updated

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

PUT /aggregation/v1/customers/{customerId}
GET /aggregation/v1/customers/{customerId}/application

Retrieve a customer along with additional details about the OAuth application.

Supported regions:

operationId: Customers_getWithAppDataById

Parameters

Name In Required Type Description
customerId path optional

A customer ID

Responses

200

The customer was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v1/customers/{customerId}/application
POST /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:

operationId: Customers_enrollActiveCustomer

Request Body

application/json
schema NewCustomer
Property Type Required
email string optional
phone string optional
lastName string optional
username string required
firstName string optional
applicationId string optional

Responses

201

The customer was successfully created

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

429

The service can’t accept more requests or is not available from the Test Drive.

POST /aggregation/v2/customers/active
POST /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:

operationId: Customers_enrollTestingCustomer

Request Body

application/json
schema NewCustomer
Property Type Required
email string optional
phone string optional
lastName string optional
username string required
firstName string optional
applicationId string optional

Responses

201

The customer was successfully created

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

POST /aggregation/v2/customers/testing

Institutions 5 endpoints

GET /institution/v2/certifiedInstitutions

Search for financial institutions by certified product.

Supported regions:

operationId: Institutions_listCertifiedInstitutions

Parameters

Name In Required Type Description
search query optional string

Search term (financial institution name field). Leave empty for all FIs.

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.

Responses

200

Institutions were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

GET /institution/v2/certifiedInstitutions
GET /institution/v2/certifiedInstitutions/rssd

Search for certified financial institutions w/RSSD.

Supported regions:

operationId: Institutions_getCertifiedInstitutionsWithRssd

Parameters

Name In Required Type Description
search query optional string

Search term (financial institution name field). Leave empty for all FIs.

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.

Responses

200

Institutions were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

GET /institution/v2/certifiedInstitutions/rssd
GET /institution/v2/institutions

Search for financial institutions.

Supported regions:

operationId: Institutions_searchFinancialInstitutions

Parameters

Name In Required Type Description
search query optional string

Search term (financial institution name field). Leave empty for all FIs.

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.

Responses

200

Institutions were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

GET /institution/v2/institutions
GET /institution/v2/institutions/{institutionId}

Get financial institution details by ID.

Supported regions:

operationId: Institutions_getByIdDetails

Parameters

Name In Required Type Description
institutionId path optional

The institution ID

Responses

200

Institution was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /institution/v2/institutions/{institutionId}
GET /institution/v2/institutions/{institutionId}/branding

Return the branding information for a financial institution.

Supported regions:

operationId: Institutions_getBrandingById

Parameters

Name In Required Type Description
institutionId path optional

The institution ID

Responses

200

Institution branding was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /institution/v2/institutions/{institutionId}/branding

Paystatements 1 endpoints

POST /aggregation/v1/customers/{customerId}/payStatements

Upload pay statements for a customer.

Supported regions:

operationId: PayStatements_uploadForCustomer

Parameters

Name In Required Type Description
customerId path optional

A customer ID

Request Body

application/json
schema PayStatement
Property Type Required
label string required
statement string required

Responses

200

The pay statement was successfully uploaded

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /aggregation/v1/customers/{customerId}/payStatements

Paymenthistory 2 endpoints

POST /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

  • Recurring loan payment amounts per month in the requested time period
  • Insurance payment amount per month in the requested time period
  • Tax payment amounts 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:

operationId: PaymentHistory_generateCustomerPaymentReport

Parameters

Name In Required Type Description
customerId path optional

A customer ID

reference-number query optional string

Partner-provided reference number to correlate reports.

Responses

200

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.

400

A bad request was provided

401

Unauthorized request

403

Access forbidden

404

Resource not found

POST /analytics/payment-history/v1/customer/{customerId}
POST /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

  • Recurring loan payment amounts per month in the requested time period
  • Insurance payment amount per month in the requested time period
  • Tax payment amounts 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:

operationId: PaymentHistory_generateFcraPaymentReport

Parameters

Name In Required Type Description
customerId path optional

A customer ID

reference-number query optional string

Partner-provided reference number to correlate reports.

Responses

200

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.

400

A bad request was provided

401

Unauthorized request

403

Access forbidden

404

Resource not found

409

Resource conflict

POST /analytics/payment-history/v1/customer/{customerId}/fcra

Payments 7 endpoints

GET /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:

operationId: Payments_getLatestCachedBalance

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Responses

200

The balance was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/availableBalance
GET /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:

operationId: Payments_getAvailableBalanceLive

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Responses

200

The live balance was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/availableBalance/live
GET /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:

operationId: Payments_getAchDetails

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Responses

200

Account ACH details were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/details
GET /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:

operationId: Payments_getAccountOwnerDetails

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Responses

200

The account owner was successfully retrieved

203

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.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/owner
GET /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:

operationId: Payments_getLoanPaymentDetails

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Responses

200

The loan payment details were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v2/customers/{customerId}/accounts/{accountId}/loanDetails
GET /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:

operationId: Payments_getAchAccountDetails

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Responses

200

Account ACH details were successfully retrieved

400

The request was rejected due to validation failures

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v3/customers/{customerId}/accounts/{accountId}/details
GET /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:

operationId: Payments_getAccountOwnerDetails

Parameters

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

Responses

200

The account owner was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

GET /aggregation/v3/customers/{customerId}/accounts/{accountId}/owner

Portfolios 2 endpoints

GET /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:

operationId: Portfolios_getPortfolioByConsumer

Parameters

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.

Responses

200

The portfolio was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /decisioning/v1/consumers/{consumerId}/portfolios/{portfolioId}
GET /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:

operationId: Portfolios_getMostRecentReports

Parameters

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.

Responses

200

The portfolio was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /decisioning/v1/customers/{customerId}/portfolios/{portfolioId}

Reports 4 endpoints

GET /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:

operationId: Reports_byConsumerId

Parameters

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

Responses

200

The reports summaries were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

429

The service can’t accept more requests or is not available from the Test Drive.

GET /decisioning/v1/consumers/{consumerId}/reports
GET /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:

operationId: Reports_byCustomerId

Parameters

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.

Responses

200

The reports summaries were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

429

The service can’t accept more requests or is not available from the Test Drive.

GET /decisioning/v1/customers/{customerId}/reports
GET /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:

operationId: Reports_getByConsumerAndId

Parameters

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

Responses

200

The report was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /decisioning/v3/consumers/{consumerId}/reports/{reportId}
GET /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:

operationId: Reports_getStatus

Parameters

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.

Responses

200

The report was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /decisioning/v3/customers/{customerId}/reports/{reportId}

Thirdpartyaccess 3 endpoints

POST /aggregation/v1/partners/accessKey

Generate access key for third party partners.
A partner can provide access to third party partners with this access key.

operationId: ThirdPartyAccess_generateKey

Request Body

application/json
schema 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

Responses

200

The third party access key was successfully generated

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /aggregation/v1/partners/accessKey
DELETE /aggregation/v1/partners/accessKey/{consentReceiptId}

Revoke access of third party partners

operationId: ThirdPartyAccess_revokePartnersAccess

Parameters

Name In Required Type Description
consentReceiptId path optional

Third party access key receipt ID

Responses

204

The third party access key was successfully revoked

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

DELETE /aggregation/v1/partners/accessKey/{consentReceiptId}
PUT /aggregation/v1/partners/accessKey/{consentReceiptId}

Update access for third party partners

operationId: ThirdPartyAccess_updateAccess

Parameters

Name In Required Type Description
consentReceiptId path optional

Third party access key receipt ID

Request Body

application/json
schema 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

Responses

200

The third party access key was successfully updated

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

PUT /aggregation/v1/partners/accessKey/{consentReceiptId}

Transactions 5 endpoints

POST /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:

  • The institution’s policy has changed, making more transactions available
  • Finicity has now added a longer transaction history support for the institution
  • The first call encountered an error, and the resulting Aggregation Ticket has now been fixed by the Finicity Support Team

In these cases, the POST request can contain the parameter force=true in the request body to force the second connection.

Supported regions:

operationId: Transactions_loadHistoricTransactionsForCustomerAccount

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Responses

203

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.

204

Historic transactions have been loaded successfully. The transactions are now available by calling the Get Customer Account Transactions API.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /aggregation/v1/customers/{customerId}/accounts/{accountId}/transactions/historic
GET /aggregation/v2/customers/{customerId}/transactions/{transactionId}

Get details for the given transaction.

Supported regions:

operationId: Transactions_getById

Parameters

Name In Required Type Description
customerId path optional

A customer ID

transactionId path optional

A transaction ID

Responses

200

The transaction was successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v2/customers/{customerId}/transactions/{transactionId}
GET /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:

operationId: Transactions_getAllCustomerTransactions

Parameters

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

Responses

200

The transactions were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v3/customers/{customerId}/transactions
GET /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:

operationId: Transactions_getCustomerAccountTransactions

Parameters

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

Responses

200

The transactions were successfully retrieved

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

GET /aggregation/v4/customers/{customerId}/accounts/{accountId}/transactions
POST /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:

operationId: Transactions_get24MonthsHistoryAndGenerateReport

Parameters

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

Request Body

application/json
schema TransactionsReportConstraints
Property Type Required
fromDate integer optional
accountIds string optional
reportCustomFields array optional
label string optional
shown boolean optional
value string optional

Responses

202

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.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /decisioning/v2/customers/{customerId}/transactions

Txpush 4 endpoints

POST /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:

operationId: TxPush_injectTestTransaction

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Request Body

application/json
schema TestTxPushTransaction
Property Type Required
amount number required
status string optional
postedDate integer optional
description string required
transactionDate integer required

Responses

201

The test notification was successfully sent

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /aggregation/v1/customers/{customerId}/accounts/{accountId}/transactions
DELETE /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:

operationId: TxPush_disableNotifications

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Responses

204

Subscriptions were successfully deleted for the given account

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

DELETE /aggregation/v1/customers/{customerId}/accounts/{accountId}/txpush
POST /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:

operationId: TxPush_subscribeNotifications

Parameters

Name In Required Type Description
customerId path optional

A customer ID

accountId path optional

The account ID

Request Body

application/json
schema TxPushSubscriptionParameters
Property Type Required
callbackUrl string required

Responses

201

The subscription was successfully created

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /aggregation/v1/customers/{customerId}/accounts/{accountId}/txpush
DELETE /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:

operationId: TxPush_deleteSubscription

Parameters

Name In Required Type Description
customerId path optional

A customer ID

subscriptionId path optional

The subscription ID

Responses

204

The subscription was successfully deleted

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

DELETE /aggregation/v1/customers/{customerId}/subscriptions/{subscriptionId}

Verifyassets 4 endpoints

POST /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:

operationId: VerifyAssets_getAssetSummary

Parameters

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.

Request Body

application/json
schema 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

Responses

202

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.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /decisioning/v2/customers/{customerId}/assetSummary
POST /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:

operationId: VerifyAssets_getCheckingSavingsInvestmentAccounts

Parameters

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.

Request Body

application/json
schema 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

Responses

202

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.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /decisioning/v2/customers/{customerId}/preQualVoa
POST /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:

operationId: VerifyAssets_customerVOAReport

Parameters

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.

Request Body

application/json
schema 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

Responses

202

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.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /decisioning/v2/customers/{customerId}/voa
POST /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:

operationId: VerifyAssets_generateVOAWithIncomeReport

Parameters

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.

Request Body

application/json
schema 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

Responses

202

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.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /decisioning/v2/customers/{customerId}/voaHistory

Verifyincomeandemployment 3 endpoints

POST /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:

operationId: VerifyIncomeAndEmployment_generatePayStatementReport

Parameters

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.

Request Body

application/json
schema 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

Responses

202

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.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /decisioning/v2/customers/{customerId}/payStatement
POST /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:

operationId: VerifyIncomeAndEmployment_generateVoePayrollReport

Parameters

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.

Request Body

application/json
schema 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

Responses

202

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.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /decisioning/v2/customers/{customerId}/voePayroll
POST /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:

operationId: VerifyIncomeAndEmployment_generateVOETransactionsReport

Parameters

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.

Request Body

application/json
schema 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

Responses

202

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.

400

The request was rejected

401

The request lacks valid authentication credentials. Check “Finicity-App-Key” or “Finicity-App-Token”.

404

The resource doesn’t exist

POST /decisioning/v2/customers/{customerId}/voeTransactions
Load more endpoints