Open Banking

Mastercard payment and fraud detection APIs

developer.mastercard.com ↗
Version
1.16.2
OpenAPI
3.0.3
Endpoints
104
Schemas
514
81
Quality
Updated
3 days ago
Payments payments fintech fraud
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.finicity.com

Endpoints

Clear filters

Appregistration 3 endpoints

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

operationId: AppRegistration_assignApplications

Parameters

Name In Required Type Description
customerId path optional

A customer ID

applicationId path optional

The application ID

Responses

200

The app was successfully assigned

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}/applications/{applicationId}
PUT /aggregation/v1/partners/applications/{preAppId}

Update a registered application.

Supported regions:

operationId: AppRegistration_updateRegistration

Parameters

Name In Required Type Description
preAppId path optional

The application registration tracking ID

Request Body

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

Responses

200

The app registration was 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/applications/{preAppId}
PUT /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:

operationId: AppRegistration_migrateInstitutionLoginAccounts

Parameters

Name In Required Type Description
customerId path optional

A customer ID

institutionLoginId path optional

The institution login ID

Responses

200

The migration succeeded

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/v2/customers/{customerId}/institutionLogins/{institutionLoginId}/migration

Authentication 1 endpoints

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

operationId: Authentication_modifyPartnerSecret

Request Body

application/json
schema PartnerCredentialsWithNewSecret
Property Type Required
partnerId string required
partnerSecret string required
newPartnerSecret string optional

Responses

204

The Partner Secret was successfully updated

400

The request was rejected

401

The request lacks valid authentication credentials. Check Partner ID, Partner Secret or Finicity-App-Key.

PUT /aggregation/v2/partners/authentication

Businessesapi 1 endpoints

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

operationId: BusinessesApi_updateById

Parameters

Name In Required Type Description
business_id path optional

Unique identifier of the business

Request Body

application/json
schema NewBusiness
Property Type Required
url string optional
name string required
type string optional
email 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

Responses

200

The business information was updated.

404

The business does not exist

PUT /business-services/businesses/{business_id}

Consumers 1 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}

Customers 1 endpoints

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}

Thirdpartyaccess 1 endpoints

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}

Schemas

object 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"
}
object 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"
}
object 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"
        }
      }
    }
  }
}
object 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"
}
object 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"
}
object 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."
}
object 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"
    }
  }
}
object 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"
        }
      }
    }
  ]
}
string AccountId
{
  "type": "string",
  "example": "5011648377",
  "description": "An account ID"
}
string 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'"
}
string AccountNumberLast4
{
  "type": "string",
  "example": "5678",
  "description": "The last 4 digits of the ACH account number"
}
object 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"
}
object 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"
}
array AccountOwnerAddresses
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AccountOwnerAddress"
  },
  "description": "List of addresses"
}
object 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"
}
object AccountOwnerDocumentation
{
  "type": "object",
  "properties": {
    "taxId": {
      "$ref": "#/components/schemas/TaxId"
    },
    "governmentId": {
      "$ref": "#/components/schemas/GovernmentId"
    },
    "taxIdCountry": {
      "$ref": "#/components/schemas/Country"
    }
  },
  "description": "Account owner documentation"
}
array AccountOwnerDocumentations
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AccountOwnerDocumentation"
  },
  "description": "List of account owner documentation"
}
object AccountOwnerEmail
{
  "type": "object",
  "properties": {
    "email": {
      "$ref": "#/components/schemas/EmailAddress"
    },
    "emailType": {
      "$ref": "#/components/schemas/AccountOwnerEmailType"
    },
    "isPrimary": {
      "$ref": "#/components/schemas/AccountOwnerEmailPrimary"
    }
  },
  "description": "Account owner email"
}
boolean AccountOwnerEmailPrimary
{
  "type": "boolean",
  "example": true,
  "description": "The email is primary."
}
string AccountOwnerEmailType
{
  "type": "string",
  "example": "Personal",
  "description": "The account owner's email type.\n\n* \"Personal\" \n\n* \"Business\""
}
array AccountOwnerEmails
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AccountOwnerEmail"
  },
  "description": "List of emails"
}
object AccountOwnerHolders
{
  "type": "object",
  "required": [
    "holders"
  ],
  "properties": {
    "holders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AccountOwnerDetails"
      },
      "description": "List of account owners"
    }
  }
}
object 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"
}
string 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."
}
object AccountOwnerPhone
{
  "type": "object",
  "properties": {
    "type": {
      "$ref": "#/components/schemas/AccountOwnerPhoneType"
    },
    "phone": {
      "$ref": "#/components/schemas/PhoneNumber"
    },
    "country": {
      "$ref": "#/components/schemas/PhoneCountry"
    }
  },
  "description": "Consumer phone"
}
string AccountOwnerPhoneType
{
  "type": "string",
  "example": "HOME",
  "description": "The account owner's phone type:   \n\n* \"HOME\"\n\n* \"BUSINESS\"\n\n* \"CELL\"\n\n* \"FAX\""
}
array AccountOwnerPhones
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AccountOwnerPhone"
  },
  "description": "List of phones"
}
string 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\""
}
string AccountStatus
{
  "type": "string",
  "example": "pending",
  "description": "An account status"
}
string 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"
}
string ActiveStatus
{
  "type": "string",
  "example": "ACTIVE",
  "description": "Possible values: \"ACTIVE\", \"INACTIVE\""
}
string Address
{
  "type": "string",
  "example": "434 W Ascension Way",
  "description": "A street address"
}
string AddressLine1
{
  "type": "string",
  "example": "434 W Ascension Way",
  "description": "Address line 1"
}
string AddressLine2
{
  "type": "string",
  "example": "Suite #200",
  "description": "Address line 2"
}
string AddressLine3
{
  "type": "string",
  "example": "UT 84123",
  "description": "Address line 3"
}
string 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"
}
string AddressType
{
  "type": "string",
  "example": "Home",
  "description": "The type of address location:\n* \"Business\"\n* \"Home\"\n* \"Mailing\""
}
number 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."
}
string AggregationStatus
{
  "type": "string",
  "example": "active",
  "description": "\"pending\" during account discovery, always \"active\" following\n  successful account activation"
}
integer 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."
}
object 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"
  ]
}
object AnalyticsReportConstraints
{
  "type": "object",
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "analyticsReportData": {
      "$ref": "#/components/schemas/AnalyticsReportData"
    }
  }
}
object AnalyticsReportConstraintsOut
{
  "type": "object",
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "analyticsReportData": {
      "$ref": "#/components/schemas/AnalyticsReportData"
    }
  }
}
object 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."
}
object 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"
    }
  }
}
object 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"
    }
  }
}
object 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"
}
string 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."
}
object 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"
}
object 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"
}

Versions

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