swagger: '2.0'
info:
title: Mastercard Bill Payment Validator Account Opening Cards 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: Cards
paths:
/prepaid-cards:
post:
tags:
- Cards
summary: Mastercard **prepaid Card Issuance** - Issue Prepaid Card to Existing or New Client
description: 'This API allows users to issue primary, add-on or supplementary physical/virtual card to existing or new client. It is applicable for prepaid products issued on MI platform. The Mastercard issuing system receives, validates, and processes the request. If the request is successful, the card will be generated, and card details like ''card number'', ''card Id'', ''card pack Id'', etc. will be sent in the response.
Note: More than one card information in the response indicates issuance of paired cards.'
operationId: createPrepaidCard
x-mastercard-api-encrypted: true
parameters:
- $ref: '#/components/parameters/BankCode'
- $ref: '#/components/parameters/CorrelationID'
- $ref: '#/components/parameters/Source'
- $ref: '#/components/parameters/EndUserID'
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
$ref: '#/components/requestBodies/PrepaidCardApplicationRequest'
responses:
'201':
$ref: '#/components/responses/PrepaidCardProfileResponse'
'400':
$ref: '#/components/responses/BadPostRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'409':
$ref: '#/components/responses/ConflictError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/debit-cards:
post:
tags:
- Cards
summary: Mastercard **debit Card Issuance** - Issue Debit Card to Existing or New Client
description: 'This API allows users to issue primary, add-on or supplementary debit card to existing/new client with the help of CBS system. The Mastercard issuing system receives, validates, and send the request to CBS for fulfilment. If the request is successful, then card will be generated, and card details like ''card number'', ''card Id'', ''card pack Id'', etc. will be sent in the response.
Note: More than one card information in the response indicates issuance of paired cards.'
operationId: createDebitCard
x-mastercard-api-encrypted: true
parameters:
- $ref: '#/components/parameters/BankCode'
- $ref: '#/components/parameters/CorrelationID'
- $ref: '#/components/parameters/Source'
- $ref: '#/components/parameters/EndUserID'
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
$ref: '#/components/requestBodies/DebitCardApplicationRequest'
responses:
'201':
$ref: '#/components/responses/DebitCardProfileResponse'
'400':
$ref: '#/components/responses/BadPostRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'409':
$ref: '#/components/responses/ConflictError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/donors/{donor_id}/cards:
get:
tags:
- Cards
summary: Get All Cards API
description: Fetches all the cards for given donor. Entire response body is encrypted and it should be decrypted to view the actual response.
operationId: getAllCardsUsingGET
parameters:
- $ref: '#/components/parameters/ClientId'
- $ref: '#/components/parameters/CorrelationId'
- $ref: '#/components/parameters/ProgramId'
- $ref: '#/components/parameters/Donor'
responses:
'200':
$ref: '#/components/responses/DonateGetAllCards'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
post:
tags:
- Cards
summary: Add Card API
description: Donor can add his/her card onto platform by calling this API, so that next time he/she wants to donate, he/she don't have to provide card details.A card will be added once. Second time, the initial card Id will be returned.Entire request body should be encrypted.
operationId: addCardUsingPOST
parameters:
- $ref: '#/components/parameters/ClientId'
- $ref: '#/components/parameters/CorrelationId'
- $ref: '#/components/parameters/ProgramId'
- $ref: '#/components/parameters/Donor'
requestBody:
$ref: '#/components/requestBodies/AddCard'
responses:
'200':
$ref: '#/components/responses/DonateCard'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error-AddCard'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
/donors/{donor_id}/cards/searches:
post:
tags:
- Cards
summary: Search Card API
description: Search card by pan or user id passed. Entire request body should be encrypted.
operationId: searchCardUsingPOST
parameters:
- $ref: '#/components/parameters/ClientId'
- $ref: '#/components/parameters/CorrelationId'
- $ref: '#/components/parameters/ProgramId'
- $ref: '#/components/parameters/Donor'
requestBody:
$ref: '#/components/requestBodies/SearchCard'
responses:
'200':
$ref: '#/components/responses/DonateGetAllCards'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
/donors/{donor_id}/cards/{card_id}:
get:
tags:
- Cards
summary: Retrieve Card API
description: Retrieves card by card id passed. Entire response body is encrypted and it should be decrypted to view the actual response.
operationId: retrieveCardUsingGET
parameters:
- $ref: '#/components/parameters/ClientId'
- $ref: '#/components/parameters/CorrelationId'
- $ref: '#/components/parameters/ProgramId'
- $ref: '#/components/parameters/Card'
- $ref: '#/components/parameters/Donor'
responses:
'200':
$ref: '#/components/responses/DonateCardRetrieve'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
put:
tags:
- Cards
summary: Update Card API
description: Donor can update his/her already added card by providing new card informatin along with cardId. Entire request body should be encrypted.
operationId: updateCardUsingPUT
parameters:
- $ref: '#/components/parameters/ClientId'
- $ref: '#/components/parameters/CorrelationId'
- $ref: '#/components/parameters/ProgramId'
- $ref: '#/components/parameters/Card'
- $ref: '#/components/parameters/Donor'
responses:
'200':
$ref: '#/components/responses/DonateCardUpdate'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
requestBody:
$ref: '#/components/requestBodies/UpdateCard'
delete:
tags:
- Cards
summary: Delete Card API
description: Donor can delete his/her saved card from Donation platform.
operationId: deleteCardUsingDELETE
parameters:
- $ref: '#/components/parameters/ClientId'
- $ref: '#/components/parameters/CorrelationId'
- $ref: '#/components/parameters/ProgramId'
- $ref: '#/components/parameters/Card'
- $ref: '#/components/parameters/Donor'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
/donations/non-ma/setup/cards:
get:
tags:
- Cards
summary: Get All Non Mastercard Brand Cards API
description: This API is used by the API consumer to download all their Non-Mastercard registered cards.
operationId: fetchDonationNonMA
parameters:
- $ref: '#/components/parameters/ClientId'
- name: x-correlation-id
in: header
description: CorrelationId is a unique donation request ID. It is recommended to pass the x-correlation-id by the customer and to use the format "bankname_UUID" (bank name can be indicated using the first 4 digits). Maximum length of this field should be 100 alphanumeric characters. If not passed, Mastercard will generate it. ***Note:*** If there is a timeout when doing the guest api call, it is important to redo the same api call with same x-correlation-id to get the status of the previous api call
required: false
schema:
type: string
example: 03f8c4e8-8bdc-4a30-a2b4-b6f989e96ca3
- $ref: '#/components/parameters/ProgramId'
responses:
'200':
$ref: '#/components/responses/RetrieveNonMABrandCards'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error-InvalidProgramId'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error-InternalServerError'
deprecated: false
/source-verifications/{issuing_country}/medicare-cards:
post:
x-mastercard-api-encrypted: true
summary: Verifies the details of a medicare card document with an identity verification provider
tags:
- Cards
responses:
'200':
$ref: '#/components/responses/MedicareCardSourceVerificationResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'403':
$ref: '#/components/responses/ForbiddenError_2'
'404':
$ref: '#/components/responses/NotFoundError'
description: Returns the status of the Medicare Card source verification as it's being processed by the vendor. Biometrics are not used with this API, which means document scanning is not required for the users to verify their identity. This will be a one-time verification with no data being stored.
operationId: verifyMedicareCard
parameters:
- $ref: '#/components/parameters/IssuingCountryParameter'
- $ref: '#/components/parameters/EncryptedPayloadParameter'
requestBody:
$ref: '#/components/requestBodies/MedicareCardSourceVerificationRequest'
components:
responses:
UnauthorizedError:
description: Authentication information is missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorsInfo'
examples:
UnauthorizedExample:
$ref: '#/components/examples/UnauthorizedExample'
headers:
X-MC-Correlation-ID:
$ref: '#/components/headers/Response-Correlation-ID'
BadPostRequestError:
description: The request failed due to invalid or missing value. The value could be a header value, a query parameter value, or a request body property value.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorsInfo'
examples:
MissingRequiredFieldExample:
$ref: '#/components/examples/MissingRequiredFieldExample'
InvalidFieldValueExample:
$ref: '#/components/examples/InvalidFieldValueExample'
InvalidFieldFormatExample:
$ref: '#/components/examples/InvalidFieldFormatExample'
InvalidFieldLengthExample:
$ref: '#/components/examples/InvalidFieldLengthExample'
CryptographyErrorExample:
$ref: '#/components/examples/CryptographyErrorExample'
headers:
X-MC-Correlation-ID:
$ref: '#/components/headers/Response-Correlation-ID'
ForbiddenError:
description: Insufficient permissions for interacting with the resource.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorsInfo'
examples:
ForbiddenExample:
$ref: '#/components/examples/ForbiddenExample'
headers:
X-MC-Correlation-ID:
$ref: '#/components/headers/Response-Correlation-ID'
ConflictError:
description: A conflict happened when creating or updating the resource.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorsInfo'
examples:
ConflictExample:
$ref: '#/components/examples/ConflictExample'
headers:
X-MC-Correlation-ID:
$ref: '#/components/headers/Response-Correlation-ID'
DebitCardProfileResponse:
description: The debit card was successfully created/issued.
content:
application/json:
schema:
$ref: '#/components/schemas/DebitCardProfile'
headers:
X-MC-Correlation-ID:
$ref: '#/components/headers/Response-Correlation-ID'
X-MC-Idempotency-Key:
$ref: '#/components/headers/Response-Idempotency-Key'
X-MC-Original-Request-Correlation-ID:
$ref: '#/components/headers/Response-Original-Correlation-ID'
PrepaidCardProfileResponse:
description: The prepaid card was successfully created/issued.
content:
application/json:
schema:
$ref: '#/components/schemas/PrepaidCardProfile'
headers:
X-MC-Correlation-ID:
$ref: '#/components/headers/Response-Correlation-ID'
X-MC-Idempotency-Key:
$ref: '#/components/headers/Response-Idempotency-Key'
X-MC-Original-Request-Correlation-ID:
$ref: '#/components/headers/Response-Original-Correlation-ID'
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error-403'
DonateCardRetrieve:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DonateCardRetrieve'
RetrieveNonMABrandCards:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RetrieveNonMABrandCards'
Unauthorized:
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/Error-401'
InternalServerError:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error-500'
NotFound:
description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-404'
DonateCardUpdate:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DonateCardUpdate'
DonateGetAllCards:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DonateGetAllCards'
BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
DonateCard:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DonateCard'
NoContent:
description: The Setup is successfully deleted.
NotFoundError:
description: Request didn't match an existing resource.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
examples:
NotFoundExample:
$ref: '#/components/examples/NotFoundExample'
ForbiddenError_2:
description: Consent not given.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
examples:
ForbiddenExample:
$ref: '#/components/examples/ForbiddenExample_2'
ForbiddenExampleUnauthorizedScopedFields:
$ref: '#/components/examples/ForbiddenExampleUnauthorizedScopedFields'
BadRequestError:
description: Something was wrong with the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
examples:
BadRequestExampleUserConsent:
$ref: '#/components/examples/BadRequestExampleUserConsent'
BadRequestExampleCountryCode:
$ref: '#/components/examples/BadRequestExampleCountryCode'
BadRequestExamplePhoneNumber:
$ref: '#/components/examples/BadRequestExamplePhoneNumber'
BadRequestExampleIVPConnectionTimeout:
$ref: '#/components/examples/BadRequestExampleIVPConnectionTimeout'
BadRequestExampleIVPSystemError:
$ref: '#/components/examples/BadRequestExampleIVPSystemError'
BadRequestExampleMedicareExpireDate:
$ref: '#/components/examples/BadRequestExampleMedicareExpireDate'
BadRequestExampleMedicareName:
$ref: '#/components/examples/BadRequestExampleMedicareName'
BadRequestExampleMedicareIndividualReferenceNo:
$ref: '#/components/examples/BadRequestExampleMedicareIndividualReferenceNo'
BadRequestExampleMedicareMedicareNumber:
$ref: '#/components/examples/BadRequestExampleMedicareMedicareNumber'
BadRequestExampleMedicareCountryCode:
$ref: '#/components/examples/BadRequestExampleMedicareCountryCode'
BadRequestExampleMedicareUserConsent:
$ref: '#/components/examples/BadRequestExampleMedicareUserConsent'
BadRequestExampleDocumentMismatch:
$ref: '#/components/examples/BadRequestExampleDocumentMismatch'
MedicareCardSourceVerificationResponse:
description: Success.
headers:
X-Transaction-ID:
$ref: '#/components/headers/X-Transaction-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/MedicareCardSourceVerificationResult'
examples:
MedicareSuccessExample:
$ref: '#/components/examples/MedicareSuccessExample'
MedicareDataNotMatchedExample:
$ref: '#/components/examples/MedicareDataNotMatchedExample'
MedicareDocumentInvalidExample:
$ref: '#/components/examples/MedicareDocumentInvalidExample'
schemas:
CbsCustomer:
allOf:
- $ref: '#/components/schemas/BasePerson'
type: object
properties:
kyc:
$ref: '#/components/schemas/Kyc'
MaritalStatus:
type: string
description: 'Indicates Marital Status of the client.
**Conditional Mandatory*** field - Required while creating new client.
Valid values are configured on ''Card Management > Institution Parameter Setup > System Codes [ISSS15]'' screen for ''Type Id=MARITAL_STATUS''.
**Few sample values: ** `Single`, `Married`, `Divorcee`, `Widow/Widower`'
example: Married
DeliveryMode:
type: string
description: Client's preferred delivery mode. Application request with instant card true, delivery mode should be `Branch`.
Valid values are configured on "Card Management > Institution Parameter Setup > System Codes [ISSS15]" screen for "Type Id=DELIVERY_MODE".
**Few sample values:** `Branch`, `Payment system department`, `Mail`
example: Branch
CustomField:
type: object
properties:
name:
type: string
description: 'Custom field name like: `clientDateField1`, `clientDataField1`, `clientNumberField1`, `cardDateField1`, `cardDataField1`, `cardNumberField1`, `accountDateField1`, `accountDataField1`, `accountNumberField1`.
Only 5 fields of each type are supported like clientDateField2, clientDateField3, clientDateField4, clientDateField5.
This field is required if configured as **Business Mandatory*** .'
pattern: ((client|account|card)(Date|Data|Number)Field[1-5]?)
example: clientDateField1
value:
type: string
description: 'Custom field value.
* In case of date value, it must be expressed in ISO 8601 format - YYYY-MM-DD. For example, 2022-01-16
* In case of data, it could be a free text that may contain alphanumeric letters or special characters mentioned in the pattern field.
* In case of number value, it is recommended to provide a number having maximum 12 digits before decimal and up to 5 digits after decimal. For example: 999999999999.99999'
minLength: 1
maxLength: 100
pattern: '[a-zA-Z0-9 ,&.''-]+'
example: '2022-01-16'
NewCardDetails:
allOf:
- $ref: '#/components/schemas/BaseCardWithSecrets'
type: object
properties:
embossedName:
$ref: '#/components/schemas/EmbossedName'
PermanentAddress:
allOf:
- $ref: '#/components/schemas/Address'
type: object
properties:
permanentAddressFrom:
type: string
format: date
description: Date since when the referenced address is defined as the permanent address.
Format - It is expressed in ISO 8601 - `YYYY-MM-DD`
example: '2000-02-22'
LegalDocument:
description: Legal document that is required for KYC.
type: object
properties:
id:
type: string
description: ID of legal document.
**Conditional Mandatory*** field - Required when legal document type is provided.
minLength: 4
maxLength: 25
pattern: '[a-zA-Z0-9]+'
example: P039238238
type:
$ref: '#/components/schemas/LegalDocumentType'
placeOfIssuance:
type: string
description: Place of issuance of legal document
**Conditional Mandatory*** field - Required when legal document id is provided and configured in document checklist plan associated with program.
minLength: 1
maxLength: 100
pattern: '[^%<>\\[\\]^$]+'
example: Mumbai, India
expiryDate:
type: string
format: date
description: Date on which the legal document will expire.
**Conditional Mandatory*** field - Required when legal document id is provided and configured in document checklist plan associated with program.
Format - It is expressed in ISO 8601 - `YYYY-MM-DD`
example: '2050-05-16'
Language:
type: string
description: 'Language preference. Language tags should be in the ''Language-Region'' format as described by Internet Engineering ''Task Force (IETF) BCP 47'' standard.
**Conditional Mandatory*** field - Required while creating new client.
**Valid values: **
* `en-US` - English language
* `ar-AE` - Arabic language
* `th-TH` - Thai language'
example: en-US
DebitCardDetails:
allOf:
- $ref: '#/components/schemas/RequestValidityTime'
type: object
required:
- dataValidUntilTimestamp
properties:
application:
$ref: '#/components/schemas/DebitApplication'
branchCode:
type: string
description: 'Branch Code.
**Conditional Mandatory*** field - Required for **Primary** card issuance to new client.
For the following application types, if the value is sent, then the branch code is changed for the client initiating the request along with the associated Primary, Supplementary and Add-On cards.:
* Primary Card - Existing Client (New Program)
* Supplementary Card - Existing Program
For the following application types, the value in the field should be empty or same as Primary client''s branch code. If the branch code is received and does not match with Primary client''s branch code, then the request is rejected:
* Add On for new Client
* Supplementary Existing Program for Corporate Card'
minLength: 1
maxLength: 6
pattern: '[0-9]+'
example: '0316'
primary:
$ref: '#/components/schemas/PrimaryCard'
addOn:
$ref: '#/components/schemas/AddOnClient'
client:
$ref: '#/components/schemas/DebitClient'
card:
$ref: '#/components/schemas/FreshDebitCard'
cbsAccount:
$ref: '#/components/schemas/CbsAccount'
account:
$ref: '#/components/schemas/AccountPromoPlanCodes'
customFields:
$ref: '#/components/schemas/CustomFields'
DebitClient:
allOf:
- $ref: '#/components/schemas/CbsCustomer'
type: object
properties:
type:
$ref: '#/components/schemas/ClientType'
vip:
type: boolean
description: Indicates whether client is VIP person. false (Default) indicates Normal client and true indicates VIP client.
This field is required if configured as **Business Mandatory*** .
default: false
example: false
riskCategory:
$ref: '#/components/schemas/RiskCategory'
cobrandNumber:
$ref: '#/components/schemas/CobrandNumber'
DebitCardProfile:
type: object
properties:
branchCode:
type: string
description: Echo back the branchCode.
example: '0316'
client:
$ref: '#/components/schemas/NewClient'
cards:
type: array
description: List of cards.
items:
$ref: '#/components/schemas/NewCardDetails'
example: []
accounts:
type: array
description: List of accounts linked to the card returned
items:
$ref: '#/components/schemas/BaseAccount'
example: []
InitialLoad:
type: object
properties:
currency:
type: string
description: The currency in which the amount is loaded.
**Valid values :** 3-letter currency codes in `ISO 4217`
maxLength: 3
minLength: 3
pattern: '[A-Z]+'
example: USD
amount:
type: number
format: double
multipleOf: 1.0e-05
description: The amount that can be loaded to the client account.
minimum: 0
maximum: 9999999999.99999
example: 1000
PhoneNumber1:
type: string
description: Single or Multiple or Range of contact numbers. for example, 9120556677/88/98.
This field is required if configured as **Business Mandatory*** .
minLength: 4
maxLength: 15
pattern: ([0-9]+([0-9 -/ \\[\\]])*[0-9]+)*
example: 02025870577/88
EducationQualification:
type: string
description: 'Educational Qualification.
This field is required if configured as **Business Mandatory*** .
Valid values are configured on ''Card Management > Institution Parameter Setup > System Codes [ISSS15]'' screen for ''Type Id=EDUCATION''.
**Few sample values: ** `SSC`, `HSC`, `Under Graduate`, `Graduate`, `Post Graduate`, `Professional`, `Others`, `PHD`, `Diploma`'
example: Graduate
ConditionalPrimaryClientCode:
type: string
description: Unique code of the existing primary client.
**Conditional Mandatory*** field - Primary clientCode or cardNumber or cardId must be present in the request while requesting card for existing primary client or new add-on client.
minLength: 4
maxLength: 24
pattern: '[a-zA-Z0-9]+'
example: 215812722194
ErrorsInfo:
required:
- Errors
type: object
properties:
Errors:
$ref: '#/components/schemas/Errors'
CardStatus:
type: string
description: 'The current status of the card.
**Valid values: **
* `NORMAL` - Indicates normal card
* `SUPERVISION` - Indicates supervision card
* `CANCELLED` - Indicates cancelled card
* `REPLACED` - Indicates replaced card
* `LOST` - Indicates lost card
* `STOLEN` - Indicates stolen card
* `COUNTERFEIT` - Indicates counterfeit card
* `RETURNED` - Indicates returned card
* `PROGRAM_CHANGE_OR_UPGRADE` - Indicates program change card
* `RETURNED_CARD_RENEWAL` - Indicates returned card renewal card
* `NOT_ACTIVATED` - Indicates card is not activated
* `EXPIRED` - Indicates expired card
* `INACTIVE` - Indicates inactive card
* `BLOCKED` - Indicates blocked card
* `DISPATCHED` - Indicates card dispatched
* `READY_FOR_SALE` - Indicates ready for sale card
* `TRANSFERRED_TO_OTHER_BRANCH` - Indicates transferred to another branch card
* `RETURNED_AND_SHREDDED` - Indicates returned to bank and shredded card
* `DAMAGED` - indicates card is damaged
* `EMERGENCY_REPLACEMENT` - Indicates emergency replacement card
* `ERRONEOUS` - Indicates card is erroneous
* `RETENTION` - Indicates retention card
* `NPA_RECLASSIFIED` - Indicates NPA reclassified card
* `TECHNOLOGY_UPGRADE` - Indicates card technology upgrade Card
* `REPLACED_INACTIVE` - Indicates replaced-inactive card
* `RENEWED_INACTIVE` - Indicates renewed-inactive card'
example: NORMAL
EmployerType:
type: string
description: Type of employer.
This field is required if configured as **Business Mandatory*** .
Valid values are configured on 'Card Management > Institution Parameter Setup > System Codes [ISSS15]' screen for 'Type Id=COMP_TYPE'.
**Few sample values :** `Private`, `Public`, `Government`, `Non-Government`
example: Non-Government
PhoneNumber2:
type: string
description: Single or Multiple or Range of contact numbers. for example, 8120556678/68/58.
This field is required if configured as **Business Mandatory*** .
minLength: 4
maxLength: 15
pattern: ([0-9]+([0-9 -/ \\[\\]])*[0-9]+)*
example: 04025870466/99
RequestValidityTime:
description: Validity of the API request. It protects the API from unauthorized request or man-in-the-middle (MITM) attacks
For example, if the validity of the API request is set for a maximum of 5 minutes (including retry attempts), and someone tries to post the same request after 5 minutes, then the system rejects the API request without processing.
type: object
required:
- dataValidUntilTimestamp
properties:
dataValidUntilTimestamp:
type: string
format: date-time
description: The date and time after which the request is considered as invalid. If the timestamp of the institution is greater than this timestamp, the API request is considered as expired and is returned.
The 'dataValidUntilTimestamp' parameter is converted into the institution time zone before comparing it with the institution date and time. It is expressed in ISO 8601 extended format. Must be either
'YYYY-MM-DDThh:mm:ss[.sss]Z'
or 'YYYY-MM-DDThh:mm:ss[.sss] (+|-) hh:mm' where [.sss] is optional and can be 1 to 3 digits.
minLength: 20
maxLength: 29
example: '2020-07-04T12:09:56.450-07:00'
NewApplication:
type: object
required:
- type
properties:
formNumber:
type: string
description: Echo back the input application form number.
minLength: 1
maxLength: 10
example: FRM0900029
number:
type: string
description: System generated unique application number while on-boarding the client.
maxLength: 12
example: '200460102961'
OccupationType:
type: string
description: Occupation type of the employee.
This field is required if configured as **Business Mandatory*** .
Valid values are configured on 'Card Management > Institution Parameter Setup > System Codes [ISSS15]' screen for 'Type Id=OCCUPATION'.
**Few sample values :** `Service`, `Professional`, `Business`, `Retired`, `Household`, `Student`, `Others`
example: Service
ClientSearchInfo:
type: object
properties:
code:
$ref: '#/components/schemas/ClientCode'
mobile:
$ref: '#/components/schemas/Mobile'
BaseCard:
allOf:
- $ref: '#/components/schemas/BaseSearchCard'
description: Base Card information
type: object
properties:
type:
$ref: '#/components/schemas/CardType'
relationship:
$ref: '#/components/schemas/CardRelationship'
status:
$ref: '#/components/schemas/CardStatus'
ConditionalProgramCode:
type: string
description: Program code of a card.
**Conditional Mandatory*** field - Required while requesting for `PRIMARY` card.
minLength: 1
maxLength: 10
pattern: '[A-Z0-9](([_])?[A-Z0-9])+'
example: LOANPR
CurrentAddress:
allOf:
- $ref: '#/components/schemas/Address'
type: object
properties:
lodgingMode:
$ref: '#/components/schemas/LodgingMode'
BaseSearchCard:
description: Base Search Card
type: object
properties:
number:
$ref: '#/components/schemas/CardNumber'
id:
$ref: '#/components/schemas/CardId'
packId:
$ref: '#/components/schemas/CardPackId'
alias:
$ref: '#/components/schemas/CardAlias'
programCode:
$ref: '#/components/schemas/ProgramCode'
planCode:
$ref: '#/components/schemas/CardPlanCode'
Client:
allOf:
- $ref: '#/components/schemas/Person'
type: object
properties:
type:
$ref: '#/components/schemas/ClientType'
vip:
type: boolean
description: Indicates whether client is VIP person. false (Default) indicates Normal client and true indicates VIP client.
This field is required if configured as **Business Mandatory*** .
default: false
example: false
riskCategory:
$ref: '#/components/schemas/RiskCategory'
cobrandNumber:
$ref: '#/components/schemas/CobrandNumber'
reuterReferenceNumber:
$ref: '#/components/schemas/ReuterReferenceNumber'
ReuterReferenceNumber:
type: string
description: Reuter reference number value.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 20
pattern: '[a-zA-Z0-9]+'
example: MUM89
DebitApplication:
type: object
description: Contains information about different types of debit cards
required:
- type
properties:
type:
$ref: '#/components/schemas/OnboardingApplicationType'
ClientType:
type: string
description: 'Indicates client type
**Conditional Mandatory*** field - Required while creating new client.
Valid values are configured on ''Card Management > Institution Parameter Setup > System Codes [ISSS15]'' screen for ''Type Id=CUSTOMER_TYPE''.
**Few sample values: ** `Individual`, `Corporate`, `Bank Staff`'
example: Individual
PrepaidCardProfile:
type: object
properties:
branchCode:
type: string
description: Echo back the branchCode.
example: '0316'
application:
$ref: '#/components/schemas/NewApplication'
client:
$ref: '#/components/schemas/NewClient'
cards:
type: array
description: List of cards.
items:
$ref: '#/components/schemas/NewCardDetails'
example: []
accounts:
type: array
description: List of accounts linked to the card returned
items:
$ref: '#/components/schemas/BaseAccount'
example: []
OnboardingApplicationType:
type: string
description: 'Application type indicates the type of card being requested.
**Valid values: **
`PRIMARY` - Issue Primary Card
`ADD_ON` - Issue Add-On Card
`SUPPLEMENTARY` - Issue Supplementary Card
'
example: PRIMARY
LVCCard:
description: LVC Card information
type: object
properties:
perTransactionLimit:
type: string
description: It is the limit set for each transaction.
**Conditional Mandatory*** field - Required while requesting for LVC card.
minLength: 1
maxLength: 12
pattern: '[0-9]+'
example: '100000'
totalTransactionLimit:
type: string
description: It is the maximum transaction limit configured for the client.
**Conditional Mandatory*** field - Required while requesting for LVC card.
minLength: 1
maxLength: 20
pattern: '[0-9]+'
example: '10000000'
velocity:
type: string
description: Number of times the card can be used in a configured duration.
**Conditional Mandatory*** field - Required while requesting for LVC card.
minLength: 1
maxLength: 20
pattern: '[0-9]+'
example: '100000000'
validity:
type: string
description: 'Card validity duration after which the card gets expired.
**Conditional Mandatory*** field - Required while requesting for LVC card.
Must be expressed in ISO 8601 Durations format:
Format - P(n)Y(n)M(n)DT(n)H(n)M(n)S
Where:
* (n) is replaced by the value for each of the date and time elements that follow the (n).
* P is the duration designator (referred to as "period"), and is always placed at the beginning of the duration.
* Y is the year designator that follows the value for the number of years.
* M is the month designator that follows the value for the number of months.
* W is the week designator that follows the value for the number of weeks.
* D is the day designator that follows the value for the number of days.
* T is the time designator that precedes the time components.
* H is the hour designator that follows the value for the number of hours.
* M is the minute designator that follows the value for the number of minutes.
* S is the second designator that follows the value for the number of seconds.
Maximum validity period: 3 Years'
minLength: 3
maxLength: 19
pattern: ^P(?!$)([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T(?=[0-9])([0-9]+H)?([0-9]+M)?([0-9]+S)?)?$
example: P3M4DT12H30M5S
AddOnClient:
type: object
properties:
clientCode:
$ref: '#/components/schemas/ConditionalAddonClientCode'
relation:
$ref: '#/components/schemas/Relation'
CardRelationship:
type: string
example: PRIMARY
description: 'An indicator at card level to describe type of client associated with the card.
**Valid values: **
* `PRIMARY` - Indicates primary card
* `ADD_ON` - Indicates add-on card
* `SUPPLEMENTARY` - Indicates supplementary card'
CobrandNumber:
type: string
description: Co-brand Number Value. It is also known as Partner Membership Number.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 20
pattern: '[a-zA-Z0-9]+'
example: Citi
ConditionalCardNumber:
type: string
description: Unique number (PAN) assigned to the existing card.
**Conditional Mandatory*** field - Primary clientCode or cardNumber or cardId must be present in the request while requesting card for existing primary client or new add-on client. Primary cardNumber or cardId must be present in the request while requesting 'ADD_ON' or 'SUPPLEMENTARY' card.
minLength: 12
maxLength: 22
pattern: '[0-9]+'
example: '5001890797820298'
Title:
type: string
description: 'The title or salutation that is added before the name of client.
**Conditional Mandatory*** field - Required while creating new client.
The valid values are configured on ''Card Management > Institution Parameter Setup > System Codes [ISSS15]'' screen for ''Type Id=TITLE''. **Sample values**: Mr, Mrs, Miss, Dr, Chief, Sir, Ms'
example: Mr
CurrentContact:
type: object
properties:
phoneNumber1:
$ref: '#/components/schemas/PhoneNumber1'
phoneNumber2:
$ref: '#/components/schemas/PhoneNumber2'
ConditionalPictureCode:
type: string
description: Picture Code.
**Conditional Mandatory*** field - Required while applying 'Picture Card' card for new primary client, if not configured at device plan level.
minLength: 1
maxLength: 16
pattern: '[A-Z0-9](([_])?[A-Z0-9])+'
example: FSFS_3122_13XV
ProgramCode:
type: string
description: Program code of a card
minLength: 1
maxLength: 10
pattern: '[A-Z0-9](([_])?[A-Z0-9])+'
example: LOANPR
AccountPromoPlanCodes:
type: object
properties:
promoPlanCodes:
type: array
minItems: 0
maxItems: 3
items:
type: string
minLength: 1
maxLength: 10
pattern: ^[A-Z0-9](([_])?[A-Z0-9])+$
description: Promo plans to be assigned to the account. If provided, the value should be present in Account Promotion plan configuration in CSR portal.
Maximum number of promo plans should not exceed total number of account plans attached to the program (linked to this card) in CSR portal.
If the value of promo plan code is empty then promo plan will not be attached to the respective account plan.
example: LOANPR
example:
- LOANPR
- ''
- LOANB
ConditionalCardId:
type: string
description: Unique value to identify a card.
**Conditional Mandatory*** field - Primary clientCode or cardNumber or cardId must be present in the request while requesting card for existing primary client or new add-on client. Primary cardNumber or cardId must be present in the request while requesting 'ADD_ON' or 'SUPPLEMENTARY' card.
minLength: 32
maxLength: 32
pattern: '[A-Z0-9]+'
example: C24B56D71AA2E015E053F482A80ABD00
CardExpiry:
type: string
description: Expiry date of the card in "MM/YY" format. This field is not applicable for LVC cards. The 'expiry' and 'expiry Date Time' fields are mutually exclusive, which means you can use any one of these fields to specify the details.
pattern: (0[1-9]|1[0-2])/[0-9]{2}
example: 11/30
Mobile:
type: object
description: Mobile number details
properties:
isd:
type: string
description: ISD code is defined as the country code to call a mobile subscriber directly from outside the country. For example, +91 for India and +971 for UAE.
If not provided, then the institution ISD code is populated.
pattern: '[+]?[0-9-]+'
minLength: 1
maxLength: 4
example: '+91'
number:
type: string
description: Mobile number excluding ISD Code.
**Conditional Mandatory*** field - Required when SMS alert is activated or ISD value is provided.
pattern: '[0-9]+'
minLength: 4
maxLength: 15
example: '9058344422'
LegalDocumentType:
type: string
description: 'Legal Document Type
**Conditional Mandatory*** field - Required when type is configured in document checklist plan associated with program.
Valid values are configured on "Card Management > Institution Parameter Setup > System Codes [ISSS15]" screen for "Type Id=LEGAL_IDENTIFICATION_TYPE".
**Few sample values:**
* `Passport`
* `National Id`
* `Tax ID`
* `Driving License`
* `Travel Ticket`
* `Travel Visa`
* `Voter ID`
* `Pan Card`
* `Pan card`
* `Ration Card`
* `Aadhar Card`
* `Company Id`
* `Other Id`'
example: National Id
Errors:
required:
- Error
type: object
properties:
Error:
type: array
description: Errors array wrapped in an error object
items:
$ref: '#/components/schemas/ErrorMessage'
example: []
RiskCategory:
type: string
description: 'Client''s risk category.
This field is required if configured as **Business Mandatory*** .
**Valid values: **
* `NONE` - Insignificant or no risk
* `LOW` - Low risk
* `MODERATE` - Moderate risk
* `HIGH` - High risk
* `CRITICAL` - Critical risk
* `CATASTROPHIC` - Catastrophic risk'
example: LOW
ClientCode:
type: string
description: Unique code of the client
minLength: 4
maxLength: 24
pattern: '[a-zA-Z0-9]+'
example: 215812722194
Address:
type: object
properties:
line1:
type: string
description: Address line 1. If the any of the address line value is present but line 1 value is absent then blank value will be considered.
**Conditional Mandatory*** field -
Current Address line1 is required while creating new client.
Office or Permanent Address line1 is required if selected as preferred Mailing Address.
minLength: 1
maxLength: 150
pattern: (([a-zA-Z0-9])+([\ .,:*()-])*)+
example: House no. 45, second floor
line2:
type: string
description: Address line 2. If the any of the address line value is present but line 2 value is absent then blank value will be considered.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 150
pattern: (([a-zA-Z0-9])+([\ .,:*()-])*)+
example: Apartment no. 567, Pashan
line3:
type: string
description: Address line 3. If the any of the address line value is present but line 3 value is absent then blank value will be considered.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 150
pattern: (([a-zA-Z0-9])+([\ .,:*()-])*)+
example: Pashan Sus Road
line4:
type: string
description: Address line 4. If the any of the address line value is present but line 4 value is absent then blank value will be considered.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 150
pattern: (([a-zA-Z0-9])+([\ .,:*()-])*)+
example: Near NIV Office
city:
type: string
description: City (free text).
This field will be ignored and populated internally if given country is same as institution country, and city is configured to be auto populated in Card Management > Institution Parameter Setup by selecting the option 'Validate Domestic Postal Code [Y]' or 'Do Not Validate Domestic Postal Code-Auto populate [D]'.
minLength: 1
maxLength: 50
pattern: '[^ ][a-zA-Z0-9 ]+[^ ]'
example: PUN
state:
type: string
description: 'State.
This field is required if configured as **Business Mandatory***
* If zip flag is configured at Institution level by selecting the ''Domestic Postal Code Mandatory'' check box, then the state code must be present in the request, as per the state master configured in the system.
* Otherwise, if the zip flag is not configured at institution level, then regardless of the applicant''s state code, this field is a free text.
* This field will be ignored and populated internally if given country is same as institution country, and state is configured to be auto populated in ''Card Management > Institution Parameter Setup'' by selecting the option ''Validate Domestic Postal Code [Y]'' or ''Do Not Validate Domestic Postal Code-Auto populate [D]''.'
minLength: 1
maxLength: 50
pattern: '[^ ]+([a-zA-Z0-9 ]+[^ ]+)*'
example: MH
country:
description: 'Country Code. Expressed as a 2-letter (Alpha-2) country code as defined in ISO 3166.
**Conditional Mandatory*** field -
* Current Address country is required while creating new client.
* Office or Permanent Address country is required if selected as preferred Mailing Address.'
type: string
minLength: 2
maxLength: 2
pattern: '[A-Z]+'
example: IN
zipCode:
type: string
description: 'Zip Code.
**Conditional Mandatory*** field -
* Required if given country is same as ''institution country'', and ''zip code'' is configured as mandatory in ''Card Management > Institution Parameter Setup'' by selecting the ''Validate Domestic Postal Code [Y]''.
* Office or ''permanent address zip code'' is required if selected as preferred ''mailing address''.'
minLength: 1
maxLength: 10
pattern: '[^ ][a-zA-Z0-9 ]+[^ ]'
example: '411021'
ErrorMessage:
required:
- Description
- ReasonCode
- Recoverable
- Source
type: object
properties:
Source:
type: string
description: The application or component that generated this error.
minLength: 3
maxLength: 50
example: MI-Issuing
ReasonCode:
type: string
description: Reason code is a unique constant identifying the error case encountered during request processing.
minLength: 5
maxLength: 100
example: MISSING_REQUIRED_FIELD
Description:
type: string
description: Human-readable short description of the reason code.
minLength: 10
maxLength: 250
example: Missing Required Field ''
Details:
type: string
description: Optional detailed description provides information about data received and calculated during request processing. This helps the user to diagnose errors.
minLength: 0
maxLength: 1000
example: This is mandatory field while requesting for new card.
Recoverable:
type: boolean
description: Recoverable flag indicates whether this error is always returned for this request, or retrying could change the outcome. For example, 'true' or 'false'.
example: false
PrimaryCard:
type: object
properties:
clientCode:
$ref: '#/components/schemas/ConditionalPrimaryClientCode'
cardNumber:
$ref: '#/components/schemas/ConditionalCardNumber'
cardId:
$ref: '#/components/schemas/ConditionalCardId'
Contact:
type: object
properties:
email:
$ref: '#/components/schemas/Email'
mobile:
$ref: '#/components/schemas/Mobile'
PhotoIndicator:
type: string
description: 'Indicates whether picture or photo should be printed on the card or default template to be applied.
In case of LVC card request, valid value is only `NORMAL`.
**Valid values: **
* `NORMAL` - Normal card
* `PHOTO` - Photo card
* `PICTURE` - Picture card'
example: PICTURE
CardAlias:
type: string
description: Alias assigned to each card. This attribute is available only if the CNA (Card number alias) functionality is enabled for the institution.
pattern: '[A-Za-z0-9_!''()*+,-.]+'
minLength: 1
maxLength: 24
example: '9055544422'
CardPromoPlanCode:
type: string
minLength: 2
maxLength: 10
description: Promo plan assigned to the card. If provided, the value must be present in card promotion plan configuration.
example: LOANPR
NewCard:
type: object
required:
- type
- photoIndicator
properties:
numberless:
type: boolean
description: Indicates whether number should be printed on the physical card or not.
Not applicable while issuing existing non-personalized card.
example: false
instant:
type: boolean
description: Indicates whether instant card is required be generated or not.
It will be always considered as true in case of SVC/LVC card issuance irrespective of input value.
Not applicable while issuing existing non-personalized card.
example: false
embossedName:
$ref: '#/components/schemas/EmbossedName'
photoIndicator:
$ref: '#/components/schemas/PhotoIndicator'
photoCode:
$ref: '#/components/schemas/ConditionalPhotoCode'
pictureCode:
$ref: '#/components/schemas/ConditionalPictureCode'
deliveryMode:
$ref: '#/components/schemas/DeliveryMode'
deliveryDate:
type: string
format: date
description: Date on which card is delivered or handed over to client.
Format - It is expressed in ISO 8601 - `YYYY-MM-DD`
example: '2022-01-26'
ProfessionType:
type: string
description: Profession Type.
This field is required if configured as **Business Mandatory*** .
Valid values are configured on 'Card Management > Institution Parameter Setup > System Codes [ISSS15]' screen for "Type Id=APPLICANT_PROF".
**Few sample values :** `Architect`, `CA`, `Consultant`, `Doctor`, `Lawyer`, `Others`, `Proprietorship`, `Partnership`, `Pvt Ltd Co.`, `HUF`, `Manufacturer`, `Export/ Importer`, `Trader/Stockist`, `Retailer`, `Service Provider`, `Consultant Professional`, `Professional`, `Education`, `Bank/Financial Services`, `Agriculture`, `Salesman`, `Barangay Official`
example: Others
LodgingMode:
type: string
description: 'Lodging Mode.
Valid values are configured on ''Card Management > Institution Parameter Setup > System Codes [ISSS15]'' screen for ''Type Id=RESIDENCE_STATUS''.
**Few sample values: ** `Not reported`, `Financed`, `Owned`, `Rented`, `Company leased`, `PG`, `Office`, `Parental`'
example: Owned
BaseCardWithSecrets:
allOf:
- $ref: '#/components/schemas/BaseCard'
description: Card information
type: object
properties:
cvv:
$ref: '#/components/schemas/Cvv'
expiry:
$ref: '#/components/schemas/CardExpiry'
expiryDateTime:
$ref: '#/components/schemas/LvcExpiryDateTime'
Profile:
allOf:
- $ref: '#/components/schemas/BasicProfile'
description: Set of Personally Identifiable Information (PII) associated with a given client.
type: object
properties:
maidenName:
type: string
description: Maiden name of the client.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 50
pattern: '[^ ][^%<>\\[\\]^$]+[^ ]'
example: Ria
gender:
$ref: '#/components/schemas/Gender'
birthDate:
type: string
format: date
description: 'Date of birth.
**Conditional Mandatory*** field - Required while creating new client.
Date format must be ISO 8601: `YYYY-MM-DD`
where:
YYYY = four-digit year
MM = two-digit month (01=January, etc.)
DD = two-digit day of month (01 through 31, as applicable)'
example: '1991-06-21'
birthCity:
type: string
description: Birth city of the client. City will be verified against the 'city master setup'.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 50
pattern: '[^ ][^%<>\\[\\]^$]+[^ ]'
example: London
birthCountry:
description: Expressed as a 2-letter (Alpha-2) country code as defined in ISO 3166.
For example - IN, US, CA, GB
This field is required if configured as **Business Mandatory*** .
type: string
maxLength: 2
minLength: 2
example: GB
pattern: '[A-Z]+'
education:
$ref: '#/components/schemas/EducationQualification'
maritalStatus:
$ref: '#/components/schemas/MaritalStatus'
nationality:
description: The status of belonging to a particular nation.
**Conditional Mandatory*** field - Required while creating new client.
Expressed as a 2-letter (Alpha-2) country code as defined in ISO 3166.
For example - IN, US, CA, GB
type: string
maxLength: 2
minLength: 2
example: GB
pattern: '[A-Z]+'
Designation:
type: string
description: Designation of the employee.
This field is required if configured as **Business Mandatory*** .
Valid values are configured on 'Card Management > Institution Parameter Setup > System Codes [ISSS15]' screen for 'Type Id=EMPL_DESIGNATION'.
**Few sample values :** `Executive`, `Sr Executive`, `Manager`, `Sr Manager`, `Asst Gen Manager`, `Dy Gen Manager`, `General Manager`, `Vice President`, `Director`, `Others`, `Clerical`, `Middle Management`, `Junior Management`, `Supervisory`, `Top Management`
example: Others
CbsAccount:
type: object
description: Core Banking System Account Info. Applicable for Debit Cards only
properties:
type:
$ref: '#/components/schemas/CbsAccountType'
number:
type: string
minLength: 4
maxLength: 20
description: Primary Account number in CBS.
**Conditional Mandatory*** field - Required while creating new client.
example: '0005040100006120'
clientId:
type: string
minLength: 4
maxLength: 20
description: Unique id/code/reference assigned to the client in CBS.
example: JSMITH094856
currency:
type: string
description: '"The currency in which the amount is loaded.
Values - 3 letter alphabetic currency codes in `ISO 4217`"
**Conditional Mandatory*** field - Required while creating new client.'
maxLength: 3
minLength: 3
example: USD
LvcExpiryDateTime:
type: string
format: date-time
description: Applicable only for 'LVC' card. The date/time after which the 'LVC' card should be considered as expired or invalid.
The 'expiry' and 'expiry Date Time' fields are mutually exclusive.
Expressed in ISO 8601 extended format. Must be
YYYY-MM-DDThh:mm:ss[.sss](+|-)hh:mm where [.sss] is optional and can be 1 to 3 digits.
minLength: 20
maxLength: 29
example: '2022-07-04T12:09:56.450-07:00'
CardPlanCode:
type: string
minLength: 1
maxLength: 10
description: Plan assigned to the card. If provided, the value must be part of the selected program code and included in the card or account plan configuration in CSR portal. This field is mandatory for EMV type of cards.
pattern: '[A-Z0-9](([_])?[A-Z0-9])+'
example: DPMEC
TravelDetails:
description: Travel Information, Applicable only if the client has a prepaid card.
type: object
properties:
type:
type: string
minLength: 1
maxLength: 6
pattern: '[A-Z0-9](([_])?[A-Z0-9])+'
description: Indicates the purpose of travel for which the client will be using the card. For example, medical reasons, cultural trip, and business trip and so on.
Valid values are as configured on portal in Card Management > Program Setup >Travel Type Configuration section.
This field is required if configured as **Business Mandatory*** .
example: LEISUR
startDate:
type: string
format: date
description: Start date of the planned travel.
**Conditional Mandatory*** field - Required if travel type is provided.
Format - It is expressed in ISO 8601 - `YYYY-MM-DD`
example: '2021-07-22'
endDate:
type: string
format: date
description: End date of the planned travel.
**Conditional Mandatory*** field - Required if travel type is provided.
Format - It is expressed in ISO 8601 - `YYYY-MM-DD`
example: '2021-08-12'
country:
type: string
minLength: 2
maxLength: 2
description: Country Code where client is traveling to.
Expressed as a 2-letter (Alpha-2) country code as defined in ISO 3166.
**Conditional Mandatory*** field - Required if travel type is provided.
example: GB
pattern: '[A-Z]+'
CardPackId:
type: string
description: Card pack id is the unique id assigned to the physical packet that contains the card for delivery to the client or branch. Usually paired cards are delivered in a single packet having common card pack id.
minLength: 10
maxLength: 24
pattern: '[A-Z0-9]+'
example: 500123MCCPGM0000000243
CustomFields:
type: array
description: Custom fields array (not recommended to be used)
items:
$ref: '#/components/schemas/CustomField'
minItems: 0
maxItems: 45
example:
- name: clientDateField1
value: '2021-09-21'
- name: cardDataField1
value: sample-data
- name: accountNumberField1
value: '234.78'
ConditionalAddonClientCode:
type: string
description: Unique code of the existing add-on client.
**Conditional Mandatory*** field - Add-on clientCode and relation fields are mutually exclusive.
minLength: 4
maxLength: 24
pattern: '[a-zA-Z0-9]+'
example: 215812722194
Relation:
type: string
description: 'It is the relation of the add-on client with the primary client.
**Conditional Mandatory*** field - Add-on ''client code'' and relation fields are mutually exclusive while creating the client. If both present, then relation value will be ignored.
Valid values are configured on ''Card Management > Institution Parameter Setup > System Codes [ISSS15]'' screen for "Type Id=RELATION".
**Few sample values: ** `Brother`, `Business card`, `Daughter`, `Father`, `Father-in-Law`, `Mother`, `Mother in Law`, `Others`, `Sister`, `Son`, `Spouse`'
example: Spouse
EmbossedName:
type: string
description: Embossed name of the client.
**Conditional Mandatory*** field - Required while creating new client.
minLength: 2
maxLength: 26
pattern: ([^ ])(?!.*[-]{2})([a-zA-Z.' ]+)([^ ])
example: JOHN SMITH
Gender:
type: string
description: 'Indicates Gender of the client.
**Conditional Mandatory*** field - Required while creating new client.
Valid values are configured on ''Card Management > Institution Parameter Setup > System Codes [ISSS15]'' screen for ''Type Id=GENDER''.
**Few sample values: ** `Female`, `Male`, `Not Reported`'
example: Male
SourceSystemClientMapping:
description: Client information mapping with source system identifiers
type: object
properties:
clientId:
type: string
description: Source system Client unique ID created and managed by institution system.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 20
pattern: '[a-zA-Z0-9]+'
example: PRA389403
cbsReferenceNumber:
type: string
description: Client unique Reference Number created and managed by institution CBS.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 20
pattern: '[a-zA-Z0-9]+'
example: '2004887393283'
cbsClientId:
type: string
description: Client unique ID created and managed by institution CBS.
minLength: 1
maxLength: 20
pattern: '[a-zA-Z0-9]+'
example: rob8765
CardNumber:
type: string
description: Unique number (PAN) assigned to the card. This number might be masked based on the API masking configuration settings of the institution in the MI Issuing customer portal.
minLength: 12
maxLength: 22
pattern: '[0-9]+'
example: '5001878976540298'
AlternateName:
type: string
description: Alternate name of the client.
minLength: 1
maxLength: 200
pattern: '[^ ][^%<>\\[\\]^$]+[^ ]'
example: Johny Smith
ClientPreferences:
type: object
properties:
language:
$ref: '#/components/schemas/Language'
mailingAddress:
$ref: '#/components/schemas/MailingAddress'
statementDelivery:
$ref: '#/components/schemas/StatementDeliveryOption'
registerForDNCR:
type: boolean
description: Indicates whether registered in 'DNCR' (Do Not Call Register) or not. Default false.
This field is required if configured as **Business Mandatory*** .
example: false
smsAlert:
type: boolean
description: Indicates whether registered for sms alert notification facility or not. Default false.
This field is required if configured as **Business Mandatory*** .
example: false
emailAlert:
type: boolean
description: Indicates whether registered for email alert notification facility or not. Default false.
This field is required if configured as **Business Mandatory*** .
example: false
BasicProfile:
description: Set of Personally Identifiable Information (PII) associated with a given client.
type: object
properties:
title:
$ref: '#/components/schemas/Title'
firstName:
type: string
description: First name of the client.
**Conditional Mandatory*** field - Required while creating new client.
minLength: 1
maxLength: 100
pattern: ([^ ])(?!.*[-]{2})([a-zA-Z.' ]+)([^ ])
example: John
middleName1:
type: string
description: Middle name 1 of the client.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 100
pattern: ([^ ])(?!.*[-]{2})([a-zA-Z.' ]+)([^ ])
example: Bob
middleName2:
type: string
description: Middle name 2 of the client. Not applicable for Add-on client.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 100
pattern: ([^ ])(?!.*[-]{2})([a-zA-Z.' ]+)([^ ])
example: Tom
lastName:
type: string
description: Last name of the client.
**Conditional Mandatory*** field - Required while creating new client.
minLength: 1
maxLength: 100
pattern: ([^ ])(?!.*[-]{2})([a-zA-Z.' ]+)([^ ])
example: Smith
alternateName:
$ref: '#/components/schemas/AlternateName'
BaseNewCardDetails:
allOf:
- $ref: '#/components/schemas/RequestValidityTime'
type: object
required:
- dataValidUntilTimestamp
properties:
application:
$ref: '#/components/schemas/Application'
branchCode:
type: string
description: 'Branch Code.
**Conditional Mandatory*** field - Required for **Primary** card issuance to new client.
For the following application types, if the value is sent, then the branch code is changed for the client initiating the request along with the associated Primary, Supplementary and Add-On cards.:
* Primary Card - Existing Client (New Program)
* Supplementary Card - Existing Program
For the following application types, the value in the field should be empty or same as Primary client''s branch code. If the branch code is received and does not match with Primary client''s branch code, then the request is rejected:
* Add On for new Client
* Supplementary Existing Program for Corporate Card'
minLength: 1
maxLength: 6
pattern: '[0-9]+'
example: '0316'
primary:
$ref: '#/components/schemas/PrimaryCard'
addOn:
$ref: '#/components/schemas/AddOnClient'
client:
$ref: '#/components/schemas/Client'
card:
$ref: '#/components/schemas/FreshCard'
account:
$ref: '#/components/schemas/AccountPromoPlanCodes'
customFields:
$ref: '#/components/schemas/CustomFields'
CbsAccountType:
type: string
description: 'Bank ISO Account Type in CBS.
**Conditional Mandatory*** field - Required while linking new debit account. Possible values configured in CSR portal on "Card Management > Institution Parameter Setup > Account Type [ISSS12]" screen. CBS Host account type must be configured to match with ISO account types like 10, 20.
**Possible values:**
* `DEFAULT` - Default Account
* `SAVINGS` - Savings Account
* `CHECKING` - Checking or Current Account
* `CREDIT_CARD` - Credit Card Account
* `CREDIT_LINE` - Credit Line Account
* `CORPORATE` - Corporate Account
* `UNIVERSAL` - Universal Account
* `MONEY_MARKET_INVESTMENT` - Money Market Investment Account
* `IRA_INVESTMENT` - Ira Investment Account
* `STORED_VALUE` - Stored Value Account
* `REVOLVING_LOAN` - Revolving Loan Account
* `INSTALLMENT_LOAN` - Installment Loan Account
* `REAL_ESTATE_LOAN` - Real Estate Loan Account'
example: SAVINGS
PhoneExtension:
type: string
description: Extension Number
minLength: 1
maxLength: 15
pattern: ([0-9]+([0-9 -/ \\[\\]])*[0-9]+)+
example: '2987'
BaseAccount:
type: object
properties:
number:
$ref: '#/components/schemas/AccountNumber'
default:
type: boolean
description: Indicates given account is default account or not
example: false
currency:
type: string
description: Currency of the account.
Values - 3 letter alphabetic currency codes in `ISO 4217`
minLength: 3
maxLength: 3
example: INR
OfficeContact:
allOf:
- $ref: '#/components/schemas/Contact'
type: object
properties:
phoneNumber1:
$ref: '#/components/schemas/PhoneNumber1'
phoneNumber2:
$ref: '#/components/schemas/PhoneNumber2'
extension:
$ref: '#/components/schemas/PhoneExtension'
CardId:
type: string
description: Unique value to identify a card
minLength: 32
maxLength: 32
pattern: '[A-Z0-9]+'
example: C24B56D71AA2E015E053F482A80ABD00
CardType:
type: string
description: 'The type indicates the card category.
**Valid values: **
* `EMV_CARD`
* `MAGNETIC_STRIPE_CARD`
* `STATIC_VIRTUAL_CARD`
* `LIMITED_VALIDITY_VIRTUAL_CARD`
* `NFC_PAYPASS`
* `NFC_EMV_PAYPASS`
* `NFC_MAG_STRIPE_PAYPASS`
* `MOBILE`
* `NFC_PAYWAVE`
* `NFC_EMV_PAYWAVE`
* `NFC_MAG_STRIPE_PAYWAVE`
* `ATM_ADMIN_CARD`
* `EXPRESSPAY_MAG_STRIPE`
* `EXPRESSPAY_EMV`
* `RUPAY_NFC_EMV`'
example: EMV_CARD
Application:
type: object
required:
- type
properties:
type:
$ref: '#/components/schemas/OnboardingApplicationType'
formNumber:
type: string
description: Client on-boarding application form number.
minLength: 1
maxLength: 10
pattern: '[^%<>\\[\\]^$]+'
example: FRM0900029
makerChecker:
type: boolean
description: Indicates whether the application should go through the checker approval process prior to client on-boarding. Applicable only if not requested for 'instant card'. It will be always considered as true in case of 'instant card' or 'SVC/LVC' card issuance irrespective of input value.
example: false
memo:
type: string
minLength: 1
maxLength: 1000
description: Free text field that contains remarks entered while submitting the request.
This field is required if configured as **Business Mandatory*** .
pattern: '[^%<>\\[\\]^$]*'
example: free text
PrepaidCardApplication:
allOf:
- $ref: '#/components/schemas/BaseNewCardDetails'
type: object
properties:
travel:
$ref: '#/components/schemas/TravelDetails'
initialLoad:
$ref: '#/components/schemas/InitialLoad'
Cvv:
type: string
description: Card verification value (CVV), card security code (CSC), card verification code (CVC), or card code verification (CCV) found on the back of a card that provides an additional measure of card security.
minLength: 3
maxLength: 5
pattern: '[0-9]+'
example: '345'
LegalDocuments:
description: Set of legal documents associated with a given client that are required for KYC.
type: array
items:
$ref: '#/components/schemas/LegalDocument'
minItems: 0
maxItems: 4
RegisteredContacts:
type: object
properties:
email:
$ref: '#/components/schemas/Email'
mobile:
$ref: '#/components/schemas/Mobile'
fax:
type: string
description: Fax Number.
This field is required if configured as **Business Mandatory*** .
pattern: '[+]?[/A-Za-z0-9-]+'
minLength: 1
maxLength: 80
example: +42342/453-5
Person:
allOf:
- $ref: '#/components/schemas/BasePerson'
type: object
properties:
kyc:
$ref: '#/components/schemas/Kyc'
sourceSystem:
$ref: '#/components/schemas/SourceSystemClientMapping'
StatementDeliveryOption:
type: string
description: 'Statement delivery options.
**Conditional Mandatory*** field - Required while creating new client.
Valid values are configured on ''Card Management > Institution Parameter Setup > System Codes [ISSS15]'' screen for ''Type Id=STATEMENT_PREFERENCE''.
**Few sample values: **
* `Email` - Statement delivery via email
* `Hard Copy` - Statement delivery via hard copy
* `Both` - Statement delivery via email as well as hard copy'
example: Email
ConditionalCardAlias:
type: string
description: Alias to be assigned to the newly issued card.
**Conditional Mandatory*** field - Required if the CNA functionality is turned on for the institution.
OR
This field is required if configured as **Business Mandatory*** .
pattern: '[A-Za-z0-9_!''()*+,-.]+'
minLength: 1
maxLength: 24
example: '9055544422'
EncodedName:
type: string
description: Applicable only for Physical Card. Encoded name of the client. The value can contain space. For example, John Smith.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 26
pattern: '[^ ][^%<>\\[\\]^$]+[^ ]'
example: JOHN SMITH
FreshCard:
allOf:
- $ref: '#/components/schemas/NewCard'
type: object
required:
- planCode
properties:
alias:
$ref: '#/components/schemas/ConditionalCardAlias'
corporateCode:
type: string
minLength: 1
maxLength: 24
pattern: '[0-9]+'
description: Unique code of a corporate.
**Conditional Mandatory*** field - Required if client type is `CORPORATE`.
example: '2990215812722194'
programCode:
$ref: '#/components/schemas/ConditionalProgramCode'
planCode:
$ref: '#/components/schemas/CardPlanCode'
promoPlanCode:
$ref: '#/components/schemas/CardPromoPlanCode'
encodedName:
$ref: '#/components/schemas/EncodedName'
lvcCard:
$ref: '#/components/schemas/LVCCard'
BasePerson:
type: object
properties:
profile:
$ref: '#/components/schemas/Profile'
currentAddress:
$ref: '#/components/schemas/CurrentAddress'
permanentAddress:
$ref: '#/components/schemas/PermanentAddress'
officeAddress:
$ref: '#/components/schemas/Address'
currentContact:
$ref: '#/components/schemas/CurrentContact'
permanentContact:
$ref: '#/components/schemas/CurrentContact'
officeContact:
$ref: '#/components/schemas/OfficeContact'
registeredContacts:
$ref: '#/components/schemas/RegisteredContacts'
preferences:
$ref: '#/components/schemas/ClientPreferences'
occupation:
$ref: '#/components/schemas/Occupation'
MailingAddress:
type: string
description: 'Client''s preferred mailing address.
**Conditional Mandatory*** field - Required while creating new client.
**Valid values: ** `CURRENT`, `PERMANENT`, `OFFICE`'
example: CURRENT
Kyc:
type: object
properties:
legalDocuments:
$ref: '#/components/schemas/LegalDocuments'
status:
type: boolean
description: KYC status of the client. If the status is true it indicates that KYC data has been updated and KYC completed.
This field is required if configured as **Business Mandatory*** .
example: true
remark:
type: string
description: Remarks on the KYC status or documents.
**Conditional Mandatory*** field - Required when KYC status is true.
minLength: 1
maxLength: 100
pattern: '[^%<>\\[\\]^$]+'
example: KYC has been done by XYZ
Email:
type: string
format: email
description: Email address.
This field is required if configured as **Business Mandatory*** .
minLength: 6
maxLength: 50
pattern: '[_A-Za-z0-9+-]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z0-9]{2,})'
example: user@example.com
AccountNumber:
type: string
description: Account number linked to the card.
minLength: 9
maxLength: 24
pattern: '[0-9]+'
example: '2207131581270233863'
EmploymentStatus:
type: string
description: Status of Employment.
This field is required if configured as **Business Mandatory*** .
Valid values are configured on 'Card Management > Institution Parameter Setup > System Codes [ISSS15]' screen for 'Type Id=EMPLOYMENT_STATUS'.
**Few sample values :** `OTHER`, `PERMANENT`, `CONTRACTUAL`, `SELF EMPLOYED`, `RETIRED`, `HOME MAKER`, `STUDENT`, `BUSINESS`, `SALARIED`
example: PERMANENT
Occupation:
type: object
properties:
employerName:
type: string
description: Employer Name.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 40
pattern: '[a-zA-Z0-9]+'
example: Mastercard
employerType:
$ref: '#/components/schemas/EmployerType'
department:
type: string
description: Department of client.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 50
pattern: '[a-zA-Z0-9.&_''"]+'
example: IT
employeeId:
type: string
description: Employee ID of client.
This field is required if configured as **Business Mandatory*** .
minLength: 1
maxLength: 20
pattern: '[a-zA-Z0-9]+'
example: E03982
type:
$ref: '#/components/schemas/OccupationType'
professionType:
$ref: '#/components/schemas/ProfessionType'
designation:
$ref: '#/components/schemas/Designation'
employmentStatus:
$ref: '#/components/schemas/EmploymentStatus'
joiningDate:
type: string
format: date
description: Joining date of current job.
This field is required if configured as **Business Mandatory*** .
Format - It is expressed in ISO 8601 - `YYYY-MM-DD`
example: '2010-01-19'
employmentDuration:
type: integer
format: int32
minimum: 0
maximum: 99
description: Duration (in years) of employment with current employer.
This field is required if configured as **Business Mandatory*** .
example: 2
netAnnualIncome:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Annual income of client.
This field is required if configured as **Business Mandatory*** .
example: 100000
ConditionalPhotoCode:
type: string
description: Photo Code of client.
**Conditional Mandatory*** field - Required while applying 'Photo Card' card.
minLength: 1
maxLength: 16
pattern: '[A-Z0-9](([_])?[A-Z0-9])+'
example: AFSAD_SFS9
FreshDebitCard:
allOf:
- $ref: '#/components/schemas/FreshCard'
description: Debit Card Details.
card number or card id or card packId must exist while issuing existing non personalized card.
type: object
properties:
nonPersonalized:
type: boolean
description: Indicates whether existing non-personalized card is being issued.
example: false
number:
$ref: '#/components/schemas/CardNumber'
id:
$ref: '#/components/schemas/CardId'
packId:
$ref: '#/components/schemas/CardPackId'
NewClient:
allOf:
- $ref: '#/components/schemas/ClientSearchInfo'
type: object
properties:
alternateName:
$ref: '#/components/schemas/AlternateName'
UpdateCard:
type: object
required:
- cardholderName
- expiryInfo
- primaryAccountNumberSource
- primaryAccountNumber
properties:
billingAddress:
$ref: '#/components/schemas/CardBillingAddress'
cardAlias:
type: string
example: CardB
minLength: 3
maxLength: 20
description: Card Alias
cardholderName:
type: string
example: John Doe
minLength: 3
maxLength: 20
description: Card Holder Name
CardExpiry:
$ref: '#/components/schemas/cardExpiry'
primaryAccountNumberSource:
type: string
example: CARD_ON_FILE
description: PAN
minLength: 3
maxLength: 20
primaryAccountNumber:
type: string
example: '5450985888403538'
minLength: 16
maxLength: 16
description: PAN number
title: UpdateCardRequest
Error-InternalServerError:
type: object
required:
- Errors
properties:
Errors:
type: object
required:
- Error
description: Contains all errors caused
properties:
Error:
type: array
description: Only returned in the event of an authorization is failed.
items:
type: object
properties:
Source:
type: string
example: DONATE_SERVICE
description: The application that generated this error
ReasonCode:
type: string
example: INTERNAL_SERVER_ERROR
description: A unique constant identifying the error case encountered during API processing
Description:
type: string
example: An error occurred on the server.
description: Short description of the ReasonCode field
Recoverable:
type: boolean
example: false
description: Indicates whether this error will always be returned for this request, or retrying could change the outcome
Details:
type: string
example: 'null'
description: Where appropriate, indicates detailed information about data received and calculated during request processing.
SearchCard:
required:
- primaryAccountNumber
type: object
properties:
primaryAccountNumber:
type: string
description: PAN
minLength: 16
maxLength: 16
example: '5450985888403538'
title: SearchCardRequest
DonateGetAllCards:
type: object
properties:
items:
type: array
description: Items
items:
$ref: '#/components/schemas/DonateCardRetrieve'
title: DonateGetAllCardsResponse
CardItems:
type: object
properties:
card_id:
type: string
example: 908c0a3c-f258-4313-9f5b-83b6cc058692
minLength: 36
maxLength: 36
description: Card Id
pan:
type: string
example: 371449******8431
minLength: 16
maxLength: 16
description: The Masked Primary Account Number (PAN)
title: CardItems
DonateCardUpdate:
type: object
properties:
cardId:
type: string
example: ebee3d81-18d4-409a-8330-73db083f2cfc
minLength: 36
maxLength: 36
description: Card Id (UUID)
primaryAccountNumberSuffix:
type: string
example: '3538'
minLength: 4
maxLength: 4
description: PAN Suffix
title: DonateCardUpdateResponse
Error-401:
type: object
required:
- Errors
properties:
Errors:
type: object
required:
- Error
description: Contains all errors caused due to authorization failure
properties:
Error:
type: array
description: Only returned in the event of an authorization is failed.
items:
type: object
properties:
Source:
type: string
example: Gateway
description: The application that generated this error
ReasonCode:
type: string
example: AUTHENTICATION_FAILED
description: A unique constant identifying the error case encountered during API processing
Description:
type: string
example: OAuth signatures did not match.
description: Short description of the ReasonCode field
Recoverable:
type: boolean
example: false
description: Indicates whether this error will always be returned for this request, or retrying could change the outcome
Details:
type: string
example: 'null'
description: Where appropriate, indicates detailed information about data received and calculated during request processing.
Error-403:
type: object
required:
- Errors
properties:
Errors:
type: object
required:
- Error
description: Contains all errors caused due to forbidden requests
properties:
Error:
type: array
description: Only returned in the event of forbidden request.
items:
type: object
properties:
Source:
type: string
example: Gateway
description: The application that generated this error
ReasonCode:
type: string
example: INVALID_KEY
description: A unique constant identifying the error case encountered during API processing
Description:
type: string
example: The signing certificate is not valid.
description: Short description of the ReasonCode field
Recoverable:
type: boolean
example: false
description: Indicates whether this error will always be returned for this request, or retrying could change the outcome
Details:
type: string
example: 'null'
description: Where appropriate, indicates detailed information about data received and calculated during request processing.
cardExpiry:
type: object
properties:
month:
type: string
example: 10
minLength: 2
maxLength: 2
description: Month
year:
type: string
example: 2025
minLength: 4
maxLength: 4
description: Year
title: Card Expiry Details
AddCard:
type: object
required:
- cardholderName
- expiryInfo
- primaryAccountNumber
- primaryAccountNumberSource
properties:
billingAddress:
$ref: '#/components/schemas/CardBillingAddress'
cardAlias:
type: string
example: CardA
minLength: 3
maxLength: 20
description: Card Alias
cardholderName:
type: string
example: John Doe
minLength: 3
maxLength: 20
description: Card holder name
expiryInfo:
$ref: '#/components/schemas/cardExpiry'
primaryAccountNumber:
type: string
example: '5450985888403538'
minLength: 16
maxLength: 16
description: PAN number
primaryAccountNumberSource:
type: string
example: CARD_ON_FILE
minLength: 3
maxLength: 20
description: PAN Source
title: AddCard
DonateCard:
type: object
properties:
cardId:
type: string
example: ebee3d81-18d4-409a-8330-73db083f2cfc
minLength: 36
maxLength: 36
description: Card id (UUID)
primaryAccountNumberSuffix:
type: string
example: '3538'
minLength: 4
maxLength: 4
description: PAN Suffix
title: DonateCardResponse
Error-AddCard:
type: object
required:
- Errors
properties:
Errors:
type: object
required:
- Error
description: Contains all errors caused
properties:
Error:
type: array
description: Only returned in the event of an error condition.
items:
type: object
properties:
Source:
type: string
example: DONATE_SERVICE
description: The application that generated this error
ReasonCode:
type: string
example: PAN_ALREADY_EXISTS_FOR_USER
description: A unique constant identifying the error case encountered during API processing
Description:
type: string
example: The provided card already exists for this user.
description: Short description of the ReasonCode field
Recoverable:
type: boolean
example: false
description: Indicates whether this error will always be returned for this request, or retrying could change the outcome
Details:
type: array
items:
type: string
example: 'CardId: 327ebf98-f3cc-4733-a041-c60e7d743b04'
Error-InvalidProgramId:
type: object
required:
- Errors
properties:
Errors:
type: object
required:
- Error
properties:
Error:
type: array
description: Only returned in the event of an error condition.
items:
type: object
properties:
Source:
type: string
example: DONATE_SERVICE
description: The application that generated this error
ReasonCode:
type: string
example: INVALID_PROGRAM_ID
description: A unique constant identifying the error case encountered during API processing
Description:
type: string
example: Invalid Program ID, it must be a valid UUID.
description: Short description of the ReasonCode field
Recoverable:
type: boolean
example: false
description: Indicates whether this error will always be returned for this request, or retrying could change the outcome
Details:
type: string
example: null
description: Where appropriate, indicates detailed information about data received and calculated during request processing.
RetrieveNonMABrandCards:
type: object
properties:
totalItems:
type: integer
example: 1
format: int64
minLength: 1
maxLength: 10
description: Total number of items
items:
type: array
description: Card items
items:
$ref: '#/components/schemas/CardItems'
title: RetrieveNonMABrandCards
Error-404:
type: object
required:
- Errors
properties:
Errors:
type: object
required:
- Error
description: Contains all errors caused due to resource not found
properties:
Error:
type: array
description: Only returned in the event of an resource not found.
items:
type: object
properties:
Source:
type: string
example: Gateway
description: The application that generated this error
ReasonCode:
type: string
example: NOT_FOUND
description: A unique constant identifying the error case encountered during API processing
Description:
type: string
example: The signing certificate is not valid.
description: Short description of the ReasonCode field
Recoverable:
type: boolean
example: false
description: Indicates whether this error will always be returned for this request, or retrying could change the outcome
Details:
type: string
example: 'null'
description: Where appropriate, indicates detailed information about data received and calculated during request processing.
CardBillingAddress:
type: object
properties:
city:
type: string
example: Brooklyn
minLength: 3
maxLength: 20
description: Billing Address city
countryCode:
type: string
example: USA
minLength: 3
maxLength: 3
description: Billing Address country code
line1:
type: string
example: 83 Mayfair Street
minLength: 3
maxLength: 20
description: Billing Address line1
line2:
type: string
example: Main Road
minLength: 3
maxLength: 20
description: Billing Address line2
line3:
type: string
example: Snake Hill Ave
minLength: 3
maxLength: 20
description: Billing Address line3
postalCode:
type: string
example: 11235
minLength: 5
maxLength: 20
description: Billing Address postal code
state:
type: string
example: NY
minLength: 2
maxLength: 20
description: Billing Address state
title: CardBillingAddress
DonateCardRetrieve:
type: object
properties:
billingAddress:
$ref: '#/components/schemas/CardBillingAddress'
cardAlias:
type: string
example: CardA
minLength: 3
maxLength: 30
description: The card alias
cardId:
type: string
example: ebee3d81-18d4-409a-8330-73db083f2cfc
minLength: 36
maxLength: 36
description: Card Id (UUID)
cardholderName:
type: string
example: John Doe
minLength: 3
maxLength: 30
description: Cardholder Name
cardExpiry:
$ref: '#/components/schemas/cardExpiry'
paymentNetworkName:
type: string
example: Mastercard
minLength: 3
maxLength: 20
description: Payment Network Name
primaryAccountNumber:
type: string
example: '5450985888403538'
minLength: 16
maxLength: 16
description: PAN
primaryAccountNumberSource:
type: string
example: CARD_ON_FILE
minLength: 3
maxLength: 20
description: PAN Source
primaryAccountNumberSuffix:
type: string
example: '3538'
minLength: 4
maxLength: 4
description: PAN Suffix
status:
type: string
example: ACTIVE
minLength: 5
maxLength: 20
description: Status
title: DonateCardRetrieveResponse
Error-500:
type: object
required:
- Errors
properties:
Errors:
type: object
required:
- Error
description: Contains all errors caused due to server error
properties:
Error:
type: array
description: Only returned in the event of an server issue.
items:
type: object
properties:
Source:
type: string
example: DONATE_SERVICE
description: The application that generated this error
ReasonCode:
type: string
example: PROGRAM_ID_NOT_FOUND
description: A unique constant identifying the error case encountered during API processing
Description:
type: string
example: Program id is required as this client is mapped to multiple programs.
description: Short description of the ReasonCode field
Recoverable:
type: boolean
example: false
description: Indicates whether this error will always be returned for this request, or retrying could change the outcome
Details:
type: string
example: 'null'
description: Where appropriate, indicates detailed information about data received and calculated during request processing.
Error:
type: object
required:
- Errors
properties:
Errors:
type: object
required:
- Error
properties:
Error:
type: array
description: Only returned in the event of an error condition.
items:
type: object
properties:
Source:
type: string
example: DONATE_SERVICE
description: The application that generated this error
ReasonCode:
type: string
example: DONOR_ID_INVALID
description: A unique constant identifying the error case encountered during API processing
Description:
type: string
example: Invalid donorId, it must be a valid UUID.
description: Short description of the ReasonCode field
Recoverable:
type: boolean
example: false
description: Indicates whether this error will always be returned for this request, or retrying could change the outcome
Details:
type: string
example: Provided donorId is not valid, Please check and provide valid Unique Id.
description: Where appropriate, indicates detailed information about data received and calculated during request processing.
MedicareCardSourceVerificationRequestAttributes:
required:
- userConsent
- cardColor
- nameLine1
- medicareCardNo
- individualReferenceNo
- countryCode
- expiryDate
properties:
userConsent:
description: The value which best reflects the input of the User with regard to consent to use their data.
enum:
- ACCEPT
- DECLINE
- REVOKE
- EXPIRE
type: string
example: ACCEPT
minLength: 6
maxLength: 7
cardColor:
description: Medicard Color can be GREEN, BLUE OR YELLOW.
enum:
- GREEN
- BLUE
- YELLOW
type: string
example: BLUE
minLength: 4
maxLength: 6
nameLine1:
description: Name Line 1.
example: Smith
type: string
minLength: 1
maxLength: 27
pattern: ^[a-zA-Z\s ,.'-]{1,27}$
medicareCardNo:
description: Unique number for Medicare card.
type: string
maxLength: 10
example: '1234567890'
pattern: ^[0-9]{10}$
individualReferenceNo:
description: Individual Reference Number.
type: string
maxLength: 1
example: '1'
pattern: ^[0-9]{1}$
countryCode:
description: Country code (case insensitive) as described in the ISO 3166-1 alpha-3 international standard.
type: string
example: AUS
pattern: ^[a-zA-Z]{3}
expiryDate:
example: '2000-12-31'
description: The expiry date as it appears on the card, following the color and format. Green card YYYY-MM, Yellow or Blue card YYYY-MM-DD.
type: string
minLength: 7
maxLength: 10
nameLine2:
description: Name Line 2.
example: Steve
type: string
minLength: 1
maxLength: 25
pattern: ^[a-zA-Z\s ,.'-]{1,25}$
nameLine3:
description: Name Line 3.
example: Baven
type: string
minLength: 1
maxLength: 23
pattern: ^[a-zA-Z\s ,.'-]{1,23}$
nameLine4:
description: Name Line 4.
example: Mike
type: string
minLength: 1
maxLength: 21
pattern: ^[a-zA-Z\s ,.'-]{1,21}$
birthDate:
example: '2010-10-25'
description: YYYY-MM-DD format.
type: string
format: date
minLength: 10
maxLength: 10
pattern: ^[0-9]{4}-[0-1][0-9]-[0-3][0-9]
MedicareCardSourceVerificationResult:
required:
- verificationResult
type: object
properties:
verificationResult:
type: string
example: DOCUMENT_VERIFIED
description: 'Verification Results, following : DOCUMENT_VERIFIED - Document matches with the IVP registered document, DOCUMENT_NOT_VERIFIED - Document does not match with any of the IVP registered document, DOCUMENT_INVALID - Document is invalid or not electronically captured.'
minLength: 16
maxLength: 21
ApiError:
required:
- Errors
type: object
properties:
Errors:
$ref: '#/components/schemas/Errors_2'
Errors_2:
description: List of Errors.
example:
$ref: '#/components/examples/NotFoundExample'
required:
- Error
type: object
properties:
Error:
$ref: '#/components/schemas/ErrorList'
ErrorList:
description: Error Details.
type: array
minItems: 1
items:
$ref: '#/components/schemas/Error_2'
Error_2:
type: object
properties:
Source:
type: string
description: Source of where the error occured.
example: mids
ReasonCode:
type: string
description: Code of the error.
example: USER_PROFILE_ID_NOT_FOUND
Description:
type: string
description: The cause of the error
example: The provided userProfileId does not exist
Recoverable:
type: boolean
description: Indiciates if the error can be recovered from.
example: false
Details:
type: string
description: Contains information about the error.
example: IOException Occured
parameters:
CorrelationID:
name: X-MC-Correlation-ID
in: header
description: '''Correlation ID'', also known as ''Transit ID'' or ''Request ID'', is unique identifier value attached to a particular transaction or event chain. The ''Correlation ID'' also helps in auditing, debugging, and tracing the request execution flow.
It is recommended to generate universally unique identifier (UUID) in compliance with ''RFC 4122''.
If the ''Correlation ID'' is not received in the incoming request, the ''Mastercard Processing'' platform generates a universally unique identifier (UUID) dynamically and assigns it to the request. The Correlation ID is always added to the response header to provide end to end traceability.
* minLength: 6
* maxLength: 36
* pattern: [a-zA-Z0-9_-]+'
schema:
type: string
minLength: 6
maxLength: 36
pattern: '[a-zA-Z0-9_-]+'
example: ac97d177-9345-4934-8343-0f91a7a02836
Source:
name: X-MC-Source
in: header
description: 'Value identifying the origin or source of a transaction. The list of possible sample values are available in the database and shared in the ''API_SOURCE_VALUES'' list under ''Card Management > Institution Parameter Setup > System Codes [ISSS15]''. This field is used only for logging purpose.
* minLength: 3
* maxLength: 3
* pattern: [A-Z0-9]+
**Few sample values: **
* `IVR` - Interactive Voice Response
* `MAP` - Mobile Application
* `ATM` - Automated Teller Machine
* `NBN` - Net Banking Application
* `POS` - Point of Sale
* `SCH` - Scheme
* `CBS` - Core Banking System
* `SMS` - Short Message Service
* `ACS` - Access Control Server
* `ONS` - On-Us Transaction
* `OTH` - Other'
schema:
type: string
minLength: 3
maxLength: 3
pattern: '[A-Z0-9]+'
example: MAP
EndUserID:
name: X-MC-Client-Application-User-ID
in: header
description: 'A unique identifier to track an end user who is performing action at the consumer''s end.
This field is used only for logging purpose.
* minLength: 3
* maxLength: 50
* pattern: [a-zA-Z0-9_-]+'
schema:
type: string
minLength: 3
maxLength: 50
pattern: '[a-zA-Z0-9_-]+'
example: S0648-IN
BankCode:
name: X-MC-Bank-Code
in: header
description: 'It is a 6-digit bank/institution identifier code.
**Conditional Mandatory*** field - Required to be passed by third party vendors or service providers (like 3-D Secure authenticator) who have access to the data of multiple banks, supported by legal agreement and access grants.
* minLength: 6
* maxLength: 6
* pattern: [0-9]+'
schema:
type: string
minLength: 6
maxLength: 6
pattern: '[0-9]+'
example: '112233'
IdempotencyKey:
name: X-MC-Idempotency-Key
in: header
required: true
description: An idempotency key is a unique value that is generated by a client and sent to an API along with a request. If a request should fail partway through, the client retries with the same idempotency key value, and the server uses it to look up the state of request and continue from where it left off. Recommended to generate universally unique identifier (UUID) compliant with 'RFC 4122'.
schema:
type: string
pattern: ^[a-zA-Z0-9_-]{6,36}$
example: bc57d177-4593-3449-8343-0d81a7a02947
ClientId:
name: x-openapi-clientid
in: header
description: ClientId is a unique and a mandatory ID shared while creating a project on Mastercard Developers Portal.
required: true
schema:
type: string
example: 0a7e433a-63fc-4557-8cf4
ProgramId:
name: ProgramId
in: header
description: ProgramId is an optional field, but if a client has more than one program associated to it, then this field becomes mandatory.
required: false
schema:
type: string
example: 80380ef2-5037-4e57-86bf-1bdd1efb0ae2
Donor:
name: donor_id
in: path
description: donor_id
required: true
schema:
type: string
example: 652ce9ff-fa5f-4e9f-8151-c73fa20088f7
CorrelationId:
name: x-correlation-id
in: header
description: CorrelationId is a unique donation request ID. It is recommended to pass the x-correlation-id by the customer and to use the format "bankname_UUID" (bank name can be indicated using the first 4 digits). Maximum length of this field should be 100 alphanumeric characters. If not passed, Mastercard will generate it.
required: false
schema:
type: string
example: 03f8c4e8-8bdc-4a30-a2b4-b6f989e96ca3
Card:
name: card_id
in: path
description: card_id
required: true
schema:
type: string
example: ebee3d81-18d4-409a-8330-73db083f2cfc
IssuingCountryParameter:
name: issuing_country
in: path
description: Country of issue for the document in the ISO 3166-1 alpha-3 format, only AUS is an acceptable value for this parameter.
example: AUS
required: true
schema:
type: string
pattern: ^[A-Z]{3}
EncryptedPayloadParameter:
name: X-Encrypted-Payload
in: header
description: Whether the request payload is encrypted with the Encyption Key generated from the Developer Zone Portal.
example: true
required: false
schema:
type: boolean
examples:
MissingRequiredFieldExample:
value:
Errors:
Error:
- Source: MI-Issuing
ReasonCode: MISSING_REQUIRED_FIELD
Description: Missing required field ''
Recoverable: false
Details: null
InvalidFieldFormatExample:
value:
Errors:
Error:
- Source: MI-Issuing
ReasonCode: INVALID_FIELD_FORMAT
Description: ''''' field value '''' format is invalid'
Recoverable: false
ForbiddenExample:
value:
Errors:
Error:
- Source: MI-Issuing
ReasonCode: AUTHORIZATION_ERROR
Description: It seems you don't have permission to access this API
Recoverable: false
Details: Please ensure that access has been granted to the user in customer portal
CryptographyErrorExample:
value:
Errors:
Error:
- Source: MI-Issuing
ReasonCode: CRYPTOGRAPHY_ERROR
Description: Error occurred while decryption of the encrypted request payload
Recoverable: false
Details: null
InvalidFieldLengthExample:
value:
Errors:
Error:
- Source: MI-Issuing
ReasonCode: INVALID_FIELD_LENGTH
Description: ''''' size must be between 1 and 3'
Recoverable: false
InvalidFieldValueExample:
value:
Errors:
Error:
- Source: MI-Issuing
ReasonCode: INVALID_FIELD_VALUE
Description: ''''' field value '''' is invalid'
Recoverable: false
UnauthorizedExample:
value:
Errors:
Error:
- Source: MI-Issuing
ReasonCode: UNAUTHORIZED
Description: We couldn't recognize you
Recoverable: false
Details: The user does not have valid certificate for the target resource.
ConflictExample:
value:
Errors:
Error:
- Source: MI-Issuing
ReasonCode: CONFLICT
Description: The requested operation failed because it tried to create a resource that already exists.
Recoverable: false
Details: Record with same unique reference id already exists
MedicareDataNotMatchedExample:
value:
verificationResult: DOCUMENT_NOT_VERIFIED
BadRequestExampleIVPConnectionTimeout:
value:
Errors:
Error:
- Source: mids
ReasonCode: IVP_CONNECTION_TIMEOUT
Description: Connection timeout when trying to connect with the Identity Verification Provider. Please look at 'details' for additional information.
Recoverable: false
Details: Received Connection TimeOut Exception
MedicareDocumentInvalidExample:
value:
verificationResult: DOCUMENT_INVALID
reason: Provided data is invalid or not electronically captured
BadRequestExampleCountryCode:
value:
Errors:
Error:
- Source: mids
ReasonCode: VALIDATION_ERROR
Description: Invalid value US4 for 'countryCode'.
Recoverable: false
Details: null
BadRequestExampleIVPSystemError:
value:
Errors:
Error:
- Source: mids
ReasonCode: IVP_SYSTEM_ERROR
Description: Received system error from the Identity Verification Provider. Please look at 'details' for additional information.
Recoverable: false
Details: System Error Received
BadRequestExampleMedicareName:
value:
Errors:
Error:
- Source: mids
ReasonCode: VALIDATION_ERROR
Description: Invalid value for 'nameLine' field OR value exceeds allowed max characters.
Recoverable: false
Details: null
BadRequestExampleUserConsent:
value:
Errors:
Error:
- Source: mids
ReasonCode: VALIDATION_ERROR
Description: Unexpected value 'Invalid' for enumerate field.
Recoverable: false
Details: null
BadRequestExampleMedicareCountryCode:
value:
Errors:
Error:
- Source: mids
ReasonCode: VALIDATION_ERROR
Description: Invalid value for 'Country code'.
Recoverable: false
Details: null
ForbiddenExampleUnauthorizedScopedFields:
value:
Errors:
Error:
- Source: mids
ReasonCode: UNAUTHORIZED_SCOPED_FIELDS
Description: 'UNAUTHORIZED_SCOPED_FIELDS: Requested scoped fields are not part of whitelisted fields.'
Recoverable: false
Details: null
BadRequestExampleDocumentMismatch:
value:
Errors:
Error:
- Source: mids
ReasonCode: BAD_REQUEST
Description: The document uploaded by the User does not comply to the document type/country specified by the client in the originating access-token request.
Recoverable: false
Details: null
BadRequestExampleMedicareIndividualReferenceNo:
value:
Errors:
Error:
- Source: mids
ReasonCode: VALIDATION_ERROR
Description: Invalid value for 'INDIVIDUAL_REFERENCE_NO'.
Recoverable: false
Details: null
BadRequestExampleMedicareExpireDate:
value:
Errors:
Error:
- Source: mids
ReasonCode: VALIDATION_ERROR
Description: Invalid value for 'expiry date'.
Recoverable: false
Details: null
BadRequestExampleMedicareUserConsent:
value:
Errors:
Error:
- Source: mids
ReasonCode: VALIDATION_ERROR
Description: User consent not given.
Recoverable: false
Details: null
NotFoundExample:
value:
Errors:
Error:
- Source: mids
ReasonCode: USER_PROFILE_ID_NOT_FOUND
Description: The provided userProfileId does not exist.
Recoverable: false
BadRequestExampleMedicareMedicareNumber:
value:
Errors:
Error:
- Source: mids
ReasonCode: VALIDATION_ERROR
Description: Invalid value for 'Medicare card number'.
Recoverable: false
Details: null
BadRequestExamplePhoneNumber:
value:
Errors:
Error:
- Source: mids
ReasonCode: VALIDATION_ERROR
Description: Invalid value ASD for 'phoneNumber'.
Recoverable: false
Details: null
MedicareSuccessExample:
value:
verificationResult: DOCUMENT_VERIFIED
ForbiddenExample_2:
value:
Errors:
Error:
- Source: mids
ReasonCode: CONSENT_NOT_GIVEN
Description: User Consent Not Given.
Recoverable: false
headers:
Response-Original-Correlation-ID:
description: If the duplicate request is received with same idempotency key then original request Correlation-ID is returned in the header along with original response in body.
schema:
type: string
minLength: 6
maxLength: 36
example: ec57d177-4593-3449-8343-0d81a7a02978
Response-Correlation-ID:
description: Returns the request identifier (like UUID) received in client request header or generated by the server.
schema:
type: string
minLength: 6
maxLength: 36
example: ac97d177-9345-4934-8343-0f91a7a02836
Response-Idempotency-Key:
description: Echo back the idempotency key received in the client request header, only if the duplicate request is received with same idempotency key within predefined time.
schema:
type: string
minLength: 6
maxLength: 36
example: bc57d177-4593-3449-8343-0d81a7a02947
X-Transaction-ID:
schema:
type: string
example: 2d077b9c-3c06-44ac-b00e-d78fe8cce606
description: A random 128-bit UUID representing the transaction.
requestBodies:
PrepaidCardApplicationRequest:
description: Prepaid card application information
content:
application/json:
schema:
$ref: '#/components/schemas/PrepaidCardApplication'
required: true
DebitCardApplicationRequest:
description: Debit card application information
content:
application/json:
schema:
$ref: '#/components/schemas/DebitCardDetails'
required: true
AddCard:
description: addCardRequest
content:
application/json:
schema:
$ref: '#/components/schemas/AddCard'
required: false
UpdateCard:
description: updateCardRequest
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCard'
required: false
SearchCard:
description: searchCardRequest
content:
application/json:
schema:
$ref: '#/components/schemas/SearchCard'
required: false
MedicareCardSourceVerificationRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/MedicareCardSourceVerificationRequestAttributes'
required: true