0% found this document useful (0 votes)
108 views6 pages

IMPS Switch Technical Doument

Uploaded by

dev.playground78
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
108 views6 pages

IMPS Switch Technical Doument

Uploaded by

dev.playground78
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

IMPS Switch Technical Document

Technology Used
1) Jdk 1.8 +
2) ISO 8583 as per NPCI Standard
3) Spring Boot Rest API
Network Handshake with NPCI

After starting IMPS Switch it starts to send network handshake messages as per
follow.

1) Echo Message – System must generate echo message in every 3 minutes.

<log realm="channel/10.100.5.137:8181" at="2019-08-22T10:35:13.831">


<send>
<isomsg direction="outgoing">
<!-- org.jpos.iso.packager.ISO87APackagerBBitmap -->
<field id="0" value="0810"/>
<field id="7" value="0822050513"/>
<field id="11" value="000002"/>
<field id="70" value="301"/>
</isomsg>
</send>
</log>
<log realm="channel/10.100.5.137:8181" at="2019-08-22T10:35:16.569"
lifespan="3099ms">
<receive>
<isomsg direction="incoming">
<!-- org.jpos.iso.packager.ISO87APackagerBBitmap -->
<field id="0" value="0800"/>
<field id="7" value="0822050516"/>
<field id="11" value="000002"/>
<field id="39" value="00"/>
<field id="70" value="301"/>
</isomsg>
</receive>
</log>

2) Auto Logon – System must generate auto logon whenever there is a disconnection
between NPCI & member bank in every 5 minutes.
<log realm="channel/10.100.5.137:8181" at="2019-08-22T10:35:13.831">
<send>
<isomsg direction="outgoing">
<!-- org.jpos.iso.packager.ISO87APackagerBBitmap -->
<field id="0" value="0810"/>
<field id="7" value="0822050513"/>
<field id="11" value="000003"/>
<field id="70" value="002"/>
</isomsg>
</send>
</log>
<log realm="channel/10.100.5.137:8181" at="2019-08-22T10:35:16.569"
lifespan="3099ms">
<receive>
<isomsg direction="incoming">
<!-- org.jpos.iso.packager.ISO87APackagerBBitmap -->
<field id="0" value="0800"/>
<field id="7" value="0822050516"/>
<field id="11" value="000003"/>
<field id="39" value="00"/>
<field id="70" value="001"/>
</isomsg>
</receive>
</log>

Outward Transaction flow

1) While doing outward transactions from mobile banking a successful debit happens
from CBS.
2) Mobile Banking send same transactions to IMPS switch along with Beneficiary
details, RRN Number by Calling rest API ‘P2A’ from mobile banking
3) Imps sends the transactions to NPCI in format of ISO 8583 by using destination IP
& port. NPCI validates the beneficiary bank details.
4) If transactions got Success full then NPCI reverts with Succesful response code,
otherwise it declines the transaction with declined response code. If transaction got
declined then Mobile banking Reverts the transaction and credits into customer
account number.
5) Same transaction gets stored in database of IMPS Switch and Mobile banking.

Inward Request Json Parameter from Mobile Banking to IMPS Switch

Name Type O/M Description


amount String M Transaction Amount
beneAccountNo String M Beneficiary Account number
beneIfsc String M Beneficiary IFSC code (11)
beneName String M Beneficiary Name
beneNbin String M Beneficiary Bank NBIN
mobileNo String M Mobile Number
remark String M Remark
remiAccountNo String M Remitter Account Number
remiName String M Remitter Name
Stan String M System Trace Number
rrnNumber String M Retrival Reference Number

Example : -
{
"amount": "100.00",
"beneAccountNo": "1119876543221",
"beneIfsc": "IBKL01708SB",
"beneName": "Reshma",
"beneNbin": "8556",
"mobileNo": "917045490725",
"remark": "test",
"remiAccountNo": "602100000000032",
"stan":"123456",
"rrnNum":"902212123456",
"remiName": "MS PRIYA CHANDRAKANT CHAVAN"
}

Response Json Parameter from IMPS Switch to Mobile Banking

Name Type O/M Description


rrnNum String M Retrival Reference Number
msg String M SUCCESS/ If failed send Response code
recieved from NPCI.
msgId String M 0 /1

Request From IMP Switch to NPCI in format of ISO 8583

<log realm="channel/192.168.62.159:9333" at="2019-04-16T14:49:22.246">


