Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.finicity.com
/aggregation/v1/customers/{customerId}/applications/{applicationId}
If you have multiple applications for a single client, and you want to register their applications to access financial institutions using OAuth connections, then use this API to assign applications to an existing customer.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| applicationId | path | optional | The application ID |
The app was successfully assigned
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}/applications/{applicationId}
/aggregation/v1/partners/applications/{preAppId}
Update a registered application.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| preAppId | path | optional | The application registration tracking ID |
application/json
Application
| Property | Type | Required |
|---|---|---|
| image | string | required |
| appUrl | string | required |
| appName | string | required |
| ownerCity | string | required |
| ownerName | string | required |
| ownerState | string | required |
| ownerCountry | string | required |
| appDescription | string | required |
| ownerPostalCode | string | required |
| ownerAddressLine1 | string | required |
| ownerAddressLine2 | string | required |
The app registration was 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/applications/{preAppId}
/aggregation/v2/customers/{customerId}/institutionLogins/{institutionLoginId}/migration
The institutionLoginId parameter uses Finicity’s internal FI mapping to move accounts from the current FI legacy connection to the new OAuth FI connection.
This API returns a list of accounts for the given institution login ID.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customerId | path | optional | A customer ID |
|
| institutionLoginId | path | optional | The institution login ID |
The migration succeeded
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/v2/customers/{customerId}/institutionLogins/{institutionLoginId}/migration
/aggregation/v2/partners/authentication
Change the Partner Secret used to authenticate this partner.
The secret does not expire, but can be changed by calling this API. A valid Partner Secret may contain upper and lowercase characters, numbers, and the characters !, @, #, $, %, &, *, _, -, +. It must include at least one number and at least one letter, and its length should be between 12 and 255 characters.
Supported regions:
application/json
PartnerCredentialsWithNewSecret
| Property | Type | Required |
|---|---|---|
| partnerId | string | required |
| partnerSecret | string | required |
| newPartnerSecret | string | optional |
The Partner Secret was successfully updated
The request was rejected
The request lacks valid authentication credentials. Check Partner ID, Partner Secret or Finicity-App-Key.
PUT /aggregation/v2/partners/authentication
/business-services/businesses/{business_id}
Update the details of a business based on its unique identifier. By providing the specific business ID and the updated information in the request, modifications can be made to the business’s profile.
Supported regions:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| business_id | path | optional | Unique identifier of the business |
application/json
NewBusiness
| Property | Type | Required |
|---|---|---|
| url | string | optional |
| name | string | required |
| type | string | optional |
| string | optional | |
| taxId | string | optional |
| address | object | required |
| └ city | string | optional |
| └ state | string | optional |
| └ country | string | optional |
| └ postalCode | string | optional |
| └ addressLine1 | string | optional |
| └ addressLine2 | string | optional |
| phoneNumber | object | required |
| └ phoneNo | string | optional |
| └ countryCode | string | optional |
| personallyLiable | boolean | required |
The business information was updated.
The business does not exist
PUT /business-services/businesses/{business_id}
/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}
/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/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}
ACHDetails
{
"type": "object",
"required": [
"routingNumber",
"realAccountNumber"
],
"properties": {
"routingNumber": {
"type": "string",
"example": "123456789",
"description": "The routing number of the financial institution for specific customer account"
},
"realAccountNumber": {
"type": "string",
"example": "002345678901",
"description": "The account number for initiating ACH transfers for this account"
}
},
"description": "The routing and account number information to initiate ACH transfers"
}
AFBalanceAnalyticsReport
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AnalyticsReportAck"
},
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"example": 730,
"description": "Number of days covered by the report"
},
"endDate": {
"$ref": "#/components/schemas/ReportEndDate"
},
"seasoned": {
"type": "boolean",
"example": true,
"description": "\"true\" if the report covers more than 365 days"
},
"startDate": {
"$ref": "#/components/schemas/ReportStartDate"
},
"institutions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReportInstitution"
},
"description": "A list of institution records, including information about the individual accounts used in this report"
},
"customerAnalytics": {
"$ref": "#/components/schemas/CustomerAnalytics"
}
}
}
],
"description": "A Balance Analytics Report"
}
AFBusiness
{
"type": "object",
"required": [
"name",
"address"
],
"properties": {
"name": {
"$ref": "#/components/schemas/BusinessName"
},
"address": {
"type": "object",
"properties": {
"city": {
"$ref": "#/components/schemas/City"
},
"state": {
"$ref": "#/components/schemas/State"
},
"country": {
"$ref": "#/components/schemas/Country"
},
"postalCode": {
"$ref": "#/components/schemas/ZipCode"
},
"addressLine1": {
"$ref": "#/components/schemas/AddressLine1"
},
"addressLine2": {
"$ref": "#/components/schemas/AddressLine2"
}
}
}
}
}
AFCashFlowAnalyticsReport
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AnalyticsReportAck"
},
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"example": 730,
"description": "Number of days covered by the report"
},
"endDate": {
"$ref": "#/components/schemas/ReportEndDate"
},
"seasoned": {
"type": "boolean",
"example": true,
"description": "\"true\" if the report covers more than 365 days"
},
"startDate": {
"$ref": "#/components/schemas/ReportStartDate"
},
"institutions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReportInstitution"
},
"description": "A list of institution records, including information about the individual accounts used in this report"
},
"customerAnalytics": {
"$ref": "#/components/schemas/CustomerAnalytics"
}
}
}
],
"description": "A Cash Flow Analytics Report"
}
AccessToken
{
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"example": "YBh22Sb9Es6e66Q7lWdt",
"description": "The access token value"
}
},
"description": "A temporary access token to be passed in the `Finicity-App-Token` HTTP header of all subsequent API requests"
}
AccountAnalytics
{
"type": "object",
"required": [
"transactionalAttributes",
"stateAttributes",
"streams"
],
"properties": {
"streams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StreamModel"
},
"description": "List of generated streams"
},
"stateAttributes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StateAttribute"
},
"description": "List of calculated state attributes"
},
"transactionalAttributes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TransactionalAttribute"
},
"description": "List of calculated transactional attributes"
}
},
"description": "Analytics calculated for one account in the report."
}
AccountDetails
{
"type": "object",
"properties": {
"vestedBalance": {
"type": "number",
"example": 300000,
"description": "Only available for investment accounts. Vested amount in account."
},
"currentLoanBalance": {
"type": "number",
"example": 0,
"description": "Only available for investment accounts. Current loan balance."
},
"availableCashBalance": {
"type": "number",
"example": 1500,
"description": "Only available for investment accounts. Amount available for cash withdrawal."
},
"interestMarginBalance": {
"type": "number",
"example": -50000,
"description": "Only available for investment accounts. Net interest earned after deducting interest paid out."
},
"availableBalanceAmount": {
"type": "number",
"example": 1000,
"description": "The available balance for the account"
}
}
}
AccountDetailsTxBased
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AccountDetails"
},
{
"type": "object",
"properties": {
"marginBalance": {
"type": "number",
"example": 100,
"description": "Net interest earned after deducting interest paid out"
},
"currentBalance": {
"type": "number",
"example": 1000,
"description": "Current balance"
}
}
}
]
}
AccountId
{
"type": "string",
"example": "5011648377",
"description": "An account ID"
}
AccountNumberDisplay
{
"type": "string",
"description": "The account number from a financial institution in truncated format:\n\n * Last four digits: \"1234\"\n\n * Last four digits with suffix: \"1234-9\"\n\n * Full value for string accounts: \"john@gmail.com\"\nexample: '1234-9'"
}
AccountNumberLast4
{
"type": "string",
"example": "5678",
"description": "The last 4 digits of the ACH account number"
}
AccountOwner
{
"type": "object",
"required": [
"ownerName",
"ownerAddress"
],
"properties": {
"asOfDate": {
"$ref": "#/components/schemas/UnixDate"
},
"ownerName": {
"type": "string",
"example": "John Smith",
"description": "The name of the account owner. Can be multiple account owners in one string. This is how the source data is returned from the institution."
},
"ownerAddress": {
"$ref": "#/components/schemas/Address"
}
},
"description": "Owner of a customer account"
}
AccountOwnerAddress
{
"type": "object",
"properties": {
"city": {
"$ref": "#/components/schemas/City"
},
"type": {
"$ref": "#/components/schemas/AddressType"
},
"line1": {
"$ref": "#/components/schemas/AddressLine1"
},
"line2": {
"$ref": "#/components/schemas/AddressLine2"
},
"line3": {
"$ref": "#/components/schemas/AddressLine3"
},
"state": {
"$ref": "#/components/schemas/State"
},
"country": {
"$ref": "#/components/schemas/Country"
},
"postalCode": {
"$ref": "#/components/schemas/ZipCode"
},
"ownerAddress": {
"$ref": "#/components/schemas/Address"
}
},
"description": "Account owner address"
}
AccountOwnerAddresses
{
"type": "array",
"items": {
"$ref": "#/components/schemas/AccountOwnerAddress"
},
"description": "List of addresses"
}
AccountOwnerDetails
{
"type": "object",
"required": [
"ownerName",
"addresses"
],
"properties": {
"emails": {
"$ref": "#/components/schemas/AccountOwnerEmails"
},
"phones": {
"$ref": "#/components/schemas/AccountOwnerPhones"
},
"suffix": {
"$ref": "#/components/schemas/Suffix"
},
"lastName": {
"$ref": "#/components/schemas/LastName"
},
"addresses": {
"$ref": "#/components/schemas/AccountOwnerAddresses"
},
"firstName": {
"$ref": "#/components/schemas/FirstName"
},
"ownerName": {
"$ref": "#/components/schemas/AccountOwnerName"
},
"middleName": {
"$ref": "#/components/schemas/MiddleName"
},
"relationship": {
"$ref": "#/components/schemas/AccountOwnerRelationshipType"
},
"documentations": {
"$ref": "#/components/schemas/AccountOwnerDocumentations"
},
"identityInsights": {
"$ref": "#/components/schemas/AccountOwnerIdentityInsights"
},
"nameClassification": {
"$ref": "#/components/schemas/NameClassificationType"
},
"nameClassificationconfidencescore": {
"$ref": "#/components/schemas/ClassificationConfidenceScore"
}
},
"description": "Owner of a customer account"
}
AccountOwnerDocumentation
{
"type": "object",
"properties": {
"taxId": {
"$ref": "#/components/schemas/TaxId"
},
"governmentId": {
"$ref": "#/components/schemas/GovernmentId"
},
"taxIdCountry": {
"$ref": "#/components/schemas/Country"
}
},
"description": "Account owner documentation"
}
AccountOwnerDocumentations
{
"type": "array",
"items": {
"$ref": "#/components/schemas/AccountOwnerDocumentation"
},
"description": "List of account owner documentation"
}
AccountOwnerEmail
{
"type": "object",
"properties": {
"email": {
"$ref": "#/components/schemas/EmailAddress"
},
"emailType": {
"$ref": "#/components/schemas/AccountOwnerEmailType"
},
"isPrimary": {
"$ref": "#/components/schemas/AccountOwnerEmailPrimary"
}
},
"description": "Account owner email"
}
AccountOwnerEmailPrimary
{
"type": "boolean",
"example": true,
"description": "The email is primary."
}
AccountOwnerEmailType
{
"type": "string",
"example": "Personal",
"description": "The account owner's email type.\n\n* \"Personal\" \n\n* \"Business\""
}
AccountOwnerEmails
{
"type": "array",
"items": {
"$ref": "#/components/schemas/AccountOwnerEmail"
},
"description": "List of emails"
}
AccountOwnerHolders
{
"type": "object",
"required": [
"holders"
],
"properties": {
"holders": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AccountOwnerDetails"
},
"description": "List of account owners"
}
}
}
AccountOwnerIdentityInsights
{
"type": "object",
"properties": {
"ipRisk": {
"$ref": "#/components/schemas/IpRisk"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Warnings"
}
},
"emailToName": {
"$ref": "#/components/schemas/EmailToName"
},
"ipRiskScore": {
"$ref": "#/components/schemas/IpRiskScore"
},
"phoneToName": {
"$ref": "#/components/schemas/PhoneToName"
},
"isEmailValid": {
"$ref": "#/components/schemas/EmailValid"
},
"isPhoneValid": {
"$ref": "#/components/schemas/PhoneValid"
},
"phoneCarrier": {
"$ref": "#/components/schemas/PhoneCarrier"
},
"addressToName": {
"$ref": "#/components/schemas/AddressToName"
},
"phoneLineType": {
"$ref": "#/components/schemas/PhoneLineType"
},
"ipLastSeenDays": {
"$ref": "#/components/schemas/IpLastSeenDays"
},
"phoneToAddress": {
"$ref": "#/components/schemas/PhoneToAddress"
},
"ipPhoneDistance": {
"$ref": "#/components/schemas/IpPhoneDistance"
},
"phoneCountryCode": {
"$ref": "#/components/schemas/PhoneCountryCode"
},
"identityRiskScore": {
"$ref": "#/components/schemas/IdentityRiskScore"
},
"ipAddressDistance": {
"$ref": "#/components/schemas/IpAddressDistance"
},
"phoneLastSeenDays": {
"$ref": "#/components/schemas/PhoneLastSeenDays"
},
"emailFirstSeenDays": {
"$ref": "#/components/schemas/EmailFirstSeenDays"
},
"addressValidityLevel": {
"$ref": "#/components/schemas/AddressValidityLevel"
},
"identityNetworkScore": {
"$ref": "#/components/schemas/IdentityNetworkScore"
},
"emailDomainCreationDate": {
"$ref": "#/components/schemas/EmailDomainCreationDate"
},
"phoneEmailFirstSeenDays": {
"$ref": "#/components/schemas/PhoneEmailFirstSeenDays"
},
"ipGeolocationCountryCode": {
"$ref": "#/components/schemas/IpGeolocationCountryCode"
},
"ipGeolocationSubdivision": {
"$ref": "#/components/schemas/IpGeolocationSubdivision"
}
},
"description": "List of account owner Identity Insights"
}
AccountOwnerName
{
"type": "string",
"example": "John Smith, PhD",
"description": "The full name of the account owner. Multiple account owners are returned in one string per the source data from the institution."
}
AccountOwnerPhone
{
"type": "object",
"properties": {
"type": {
"$ref": "#/components/schemas/AccountOwnerPhoneType"
},
"phone": {
"$ref": "#/components/schemas/PhoneNumber"
},
"country": {
"$ref": "#/components/schemas/PhoneCountry"
}
},
"description": "Consumer phone"
}
AccountOwnerPhoneType
{
"type": "string",
"example": "HOME",
"description": "The account owner's phone type: \n\n* \"HOME\"\n\n* \"BUSINESS\"\n\n* \"CELL\"\n\n* \"FAX\""
}
AccountOwnerPhones
{
"type": "array",
"items": {
"$ref": "#/components/schemas/AccountOwnerPhone"
},
"description": "List of phones"
}
AccountOwnerRelationshipType
{
"type": "string",
"example": "AUTHORIZED_USER",
"description": "The type of relationship to the account: \n* \"AUTHORIZED_USER\" \n\n* \"BUSINESS\" \n\n* \"FOR_BENEFIT_OF_PRIMARY\" \n\n* \"FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED\" \n\n* \"FOR_BENEFIT_OF_SECONDARY\"\n\n* \"FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED\"\n\n* \"FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED\"\n\n* \"POWER_OF_ATTORNEY\"\n\n* \"PRIMARY_JOINT_TENANTS\"\n\n* \"PRIMARY\"\n\n* \"PRIMARY_BORROWER\"\n\n* \"PRIMARY_JOINT\"\n\n* \"SECONDARY\"\n\n* \"SECONDARY_JOINT_TENANTS\"\n\n* \"SECONDARY_BORROWER\"\n\n* \"SECONDARY_JOINT\"\n\n* \"SOLE_OWNER\"\n\n* \"TRUSTEE\"\n\n* \"UNIFORM_TRANSFER_TO_MINOR\""
}
AccountStatus
{
"type": "string",
"example": "pending",
"description": "An account status"
}
AccountType
{
"type": "string",
"example": "checking",
"description": "The list of supported account types.\n* \"checking\": Standard checking\n* \"savings\": Standard savings\n* \"cd\": Certificates of deposit\n* \"moneyMarket\": Money Market\n* \"creditCard\": Standard credit cards\n* \"lineOfCredit\": Home equity, line of credit\n* \"investment\": Generic investment (no details)\n* \"investmentTaxDeferred\": Generic tax-advantaged investment (no details)\n* \"employeeStockPurchasePlan\": ESPP, Employee Stock Ownership Plans (ESOP), Stock Purchase Plans\n* \"ira\": Individual Retirement Account (not Rollover or Roth)\n* \"401k\": 401K Plan\n* \"roth\": Roth IRA, Roth 401K\n* \"403b\": 403B Plan\n* \"529plan\": 529 Plan (True value is 529)\n* \"rollover\": Rollover IRA\n* \"ugma\": Uniform Gifts to Minors Act\n* \"utma\": Uniform Transfers to Minors Act\n* \"keogh\": Keogh Plan\n* \"457plan\": 457 Plan (True value is 457)\n* \"401a\": 401A Plan\n* \"brokerageAccount\": Brokerage Account\n* \"educationSavings\": Education Savings Account that is not a 529\n* \"healthSavingsAccount\": HSA (Health Savings Accounts)\n* \"pension\": Pension\n* \"profitSharingPlan\": Profit Sharing Plan\n* \"roth401k\": Roth 401K\n* \"sepIRA\": Simplified Employee Pension IRA\n* \"simpleIRA\": Simple IRA\n* \"thriftSavingsPlan\": Thrift Savings Plan\n* \"variableAnnuity\": Variable Annuity\n* \"cryptocurrency\": Cryptocurrency Wallet, Cryptocurrency Account\n* \"mortgage\": Standard Mortgages\n* \"loan\": Auto loans, equity loans, other loans\n* \"studentLoan\": Student Loan\n* \"studentLoanGroup\": Student Loan Group\n* \"studentLoanAccount\": Student Loan Account"
}
ActiveStatus
{
"type": "string",
"example": "ACTIVE",
"description": "Possible values: \"ACTIVE\", \"INACTIVE\""
}
Address
{
"type": "string",
"example": "434 W Ascension Way",
"description": "A street address"
}
AddressLine1
{
"type": "string",
"example": "434 W Ascension Way",
"description": "Address line 1"
}
AddressLine2
{
"type": "string",
"example": "Suite #200",
"description": "Address line 2"
}
AddressLine3
{
"type": "string",
"example": "UT 84123",
"description": "Address line 3"
}
AddressToName
{
"type": "string",
"example": "match",
"description": "The match status between the input name and the queried entity.\n* not-found\n* match\n* no-match"
}
AddressType
{
"type": "string",
"example": "Home",
"description": "The type of address location:\n* \"Business\"\n* \"Home\"\n* \"Mailing\""
}
AddressValidityLevel
{
"type": "number",
"example": null,
"description": "The most granular level to which the address could be validated. Ex. If the address was only valid to the city level (but not to the house level), it would return “valid_to_city”.\n * missing_address - An input address was not provided.\n\n * invalid - The input address is not valid.\n\n * valid - The input address is valid.\n\n * valid_to_country - The input address could only be validated to the\ncountry level. This means the country of the input address is valid, but the other elements of the input address were unable to be confirmed as valid or invalid.\n\n * valid_to_city - The input address was validated to the city level.\nThis means the country, state, city, and postal code of the input address are valid, but the street, house number, and subpremise of the input address were unable to be confirmed as valid or invalid.\n\n * valid_to_street - The input address was validated to the street\nlevel. This means the country, state, city, postal code, and street of the input address are valid, but the house number and subpremise of the input address were unable to be confirmed as valid or invalid.\n\n * valid_to_house_number - The input address was validated to the\nstreet and house number level. This means the country, state, city, postal code, street, and house number of the input address are valid, but the subpremise of the input address was unable to be confirmed as valid or invalid. \n\n * valid_to_house_number_missing_apt - The input address was\nvalidated to the street and house number level. This means the country, state, city, postal code, street, and house number of the input address are valid, but the subpremise of the input address was missing and thus unable to be confirmed as valid or invalid."
}
AggregationStatus
{
"type": "string",
"example": "active",
"description": "\"pending\" during account discovery, always \"active\" following\n successful account activation"
}
AggregationStatusCode
{
"type": "integer",
"description": "The status of the most recent aggregation attempt (see [Aggregation Status Codes](https://developer.mastercard.com/open-banking-us/documentation/products/manage/account-aggregation/#aggregation-status-codes)). Won't be present until you have run your first aggregation for the account."
}
AnalyticsReportAck
{
"allOf": [
{
"$ref": "#/components/schemas/BaseReportAck"
},
{
"type": "object",
"properties": {
"reportPin": {
"$ref": "#/components/schemas/ReportPin"
},
"constraints": {
"$ref": "#/components/schemas/AnalyticsReportConstraintsOut"
},
"businessDetails": {
"$ref": "#/components/schemas/BusinessDetails"
}
}
}
],
"required": [
"id",
"customerType",
"customerId",
"requestId",
"requesterName",
"createdDate",
"title",
"type",
"status",
"constraints"
]
}
AnalyticsReportConstraints
{
"type": "object",
"properties": {
"fromDate": {
"$ref": "#/components/schemas/UnixDate"
},
"accountIds": {
"$ref": "#/components/schemas/ReportAccountIdsString"
},
"reportCustomFields": {
"$ref": "#/components/schemas/ReportCustomFields"
},
"analyticsReportData": {
"$ref": "#/components/schemas/AnalyticsReportData"
}
}
}
AnalyticsReportConstraintsOut
{
"type": "object",
"properties": {
"fromDate": {
"$ref": "#/components/schemas/UnixDate"
},
"accountIds": {
"$ref": "#/components/schemas/ReportAccountIds"
},
"reportCustomFields": {
"$ref": "#/components/schemas/ReportCustomFields"
},
"analyticsReportData": {
"$ref": "#/components/schemas/AnalyticsReportData"
}
}
}
AnalyticsReportData
{
"type": "object",
"required": [
"forCraPurpose"
],
"properties": {
"forCraPurpose": {
"type": "boolean",
"example": true,
"description": "Field to indicate if the requested report is for CRA or NONCRA. For small business lending or other similar business use cases, pass the value as “true” for purposes of this field."
},
"timeIntervalTypes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TimeIntervalType"
},
"example": [
"MONTHLY_CALENDAR"
],
"maxItems": 2,
"description": "Requested time interval for attribute values."
},
"applicantIsPersonalGuarantor": {
"type": "boolean",
"example": true,
"description": "Field to indicate if the business owner will personally guarantee the loan. If true, a consumer record will be required."
}
},
"description": "Parameters supplied by the client requesting the analytics."
}
AnalyticsReportsAccount
{
"type": "object",
"required": [
"id",
"name",
"number",
"type",
"currency",
"transactions"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1000023996,
"description": "The ID of the account"
},
"name": {
"type": "string",
"example": "Checking",
"description": "The account name from the institution"
},
"type": {
"type": "string",
"example": "checking",
"description": "One of the values from account types"
},
"number": {
"type": "string",
"example": "XX1111",
"description": "The account number from the institution (obfuscated)"
},
"details": {
"$ref": "#/components/schemas/AccountDetails"
},
"ownerName": {
"$ref": "#/components/schemas/ReportAccountOwnerName"
},
"balanceDate": {
"type": "integer",
"format": "int64",
"example": 1614880526,
"description": "A timestamp showing when the `balance` was captured"
},
"ownerAddress": {
"$ref": "#/components/schemas/ReportAccountOwnerAddress"
},
"transactions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReportTransaction"
},
"description": "a list of transaction records"
},
"currentBalance": {
"type": "number",
"example": 100000,
"description": "The cleared balance of the account as-of `balanceDate`"
},
"accountAnalytics": {
"$ref": "#/components/schemas/AccountAnalytics"
},
"availableBalance": {
"type": "number",
"example": 1000,
"description": "Available balance"
},
"aggregationStatusCode": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "The status of the most recent aggregation attempt"
}
}
}
AnnualIncome
{
"type": "object",
"required": [
"year",
"grossPayAmountYTD"
],
"properties": {
"year": {
"type": "string",
"example": 2022,
"description": "The year for the amounts given in YTD totals for an employer"
},
"netPayAmountYTD": {
"type": "number",
"example": 123.45,
"description": "Year to date (YTD) net pay amount for the indicated year"
},
"basePayAmountYTD": {
"type": "number",
"example": 123.45,
"description": "Year to date (YTD) base pay amount for the year indicated"
},
"grossPayAmountYTD": {
"type": "number",
"example": 123.45,
"description": "Year to date (YTD) gross pay amount for the indicated year"
},
"otherPayAmountYTD": {
"type": "number",
"example": 123.45,
"description": "Year to date (YTD) other pay amount for the indicated year. Other pay is pay that is not categorized into one of the other categories."
},
"commissionPayAmount": {
"type": "number",
"example": 123.45,
"description": "Year to date (YTD) commission pay amount for the indicated year"
},
"overtimePayAmountYTD": {
"type": "number",
"example": 123.45,
"description": "Year to date (YTD) overtime pay amount for the year indicated"
}
}
}
AppFinancialInstitutionStatus
{
"type": "object",
"required": [
"id",
"decryptionKeyActivated",
"createdDate",
"lastModifiedDate",
"status"
],
"properties": {
"id": {
"$ref": "#/components/schemas/NumericInstitutionId"
},
"status": {
"type": "boolean",
"example": true,
"description": "\"false\" indicates registration is still pending"
},
"logoUrl": {
"type": "string",
"example": "https://prod-direct-integration-client.s3.us-west-2.amazonaws.com/976521f99-7b36-4b3b-a3e0-faff9545836d/102224/90x90.png",
"description": "An URL to a logo file"
},
"abbrvName": {
"type": "string",
"example": "VAEJ",
"description": "The application's abbreviated name"
},
"createdDate": {
"$ref": "#/components/schemas/UnixDate"
},
"lastModifiedDate": {
"$ref": "#/components/schemas/UnixDate"
},
"decryptionKeyActivated": {
"type": "boolean",
"example": false,
"description": "Status of decryption keys for financial institution app registration"
}
},
"description": "The registration status fields for each specific OAuth financial institution"
}
AppRegistrationStatus
{
"type": "string",
"example": "P",
"description": "The status of an app registration request. \"A\" means approved. \"P\" means pending which is the status when initially submitted or when the app is modified and awaiting approval. \"R\" means rejected. If it is rejected there will be a note with the rejected reason."
}
AppStatus
{
"type": "object",
"required": [
"partnerId",
"preAppId",
"appName",
"submittedDate",
"modifiedDate",
"status"
],
"properties": {
"note": {
"type": "string",
"example": "Approved",
"description": "A note on the registration. Typically used to indicate reasons for rejected apps."
},
"scopes": {
"type": "string",
"example": "Account Info",
"description": "Indicates scopes of data accessible to the app"
},
"status": {
"$ref": "#/components/schemas/AppRegistrationStatus"
},
"appName": {
"$ref": "#/components/schemas/ApplicationName"
},
"preAppId": {
"$ref": "#/components/schemas/PreAppId"
},
"partnerId": {
"$ref": "#/components/schemas/PartnerId"
},
"modifiedDate": {
"$ref": "#/components/schemas/UnixDate"
},
"applicationId": {
"$ref": "#/components/schemas/ApplicationId"
},
"submittedDate": {
"$ref": "#/components/schemas/UnixDate"
},
"institutionDetails": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AppFinancialInstitutionStatus"
},
"description": "A list of the registration status for each FI for the application"
}
},
"description": "Registration status details for the application"
}
AppStatuses
{
"type": "object",
"required": [
"totalRecords",
"totalPages",
"pageNumber",
"numberOfRecordsPerPage",
"applications"
],
"properties": {
"pageNumber": {
"type": "integer",
"format": "int64",
"example": 2,
"description": "The current page number"
},
"totalPages": {
"type": "integer",
"format": "int64",
"example": 5,
"description": "The total number of pages"
},
"applications": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AppStatus"
},
"description": "A list of applications with their statuses"
},
"totalRecords": {
"type": "integer",
"format": "int64",
"example": 50,
"description": "The total number of results"
},
"numberOfRecordsPerPage": {
"type": "integer",
"format": "int64",
"example": 10,
"description": "The number of results per page"
}
},
"description": "The response for the Get App Registration Status API which returns an array of status objects"
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 1.16.2 | 104 | 514 | 2026-05-11 | current |
| 1.16.2 | 104 | 514 | 2026-04-20 | |
| 1.16.2 | 104 | 514 | 2026-04-16 |