Operations 1
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-pay-statements-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 Pay Statements 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: Pay Statements
description: Upload pay statements
paths:
/aggregation/v1/customers/{customerId}/payStatements:
post:
tags:
- Pay Statements
summary: Store Customer Pay Statement
description: 'Upload pay statements for a customer.
_Supported regions_: '
operationId: StoreCustomerPayStatement
parameters:
- $ref: '#/components/parameters/CustomerIdParameter'
requestBody:
$ref: '#/components/requestBodies/StoreCustomerPayStatementRequest'
responses:
'200':
$ref: '#/components/responses/StoreCustomerPayStatementResponse'
'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:
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'
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
CustomerId:
type: string
description: A customer ID. See Add Customer API for how to create a customer ID.
example: '1005061234'
Asset:
description: An asset
required:
- assetId
type: object
properties:
assetId:
$ref: '#/components/schemas/AssetId'
PayStatement:
description: A pay statement document and pay statement label
required:
- label
- statement
type: object
properties:
label:
type: string
description: 'The label to be associated with the pay statement. This label will allow the paystub to go through data extraction.
* `lastPayPeriod`: default label that should be used for the VOIE - Paystub products
* `lastPayPeriodMinusOne`: the second most recent pay statement
* `lastPayPeriodMinusTwo`: the third most recent pay statement
* `previousYearLastPayPeriod` Last pay statement of the previous calendar year
* `previousYear2LastPayPeriod`: last pay statement of the calendar year 2 years prior
* `earliestPayPeriod`: the earliest pay statement'
example: lastPayPeriod
statement:
type: string
description: A Base64 encoded pay statement file. Finicity supports PDF, JPG, or PNG files.
example: VGhpcyBtdXN0IGJlIGFuIGltYWdl
parameters:
CustomerIdParameter:
description: A customer ID
name: customerId
in: path
required: true
schema:
$ref: '#/components/schemas/CustomerId'
example: '1005061234'
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'
StoreCustomerPayStatementResponse:
description: The pay statement was successfully uploaded
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
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)
requestBodies:
StoreCustomerPayStatementRequest:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PayStatement'
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