swagger: '2.0' info: title: Mastercard Bill Payment Validator Account Opening Agreement API description: This service is provided on behalf of the Mastercard Remote Payment and Presentment (RPPS) Bill Payment Processing Network, which supports consumer to business "push" bill payments (i.e. those which are not funded by debit/credit card transactions) in the U.S. version: '1.0' x-artifactId: billpay-api contact: name: Bill Pay Development Support email: Bill_Pay_Development_Support@mastercard.com host: sandbox.api.mastercard.com basePath: /billpayAPI/v1 schemes: - https consumes: - application/json produces: - application/json tags: - name: Agreement paths: /agreements/{agreement_id}/updates: post: tags: - Agreement summary: Mastercard Update Agreement. operationId: updateAgreement description: Enables CSP to update agreement status to Deleted. parameters: - $ref: '#/components/parameters/X-Request-ID' - $ref: '#/components/parameters/X-Product-ID' - $ref: '#/components/parameters/X-Participant-ID' - $ref: '#/components/parameters/X-JWS-Signature' - $ref: '#/components/parameters/agreement_id' requestBody: $ref: '#/components/requestBodies/CreditorAgreementUpdateRequest' responses: '200': $ref: '#/components/responses/DebtorAgreementUpdateResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorisedErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /agreements/{agreement_id}/status-retrievals: post: tags: - Agreement summary: Mastercard Agreement Request Status Retrieval Request. description: Enables CSP to retrieve agreement status from DSP. operationId: retrieveAgreementStatus parameters: - $ref: '#/components/parameters/X-Request-ID' - $ref: '#/components/parameters/X-Product-ID' - $ref: '#/components/parameters/X-Participant-ID' - $ref: '#/components/parameters/X-JWS-Signature' - $ref: '#/components/parameters/Idempotency-Key' - $ref: '#/components/parameters/agreement_id' requestBody: $ref: '#/components/requestBodies/AgreementRequestStatusRetrievalRequest' responses: '200': $ref: '#/components/responses/AgreementRequestStatusRetrievalResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorisedErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /agreement-retrievals: post: tags: - Agreement summary: Mastercard Retrieve Agreement Details description: Enables DSP to retrieve agreement details, either agreementId or agreementReferenceNumber must be provided to retrieve agreement details. operationId: retrieveAgreement parameters: - $ref: '#/components/parameters/X-Request-ID' - $ref: '#/components/parameters/X-Product-ID_2' - $ref: '#/components/parameters/X-Participant-ID' - $ref: '#/components/parameters/X-JWS-Signature' requestBody: $ref: '#/components/requestBodies/RetrieveAgreementRequest' responses: '200': $ref: '#/components/responses/RetrieveAgreementResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorisedErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /agreement-searches: post: tags: - Agreement summary: Mastercard Retrieve Agreement List description: Enables DSP to retrieve list of active agreements. operationId: retrieveAgreementList parameters: - $ref: '#/components/parameters/X-Request-ID' - $ref: '#/components/parameters/X-Product-ID_2' - $ref: '#/components/parameters/X-Participant-ID' - $ref: '#/components/parameters/X-JWS-Signature' requestBody: $ref: '#/components/requestBodies/RetrieveAgreementListRequest' responses: '200': $ref: '#/components/responses/RetrieveAgreementListResponse' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorisedErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: NewAgreementDetailRetrieval: allOf: - $ref: '#/components/schemas/MessageRequestBlock' - type: object required: - debtor - agreement properties: debtor: $ref: '#/components/schemas/Debtor' agreement: $ref: '#/components/schemas/AgreementForAgmtRetrieval' NewAgreementUpdate: allOf: - $ref: '#/components/schemas/MessageRequestBlock' - type: object required: - creditor - agreement properties: creditor: $ref: '#/components/schemas/Creditor' agreement: $ref: '#/components/schemas/AgreementForAgmtUpdate' Creditor: type: object required: - creditorId - creditorServiceProviderId properties: creditorId: type: string example: VerizonoMobile000588 minLength: 1 maxLength: 35 description: Unique identifier assigned to the Creditor by the CSP. creditorServiceProviderId: type: string example: '000645' minLength: 1 maxLength: 35 description: Unique identifier assigned to the CSP during Mastercard onboarding. AgreementRequestStatusRetrievalAck: allOf: - $ref: '#/components/schemas/MessageResponseBlock' - type: object required: - agreementRequestStatusRetrievalLifecycleId - retrievalRequestStatus properties: agreementRequestStatusRetrievalLifecycleId: type: string example: '111123123123123111' minLength: 1 maxLength: 35 description: Unique identifier assigned by Mastercard, to identify the Agreement Request Status Retrieval request in subsequent transactions or services. retrievalRequestStatus: type: string example: WFAC minLength: 1 maxLength: 35 description: Informs the status of the Retrieval Request. * Refer to Codes and Formats section for more details. AgreementList: type: array description: An object that has a list of active agreements and details about each agreement that belongs to the Debtor. items: $ref: '#/components/schemas/AgreementListItems' AgreementForAgmtUpdate: type: object required: - agreementId - agreementStatus properties: agreementId: type: string example: a3e2a749088440eab8b40c926efe2931 minLength: 1 maxLength: 35 description: Unique identifier assigned by Mastercard to the agreement. agreementStatus: type: string example: DELT minLength: 4 maxLength: 4 description: Status of the Agreement updated by CSP. * Refer to Codes and Formats section for more details. AgreementListRetrieval: allOf: - $ref: '#/components/schemas/MessageResponseBlock_2' - type: object properties: agreementList: $ref: '#/components/schemas/AgreementList' AgreementDetailRetrieval: allOf: - $ref: '#/components/schemas/MessageResponseBlock_2' - type: object required: - confirmationExpiryTimeInterval - creditor - agreement properties: confirmationExpiryTimeInterval: type: number example: 150 description: Time window given in seconds within which the Agreement Confirmation must be received by the Mastercard. categoryPurpose: type: string example: EP2M minLength: 1 maxLength: 35 description: Set by the Creditor/CSP to offer specific transaction processing. * Refer to Codes and Formats section for more details. creditor: $ref: '#/components/schemas/CreditorAckForAgmtRetrieval' agreement: $ref: '#/components/schemas/AgreementAckForAgmtRetrieval' NewAgreementListRetrieval: allOf: - $ref: '#/components/schemas/MessageRequestBlock' - type: object required: - debtor properties: debtor: $ref: '#/components/schemas/Debtor' MessageResponseBlock: type: object required: - messageId - creationDateTime - initiatingPartyId - originalMessageId properties: initiatingPartyId: type: string example: ZAPP minLength: 1 maxLength: 35 description: Unique identifier of the message sender. messageId: type: string example: 3bef00e542ec4be583b1b5d449799084 minLength: 1 maxLength: 35 description: A point-to-point unique identifier is assigned to every message by the message initiator. creationDateTime: type: string example: '2020-11-20T06:57:24.465Z' format: date-time description: ISO 8601 format date and time in Coordinated Universal Time (UTC) when this message was created. originalMessageId: type: string example: 7eab4eab35a542e085add0363a49c035 minLength: 1 maxLength: 35 description: "Original message identifier generated and sent by the initiator of\n the request message." AgreementAckForAgmtRetrieval: type: object required: - agreementId - agreementType - agreementStatus properties: agreementId: type: string example: a3e2a749088440eab8b40c926efe2931 minLength: 1 maxLength: 35 description: Unique identifier assigned by Mastercard to the agreement. agreementType: type: string example: AOF minLength: 1 maxLength: 4 description: Creditor requesting DSP to display to Debtor to setup Agreement during payment confirmation. * Refer to Codes and Formats section for more details. agreementStatus: type: string example: INPR minLength: 4 maxLength: 4 description: Status of the Agreement. * Refer to Codes and Formats section for more details. Debtor: type: object required: - debtorId - debtorServiceProviderId properties: debtorId: type: string example: Fxrsi5345 minLength: 1 maxLength: 35 description: Unique identifier of the Debtor provided to Mastercard by the DSP. debtorServiceProviderId: type: string example: 000369 minLength: 1 maxLength: 35 description: Unique identifier assigned to the DSP during Mastercard onboarding. CreditorForSRR: type: object required: - creditorId - creditorServiceProviderId properties: creditorId: type: string example: VerizonoMobile000588 minLength: 1 maxLength: 35 description: Unique identifier assigned to the Creditor by the CSP. creditorServiceProviderId: type: string example: '000645' minLength: 1 maxLength: 35 description: Unique identifier assigned to the CSP during Mastercard onboarding. CreditorAckForAgmtRetrieval: type: object required: - creditorServiceProviderId - creditorId - creditorTradeName - creditorCategoryCode properties: creditorId: type: string example: VerizonoMobile000588 minLength: 1 maxLength: 35 description: Unique identifier assigned to the Creditor by the CSP. creditorServiceProviderId: type: string example: '000645' minLength: 1 maxLength: 35 description: Unique identifier assigned to the CSP during Mastercard onboarding. creditorTradeName: type: string example: VerizonoMobileLtd minLength: 1 maxLength: 35 description: Name used by the Creditor in dealing with customers, which may not be the same as the one it uses for legal purposes. creditorCategoryCode: type: string example: '0742' minLength: 4 maxLength: 4 description: The category code of the Creditor, also known as Merchant Category Code (MCC). Enables the classification of Creditors into specific categories based on the type of business, trade or services supplied. creditorLogoUrl: type: string example: https://www.cdn.com/creditorlogourl minLength: 1 maxLength: 512 description: Creditor's Logo (in URL encoded format). Can be used by the Debtor to display the Creditor's Logo. creditorReturnString: type: string example: https://www.creditor.com/creditorreturnstring minLength: 1 maxLength: 512 description: Return string (in URL encoded format) that is passed to the DSP to return the Debtor back to the Creditor's page. ErrorWrapper: description: A top level object for errors type: object required: - Errors properties: Errors: $ref: '#/components/schemas/Errors' AgreementAckUpdate: allOf: - $ref: '#/components/schemas/MessageResponseBlock' AgreementForAgmtRetrieval: type: object properties: agreementId: type: string example: a3e2a749088440eab8b40c926efe2931 minLength: 1 maxLength: 35 description: Unique identifier assigned by Mastercard to the agreement. agreementReferenceNumber: type: string example: '122549' minLength: 6 maxLength: 6 description: Unique 6 digit reference used by DSP to retrieve the create agreement request. AgreementListItems: type: object required: - creditor - agreement properties: creditor: $ref: '#/components/schemas/CreditorAcknowledgement' agreement: type: object required: - agreementId - agreementStatus - agreementType properties: agreementId: type: string example: a3e2a749088440eab8b40c926efe2931 minLength: 1 maxLength: 35 description: Unique identifier assigned by Mastercard to the agreement. agreementStatus: type: string example: APPR minLength: 4 maxLength: 4 description: Status of the Agreement updated by DSP to Approved. * Refer to Codes and Formats section for more details. agreementType: type: string example: AOF minLength: 1 maxLength: 4 description: Creditor requesting DSP to display to Debtor to setup Agreement during payment confirmation. * Refer to Codes and Formats section for more details. accountNickname: type: string x-guarded-string: 'true' example: bankname_account minLength: 1 maxLength: 35 description: Nickname of the account. example: example_value Errors: description: Object that contains the list of errors type: object required: - Error properties: Error: $ref: '#/components/schemas/ErrorList' CreditorAcknowledgement: type: object required: - creditorId - creditorTradeName properties: creditorId: type: string example: VerizonoMobile000588 minLength: 1 maxLength: 35 description: Unique identifier assigned to the Creditor by the CSP. creditorTradeName: type: string example: VerizonoMobileLtd minLength: 1 maxLength: 35 description: Name used by the Creditor in dealing with customers, which may not be the same as the one it uses for legal purposes. creditorLogoUrl: type: string example: https://www.cdn.com/creditorlogourl minLength: 1 maxLength: 512 description: Creditor's Logo (in URL encoded format). Can be used by the Debtor to display the Creditor's Logo. ErrorList: description: The list of errors type: array minItems: 1 items: $ref: '#/components/schemas/Error' MessageResponseBlock_2: type: object required: - messageId - creationDateTime - initiatingPartyId - originalMessageId properties: initiatingPartyId: type: string example: ZAPP minLength: 1 maxLength: 35 description: Unique identifier of the message sender. messageId: type: string example: 3bef00e542ec4be583b1b5d449799084 minLength: 1 maxLength: 35 description: A point-to-point unique identifier is assigned to every message by the message initiator. creationDateTime: type: string example: '2020-11-20T06:57:24.465Z' format: date-time description: ISO 8601 format date and time in Coordinated Universal Time (UTC) when this message was created. originalMessageId: type: string example: 7eab4eab35a542e085add0363a49c035 minLength: 1 maxLength: 35 description: Original message identifier generated and sent by the initiator of the request message. NewAgreementRequestStatusRetrieval: allOf: - $ref: '#/components/schemas/MessageRequestBlock' - type: object required: - agreementId - creditor properties: agreementId: type: string example: a3e2a749088440eab8b40c926efe2931 minLength: 1 maxLength: 35 description: Unique identifier assigned by Mastercard to the agreement. creditor: $ref: '#/components/schemas/CreditorForSRR' MessageRequestBlock: type: object required: - messageId - creationDateTime - initiatingPartyId - businessType properties: initiatingPartyId: type: string example: '000545' minLength: 1 maxLength: 35 description: Unique identifier of the message sender. messageId: type: string example: 7eab4eab35a542e085add0363a49c035 minLength: 1 maxLength: 35 description: A point-to-point unique identifier is assigned to every message by the message initiator. creationDateTime: type: string format: date-time example: '2020-11-20T06:57:24.465Z' description: ISO 8601 format date and time in Coordinated Universal Time (UTC) when this message was created. businessType: type: number example: 3 minimum: 1 maximum: 999 description: Unique identifier assigned by Mastercard to define the commercial product construct. * Refer to Codes and Formats section for more details. Error: description: A single error type: object properties: Source: type: string example: ZAPP description: Source of the error ReasonCode: type: string example: STVL-9999 description: Error Code Description: type: string example: Invalid structure description: Error Description Recoverable: type: boolean example: false description: Boolean value to specify if error is recoverable or not Details: type: string example: Invalid structure description: Optional details of the error responses: RetrieveAgreementListResponse: description: Retrieve Agreement List Request Successful. headers: X-Request-ID: $ref: '#/components/headers/X-Request-ID_2' X-Product-ID: $ref: '#/components/headers/X-Product-ID_2' X-Participant-ID: $ref: '#/components/headers/X-Participant-ID' X-JWS-Signature: $ref: '#/components/headers/X-JWS-Signature' content: application/json: schema: $ref: '#/components/schemas/AgreementListRetrieval' DebtorAgreementUpdateResponse: description: Update agreement request successful. headers: X-Request-ID: $ref: '#/components/headers/X-Request-ID' X-Product-ID: $ref: '#/components/headers/X-Product-ID' X-Participant-ID: $ref: '#/components/headers/X-Participant-ID' X-JWS-Signature: $ref: '#/components/headers/X-JWS-Signature' content: application/json: schema: $ref: '#/components/schemas/AgreementAckUpdate' BadRequestErrorResponse: description: 'Invalid structure: The header or payload fails syntax or structural validation.' headers: X-Request-ID: $ref: '#/components/headers/X-Request-ID' X-Product-ID: $ref: '#/components/headers/X-Product-ID' X-Participant-ID: $ref: '#/components/headers/X-Participant-ID' content: application/json: schema: $ref: '#/components/schemas/ErrorWrapper' examples: BadRequestErrorExample: $ref: '#/components/examples/BadRequestErrorExample' RetrieveAgreementResponse: description: Retrieve Agreement Request Successful. headers: X-Request-ID: $ref: '#/components/headers/X-Request-ID_2' X-Product-ID: $ref: '#/components/headers/X-Product-ID_2' X-Participant-ID: $ref: '#/components/headers/X-Participant-ID' X-JWS-Signature: $ref: '#/components/headers/X-JWS-Signature' content: application/json: schema: $ref: '#/components/schemas/AgreementDetailRetrieval' AgreementRequestStatusRetrievalResponse: description: Agreement request status retrieval Request was successfully received by Mastercard. headers: X-Request-ID: $ref: '#/components/headers/X-Request-ID' X-Product-ID: $ref: '#/components/headers/X-Product-ID' X-Participant-ID: $ref: '#/components/headers/X-Participant-ID' content: application/json: schema: $ref: '#/components/schemas/AgreementRequestStatusRetrievalAck' UnauthorisedErrorResponse: description: Invalid signature. The service fails signature validation. headers: X-Request-ID: $ref: '#/components/headers/X-Request-ID' X-Product-ID: $ref: '#/components/headers/X-Product-ID' X-Participant-ID: $ref: '#/components/headers/X-Participant-ID' content: application/json: schema: $ref: '#/components/schemas/ErrorWrapper' examples: BadRequestExample: $ref: '#/components/examples/UnauthorisedExample' parameters: agreement_id: name: agreement_id in: path required: true description: Unique identifier assigned by Mastercard, to the agreement, to be used in Payment Requests for routing them to the destined participant. schema: type: string example: '923123123123123100' minLength: 1 maxLength: 35 X-Product-ID_2: name: X-Product-ID in: header required: true schema: type: string minLength: 1 maxLength: 50 example: PBARFP description: Unique identifier assigned to the product by Mastercard and given to the participant. X-JWS-Signature: name: X-JWS-Signature in: header required: true description: JWS detached signature is applied to ensure data integrity. schema: type: string example: eyJhbGciOiJSUzI1NiIsImtpZCI6Ik1LMGlrb1k3NFpNdUhnbncwSG1MNnpSbi9rRT0iLCJpYXQiOiIxNjc1OTYyMjA3IiwiY3JpdCI6WyJpYXQiXX0..XRHc_Q7mp49sr0CDL6Ps97uz4Lhl3XG_--JfeZrkj-4LK-3gzc7HsN0Jq4UjO_NX5ZlVp_tfL_GE1g9-vUT0NCfXmfbBXYEaC9CgFZIoU9F2PBegdZwHHmkDbu-5-t6kd2xo4UhaQ5VP1quWOD5yAs2a6MlQstT1iT-gPIW1teaiz4lgCmqbcTo6umjLKL-QsYvJ53Ngtb5rrF5WWQ1WKpGeq_PP1hGYbxDzcYBNZqGed-dXuGqpkWJ85JENJyOKDoskWM6cgs6OAjrmjTIFQ0qdfal91SUQtzJ49nbAiqMpROh79uYJ024jgtcQ_StqYJyJWYdLeUv1ge-kDJN0fw minLength: 1 maxLength: 512 X-Participant-ID: name: X-Participant-ID in: header required: true schema: type: string example: '000545' minLength: 1 maxLength: 50 description: Unique identifier assigned to the participant by Mastercard during onboarding. X-Product-ID: name: X-Product-ID in: header required: true schema: type: string example: PBARFP minLength: 1 maxLength: 50 description: Unique identifier assigned to the product construct by Mastercard and given to the participant. Idempotency-Key: name: Idempotency-Key in: header required: true description: Unique identifier generated by the participant. Mastercard uses this identifier to recognize subsequent retries of the same request and ensure idempotent behaviour by sending the same response without repeating the operation again. schema: type: string format: uuid example: 7da7a728-f910-11e6-942a-68f728c1ba70 minLength: 1 maxLength: 36 X-Request-ID: name: X-Request-ID in: header required: true schema: type: string example: 7eab4eab35a542e085add0363a49c035 minLength: 1 maxLength: 50 description: Each API request has an associated request identifier. It can be used to match the response to the request and used for tracing, troubleshooting and analysis purposes. headers: X-Product-ID_2: required: true schema: type: string minLength: 1 maxLength: 50 example: PBARFP description: Unique identifier assigned to the product by Mastercard and given to the participant. X-Participant-ID: required: true schema: type: string minLength: 1 maxLength: 50 example: '000545' description: Unique identifier assigned to the participant by Mastercard during onboarding. X-Request-ID_2: required: true schema: type: string minLength: 1 maxLength: 50 example: 7eab4eab35a542e085add0363a49c035 description: Each API request has an associated request identifier. It can be used to match the response to the request and for tracing, troubleshooting and analysis purposes. X-JWS-Signature: required: true description: JWS detached signature is applied to ensure data integrity. schema: type: string example: eyJhbGciOiJSUzI1NiIsImtpZCI6Ik1LMGlrb1k3NFpNdUhnbncwSG1MNnpSbi9rRT0iLCJpYXQiOiIxNjc1OTYyMjA3IiwiY3JpdCI6WyJpYXQiXX0..XRHc_Q7mp49sr0CDL6Ps97uz4Lhl3XG_--JfeZrkj-4LK-3gzc7HsN0Jq4UjO_NX5ZlVp_tfL_GE1g9-vUT0NCfXmfbBXYEaC9CgFZIoU9F2PBegdZwHHmkDbu-5-t6kd2xo4UhaQ5VP1quWOD5yAs2a6MlQstT1iT-gPIW1teaiz4lgCmqbcTo6umjLKL-QsYvJ53Ngtb5rrF5WWQ1WKpGeq_PP1hGYbxDzcYBNZqGed-dXuGqpkWJ85JENJyOKDoskWM6cgs6OAjrmjTIFQ0qdfal91SUQtzJ49nbAiqMpROh79uYJ024jgtcQ_StqYJyJWYdLeUv1ge-kDJN0fw minLength: 1 maxLength: 512 X-Request-ID: required: true schema: type: string minLength: 1 maxLength: 50 example: 7eab4eab35a542e085add0363a49c035 description: Each API request has an associated request identifier. It can be used to match the response to the request and used for tracing, troubleshooting and analysis purposes. X-Product-ID: required: true schema: type: string minLength: 1 maxLength: 50 example: PBARFP description: Unique identifier assigned to the product construct by Mastercard and given to the participant. requestBodies: CreditorAgreementUpdateRequest: required: true description: Update agreement request. content: application/json: schema: $ref: '#/components/schemas/NewAgreementUpdate' AgreementRequestStatusRetrievalRequest: required: true description: Agreement request status retrieval request. content: application/json: schema: $ref: '#/components/schemas/NewAgreementRequestStatusRetrieval' RetrieveAgreementRequest: required: true description: Retrieve Agreement Request. content: application/json: schema: $ref: '#/components/schemas/NewAgreementDetailRetrieval' RetrieveAgreementListRequest: required: true description: Retrieve Agreement List Request. content: application/json: schema: $ref: '#/components/schemas/NewAgreementListRetrieval' examples: BadRequestErrorExample: value: Errors: Error: - Source: ZAPP ReasonCode: STVL-9999 Description: Invalid structure Recoverable: false Details: Invalid structure UnauthorisedExample: value: Errors: Error: - Source: ZAPP ReasonCode: SECU-9999 Description: Invalid signature Recoverable: false Details: Invalid signature