<send>
<isomsg direction="outgoing">
<!-- org.jpos.iso.packager.ISO87APackagerBBitmap -->
<field id="0" value="0200"/>
<field id="2" value="9026001002010007074"/>
<field id="3" value="900000"/>
<field id="4" value="000000000100"/>
<field id="7" value="0416144922"/>
<field id="11" value="000367"/>
<field id="12" value="144922"/>
<field id="13" value="0416"/>
<field id="18" value="4814"/>
<field id="22" value="019"/>
<field id="25" value="05"/>
<field id="32" value="100600"/>
<field id="37" value="910614000367"/>
<field id="41" value="KTC44265"/>
<field id="42" value="KTC919497344265"/>
<field id="43" value="Kottakkal Cooperative UrbMOB9497344265IN"/>
<field id="49" value="356"/>
<field id="102" value="200210101005548"/>
<field id="120" value="00100248002003MOB045013SHABEER ALI
K04900300005001785770019497344265051004test056003MOB059011UBIN05578
46062015578402010007074"/>
</isomsg>
</send>
</log>
Response From NPCI to IMPS Switch
<log realm="channel/192.168.62.159:9333" at="2019-04-16T14:49:22.714"
lifespan="68513ms">
<receive>
<isomsg direction="incoming">
<!-- org.jpos.iso.packager.ISO87APackagerBBitmap -->
<field id="0" value="0210"/>
<field id="2" value="9026001002010007074"/>
<field id="3" value="900000"/>
<field id="4" value="000000000100"/>
<field id="7" value="0416144922"/>
<field id="11" value="000367"/>
<field id="12" value="144922"/>
<field id="13" value="0416"/>
<field id="18" value="4814"/>
<field id="22" value="019"/>
<field id="25" value="05"/>
<field id="32" value="100600"/>
<field id="37" value="910614000367"/>
<field id="38" value="000367"/>
<field id="39" value="00"/>
<field id="41" value="KTC44265"/>
<field id="42" value="KTC919497344265"/>
<field id="43" value="Kottakkal Cooperative UrbMOB9497344265IN"/>
<field id="49" value="356"/>
<field id="102" value="200210101005548"/>
<field id="120" value="00100248002003MOB045013SHABEER ALI
K046017SHABEERALIKALODI05001785770019497344265051004test056003
MOB059011UBIN0557846062015578402010007074"/>
</isomsg>
</receive>
</log>

Inward transactions flow

1) IMPS Switch receives Inward transaction from NPCI. After receiving it validates
the transaction whether it is duplicate or not If transaction find out duplicate then
IMPS Switch reverts back no NPCI with duplicate response code.
2) If the transaction is not found as duplicate the IMPS switch sends transaction to
mobile banking by calling rest Api.
3) Mobile Banking send the transaction by calling cbs service if transaction got
credited then Imps switch sends Successful response to NPCI otherwise it sends
declined response code.
4) Same transactions get stored into mobile banking and IMPS data base.
Intward Json Parameter IMPS Switch to Mobile Banking
Name Type O/M Description
amount String M Transaction Amount
beneAccountNo String M Beneficiary Account number
beneIfsc String M Beneficiary IFSC code (11)
beneName String M Beneficiary Name
beneNbin String M Beneficiary Bank NBIN
mobileNo String M Mobile Number
remark String M Remark
remiAccountNo String M Remitter Account Number
remiName String M Remitter Name
Stan String M System Trace Number
rrnNumber String M Retrival Reference Number

Example : -
{
"amount":"500000",
"remiAccountNo":"123456789123",
"remiName":"abc",
"remiMmid":"855601",
"remiNbin":"8556",
"remiMobileNo":"8976264058",
"beneIfsc":"IBKL0452ND1",
"beneAccountNo":"602100000000032",
"stan":"123456",
"rrnNum":"902212123456",
"remark":"test"
}
Response Json Parameter from Mobile Banking to IMPS Switch.

Name Type O/M Description


msg String M SUCCESS/ If failed send Response code
recieved from NPCI.
msgId String M 0 /1

Request From NPCI Switch to IMPS in format of ISO 8583


<log realm="channel/192.168.62.159:9333" at="2019-04-16T14:49:22.246">
<send>
<isomsg direction="incoming">
<!-- org.jpos.iso.packager.ISO87APackagerBBitmap -->
<field id="0" value="0200"/>
<field id="2" value="9026001002010007074"/>
<field id="3" value="900000"/>
<field id="4" value="000000000100"/>
<field id="7" value="0416144922"/>
<field id="11" value="000367"/>
<field id="12" value="144922"/>
<field id="13" value="0416"/>
<field id="18" value="4814"/>
<field id="22" value="019"/>
<field id="25" value="05"/>
<field id="32" value="100600"/>
<field id="37" value="910614000367"/>
<field id="41" value="KTC44265"/>
<field id="42" value="KTC919497344265"/>
<field id="43" value="Kottakkal Cooperative UrbMOB9497344265IN"/>
<field id="49" value="356"/>
<field id="102" value="200210101005548"/>
<field id="120" value="00100248002003MOB045013SHABEER ALI
K04900300005001785770019497344265051004test056003MOB059011UBIN05578
46062015578402010007074"/>
</isomsg>
</send>
</log>
Response from IMPS Switch to NPCI
<log realm="channel/192.168.62.159:9333" at="2019-04-16T14:49:22.714"
lifespan="68513ms">
<receive>
<isomsg direction="incoming">
<!-- org.jpos.iso.packager.ISO87APackagerBBitmap -->
<field id="0" value="0210"/>
<field id="2" value="9026001002010007074"/>
<field id="3" value="900000"/>
<field id="4" value="000000000100"/>
<field id="7" value="0416144922"/>
<field id="11" value="000367"/>
<field id="12" value="144922"/>
<field id="13" value="0416"/>
<field id="18" value="4814"/>
<field id="22" value="019"/>
<field id="25" value="05"/>
<field id="32" value="100600"/>
<field id="37" value="910614000367"/>
<field id="38" value="000367"/>
<field id="39" value="00"/>
<field id="41" value="KTC44265"/>
<field id="42" value="KTC919497344265"/>
<field id="43" value="Kottakkal Cooperative UrbMOB9497344265IN"/>
<field id="49" value="356"/>
<field id="102" value="200210101005548"/>
<field id="120" value="00100248002003MOB045013SHABEER ALI
K046017SHABEERALIKALODI05001785770019497344265051004test056003
MOB059011UBIN0557846062015578402010007074"/>
</isomsg>
</receive>
</log>

Note** - The DE and Tag changes as per NPCI’s document version.

You might also like