swagger: '2.0'
info:
title: Mastercard Bill Payment Validator Account Opening Consent 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: Consent
paths:
/consent-languages:
get:
operationId: getConsentLanguages
summary: Get consent languages
tags:
- Consent
responses:
'200':
$ref: '#/components/responses/GetConsentLanguagesSuccess'
'400':
$ref: '#/components/responses/GetConsentLanguagesBadRequestError'
parameters:
- $ref: '#/components/parameters/locale'
- $ref: '#/components/parameters/consent_types'
description: Get the consent language text for enrolled service(s). A merchant/psp can use this API to get the text for their enrollment and cache it for later use.
/user-consents/{user_consent_id}:
delete:
operationId: revokeUserConsentById
summary: Revoke user consent using an identifier
description: A merchant/PSP can use this API to revoke the user consent for a user consent identifier (user_consent_id). Once the user consent is revoked (deleted), it will not be available via Retrieve User-Consent request.
tags:
- Consent
responses:
'204':
$ref: '#/components/responses/DeleteConsentsSuccess'
'400':
$ref: '#/components/responses/DeleteConsentsBadRequestError'
'401':
$ref: '#/components/responses/UnAuthorizedMerchantError'
'404':
$ref: '#/components/responses/ResourceNotFoundError'
parameters:
- $ref: '#/components/parameters/user_consent_id'
get:
operationId: getUserConsentById
summary: Retrieve user consent by an identifier
description: Retrieve the user consent by an identifier. A Merchants/PSP can use this API to check whether the user consent for the user_consent_id exist or not.
tags:
- Consent
parameters:
- $ref: '#/components/parameters/user_consent_id'
responses:
'200':
$ref: '#/components/responses/GetConsentsSuccess'
'400':
$ref: '#/components/responses/GetConsentsBadRequestError'
'401':
$ref: '#/components/responses/UnAuthorizedMerchantError'
'404':
$ref: '#/components/responses/ResourceNotFoundError'
components:
examples:
InvalidMerchantRequest:
summary: When registration for the requestor does not exist
value:
Errors:
Error:
- Source: AUTHENTICATION_CONSENT_SERVICE
ReasonCode: invalid.requestor
Description: The registration for the requestor does not exist
Recoverable: false
BadRequestExample:
summary: When something went wrong with the request
value:
Errors:
Error:
- Source: AUTHENTICATION_CONSENT_SERVICE
ReasonCode: system.error
Description: Something went wrong with your request. Please try again later
Recoverable: false
ResourceNotFoundExample:
summary: When resource not found
value:
Errors:
Error:
- Source: AUTHENTICATION_CONSENT_SERVICE
ReasonCode: resource.not.found
Description: The requested resource was not found
Recoverable: false
InvalidLocalParameterLengthExample:
summary: When locale query parameter length is invalid
value:
Errors:
Error:
- Source: AUTHENTICATION_CONSENT_SERVICE
ReasonCode: 'invalid data: locale'
Description: size must be between 5 and 50
Recoverable: false
UnAuthorizedMerchantRequest:
summary: When requestor is not authorized to perform requested operation
value:
Errors:
Error:
- Source: AUTHENTICATION_CONSENT_SERVICE
ReasonCode: unauthorized
Description: Unable to perform this operation as the requestor is unauthorized
Recoverable: false
responses:
GetConsentLanguagesBadRequestError:
description: Server is unable to process the request due to invalid query parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
InvalidLocalParameterLengthExample:
$ref: '#/components/examples/InvalidLocalParameterLengthExample'
BadRequestExample:
$ref: '#/components/examples/BadRequestExample'
UnAuthorizedMerchantError:
description: Requestor is not authorised to perform requested operation.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
UnAuthorizedMerchantRequest:
$ref: '#/components/examples/UnAuthorizedMerchantRequest'
GetConsentsSuccess:
description: The success response for retrieving user consent
content:
application/json:
schema:
$ref: '#/components/schemas/UserConsent'
GetConsentLanguagesSuccess:
description: Consent languages for given filters, if filters not provided then return all consent languages.
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentLanguages'
DeleteConsentsBadRequestError:
description: Server is unable to parse the request data due to malformed json.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
InvalidMerchantRequest:
$ref: '#/components/examples/InvalidMerchantRequest'
BadRequestExample:
$ref: '#/components/examples/BadRequestExample'
ResourceNotFoundError:
description: The requested resource does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
ResourceNotFoundExample:
$ref: '#/components/examples/ResourceNotFoundExample'
GetConsentsBadRequestError:
description: Server is unable to parse the request data due to malformed json.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
InvalidMerchantRequest:
$ref: '#/components/examples/InvalidMerchantRequest'
BadRequestExample:
$ref: '#/components/examples/BadRequestExample'
DeleteConsentsSuccess:
description: The server successfully processed the request
schemas:
ErrorResponse:
type: object
required:
- Errors
properties:
Errors:
type: object
required:
- Error
properties:
Error:
$ref: '#/components/schemas/Errors'
UserConsent:
type: object
description: The user consent resource
required:
- userConsentId
- consentLanguageId
- consentedDate
properties:
userConsentId:
type: string
description: User consent Identifier, generated at the time of store consent API to track the user consents.
example: 2c0743c0-fe6a-41a6-88c4-2c94786fb9c2
minLength: 36
maxLength: 36
consentLanguageId:
type: string
description: Unique Id for a specific consent language text. This Id will be available through GET consent-languages API.
example: 75c4f996-1910-420f-b82b-fcc3e5196b99
minLength: 36
maxLength: 36
consentedDate:
type: string
format: YYYYMMDDHHMMSS
description: Consented date (in UTC) at which the user is consented.
example: '20200223000001'
minLength: 14
maxLength: 14
ConsentLanguage:
description: Consent language details
type: object
required:
- consentLanguageId
- longText
- defaultText
- privacyNoticeURL
- consentType
- version
- locale
properties:
consentLanguageId:
type: string
description: A unique identifier of a consent language text.
example: ca91870b-02e5-40e1-9ad6-88aded6a72ab
minLength: 36
maxLength: 36
longText:
type: string
description: Actual consent language text.
example: By clicking below, you consent to bypass entry of One Time Password (OTP) for most transactions below �2000 initiated from this merchant app on this device. You may continue to receive an OTP for transactions at or above �2000. You can revoke your consent any time within the merchant app.
minLength: 50
maxLength: 5000
defaultText:
type: string
description: A short description of the consent language text.
example: By consenting, you agree to the Mastercard Global Privacy Notice
minLength: 50
maxLength: 500
privacyNoticeURL:
type: string
description: A global Mastercard privacy policy URL.
example: https://www.mastercard.co.in/en-in/privacy.html
minLength: 10
maxLength: 150
consentType:
type: string
description: Type of the consent. Possible valid values are india_frictionless, device_auth and frictionless_device_auth.
example: india_frictionless
minLength: 2
maxLength: 50
version:
type: string
description: Current version of the consent language.
example: '1.0'
minLength: 3
maxLength: 10
locale:
type: string
description: Locale of the consent language text.
example: en-US
minLength: 5
maxLength: 50
ConsentLanguages:
description: Collection of Consent Language details
type: object
required:
- consentLanguages
properties:
consentLanguages:
type: array
items:
$ref: '#/components/schemas/ConsentLanguage'
Errors:
type: array
minItems: 1
items:
$ref: '#/components/schemas/Error'
Error:
type: object
required:
- Source
- ReasonCode
- Recoverable
properties:
Source:
type: string
description: The application that generated this error.
Possible values = GATEWAY/AUTHENTICATION_CONSENT_SERVICE
example: AUTHENTICATION_CONSENT_SERVICE
minLength: 1
maxLength: 50
ReasonCode:
type: string
description: A unique constant identifying the error case encountered during transaction processing
example: resource.not.found
minLength: 1
maxLength: 100
Description:
type: string
description: Description of the 'ReasonCode' field with additional details
example: The requested resource does not exist
minLength: 0
maxLength: 500
Recoverable:
type: boolean
description: Indicates whether this error will always be returned for this request, or retrying with same value could change the outcome. For example, if the request contains an invalid signature, retrying will never result in a success. However, if the error is related to some unexpected timeout with the service, retrying the call could result in a successful response.
example: false
Details:
type: string
description: Could be null, present for backwards compatibility or extra information
example: The provided acctNumber did not pass the Mod10 validation
minLength: 0
maxLength: 500
parameters:
locale:
in: query
name: locale
schema:
type: string
minLength: 5
maxLength: 50
description: Locale of the requested consent language. An optional field, if not passed then en-US will be used.
example: en-US
user_consent_id:
in: path
name: user_consent_id
required: true
schema:
type: string
minLength: 36
maxLength: 36
description: User Consent Identifier
example: 2c0743c0-fe6a-41a6-88c4-2c94786fb9c2
consent_types:
in: query
name: consent_types
schema:
type: string
description: List of Consent Type for different services. An optional query parameter, if not provided then all type of consent languages will be returned in the response
Possible values are INDIA_FRICTIONLESS, DEVICE_AUTH and FRICTIONLESS_DEVICE_AUTH
Multiple values can be sent in the request in order to receive multiple consents in response.
example: INDIA_FRICTIONLESS