Prepaid Card MW Technical Document
Prepaid Card MW Technical Document
Document
Document Control
Created Revision Review Author Process Approval
Version
Date Function Frequency Name Owner Date
Bikas
26-03-20 New Service Sonali
v1.0 3 Months Kumar
24 Product Creation Parida
Behera
Bikas
26-04-20 New Service for Sonali
v2.0 1Months kumar
24 selfsignup APIs Parida
Behera
1. Introduction
The project focuses on developing a middleware system that seamlessly integrates user
creation, inventory management, cms module and transaction middleware (not yet
implemented). It aims to streamline processes, optimize inventory management, and ensure
precise transaction execution while interacting securely with Bank APIs.
1.1 Objective
The overarching objective of the middleware system is to create a cohesive platform that
seamlessly integrates two critical units: User Creation and Inventory Management, and
Transaction Middleware. The specific goals include:
1. User Creation
● Gather essential data required for user creation.
● Initiates the onboarding process to user management upon data provision.
● Routes the user to the CMS endpoint post successful onboarding.
● Concludes the customer onboarding process upon successful CMS onboarding.
● Dispatches userID and password to the user for access.
● Efficient inventory management, storing product details, handling corporate card
orders, and managing unique reference numbers.
2. Inventory Management
● Facilitates linking, shipping, and ordering of cards.
● Efficiently manages inventory, encompassing product details and unique reference
numbers.
● Ensures streamlined inventory management, covering storage of product details,
handling corporate card orders, and managing unique reference numbers.
3. Transaction Middleware:
● Not yet Implemented
In summary, the middleware serves as the linchpin for creating and managing users and
inventory, while also orchestrating secure and efficient financial transactions. By seamlessly
integrating various APIs and components, the project aims to elevate the efficiency, security,
and overall functionality of our enterprise systems.
2. Potential Solution
1. Custom Middleware Development
3. Assumptions
1. Stability of Bank APIs
● Assuming that the APIs provided by the Bank are stable and reliable for processing
transactions.
4. Constraints
● Not Applicable
1. Middleware
● The core software component that acts as a bridge between different applications,
facilitating communication and data exchange.
2. User-Management API
● An Application Programming Interface responsible for managing the creation,
approval, and onboarding of users, including Program Managers (PM) and Corporate
Managers (CM).
6. GEN-LOT-REFERENCE NUMBER
● A unique identifier assigned to corporate card orders, managing, and tracking each
corporate order throughout the inventory management process.
9. Inventory Database
● The storage repository within the middleware system where details such as user
information, product assignments, and transaction records are securely stored.
Soft Dependencies
● Databases like MongoDB and PostgreSQL
● Orchestration platforms like Kubernetes
● Monitoring and Logging Tools
● Middleware components like User Management Application and Card
Management Application
5.4 Algorithm
● Not Applicable
5.10 Security
● Not Applicable
6. APIs Endpoints
Notes:-
1.WL url:-https://capidev.iserveu.online/
put authorization token in header i.e
Authorization:eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZWRpcmVjdFVya
SI6bnVsbCwiYmFua0NvZGUiOiJkZW1vIiwicGFzc3dvcmRSZXNldFJlcXVpcmVkUmVhc
29uIjpudWxsLCJ1c2VyX25hbWUiOiJEZW1vSXN1QmFua01ha2VyT3BzIiwibW9iaWxlTn
VtYmVyIjo4NTQ4ODc3MTAzLCJjcmVhdGVkIjoxNzE0NDU3MjA2MDkwLCJhdXRob3J
pdGllcyI6WyJST0xFX0FETUlOX01BS0VSX09QU19TVUIiXSwiY2xpZW50X2lkIjoiY29t
bW9uLWFkbWlucy1vYXV0aDItY2xpZW50IiwiYWRtaW5OYW1lIjoiaWNpY2liYW5rYW
RtIiwiaXNQYXNzd29yZFJlc2V0UmVxdWlyZWQiOmZhbHNlLCJzY29wZSI6WyJyZWFk
Iiwid3JpdGUiXSwidXNlclR5cGUiOiJUUkFOU0FDVElPTkFMIiwiZXhwIjoxNzE0NDU5
MDA2LCJqdGkiOiI0YjYzMjBlNi0yZDkwLTRmMGItODk5Ni0xNGMwN2E0ZjkxNDUif
Q.PAB2LHIb2-JzNphKhvURhJt-e91u4qJBKL_wr9civQGfiugcDdT7j6QjtuR6uFBFA2n96C
nzeFslMPmI__J2eFgLfLY4Huf_F7YPlxidOpDyhEJiibq70onYqnsiu2WDwX5t0YMngkzxMj
ooy1YjH135TFKde9dktR7Ue77xCigH8eIPRahVFVuYhKuXD-i3sGhML7sOLEhcQp6vGEt
tESOXHllawOqOn7-DkClrAYasmT7FIOjFbg7R4gRwVna_KXivEbWHVM_1LPNfo58viKx
QybwPumzR9BWny7-Y4VN2lW7d24KnZw90kuwPWl3LtOTPqmVveC05nZ-ATmIQ4g
Request/Response Fields
Request Payload
Request Payload
Response Payload
status Status of the performed string Y
action. E.g. – SUCCESS
or FAILED
Request Payload:
"department":"thwdepartment",
{
"statusCode": 0,
"status": "SUCCESS",
"statusDesc": "Successfully created Department",
"data": {
"_id": "66756a2c1e9cf25e7d08c2a4"
}
}
{
“statusCode”: 1,
“status” : “FAILED”,
“statusDesc”: “This department thwdepartment already exist”,
“data” : specific error
}
Request/Response Fields
Request Payload
Response Payload
status Status of the performed string Y
action. E.g. – SUCCESS
or FAILED
Request Payload:
"department": "thwdepartment",
"channel": "WEB"
{
"statusCode": 0,
"status": "SUCCESS",
"statusDesc": "Successfully inserted Designation",
{
“statusCode”: 1,
“status” : “FAILED”,
“statusDesc”: “User does not have access to create designation name”,
“data” :{}
}
Request/Response Fields
Request Payload
Request Payload
Response Payload
status Status of the performed string Y
action. E.g. – SUCCESS
or FAILED
Request Payload:
"branchName":"gyan_Nagar",
"zone":"middle",
"region":"odisha",
"channel":"WEB"
{
"statusCode": 0,
"status": "SUCCESS",
"statusDesc": "Successfully created Branch",
"data": {
"_id": "66756c47a60df8548a28b221"
}
}
{
“statusCode”: 1,
“status” : “FAILED”,
“statusDesc”: “User doesnot have access to create branch name”,
“data” : {}
}
Request/Response Fields
Request Payload
Request Payload
Response Payload
status Status of the performed string Y
action. E.g. – SUCCESS
or FAILED
Request Payload:
"role":"frontdeveloper",
"parentName":"R",
"channel":"WEB"
{
"statusCode": 0,
"status": "SUCCESS",
"statusDesc": "Successfully created Role",
"data": {
"_id": "66756cfaa60df8548a28b285",
{
“statusCode”: 1,
“status” : “FAILED”,
“statusDesc”: “User doesnot have access to create role name”,
“data” : {}
}
6.2 Bin
6.2.1 Bin Master creation API:
This API will be used to create Bin Number.
End Point: card/bin_master
Request/Response Field
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
binNumber No String 6 8 Y Unique
Bin Number Bin
(6 digits or 8 Number
digits) assigned
by
Network/
Scheme
cardBrand No String 1 10 Y Only
Card Brand given
(RuPay,VISA,Ma value
ster,CUP,JCB,DF allow
S) which is
present in
bracket
cardCoBrand String N
Card Only
Co-brand Mandator
y while
(RuPay,VISA,Ma cardScop
ster,CUP,JCB,DF e is
S,NET, internatio
nal
Mercury)
(Prepaid,Debit
,Credit,
Closed loop)
cardCategory String Y
Card Category
(Platinum,Con
sumer,Corpora
te)
cardVariant String Y
Card Variant
(Classic,Platin
um,Payroll,Gif
t,GPR,
Reimbursemen
t,
Corporate
Gift,T&E,Busi
ness,
Others)
cardBank String Y
Card Bank Bank
Name
should
pass
through
shared
applicatio
n URL
cardServiceCode String Y
Card Service Mandator
Code y
(1xx,2xx,5xx,6x
x) Where x can
be any value
Request Payload:
"binNumber": 234567,
"cardBrand": "RuPay",
"cardCoBrand": "VISA",
"cardSegment": "Credit",
"cardBank":"Cardbank",
"cardServiceCode": "620",
"cardScope":"International",
"createdBy": "fino_admin",
"channel":"WEB"
Response Payload:
"statusCode": 0,
"status": "SUCCESS",
"data": {}
Request Payload
Mandat
poolAccount N poolAccount Strin NO ory if
O g isSelf
(PROGADMIN|ISSUER) assign is
not
availabl
e
1
customerAccount N customerAccount Strin YES
O g
(VIRTUAL|PHYSICAL)
Mandat
programManager No programManagerAccount Strin NO ory
Account g incase
(VIRTUAL|PHYSICAL) of
poolAcc
ount is
Response Payload
Request Payload:
"binRange": "208",
"binNumber": "234567",
"assignedUser": "PROG9946014187",
"productCategory": "credit",
"createdBy": "fino_admin",
"customerAccount": "VIRTUAL",
"programManagerAccount": "VIRTUAL",
"allowedPmOrderInventory": false,
"isSelfAssign": false,
"ncmc": false,
"channel":"WEB"
Response Payload:
"statusCode": 0,
"status": "SUCCESS",
"data": {}
Request/Response Fields
Parameter Sub Description Data Mi Ma Mandato Remar
Name Tag Type n x ry ks
Request Payload
type NO type String YES Mandat
(SINGLE,ALL) ory
Response Payload
status NO status id String YES
contains (“-1”: Failed, “0”:
Success)
statusDesc NO status description String YES
{
"type": "SINGLE",
"binNumber": "234567",
"channel": "WEB",
Response Payload:
"statusCode": 0,
"status": "SUCCESS",
"data": {
"status": "0",
"data": [
"binNumber": "234567",
"isActive": false,
"cardBrand": "RuPay",
"cardCoBrand": "VISA",
"cardSegment": "Credit",
"cardCategory": "Consumer",
"cardBank": "Cardbank",
"cardServiceCode": "620",
"adminName": "fino_admin",
"cardScope": "International",
Request/Response Fields
Parameter S Description Data Mi M Mandat Rema
Name u Type n ax ory rks
b
Ta
g
Request Payload
type N type Strin YES This is
O (SINGLE,ALL) g to be
SING
LE OR
ALL
assignedUse N Assigned User Name Strin NO Assign
r O g edUse
r is
only
manda
tory
for
type
SINGL
E.
channel N It should be ANDROID OR WEB string NO
O This
is to
be
either
ANDR
OID or
WEB
Response Payload
status N status id Strin YES
O contains (“-1”: Failed, “0”: Success) g
statusDesc N status description Strin YES
O g
"type": "SINGLE",
"assignedUser": "PROG9946014187",
"channel":"WEB"
Response Payload:
{
"statusCode": 0,
"status": "SUCCESS",
"statusDesc": "Bin range details fetched successfully",
"data": {
"status": "0",
"statusDesc": "BIN details successfully fetched",
"data": [
{
"binRange": 208,
"binNumber": 234567,
"isActive": false,
"assignedUser": "PROG9946014187",
"productCategory": "credit",
"cardType": "commercial credit",
"createdBy": "fino_admin",
"customerAccount": "VIRTUAL",
"ncmc": false,
"createdDate": "2024-06-12 17:02:21.711",
"updatedDate": "2024-06-12 17:02:21.711",
"isSelfAssign": null
}
]
}
}
Note : User will create under requested JWT token in header(Privileges also required check from
JWT)
role is either
ROLE_AGENT_
ADMIN,
ROLE_DISTRIB
UTOR or
ROLE_MASTER
_DISTRIBUTOR
and isSave is
false
cin NO Corporate Identification String 21 21 N Mandatory if role
Number of the company are either
ROLE_AGENT_
ADMIN,
ROLE_DISTRIB
UTOR,
ROLEMASTER
DISTRIBUTOR
and isSave is
false
pan NO Private Account String 10 10 N Mandatory if role
Number are
ROLE_ADMIN,
ROLE_MASTER
_DISTRIBUTOR
,ROLE_DISTRI
BUTOR ,
ROLE_AGENT_
ADMIN and
isSave is false
state NO State String 1 50 Y Mandatory if
isSave is false
and role is
ROLE_ADMIN
companyName NO name of the company String 3 160 N Mandatory if role
are
ROLE_AGENT_
ADMIN or
ROLE_DISTRIB
UTOR or
ROLE_MASTER
{
"firstName": "Shaktiman",
"lastName": "subudhi",
"mobileNumber": "9946014187",
To update the drafted user you just will pass "isSave": true,
To finally create the user you will pass "isSave": false along with the other details
Request/Response Field
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
firstName No First Name String 1 50 Y
Mandator
y for all
scenario
lastName No Last Name String 1 50 Y
Mandator
y for all
scenario
mobileNumber No mobile number String 10 10 Y
must be 10 digit Mandator
unique y for all
scenario
role No role of the String 1 300 Y Mandatory
customer while
creating
corporate
roleId No role id of the String Y specific id
customer allotted
to the
specific
role
latLong No latitude and String Y it fetches
longitude of the the ip
location from the
location it
is used
isSave No Aboolean value boolean Y Mandato
i.e True or False ry
cardType No Card type String Y Only
mandator
y while
creating
customer
relationship No String Y Only
mandator
y while
creating
child
customer
draftedId No String Y its
mandator
y while
updation
channel No Name of String 1 10 Y It can be
channel, either
Contains ANDROID
(web/Android) or WEB
Response Payload
status No Status of the String Y
performed
action. E.g. –
SUCCESS or
FAILED
statusCode No This field Integer Y
describes the
Status Code of a
performed
Request Payload:
"firstName": "TestCustomerRabibhaiiiiii",
"lastName": "Nayak",
"mobileNumber": "7787994657",
"email": "testcustomerrabi@yopmail.com",
"cardType":"CLC",
"role": "ROLE_RETAILER",
"roleId": "5",
"channel": "WEB",
"latLong": "34.45.567",
"isSave": true,
"draftedId":"66726bdba3ff10b40f39223f"
"status": "SUCCESS",
"data": {}
Request Payload:
"firstName": "TestCustomerRabibhaiiiiii",
"lastName": "Nayak",
"mobileNumber": "7787994657",
"email": "testcustomerrabi@yopmail.com",
"cardType":"CLC",
"role": "ROLE_RETAILER",
"roleId": "5",
"channel": "WEB",
"latLong": "34.45.567",
"isSave": false,
"draftedId":"66726bdba3ff10b40f39223f"
"status": "SUCCESS",
"data": {
"id": "4444450000030091",
"status": "PENDING",
"substatus": 1,
"username": "CUST7787994657",
"adminId": "44444",
"adminRole": "ROLE_ADMIN",
"adminName": "fino_admin"
“statusCode” : 0,
“status” : “FAILED”,
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
_id No MongoDB Id of String Y
User
data Yes Data to be Object Y Whateve
updated r data
provided
will be
updated
against
the
provided
_id
channel No Name of String 1 10 Y Mandator
channel, y with the
Contains only
(web/Android) value
which is
Request Payload:
"_id": "6672b33544b87d029c9eb8d1",
"data": {
"firstName": "Samtestnew",
"lastName": "Baral",
"channel":"WEB"
},
"statusCode": 0,
"status": "SUCCESS",
"data": {}
"statusCode": 1,
"status": "FAILED",
"data": {}
Request/Response Field
Request Payload
Response Payload
For CIS-375
“role” : ”ROLE_ADMIN_MAKER_OPS_SUB ”,
For CIS-285
“role” : ”ROLE_MASTER_DISTRIBUTOR_MAKER_SUB”
For CIS-340
“role”: “ROLE_DISTRIBUTOR_MAKER_SUB”
Request Payload:
{
"status": "DRAFT",
"role": "ROLE_ADMIN_MAKER_OPS_SUB",
"requestingRole": ["ROLE_RETAILER"],
"channel": "WEB"
"statusCode": 0,
"status": "SUCCESS",
"data": [
"Id": "66726bdba3ff10b40f39223f",
"firstName": "TestCustomerRabi",
"lastName": "Nayak",
"latLong": "34.45.567",
"mobileNumber": 7787994657,
"email": "testcustomerrabi@yopmail.com",
"admin_id": "44444",
"admin_name": "fino_admin",
"admin_role": "ROLE_ADMIN",
"corporate_id": "",
"corporate_name": "",
"corporate_role": "",
"program_manager_id": "",
"program_manager_name": "",
"program_manager_role": "",
"creator_id": "44444120000029056",
"createdBy": "MAKERNIKHIL",
"creatorRole": "ROLE_ADMIN_MAKER_OPS_SUB",
"created_date": "2024-06-19T05:25:47.000Z",
"updated_date": "2024-06-19T05:25:47.000Z",
"status": "INITIATED",
"userId": "",
"clientId": "",
"companyName": "",
"subStatus": 0,
"approverId": "",
"productId": [],
"shippingAddress": [],
"billingAddress": [],
"isActive": false,
"isApprove": false
“statusCode”:1,
“status”: ”FAILED”,
“data”: {}
"statusCode": 0,
"status": "SUCCESS",
"data": {
"status": "0",
"statusCode": 1,
"status": "FAILED",
"data": {}
Process
Parameter Name Sub Tag Description Data Type Min Ma Mandator Remarks
x y
Request Payload
firstName NO first name String 1 50 N mandator
y
lastName NO last name String 1 50 N mandator
y
gender NO gender String 1 10 N mandator
(M/F) y for
GPR
cardType
dateOfBirth NO date of birth String 1 10 N mandator
(YYYY-MM-DD) y for
GPR
cardType
address NO address String 1 255 N mandator
y for
GPR
cardType
address1 NO additional address String 1 255 N mandator
y for
GPR
cardType
city NO city name String 1 50 N mandator
y for
{
"otp": “4145”,
"customerId":"3",
"cardRefNo": “2111000011”,
"referenceId": “815842”,
"channel": "WEB"
}
Request/Response Fields
Request/Response Fields
Request Payload
Response Payload
{
"mobileNumber":"9937790148",
"cardRefNo":"2111000023",
"cardType":"GPR"
}
Response Payload:
{
"statusCode": "0",
"status": "SUCCESS",
"statusDesc": "Existing customer onboarded successfully",
"data": {
"statusCode": 0,
"status": "SUCCESS",
"statusDesc": "Customer created successfully",
"data": {
"ResponseCode": 0,
"MessageString": "OTP Generation Successful",
"ClientInitiatorId": "",
"RequestID": "1242741999556108288_0522202413030467",
"ClientRefID": "1242741999556108288",
"ResponseData": {
"ResponseCode": 0,
"MessageString": "OTP Generation Successful",
"ClientUniqueID": "1242741999556108288",
"ClientInitiatorId": "",
Request/Response Fields
Request Payload
Response Payload
status Status of the performed string Y
action. E.g. – SUCCESS
or FAILED
Sample request:
{
"mobileNumber": "9337764181",
"otp": "8919",
"channel": "WEB",
"params": "CARDOTP2"
Request/Response Fields
Request Payload
4.Unemployed
Mandatory
for GPR
CARD or CLC
or CREDIT
CARD
Response Payload
"params": "niyati",
"cardType":"GIFT",
"channel": "WEB"
"mobileNumber": "7787994297",
"params": "alokbhai",
"cardType":"GPR",
"channel":"WEB",
"kycType": "AADHAR",
"kycNumber": "123456723125",
"address": "bbsr",
"address1": "bbsr",
"city": "bbsr",
"country": "india",
"pincode": "752030",
"state": "odisha",
"dateOfBirth": "1999-10-12",
"gender": "Male",
"mobileNumber": "8249652456",
“params”: “hello”,
“cardType”:”SINGLE”
"channel":"WEB",
"data": {
“aadhaarLink”: “”,
“panLink”: “”,
“airlineTicketLink”: “”,
“visaLink”: “”,
“passportLink”: “”
"mobileNumber": "8249652456",
“params”: “hello”,
“cardType”:”CREDIT”
"channel":"WEB",
"data": {
"kycType": "AADHAR",
"kycNumber": "123456723125",
"address": "bbsr",
"address1": "bbsr",
"city": "bbsr",
"country": "india",
"pincode": "752030",
"state": "odisha",
"dateOfBirth": "1999-10-12",
"gender": "Male",
“employment”: “salaried”,
“product”: “testproduvct”,
“losProduct”: “testlosproduct”,
"statusCode": 0,
"status": "SUCCESS",
"data": {
"status": "0",
Request/Response Field
Request Payload
scenario
Response Payload
Request Payload:
"mobileNumber": "8617295228",
"params": "niyati",
"otp": "9939",
"cardType":"GIFT",
"channel": "WEB"
"statusCode": 0,
"status": "SUCCESS",
"data": {
"status": "0",
Request/Response Fields
Request Payload
Response Payload
Request Payload :
"mobileNumber": "8617295228",
"channel":"WEB"
"statusCode": 0,
"status": "SUCCESS",
"cardDetails": [
"card": [
"cardType": "GIFT",
"status": "SUCCESS",
"statusCode": 0,
],
"accessStatus": [
],
"kycStatus": [
Request/Response Fields
Request Payload
4.Unemployed
Mandatory
for CREDIT
CARD or CLC
or GPR
Response Payload
"mobileNumber": "8249652456",
“cardType”:”GPR”,
"channel":"WEB",
"data": {
“kycType”: “aadhaar”
“kycNumber”: “123456789125”
"address": "bbsr",
Card Management System (CMS) Issuer Interface guide
Integration Document confidential
iServeU pvt ltd © 2023 Page 82 of 121
"address1": "bbsr",
"city": "bbsr",
"country": "india",
"pincode": "752030",
"state": "odisha"
"dateOfBirth": "1999-10-12",
“gender”: “male”,
"mobileNumber": "8249652456",
“cardType”:”SINGLE”
"channel":"WEB",
"data": {
“aadhaarLink”: “”,
“panLink”: “”,
“airlineTicketLink”: “”,
“visaLink”: “”,
“passportLink”: “”
"mobileNumber": "8249652456",
“cardType”:”CREDIT”
"data": {
“kycType”: “aadhaar”
“kycNumber”: “123456789125”
"address": "bbsr",
"address1": "bbsr",
"city": "bbsr",
"country": "india",
"pincode": "752030",
"state": "odisha"
"dateOfBirth": "1999-10-12",
“employment”: “salaried”,
“gender”: “male”,
“product”: “”,
“losProduct”: “”,
Request/Response Fields
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remark
Request Payload
productName No Name of the Product String 10 50 Y Unique in
every new
request
productDescriptio No Description of String 0 255 N
n product
productCategory No Category of product String 4 25 Y Only given
(PREPAID, GIFT, value allow
SINGLE, which is
MULTI,CREDIT) present in
bracket
cardType No Card Type String 4 25 Y Only given
(MAGSTRIPE, value
CHIP, allowed
CONTACTLESS) which is
present in
bracket
bin No unique bin number String 6 8 Y Only 6 or 8
(should be 6 or 8 digits
digit) number
allowed
binRange No Bin Range String 3 3 Y
cardValidity No validity of card(in Integer 1 1 Y Should be
year within 1 to 5) an integer
within 1 to
5 and if
isSave is
false
isAtmAllowed No Card on ATM Boolean Y Should be
Transaction (True/ boolean
False) (true/false)
isPosAllowed No Card on POS Boolean Y Should be
Transaction (true / boolean
false) (true/false)
isEcomAllowed No Card on Boolean Y Should be
E-commerce boolean
(true/false)
GPR card
value- min
1,max 5
isSave No isSave Boolean Y Should be
true if it's
to "Save
and
Continue",
else false.
createdBy No Created By String 1 50 N
creatorRole No Role of creator String 1 50 N
creatorId No Creator Id String 1 50 N
feeCode feeId, Fee Code Array N Should be
feeAmount, an array of
feeType objects.
feeId Yes Fee Id Integer N
feeAmount Yes Fee Amount String N
feeType Yes Fee Type String N
velocityCode velocityId, Velocity Code Array N Should be
velocityLimit, an array of
velocityCount, objects.
velocityType
velocityId Yes Velocity Id Integer N
velocityLimit Yes Velocity Limit String N
velocityCount Yes Velocity Count String N
velocityType Yes Velocity Type String N
currencyCode currencyCode, Currency Code Array N Should be
priorityCode, an array of
currencyType objects.
currencyCode Yes Currency Code String N
priorityCode Yes Priority Code String N
currencyType Yes Currency Type String N
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
createdBy No createdBy String 1 50 Y
status No Status can be String Y Only given
"ALL", value allow
"APPROVED", which is
"INITIATED", present in
"PENDING", bracket
"FAILED"
role No Role can be String N Not
CHECKER Mandatory,
but if
provided it
can only be
CHECKER
channel No Name of channel, String 1 10 Y Only given
Contains value allow
(web/Android) which is
present in
bracket
Response Payload
status No Status of the String Y
performed action.
E.g. – SUCCESS or
FAILED
Request Payload
{
"createdBy": "PROG9978559774",
"status": "ALL",
"channel": "WEB"
}
Request/Response Field
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
productName No name of product String 10 50 Y Product
name
which is
initiated
before
approverName No Approval name String 1 50 Y
isApproved No It confirms the Boolean Y
approval of
product
remarks No Remarks String N To
describe
why
product is
being
rejected
channel No Name of String 1 10 Y Only
channel, given
Contains value
(web/Android) allowed
which is
present in
bracket
Response Payload
status No Status of the String Y
performed
action. E.g. –
SUCCESS or
FAILED
statusCode No This field Integer Y
describes the
Status Code of a
performed
Action. Eg-
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
type No OTP requester String Y
type
(CUSTOMER /
CARD)
userName No User name String 1 50 Y Mandato
ry
cardRefNo No Card reference String 10 12 Y
Number
params No Same value String Y
need to pass at
time of
verification
OTP
expiryTime No OTP expiry String Y Mandato
time ry
channel No Name of String 1 10 Y Only
channel, given
Contains value
(web/Android) allow
which is
present in
bracket
Response Payload
status No Status of the String Y
performed
action. E.g. –
SUCCESS or
FAILED
statusCode No This field Integer Y
describes the
Status Code of a
performed
Action. Eg-
success (0),
failed
(1),failed(-1) for
token
authorization
failed
statusDesc No Description of String N
the status of the
performed
action
data No Description of object Y
the CMS
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
otp No String 4 6 Y
userName No User name String 1 50 Y Mandato
ry
params No String Y
channel No Name of String 1 10 Y Only
channel, given
Contains value
(web/Android) allow
which is
present in
bracket
Response Payload
Request Payload:
{
"userName": "181",
"params":"aerteyrutyiuo646464",
"otp":"1234",
"channel":"WEB"
}
{
"cardRefNumber": 2111000071,
"productName": "PROD185998",
"isActive": false,
"expiryDate": "2705",
"isBlock": false,
"isHotList": false,
"lastFourDigit": 3282,
"cardType": "MAGSTRIPE",
"encryptedCard":
"TTRuamNJSnJja3Vo|TOjmqC0JE/lTzUSGM5TtLCI0|2yKtm9wvSYnq0U02NsJKxw==",
"nameOnCard": null,
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
otp No String 4 6 Y
cardRefNo No Card reference String 10 12 Y
number
params No String Y
channel No Name of String 1 10 Y Only
channel, given
Contains value
(web/Android) allow
which is
present in
bracket
Response Payload
status No Status of the String Y
performed
action. E.g. –
SUCCESS or
FAILED
statusCode No This field Integer Y
describes the
Status Code of a
performed
Action. Eg-
success (0),
failed
(1),failed(-1) for
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
cardRefNo No Card reference String 10 12 Y
number
"cardRefNo": "12872080055",
"channel": "WEB"
"statusCode": 0,
"status": "SUCCESS",
"status": "0",
"balance": 0
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
mobileNumber No CustomerMobil String 10 10 Y Mandato
e Number ry for all
scenario
cardType No card type should String Y
be either
PREPAID or
GIFT
channel No Name of String 1 10 Y Only
channel, given
Contains value
(web/Android) allow
which is
present in
bracket
Response Payload
status No Status of the String Y
performed
action. E.g. –
SUCCESS or
FAILED
{
"mobileNumber": "6370098659",
"channel": "WEB",
"cardType": "GIFT"
}
Request/Response Field
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
cardType No card type String Y It has to be
should be either either GPR or
GPR or GIFT GIFT
userId No user id of the Numeric Y
User
params No Same value String N mandatory for
need to pass at GPR
time of
verification
OTP
expiryTime No OTP expiry Numeric 1 2 Y Range in 1 to
time 30
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
deviceDetails No deviceDetails String Y
syncTime No syncTime String Y
txnDatetime No transaction date String Y
and time
cardType No Card type String Y
should be PPC
debitType No Debit type String Y
should be in
'SALE',
'ECOM', 'ATM'
customerMobileN No mobile number String Y Mandato
o ry for all
scenario
Response Payload:
{
"statusCode": 0,
"status": "SUCCESS",
"statusDesc": "transaction posting successfull",
"data": {
"status": "0",
"statusDesc": "Amount debited successfully and limit Updated"
}
}
Request Payload:
“cardRefNo”: 12345678901,
"channel":"WEB"
"status": "SUCCESS",
"data": {
"createdDate":"2024-05-30T12:23:49.336126",
"lastModified":"2024-05-30T12:23:49.336126",
"productName": "demoProduct",
"productId":"123",
"mobileNumber":"8765432198",
"isActive": true,
"expiryDate": "2503",
"isBlock": false,
"isHotlist": false,
"lastfourDigit": "1921",
"encryptedCard": "pjxsCo8vOuAL0HR+HcWfe3j37D/sfn5DNxvB7BijBEE=",
"isVirtual": false,
"isPinSet": false,
"productCategory": "GPR"
}
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
productName No Name of the String 4 6 Y Mandato
product ry
channel No Name of String 1 10 Y Mandator
channel, y with the
Contains value
(web/Android) which is
present in
bracket
Response Payload
status No Status of the String Y
performed
action. E.g. –
SUCCESS or
FAILED
statusCode No This field Integer Y
describes the
Status Code of a
performed
Action. Eg-
success (0),
failed
(1),failed(-1) for
token
authorization
failed
statusDesc No Description of String N
the status of the
performed
action
data No Description of object Y
the CMS
Request Payload:
{
"channel": "WEB"
"statusCode": 0,
"status": "SUCCESS",
"data": {}
Request/Response Fields
Request Payload
Request Payload
Response Payload
status Status of the performed string Y
action. E.g. – SUCCESS
or FAILED
Sample request:
Request Payload:
{
"mobileNumber":"8018394576",
"channel":"WEB"
"statusCode": 0,
"data": {}
"statusCode": 1,
"status": "FAILED",
"data": {}
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
isPhysical No physical/virtual boolean Y
card
cardType No card type should String Y
be either
GIFT or GPR
prodName No Product name String 1 50 Y
prodId No Product Id Numeric Y
Parameter Name Sub Tag Description Data Type Min Max Mandatory Remarks
Request Payload
status No Status can be String Y
APPROVED
REJECTED
channel No Name of String 1 10 Y Only
channel, given
Contains value
(web/Android) allow
which is
present in
bracket
Response Payload
status No Status of the String Y
performed
action. E.g. –
SUCCESS or
FAILED
statusCode No This field Integer Y
describes the
Status Code of a
performed
Action. Eg-
success (0),
failed
(1),failed(-1) for
token
authorization
failed
statusDesc No Description of String N
the status of the
7. Rollout Plan
● Not Applicable
8. Test Plan
● Unit testing and load testing is performed by developers, while integration and system
testing will be conducted by QA.
9. Appendix
● Not Applicable