openapi: 3.2.0 info: title: Open Finance Payment Success Indicator 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: Payment Success Indicator description: Predict a transaction's likelihood to settle paths: /payments/customers/{customerId}/accounts/{accountId}/fcra-payment-success-indicators: post: tags: - Payment Success Indicator summary: Generate FCRA Payment Success Indicators description: 'Payment Success Indicator (PSI) allows the user to evaluate the likelihood of a specific ACH transaction resulting in either an insufficient funds return (NSF) or an unauthorized return due to first- or third-party fraud. PSI is powered by a machine learning model trained on consumer-permissioned data. PSI provides a risk assessment, which includes a real-time balance check, predictive risk scores forecasting a consumer’s likelihood of having sufficient funds over a 10-day period, a real-time score predicting the likelihood of an unauthorized return, and risk attributes to explain and enhance decisioning. Provision and use of this report is subject to all applicable obligations of the FCRA and any applicable analogous state law. This product may only be used for the stated permissible purpose under the FCRA. _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)' operationId: GenerateFcraPaymentSuccessIndicators parameters: - $ref: '#/components/parameters/CustomerIdParameter' - $ref: '#/components/parameters/AccountIdParameter' - $ref: '#/components/parameters/PurposeParameter' requestBody: $ref: '#/components/requestBodies/GeneratePaymentSuccessIndicatorsRequest' responses: '202': $ref: '#/components/responses/GeneratePaymentSuccessIndicatorsResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/ResourceNotFoundErrorResponse' '406': $ref: '#/components/responses/NotAllowedErrorResponse' /payments/customers/{customerId}/accounts/{accountId}/fcra-payment-success-indicators/{payRequestId}: get: tags: - Payment Success Indicator summary: Get FCRA Payment Success Indicators by Pay Request ID description: 'Get the FCRA Payment Success Indicator scores that have been generated by a previous call to Generate FCRA Payment Success Indicators. _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)' operationId: GetFcraPaymentSuccessIndicators parameters: - $ref: '#/components/parameters/CustomerIdParameter' - $ref: '#/components/parameters/AccountIdParameter' - $ref: '#/components/parameters/PayRequestIdParameter' - $ref: '#/components/parameters/IncludeReasonsParameter' responses: '200': $ref: '#/components/responses/RetrieveFcraPaymentSuccessIndicatorsResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/ResourceNotFoundErrorResponse' '406': $ref: '#/components/responses/NotAllowedErrorResponse' /payments/customers/{customerId}/accounts/{accountId}/payment-success-indicators: post: tags: - Payment Success Indicator summary: Generate Non-FCRA Payment Success Indicators description: 'Payment Success Indicator (PSI) allows the user to evaluate the likelihood of a specific ACH transaction resulting in either an insufficient funds return (NSF) or an unauthorized return due to first- or third-party fraud. PSI is powered by a machine learning model trained on consumer-permissioned data. PSI provides a risk assessment, which includes a real-time balance check, predictive risk scores forecasting a consumer’s likelihood of having sufficient funds over a 10-day period, a real-time score predicting the likelihood of an unauthorized return, and risk attributes to explain and enhance decisioning. This product may not be used for uses subject to the FCRA. _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)' operationId: GeneratePaymentSuccessIndicators parameters: - $ref: '#/components/parameters/CustomerIdParameter' - $ref: '#/components/parameters/AccountIdParameter' requestBody: $ref: '#/components/requestBodies/GeneratePaymentSuccessIndicatorsRequest' responses: '202': $ref: '#/components/responses/GeneratePaymentSuccessIndicatorsResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/ResourceNotFoundErrorResponse' '406': $ref: '#/components/responses/NotAllowedErrorResponse' /payments/customers/{customerId}/accounts/{accountId}/payment-success-indicators/{payRequestId}: get: tags: - Payment Success Indicator summary: Get Non-FCRA Payment Success Indicators by Pay Request ID description: 'Get the Non-FCRA Payment Success Indicator scores that have been generated by a previous call to Generate Payment Success Indicators. _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)' operationId: GetPaymentSuccessIndicators parameters: - $ref: '#/components/parameters/CustomerIdParameter' - $ref: '#/components/parameters/AccountIdParameter' - $ref: '#/components/parameters/PayRequestIdParameter' - $ref: '#/components/parameters/IncludeReasonsParameter' responses: '200': $ref: '#/components/responses/RetrievePaymentSuccessIndicatorsResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/ResourceNotFoundErrorResponse' '406': $ref: '#/components/responses/NotAllowedErrorResponse' /aggregation/v1/customers/{customerId}/accounts/{accountId}/payments/paymentIndicator/fcra: get: tags: - Payment Success Indicator summary: Get FCRA Payment Success Indicator (Legacy) description: "Payment Success Indicator (PSI) allows the user to evaluate the likelihood of a specific ACH transaction resulting in an insufficient funds return (NSF). PSI is powered by a machine learning model trained on Finicity’s consumer-permissioned data network. PSI provides a risk assessment, which includes a real-time balance check, a predictive risk score for the up to the next 9 days, and 8 risk attributes to explain and enhance decisioning. Provision and use of this report is subject to all applicable obligations of the FCRA and any applicable analogous state law. This product may only be used for the stated permissible purpose under the FCRA.\n\n\n _Supported regions_: ![\U0001F1FA\U0001F1F8](https://flagcdn.com/20x15/us.png)" operationId: GetFCRAPaymentSuccessIndicator parameters: - $ref: '#/components/parameters/CustomerIdParameter' - $ref: '#/components/parameters/AccountIdParameter' - $ref: '#/components/parameters/SettlementAmountParameter' - $ref: '#/components/parameters/SettleByDateParameter' - $ref: '#/components/parameters/PayPurposeCodeParameter' responses: '200': $ref: '#/components/responses/GetPaymentSuccessIndicatorResponse' '400': $ref: '#/components/responses/GetPaymentSuccessIndicatorFcraBadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/GetPaymentSuccessIndicatorNotFoundResponse' /aggregation/v2/customers/{customerId}/accounts/{accountId}/payments/paymentIndicator: get: tags: - Payment Success Indicator summary: Get Non-FCRA Payment Success Indicator (Legacy) description: "Payment Success Indicator (PSI) is a Payment Intelligence solution that uses Financial Institution (FI) data to help payment originators evaluate a consumer's ability to pay now and in the future within a given time period. PSI is for payment originators to assess a consumer's real-time FI account balance and historical FI account activities to help minimize ACH declines and enable payment originators to gracefully transition to alternative payment methods or schedules when payment settlement using ACH / Account-based payment is less likely. PSI may not be used for credit or insurance underwriting, employment or rental screening, or any other purpose(s) that would implicate the Fair Credit Reporting Act or other consumer reporting law.\n\n\n _Supported regions_: ![\U0001F1FA\U0001F1F8](https://flagcdn.com/20x15/us.png)" operationId: GetPaymentSuccessIndicator parameters: - $ref: '#/components/parameters/CustomerIdParameter' - $ref: '#/components/parameters/AccountIdParameter' - $ref: '#/components/parameters/SettlementAmountParameter' - $ref: '#/components/parameters/SettleByDateParameter' responses: '200': $ref: '#/components/responses/GetPaymentSuccessIndicatorResponse' '400': $ref: '#/components/responses/GetPaymentSuccessIndicatorBadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/GetPaymentSuccessIndicatorNotFoundResponse' components: examples: MissingFinicityAppKeyExample: value: code: '10026' message: Missing parameter (Finicity-App-Key) ResellerNoReportForPartnerExample: value: code: '10100' message: Cannot find resellerBilling reports with id 2445581559892. ResellerInvalidDateRangeGreaterThan31DaysExample: value: code: '10100' message: 'RESELLER_BILLING_REPORT: Invalid date range - It is more than 31 days' 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. MissingFieldExample: value: code: '10005' message: Missing parameter (partnerId) PaymentSuccessIndicatorsSuccessResponseExample: value: payRequestId: '476412776235977427' status: SUCCESS customerId: '1005061234' accountId: '20050961233' requestDate: '2025-04-24' transaction: settleByDate: '2025-04-25' amount: 12.98 nsfReturnRisk: result: availableBalance: 82.32 dailyResults: - potentialSettlementDate: '2024-04-24' score: 7 indicator: High Risk reasons: recentBalance: 12 balanceHistory: 23 nsfHistory: 40 recentNsfHistory: 78 recurringNsf: 34 spendHistory: 44 depositHistory: 10 transactionAmount: 65 - potentialSettlementDate: '2024-04-25' score: 6 indicator: High Risk reasons: recentBalance: 12 balanceHistory: 23 nsfHistory: 40 recentNsfHistory: 78 recurringNsf: 34 spendHistory: 44 depositHistory: 10 transactionAmount: 65 - potentialSettlementDate: '2024-04-26' score: 8 indicator: High Risk reasons: recentBalance: 12 balanceHistory: 23 nsfHistory: 40 recentNsfHistory: 78 recurringNsf: 34 spendHistory: 44 depositHistory: 10 transactionAmount: 65 unauthorizedReturnRisk: score: 89 indicator: Low Risk IncorrectFieldTypeExample: value: code: '10007' message: '[FIELD] is the incorrect type' ResellerInvalidDateRangeLessThanZeroExample: value: code: '10100' message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date less than or equal to zero' InvalidSettleByDateExample: value: code: '10006' message: settleByDate must not be in the past InvalidConsumerEmailExample: value: code: '10100' message: Invalid format for field consumer.email. MissingEmailExample: value: code: '12022' message: An email is required when registering a customer for PSI-FCRA ForbiddenErrorResponseExample: value: code: '10405' status: '403' message: An active security freeze for this customer exists. BadCredentialsExample: value: code: '24302' message: Bad credentials InvalidForesightReportRequestExample: value: code: '10100' message: At least one of customerId or externalCustomerId must be provided; both are also allowed. RequiredFieldParameterExample: value: code: '10009' message: '[FIELD] is a required parameter' 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) NoAccountForInstitutionLoginIdExample: value: code: '38007' message: Customer does not have any accounts associated with institutionLoginId. CustomerNotFoundExample: value: code: '14001' message: Customer not found. PaymentSuccessIndicatorWarningExample: value: code: '2000' message: Successful Warning - settlement amount exceeds available balance customerId: '453752752892' accountId: '453752772892' payReqId: '484265782033818817' settleByDate: '2023-06-07' settlementAmount: 102.05 availableBalance: 82.32 indicatorsByDay: - potentialSettlementDate: '2023-06-07' compositeScore: 7 scoreIndicator: Less Likely to Settle reasons: recentBalance: 12 balanceHistory: 23 nsfHistory: 40 recentNsfHistory: 78 recurringNsf: 34 spendHistory: 44 depositHistory: 10 transactionAmount: 65 - potentialSettlementDate: '2023-06-08' compositeScore: 6 scoreIndicator: Less Likely to Settle reasons: recentBalance: 12 balanceHistory: 23 nsfHistory: 40 recentNsfHistory: 78 recurringNsf: 34 spendHistory: 44 depositHistory: 10 transactionAmount: 65 - potentialSettlementDate: '2023-06-09' compositeScore: 5 scoreIndicator: Less Likely to Settle reasons: recentBalance: 12 balanceHistory: 23 nsfHistory: 40 recentNsfHistory: 78 recurringNsf: 34 spendHistory: 44 depositHistory: 10 transactionAmount: 65 ResellerNoDataForPartnerExample: value: code: '10100' message: 'RESELLER_BILLING_REPORT: Reports not found 2445583947903 resellerBilling reports' NotAllowedErrorResponseExample: value: code: '20000' status: '406' message: Only 'application/json' is supported. ExpiredTokenExample: value: code: '10023' message: Expired (Finicity-App-Token) ResellerInvalidDateRangeExample: value: code: '10100' message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date is empty or null' ResourceNotFoundExample: value: code: '14001' message: Resource not found. ConsumerNotFoundExample: value: code: '10100' message: Cannot find consumer with id 1234. GenericBadRequestExample: value: code: '14020' message: Bad request. PaymentSuccessIndicatorsNoReasonsSuccessResponseExample: value: payRequestId: '476412776235977427' status: SUCCESS customerId: '1005061234' accountId: '20050961233' requestDate: '2025-04-24' transaction: settleByDate: '2025-04-25' amount: 12.98 nsfReturnRisk: result: availableBalance: 82.32 dailyResults: - potentialSettlementDate: '2024-04-24' score: 7 indicator: High Risk - potentialSettlementDate: '2024-04-25' score: 6 indicator: High Risk - potentialSettlementDate: '2024-04-26' score: 8 indicator: High Risk unauthorizedReturnRisk: score: 89 indicator: Low Risk MissingSettleByDateExample: summary: Missing parameter (settleByDate) value: code: 10009 message: Missing parameter (settleByDate) InvalidConsumerPhoneExample: value: code: '10100' message: Invalid format for field consumer.phone. MissingSettlementAmountExample: summary: Missing parameter (settlementAmount) value: code: 10009 message: Missing parameter (settlementAmount) PaymentSuccessIndicatorsFailureResponseExample: value: payRequestId: '476412776235977427' status: FAILURE customerId: '1005061234' accountId: '20050961233' requestDate: '2025-04-24' transaction: settleByDate: '2025-04-25' amount: 12.98 nsfReturnRisk: error: code: 185 status: '500' message: MFA Required unauthorizedReturnRisk: error: code: 185 status: '500' message: MFA Required AccountTypeNotSupportedExample: value: code: '14020' message: Bad request. (Account type not supported). PaymentSuccessIndicatorsInProgressResponseExample: value: payRequestId: '476412776235977427' status: IN PROGRESS customerId: '1005061234' accountId: '20050961233' requestDate: '2025-04-24' transaction: settleByDate: '2025-04-25' amount: 12.98 PermissiblePurposeCodeExample: value: code: '10100' status: '400' message: Permissible Purpose Code is required PaymentSuccessIndicatorExample: value: customerId: '453752752892' accountId: '453752772892' payReqId: '484265782033818817' settleByDate: '2023-06-07' settlementAmount: 10.05 availableBalance: 823.32 indicatorsByDay: - potentialSettlementDate: '2023-06-07' compositeScore: 7 scoreIndicator: Less Likely to Settle reasons: recentBalance: 12 balanceHistory: 23 nsfHistory: 40 recentNsfHistory: 78 recurringNsf: 34 spendHistory: 44 depositHistory: 10 transactionAmount: 65 - potentialSettlementDate: '2023-06-08' compositeScore: 6 scoreIndicator: Less Likely to Settle reasons: recentBalance: 12 balanceHistory: 23 nsfHistory: 40 recentNsfHistory: 78 recurringNsf: 34 spendHistory: 44 depositHistory: 10 transactionAmount: 65 - potentialSettlementDate: '2023-06-09' compositeScore: 5 scoreIndicator: Less Likely to Settle reasons: recentBalance: 12 balanceHistory: 23 nsfHistory: 40 recentNsfHistory: 78 recurringNsf: 34 spendHistory: 44 depositHistory: 10 transactionAmount: 65 InactiveAccountExample: value: code: '10013' message: Only active accounts can be used, please use a different account InvalidPurposeCodeExample: value: code: '10005' message: invalid purpose code ResellerPartnerNotAuthorizedExample: value: code: '10100' message: 'RESELLER_BILLING_REPORT: Partner is not authorized to access resellerBilling reports for partnerId 2445583947903' CustomerReportLimitExceedExample: value: code: '20400' message: The max report generation limit was exceeded for this customer. InvalidAccountIdExample: value: code: '38003' message: customer does not have given account (customerId = 6018989036, accountId = [6024048234]) 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: '' AccountHasNoTransactionExample: value: code: '10008' message: account has no transactions NoConsumerForCustomerExample: value: code: '10100' message: Cannot find consumer for customer with id 5011115315." MissingFinicityAppTokenExample: value: code: '10024' message: Missing parameter (Finicity-App-Token) responses: NotAllowedErrorResponse: description: Not allowed content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: NotAllowedErrorResponseExample: $ref: '#/components/examples/NotAllowedErrorResponseExample' GetPaymentSuccessIndicatorBadRequestResponse: description: The request was rejected content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: GenericBadRequestExample: $ref: '#/components/examples/GenericBadRequestExample' MissingSettleByDateExample: $ref: '#/components/examples/MissingSettleByDateExample' MissingSettlementAmountExample: $ref: '#/components/examples/MissingSettlementAmountExample' InvalidSettleByDateExample: $ref: '#/components/examples/InvalidSettleByDateExample' IncorrectFieldTypeExample: $ref: '#/components/examples/IncorrectFieldTypeExample' AccountHasNoTransactionExample: $ref: '#/components/examples/AccountHasNoTransactionExample' RequiredFieldParameterExample: $ref: '#/components/examples/RequiredFieldParameterExample' InactiveAccountExample: $ref: '#/components/examples/InactiveAccountExample' 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' ForbiddenErrorResponse: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: ForbiddenErrorResponseExample: $ref: '#/components/examples/ForbiddenErrorResponseExample' GeneratePaymentSuccessIndicatorsResponse: description: Successfully requested to generate a Payment Success Indicators score content: application/json: schema: $ref: '#/components/schemas/PaymentSuccessIndicators' examples: PaymentSuccessIndicatorsInProgressResponseExample: $ref: '#/components/examples/PaymentSuccessIndicatorsInProgressResponseExample' GetPaymentSuccessIndicatorResponse: description: The payment success indicator was successfully retrieved content: application/json: schema: $ref: '#/components/schemas/PaymentSuccessIndicator' examples: PaymentSuccessIndicatorExample: $ref: '#/components/examples/PaymentSuccessIndicatorExample' PaymentSuccessIndicatorWarningExample: $ref: '#/components/examples/PaymentSuccessIndicatorWarningExample' 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) GetPaymentSuccessIndicatorFcraBadRequestResponse: description: The request was rejected content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: GenericBadRequestExample: $ref: '#/components/examples/GenericBadRequestExample' MissingSettleByDateExample: $ref: '#/components/examples/MissingSettleByDateExample' MissingSettlementAmountExample: $ref: '#/components/examples/MissingSettlementAmountExample' InvalidPurposeCodeExample: $ref: '#/components/examples/InvalidPurposeCodeExample' InvalidSettleByDateExample: $ref: '#/components/examples/InvalidSettleByDateExample' IncorrectFieldTypeExample: $ref: '#/components/examples/IncorrectFieldTypeExample' AccountHasNoTransactionExample: $ref: '#/components/examples/AccountHasNoTransactionExample' RequiredFieldParameterExample: $ref: '#/components/examples/RequiredFieldParameterExample' InactiveAccountExample: $ref: '#/components/examples/InactiveAccountExample' MissingEmailExample: $ref: '#/components/examples/MissingEmailExample' RetrieveFcraPaymentSuccessIndicatorsResponse: description: Successfully requested to retrieve a Payment Success Indicators score content: application/json: schema: $ref: '#/components/schemas/FcraPaymentSuccessIndicators' examples: PaymentSuccessIndicatorsNoReasonsSuccessResponseExample: $ref: '#/components/examples/PaymentSuccessIndicatorsNoReasonsSuccessResponseExample' PaymentSuccessIndicatorsSuccessResponseExample: $ref: '#/components/examples/PaymentSuccessIndicatorsSuccessResponseExample' PaymentSuccessIndicatorsInProgressResponseExample: $ref: '#/components/examples/PaymentSuccessIndicatorsInProgressResponseExample' PaymentSuccessIndicatorsFailureResponseExample: $ref: '#/components/examples/PaymentSuccessIndicatorsFailureResponseExample' RetrievePaymentSuccessIndicatorsResponse: description: Successfully requested to retrieve a Payment Success Indicators score content: application/json: schema: $ref: '#/components/schemas/PaymentSuccessIndicators' examples: PaymentSuccessIndicatorsNoReasonsSuccessResponseExample: $ref: '#/components/examples/PaymentSuccessIndicatorsNoReasonsSuccessResponseExample' PaymentSuccessIndicatorsSuccessResponseExample: $ref: '#/components/examples/PaymentSuccessIndicatorsSuccessResponseExample' PaymentSuccessIndicatorsInProgressResponseExample: $ref: '#/components/examples/PaymentSuccessIndicatorsInProgressResponseExample' PaymentSuccessIndicatorsFailureResponseExample: $ref: '#/components/examples/PaymentSuccessIndicatorsFailureResponseExample' 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' GetPaymentSuccessIndicatorNotFoundResponse: description: Required details not found content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: CustomerNotFoundExample: $ref: '#/components/examples/CustomerNotFoundExample' InvalidAccountIdExample: $ref: '#/components/examples/InvalidAccountIdExample' schemas: PotentialSettlementDate: type: string format: date description: The date for all days included in the response. example: '2023-03-30' PaymentSuccessIndicator: type: object properties: code: type: string description: PSI error code for this scenario example: '10001' message: type: string description: Detailed reason about the source of the error example: Account Error - use different account customerId: $ref: '#/components/schemas/CustomerId' accountId: $ref: '#/components/schemas/AccountId' payReqId: type: string description: The unique ID that represents the response generated for that specific, customer, account, and transaction. example: '453752752892280957' settleByDate: $ref: '#/components/schemas/SettleByDate' settlementAmount: $ref: '#/components/schemas/SettlementAmount' availableBalance: type: number description: The available balance provided, by the consumer’s financial institution, at the time of the request. example: 315.01 indicatorsByDay: $ref: '#/components/schemas/IndicatorsByDay' required: - customerId - accountId - payReqId - settleByDate - settlementAmount - availableBalance - indicatorsByDay PayPurposeCode: type: string description: 'The 2-digit code (1P) assigned to indicate the intended purpose. 1P represents the following permissible purpose: “Determine whether a consumers payment method may be accepted or authorized”, which falls under the “Legitimate Business Need” permissible purpose under section 604 of the FCRA.' example: 1P NsfDailyResults: type: array description: An Array of 3-10 days, providing the potentialSettlementDate, score, indicator, and reasons. items: $ref: '#/components/schemas/NsfIndicator' minItems: 3 maxItems: 10 Indicator: type: object properties: potentialSettlementDate: $ref: '#/components/schemas/PotentialSettlementDate' compositeScore: $ref: '#/components/schemas/CompositeScore' scoreIndicator: $ref: '#/components/schemas/ScoreIndicator' reasons: $ref: '#/components/schemas/ReasonItem' required: - potentialSettlementDate - compositeScore - scoreIndicator - reasons SettleByDate: type: string format: date description: 'The expected date that the funds, from the consumer’s account, will be moved to the receiving account. `settleByDate` in ISO 8601 date format (YYYY-MM-DD). `settleByDate` dictates the number of days the model responds with. The response can range from 3-10 days, including `day0`. Details explained below: 1. If `settleByDate` is 9 or more days out from today, the response includes 10 days of data, `day0` through `day9`. 2. If `settleByDate` is between 3 and 8 days out from today, the response includes 4-9 days of data, `day3-8`. 3. If `settleByDate` is between today and 2 days out from today, the response includes 3 days of data, `day0` through `day2`.' example: '2023-03-30' NsfReasonItem: type: object description: A collection of 8 reason codes, with a score ranging from 0-100, that explains the drivers that caused the nsf score. properties: recentBalance: description: Evaluates the available balance in an account. type: integer minimum: 0 maximum: 100 example: 78 balanceHistory: description: Evaluates balance trends in the account. type: integer minimum: 0 maximum: 100 example: 23 nsfHistory: description: Evaluates the number of NSF occurrences in the account. type: integer minimum: 0 maximum: 100 example: 40 recentNsfHistory: description: Evaluates the recent NSF occurrences in the account. type: integer minimum: 0 maximum: 100 example: 34 recurringNsf: description: Evaluates the frequency of NSF occurrences in the account. type: integer minimum: 0 maximum: 100 example: 34 spendHistory: description: Evaluates the trends in spend activity in the account. type: integer minimum: 0 maximum: 100 example: 44 depositHistory: description: Evaluates the trends of the consumer's permissioned account deposit over a period of time. type: integer minimum: 0 maximum: 100 example: 10 transactionAmount: description: Evaluates the settlementAmount. type: integer minimum: 0 maximum: 100 example: 65 required: - balanceHistory - depositHistory - nsfHistory - recentBalance - recentNsfHistory - recurringNsf - spendHistory - transactionAmount ReasonItem: type: object description: A collection of 8 reason codes, with a score ranging from 0-100, that explains the drivers that caused the score. properties: recentBalance: description: Evaluates the available balance in an account. type: integer minimum: 0 maximum: 100 example: 78 balanceHistory: description: Evaluates balance trends in the account. type: integer minimum: 0 maximum: 100 example: 23 nsfHistory: description: Evaluates the number of NSF occurrences in the account. type: integer minimum: 0 maximum: 100 example: 40 recentNsfHistory: description: Evaluates the recent NSF occurrences in the account. type: integer minimum: 0 maximum: 100 example: 34 recurringNsf: description: Evaluates the frequency of NSF occurrences in the account. type: integer minimum: 0 maximum: 100 example: 34 spendHistory: description: Evaluates the trends in spend activity in the account. type: integer minimum: 0 maximum: 100 example: 44 depositHistory: description: Evaluates the trends of the consumer's permissioned account deposit over a period of time. type: integer minimum: 0 maximum: 100 example: 10 transactionAmount: description: Evaluates the settlementAmount. type: integer minimum: 0 maximum: 100 example: 65 required: - balanceHistory - depositHistory - nsfHistory - recentBalance - recentNsfHistory - recurringNsf - spendHistory - transactionAmount PaymentSuccessIndicatorsTransactionAmount: description: The transaction amount example: 12.45 type: number exclusiveMinimum: 0 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' FcraPaymentSuccessIndicators: description: A Payment Success Indicators score response, indicating how likely a transaction is to be returned. NSF and Unauthorized return risks are provided if the score has a status of SUCCESS, or the captured errors are listed if the score has a status of FAILURE. type: object properties: payRequestId: $ref: '#/components/schemas/PayRequestId' status: description: Current status of the score generation. Possible values are "IN PROGRESS", "SUCCESS", "FAILURE" type: string example: IN PROGRESS customerId: $ref: '#/components/schemas/CustomerId' accountId: $ref: '#/components/schemas/AccountId' requestDate: type: string description: The ISO 8601 format (YYYY-MM-DD) date of the request. example: '2024-04-01' format: date transaction: $ref: '#/components/schemas/PaymentSuccessIndicatorsTransaction' nsfReturnRisk: $ref: '#/components/schemas/FcraNsfReturnRisk' unauthorizedReturnRisk: $ref: '#/components/schemas/UnauthorizedReturnRisk' required: - payRequestId - status - customerId - accountId - requestDate - transaction PaymentSuccessIndicatorsUser: description: The user's information type: object properties: name: description: The name provided by the customer for the transaction. example: Jane Doe type: string email: description: The email provided by the customer for the transaction. example: Jane.Doe@mastercard.com type: string address: $ref: '#/components/schemas/PaymentSuccessIndicatorsAddress' phone: $ref: '#/components/schemas/PaymentSuccessIndicatorsPhone' FcraNsfReturnRiskResult: description: The successful result of the execution of the nsf return risk type: object properties: disputeStatement: type: string description: A message mentioning if/what type of dispute exists for the customer" example: An active dispute exists availableBalance: type: number description: The available balance provided, by the consumer’s financial institution, at the time of the request. example: 315.01 dailyResults: $ref: '#/components/schemas/NsfDailyResults' required: - availableBalance - dailyResults PaymentSuccessIndicatorsAddress: description: The customer's address type: object properties: streetLine1: description: The first line of the street part in the structured address. example: 434 Ascension Way type: string minLength: 0 maxLength: 1000 streetLine2: description: The second line of the street part in the structured address. example: Suite 200 type: string minLength: 0 maxLength: 1000 city: description: The name of the city in the structured address. example: Salt Lake City type: string minLength: 0 maxLength: 500 state: description: The state/province/parent subdivision code of the structured address. example: UT type: string minLength: 1 maxLength: 3 postalCode: description: The postal code of the structured address. example: '84124' type: string minLength: 0 maxLength: 100 country: description: The ISO-3166 alpha-2 country code of the address. example: US type: string pattern: ^[A-Za-z]+$ format: ISO-3166-2 minLength: 2 maxLength: 2 PaymentSuccessIndicatorsTransaction: description: An object containing the requested transaction info. type: object properties: settleByDate: $ref: '#/components/schemas/SettleByDate' amount: $ref: '#/components/schemas/PaymentSuccessIndicatorsTransactionAmount' required: - settleByDate - amount FcraNsfReturnRisk: description: The result or error occurred during the execution of the nsf return risk prediction type: object properties: result: $ref: '#/components/schemas/FcraNsfReturnRiskResult' error: $ref: '#/components/schemas/ErrorMessage' PayRequestId: description: Unique identifier of the Payments request type: string example: '476412776235977427' minLength: 18 maxLength: 18 PaymentSuccessIndicatorsPhone: description: The phone information type: object properties: countryHint: description: The ISO-3166 alpha-2 country code of the phone number. format: ISO-3166-2 example: US type: string number: description: 'The phone number in E.164 or local format. The default country calling code is +1 (USA). Note: This field is required only if email is not provided.' example: '7785732875' pattern: ^\+?[\d-]*(x\d*)? type: string PaymentSuccessIndicatorsProperties: description: Properties to request a Payment Success Indicator score type: object properties: transaction: $ref: '#/components/schemas/PaymentSuccessIndicatorsTransaction' user: $ref: '#/components/schemas/PaymentSuccessIndicatorsUser' required: - transaction 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 NsfReturnRisk: description: The result or error occurred during the execution of the nsf return risk prediction type: object properties: result: $ref: '#/components/schemas/NsfReturnRiskResult' error: $ref: '#/components/schemas/ErrorMessage' CompositeScore: type: integer format: int32 minimum: 0 maximum: 100 description: A risk score from 0-100 that indicates the likelihood of return risk, where a higher score indicates a higher likelihood of settlement or lower likelihood of return. example: 6 PurposeCode: type: string description: FCRA required 2-digit Permissible Purpose Code, specifying the reason for retrieving this report. example: '31' PaymentSuccessIndicators: description: A Payment Success Indicators score response, indicating how likely a transaction is to be returned. NSF and Unauthorized return risks are provided if the score has a status of SUCCESS, or the captured errors are listed if the score has a status of FAILURE. type: object properties: payRequestId: $ref: '#/components/schemas/PayRequestId' status: description: Current status of the score generation. Possible values are "IN PROGRESS", "SUCCESS", "FAILURE" type: string example: IN PROGRESS customerId: $ref: '#/components/schemas/CustomerId' accountId: $ref: '#/components/schemas/AccountId' requestDate: type: string description: The ISO 8601 format (YYYY-MM-DD) date of the request. example: '2024-04-01' format: date transaction: $ref: '#/components/schemas/PaymentSuccessIndicatorsTransaction' nsfReturnRisk: $ref: '#/components/schemas/NsfReturnRisk' unauthorizedReturnRisk: $ref: '#/components/schemas/UnauthorizedReturnRisk' required: - payRequestId - status - customerId - accountId - requestDate - transaction NsfReturnRiskResult: description: The successful result of the execution of the nsf return risk type: object properties: availableBalance: type: number description: The available balance provided, by the consumer’s financial institution, at the time of the request. example: 315.01 dailyResults: $ref: '#/components/schemas/NsfDailyResults' required: - availableBalance - dailyResults ScoreIndicator: type: string description: '`scoreIndicator` conveys the `compositeScore`, projecting 3 possible values: "Highly Likely to Settle", "Likely to Settle", and "Less Likely to Settle"' example: Likely to Settle minLength: 1 maxLength: 50 SettlementAmount: type: number description: The transaction amount in USD $. example: 10.05 UnauthorizedReturnRisk: description: The result or error occurred during the execution of the unauthorized return risk prediction type: object properties: result: description: The result object containing the unauthorized return risk score properties: score: description: A risk score from 0-100 that indicates the likelihood of an unauthorized return risk, where a higher score indicates a higher likelihood of settlement or lower likelihood of return. example: 89 type: integer minimum: 0 maximum: 100 indicator: description: '`indicator` conveys the `score`, projecting 3 possible values: "Low Risk", "Medium Risk", or "High Risk"' example: Low Risk type: string required: - score - indicator type: object error: $ref: '#/components/schemas/ErrorMessage' CustomerId: type: string description: A customer ID. See Add Customer API for how to create a customer ID. example: '1005061234' NsfIndicator: type: object properties: potentialSettlementDate: type: string description: The date for a potential settlement date example: '2024-04-24' format: date score: type: integer description: A risk score from 0-100 that indicates the likelihood of a nsf return risk, where a higher score indicates a higher likelihood of settlement or lower likelihood of return. example: 6 minimum: 0 maximum: 100 format: int32 indicator: type: string description: '`indicator` conveys the `score`, projecting 3 possible values: "Low Risk", "Medium Risk", or "High Risk"' example: Low Risk minLength: 1 maxLength: 50 reasons: $ref: '#/components/schemas/NsfReasonItem' required: - potentialSettlementDate - score - indicator IndicatorsByDay: type: array description: An Array of 3-10 days, providing the potentialSettlementDate, compositeScore, scoreIndicator, and reasons. items: $ref: '#/components/schemas/Indicator' minItems: 3 maxItems: 10 requestBodies: GeneratePaymentSuccessIndicatorsRequest: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentSuccessIndicatorsProperties' parameters: PayPurposeCodeParameter: description: 'The 2-digit code (1P) assigned to indicate the intended purpose. 1P represents the following permissible purpose: “Determine whether a consumers payment method may be accepted or authorized”, which falls under the “Legitimate Business Need” permissible purpose under section 604 of the FCRA.' name: purposeCode in: query required: true schema: $ref: '#/components/schemas/PayPurposeCode' PayRequestIdParameter: name: payRequestId in: path required: true description: Unique identifier of the Payments request schema: $ref: '#/components/schemas/PayRequestId' example: '476412776235977427' IncludeReasonsParameter: name: include_reasons in: query required: false description: If this parameter is true, the reasons codes will be provided in the results. Otherwise, the reasons will be omitted. schema: type: boolean example: true allowEmptyValue: true PurposeParameter: name: purpose in: query required: false description: 2-digit code from [Permissible Purpose Codes](https://developer.mastercard.com/open-finance-us/documentation/products/lend/permissible-purpose-codes/), specifying the reason for retrieving this report. Required for retrieving CRA reports. Validation enforcing the use of a valid [Permissible Purpose Code](https://developer.mastercard.com/open-finance-us/documentation/products/lend/permissible-purpose-codes/) for CRA reports will be enabled on 11 August 2026. schema: $ref: '#/components/schemas/PurposeCode' example: 3F SettleByDateParameter: description: 'The expected date that the funds, from the consumer’s account, will be moved to the receiving account. `settleByDate` in ISO 8601 date format (YYYY-MM-DD). `settleByDate` dictates the number of days the model responds with. The response can range from 3-10 days, including `day0`. Details explained below: 1. If `settleByDate` is 9 or more days out from today, the response includes 10 days of data, `day0` through `day9`. 2. If `settleByDate` is between 3 and 8 days out from today, the response includes 4-9 days of data, `day3-8`. 3. If `settleByDate` is between today and 2 days out from today, the response includes 3 days of data, `day0` through `day2`.' name: settleByDate in: query required: true schema: $ref: '#/components/schemas/SettleByDate' example: '2023-03-30' AccountIdParameter: description: The account ID name: accountId in: path required: true schema: $ref: '#/components/schemas/AccountId' example: '5011648377' CustomerIdParameter: description: A customer ID name: customerId in: path required: true schema: $ref: '#/components/schemas/CustomerId' example: '1005061234' SettlementAmountParameter: description: The transaction amount in USD $. name: settlementAmount in: query required: true schema: $ref: '#/components/schemas/SettlementAmount' example: 10.05 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