Operations 4
Documentation
Documentation
https://developer.mastercard.com/open-banking-us/documentation/
APIReference
https://developer.mastercard.com/open-banking-us/documentation/api-reference/
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/finicity-accounts-simple-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Open Finance Accounts (Simple) API
description: 'OpenAPI specification for Finicity APIs.
Open Finance (formerly Open Banking) solutions in the US are provided by
Finicity, a Mastercard company.'
contact:
name: API Support
email: apisupport@mastercard.com
url: https://developer.mastercard.com/open-finance-us/documentation/support/
version: 1.43.0
servers:
- url: https://api.finicity.com
description: Production
security:
- FinicityAppKey: []
FinicityAppToken: []
tags:
- name: Accounts (Simple)
description: Fetch simple customer accounts
paths:
/aggregation/v1/customers/{customerId}/institutions/{institutionId}/accounts/simple:
get:
tags:
- Accounts (Simple)
summary: Get Customer Accounts by Institution ID (Simple)
description: 'This API is a lighter version of Get Customer Accounts by Institution ID, returning only basic information of active accounts owned by the given customer at the given institution.
_Supported regions_: '
operationId: GetCustomerAccountsByInstitutionSimple
parameters:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/InstitutionIdParameter'
responses:
'200':
$ref: '#/components/responses/GetCustomerAccountsSimpleResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
$ref: '#/components/responses/UnauthorizedErrorResponse'
'404':
$ref: '#/components/responses/ResourceNotFoundErrorResponse'
/aggregation/v1/customers/{customerId}/institutionLogins/{institutionLoginId}/accounts/simple:
get:
tags:
- Accounts (Simple)
summary: Get Customer Accounts by Institution Login ID (Simple)
description: 'This API is a lighter version of Get Customer Accounts by Institution Login ID, returning only basic information of all active accounts owned by the given customer at the given institution login ID.
_Supported regions_: '
operationId: GetCustomerAccountsByInstitutionLoginSimple
parameters:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/InstitutionLoginIdParameter'
responses:
'200':
$ref: '#/components/responses/GetCustomerAccountsSimpleResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
$ref: '#/components/responses/UnauthorizedErrorResponse'
'404':
$ref: '#/components/responses/ResourceNotFoundErrorResponse'
/aggregation/v1/customers/{customerId}/accounts/{accountId}/simple:
get:
tags:
- Accounts (Simple)
summary: Get Customer Account by ID (Simple)
description: 'This API is a lighter version of Get Customer Accounts by ID, returning only basic information of a customer account.
_Supported regions_: '
operationId: GetCustomerAccountSimple
parameters:
- $ref: '#/components/parameters/CustomerIdParameter'
- $ref: '#/components/parameters/AccountIdParameter'
responses:
'200':
$ref: '#/components/responses/GetCustomerAccountSimpleResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
$ref: '#/components/responses/UnauthorizedErrorResponse'
'404':
$ref: '#/components/responses/ResourceNotFoundErrorResponse'
/aggregation/v1/customers/{customerId}/accounts/simple:
get:
tags:
- Accounts (Simple)
summary: Get Customer Accounts (Simple)
description: 'This API is a lighter version of Get Customer Accounts, returning only basic information of all active customer accounts.
_Supported regions_: '
operationId: GetCustomerAccountsSimple
parameters:
- $ref: '#/components/parameters/CustomerIdParameter'
responses:
'200':
$ref: '#/components/responses/GetCustomerAccountsSimpleResponse'
'400':
$ref: '#/components/responses/BadRequestErrorResponse'
'401':
$ref: '#/components/responses/UnauthorizedErrorResponse'
'404':
$ref: '#/components/responses/ResourceNotFoundErrorResponse'
components:
examples:
MissingFinicityAppKeyExample:
value:
code: '10026'
message: Missing parameter (Finicity-App-Key)
InvalidForesightReportRequestExample:
value:
code: '10100'
message: At least one of customerId or externalCustomerId must be provided; both are also allowed.
ResellerInvalidDateRangeGreaterThan31DaysExample:
value:
code: '10100'
message: 'RESELLER_BILLING_REPORT: Invalid date range - It is more than 31 days'
ResellerNoReportForPartnerExample:
value:
code: '10100'
message: Cannot find resellerBilling reports with id 2445581559892.
ResellerInvalidDateRangeGreaterThanEndDateExample:
value:
code: '10100'
message: 'RESELLER_BILLING_REPORT: Invalid date range - startDate is greaterThan endDate'
BothCraAndFtcPurposeTrueExample:
value:
code: '10100'
status: '400'
message: forCRAPurpose and forFTCPurpose may not both be TRUE.
ResellerPartnerNotAuthorizedExample:
value:
code: '10100'
message: 'RESELLER_BILLING_REPORT: Partner is not authorized to access resellerBilling reports for partnerId 2445583947903'
InvalidConsumerPhoneExample:
value:
code: '10100'
message: Invalid format for field consumer.phone.
MissingFieldExample:
value:
code: '10005'
message: Missing parameter (partnerId)
NoRegisteredApplicationExample:
value:
code: '50051'
message: No registered partner applications found.
ExpiredFinicityAppTokenExample:
value:
code: '10023'
message: Expired (Finicity-App-Token)
InvalidFieldExample:
value:
code: '10010'
status: '400'
message: Customer ID does not exist or does not belong to this partner
user_message: One or more of the fields could not be validated. Please ensure you have entered the correct data.
tags: ''
InvalidValueExample:
value:
code: '1618'
message: Negative or invalid value entered. Please use positive numbers only.
InvalidConsumerSSNExample:
value:
code: '10100'
message: Invalid format for field consumer.ssn. Required format is 9 digits.
InvalidFinicityAppTokenExample:
value:
code: '10022'
message: Invalid (Finicity-App-Token)
ResellerInvalidDateRangeLessThanZeroExample:
value:
code: '10100'
message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date less than or equal to zero'
CustomerReportLimitExceedExample:
value:
code: '20400'
message: The max report generation limit was exceeded for this customer.
NoAccountForInstitutionLoginIdExample:
value:
code: '38007'
message: Customer does not have any accounts associated with institutionLoginId.
CustomerNotFoundExample:
value:
code: '14001'
message: Customer not found.
ResellerNoDataForPartnerExample:
value:
code: '10100'
message: 'RESELLER_BILLING_REPORT: Reports not found 2445583947903 resellerBilling reports'
InvalidConsumerEmailExample:
value:
code: '10100'
message: Invalid format for field consumer.email.
ResellerInvalidDateRangeExample:
value:
code: '10100'
message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date is empty or null'
ExpiredTokenExample:
value:
code: '10023'
message: Expired (Finicity-App-Token)
AccountTypeNotSupportedExample:
value:
code: '14020'
message: Bad request. (Account type not supported).
PermissiblePurposeCodeExample:
value:
code: '10100'
status: '400'
message: Permissible Purpose Code is required
ResourceNotFoundExample:
value:
code: '14001'
message: Resource not found.
ConsumerNotFoundExample:
value:
code: '10100'
message: Cannot find consumer with id 1234.
InvalidExperienceFieldExample:
value:
code: '10010'
status: '400'
message: '"experience" must be a valid GUID'
user_message: One or more of the fields could not be validated. Please ensure you have entered the correct data.
tags: ''
GenericBadRequestExample:
value:
code: '14020'
message: Bad request.
BadCredentialsExample:
value:
code: '24302'
message: Bad credentials
NoConsumerForCustomerExample:
value:
code: '10100'
message: Cannot find consumer for customer with id 5011115315."
MissingFinicityAppTokenExample:
value:
code: '10024'
message: Missing parameter (Finicity-App-Token)
schemas:
LinkedAccountDate:
type: integer
description: 'A timestamp showing when the customer first linked the account via Data Connect. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-finance-us/documentation/errors/best-practices/).'
format: int64
example: 1607450357
Currency:
type: string
description: A currency code
example: USD
AuthorizationExpires:
type: boolean
description: A Boolean flag that indicates whether the customer’s authorization period has a defined authorization end date.
example: true
default: false
AuthorizationEndDate:
type: integer
format: int64
description: Authorization end date and time in epoch format (not used if AuthorizationExpires is false).
example: 1641030399
ErrorMessage:
required:
- code
type: object
properties:
code:
type: object
description: 'An error code (can be returned as a number or a string). Useful links: [Common API Status Codes](https://developer.mastercard.com/open-finance-us/documentation/errors/best-practices/#common-api-status-codes), [Aggregation Status Codes](https://developer.mastercard.com/open-finance-us/documentation/products/manage/account-aggregation/#aggregation-status-codes).'
example: '10001'
status:
type: string
description: A status code
example: '401'
title:
type: string
description: A title for the error
example: Connecting accounts error
level:
type: string
description: An error level
example: error
message:
type: string
description: An error message
example: Invalid authorization credentials
user_message:
type: string
description: Some more details about the error
example: The session has expired or is invalid
assetId:
$ref: '#/components/schemas/AssetId'
accountId:
$ref: '#/components/schemas/AccountId'
externalTransactionId:
type: string
description: A unique identifier for the transaction that assists in linking data back to your systems.
example: MAC1005061234
minLength: 1
maxLength: 100
tags:
type: string
description: Categories that the error belongs to
example: AGG
AccountId:
type: string
description: An account ID
example: '5011648377'
CustomerAccountSimple:
description: An account represents a bank account such as a checking or savings that the customer has added via the Connect interface.
required:
- id
- accountNumberDisplay
- name
- type
- status
- customerId
- institutionId
- createdDate
- currency
- institutionLoginId
type: object
properties:
id:
$ref: '#/components/schemas/AccountId'
accountNumberDisplay:
$ref: '#/components/schemas/AccountNumberDisplay'
name:
$ref: '#/components/schemas/Name'
type:
$ref: '#/components/schemas/AccountType'
aggregationStatusCode:
$ref: '#/components/schemas/AggregationStatusCode'
status:
$ref: '#/components/schemas/AggregationStatus'
customerId:
$ref: '#/components/schemas/CustomerId'
institutionId:
$ref: '#/components/schemas/InstitutionId'
aggregationSuccessDate:
$ref: '#/components/schemas/UnixDate'
aggregationAttemptDate:
$ref: '#/components/schemas/UnixDate'
createdDate:
$ref: '#/components/schemas/UnixDate'
currency:
$ref: '#/components/schemas/Currency'
institutionLoginId:
$ref: '#/components/schemas/NumericInstitutionLoginId'
authorizationStartDate:
$ref: '#/components/schemas/AuthorizationStartDate'
authorizationEndDate:
$ref: '#/components/schemas/AuthorizationEndDate'
authorizationExpires:
$ref: '#/components/schemas/AuthorizationExpires'
displayPosition:
$ref: '#/components/schemas/DisplayPosition'
parentAccount:
$ref: '#/components/schemas/AccountId'
linkedAccountDate:
$ref: '#/components/schemas/LinkedAccountDate'
NumericInstitutionId:
description: The ID of a financial institution, represented as a number
type: integer
format: int64
example: 4222
NumericInstitutionLoginId:
type: integer
format: int64
description: An institution login ID (from the account record), represented as a number
example: 1007302745
CustomerAccountsSimple:
description: A list of accounts with basic information of a customer
required:
- accounts
type: object
properties:
accounts:
type: array
items:
$ref: '#/components/schemas/CustomerAccountSimple'
description: A list of accounts with basic information of a customer
InstitutionId:
description: The ID of a financial institution
type: string
example: '4222'
AggregationStatus:
type: string
description: "\"pending\" during account discovery, always \"active\" following\n successful account activation"
example: active
Name:
type: string
description: The account name from the institution
example: Super Checking
AssetId:
type: string
description: An asset ID. Generated by Data Connect or by using the Store Customer Pay Statement API.
example: 097545c5-1c2a-4f20-a5ef-77f0820344c9-2018601178
AggregationStatusCode:
type: integer
description: The status of the most recent aggregation attempt (see [Aggregation Status Codes](https://developer.mastercard.com/open-finance-us/documentation/products/manage/account-aggregation/#aggregation-status-codes)). Won't be present until you have run your first aggregation for the account.
CustomerId:
type: string
description: A customer ID. See Add Customer API for how to create a customer ID.
example: '1005061234'
UnixDate:
type: integer
description: 'A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-finance-us/documentation/errors/best-practices/).'
format: int64
example: 1607450357
AuthorizationStartDate:
type: integer
format: int64
description: Authorization start date and time in epoch format.
example: 1541030399
InstitutionLoginId:
type: string
description: An institution login ID (from the account record)
example: '1007302745'
DisplayPosition:
type: integer
description: "Display position of the account at the financial institution, \"1\"\n being the top listed account"
format: int32
example: 2
AccountType:
type: string
description: 'The list of supported account types.
* "checking": Standard checking
* "savings": Standard savings
* "cd": Certificates of deposit
* "moneyMarket": Money Market
* "creditCard": Standard credit cards
* "lineOfCredit": Home equity, line of credit
* "investment": Generic investment (no details)
* "investmentTaxDeferred": Generic tax-advantaged investment (no details)
* "employeeStockPurchasePlan": ESPP, Employee Stock Ownership Plans (ESOP), Stock Purchase Plans
* "ira": Individual Retirement Account (not Rollover or Roth)
* "401k": 401K Plan
* "roth": Roth IRA, Roth 401K
* "403b": 403B Plan
* "529plan": 529 Plan (True value is 529)
* "rollover": Rollover IRA
* "ugma": Uniform Gifts to Minors Act
* "utma": Uniform Transfers to Minors Act
* "keogh": Keogh Plan
* "457plan": 457 Plan (True value is 457)
* "401a": 401A Plan
* "brokerageAccount": Brokerage Account
* "educationSavings": Education Savings Account that is not a 529
* "healthSavingsAccount": HSA (Health Savings Accounts)
* "pension": Pension
* "profitSharingPlan": Profit Sharing Plan
* "roth401k": Roth 401K
* "sepIRA": Simplified Employee Pension IRA
* "simpleIRA": Simple IRA
* "thriftSavingsPlan": Thrift Savings Plan
* "variableAnnuity": Variable Annuity
* "cryptocurrency": Cryptocurrency Wallet, Cryptocurrency Account
* "mortgage": Standard Mortgages
* "loan": Auto loans, equity loans, other loans
* "studentLoan": Student Loan
* "studentLoanGroup": Student Loan Group
* "studentLoanAccount": Student Loan Account'
example: checking
AccountNumberDisplay:
type: string
description: 'Account identifier derived by Mastercard from the account number provided by the financial institution. The format varies depending on the institution. We recommend using this to identify accounts if available.
Below is a non-exhaustive list of examples for the `accountNumberDisplay` field.
* 5720
* 3539-259
* 1500-1
* 0824-S0050'
example: '7528'
parameters:
CustomerIdParameter:
description: A customer ID
name: customerId
in: path
required: true
schema:
$ref: '#/components/schemas/CustomerId'
example: '1005061234'
InstitutionIdParameter:
description: The institution ID
name: institutionId
in: path
required: true
schema:
$ref: '#/components/schemas/NumericInstitutionId'
example: 4222
InstitutionLoginIdParameter:
description: The institution login ID
name: institutionLoginId
in: path
required: true
schema:
$ref: '#/components/schemas/InstitutionLoginId'
example: '1007302745'
AccountIdParameter:
description: The account ID
name: accountId
in: path
required: true
schema:
$ref: '#/components/schemas/AccountId'
example: '5011648377'
responses:
BadRequestErrorResponse:
description: The request was rejected
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
PermissiblePurposeCodeExample:
$ref: '#/components/examples/PermissiblePurposeCodeExample'
InvalidForesightReportRequestExample:
$ref: '#/components/examples/InvalidForesightReportRequestExample'
BothCraAndFtcPurposeTrueExample:
$ref: '#/components/examples/BothCraAndFtcPurposeTrueExample'
MissingFieldExample:
$ref: '#/components/examples/MissingFieldExample'
InvalidFieldExample:
$ref: '#/components/examples/InvalidFieldExample'
InvalidExperienceFieldExample:
$ref: '#/components/examples/InvalidExperienceFieldExample'
GenericBadRequestExample:
$ref: '#/components/examples/GenericBadRequestExample'
AccountTypeNotSupportedExample:
$ref: '#/components/examples/AccountTypeNotSupportedExample'
ResellerPartnerNotAuthorizedExample:
$ref: '#/components/examples/ResellerPartnerNotAuthorizedExample'
ResellerInvalidDateRangeExample:
$ref: '#/components/examples/ResellerInvalidDateRangeExample'
ResellerInvalidDateRangeLessThanZeroExample:
$ref: '#/components/examples/ResellerInvalidDateRangeLessThanZeroExample'
ResellerInvalidDateRangeGreaterThanEndDateExample:
$ref: '#/components/examples/ResellerInvalidDateRangeGreaterThanEndDateExample'
ResellerInvalidDateRangeGreaterThan31DaysExample:
$ref: '#/components/examples/ResellerInvalidDateRangeGreaterThan31DaysExample'
CustomerReportLimitExceedExample:
$ref: '#/components/examples/CustomerReportLimitExceedExample'
InvalidConsumerSSNExample:
$ref: '#/components/examples/InvalidConsumerSSNExample'
InvalidConsumerPhoneExample:
$ref: '#/components/examples/InvalidConsumerPhoneExample'
InvalidConsumerEmailExample:
$ref: '#/components/examples/InvalidConsumerEmailExample'
InvalidValue:
$ref: '#/components/examples/InvalidValueExample'
GetCustomerAccountsSimpleResponse:
description: The account list was successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerAccountsSimple'
GetCustomerAccountSimpleResponse:
description: The account was successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerAccountSimple'
ResourceNotFoundErrorResponse:
description: The resource doesn't exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
ConsumerNotFoundExample:
$ref: '#/components/examples/ConsumerNotFoundExample'
NoAccountForInstitutionLoginIdExample:
$ref: '#/components/examples/NoAccountForInstitutionLoginIdExample'
CustomerNotFoundExample:
$ref: '#/components/examples/CustomerNotFoundExample'
NoConsumerForCustomerExample:
$ref: '#/components/examples/NoConsumerForCustomerExample'
ResourceNotFoundExample:
$ref: '#/components/examples/ResourceNotFoundExample'
NoRegisteredApplicationExample:
$ref: '#/components/examples/NoRegisteredApplicationExample'
ResellerNoDataForPartnerExample:
$ref: '#/components/examples/ResellerNoDataForPartnerExample'
ResellerNoReportForPartnerExample:
$ref: '#/components/examples/ResellerNoReportForPartnerExample'
UnauthorizedErrorResponse:
description: The request lacks valid authentication credentials. Check "Finicity-App-Key" or "Finicity-App-Token".
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
ExpiredTokenExample:
$ref: '#/components/examples/ExpiredTokenExample'
MissingFinicityAppKeyExample:
$ref: '#/components/examples/MissingFinicityAppKeyExample'
MissingFinicityAppTokenExample:
$ref: '#/components/examples/MissingFinicityAppTokenExample'
InvalidFinicityAppTokenExample:
$ref: '#/components/examples/InvalidFinicityAppTokenExample'
ExpiredFinicityAppTokenExample:
$ref: '#/components/examples/ExpiredFinicityAppTokenExample'
BadCredentialsExample:
$ref: '#/components/examples/BadCredentialsExample'
text/plain:
schema:
type: string
example: Invalid (Finicity-App-Key)
securitySchemes:
FinicityAppKey:
name: Finicity-App-Key
type: apiKey
in: header
description: The "Finicity-App-Key" from the developer dashboard
FinicityAppToken:
name: Finicity-App-Token
type: apiKey
in: header
description: A token returned by the `/authentication` API