Icici API Process
Icici API Process
/IBANVBBSR
Dear Team,
Kindly find the below documents for integration and UAT set up, as discussed:
o On boarding fornr (attached)
o Volume data (attached)
o SSL certificate
o 4096 Bit public key for encryption-decryption
o IP to be rvhitelisted (UAT and Production)
. Call back URL
Please sign up in API porta I and share user id. Li nk : https://developcriprsrbanl(xo!0
Comrnercial Details:
Transaction charges will be as tbllows
Rishabh Mlshra
Accounts Manager- Trqnsactlon Banklng
Mob:9938Q72E15
Mail: (!lha 6h. m@ iciciba n l(.cgm
AlClCl Bank
J 7 Transaction Banking
Document Revisiori
Datdi :
I
Veistob!!l DescriDtion
'0.1:
lnitiat Draft
17-Jth-2019 0.7 CIB API added
'18.$ n-2019 0.3 Changed Apt process ftow Tr{lt._
01-.lut-2019 0.4 lnctusion of each ftow request- response packet.
*'' :' '
1oiiul';201 9 0.5 UPI Fietds Description updated.
17 -Jul-7019 0.6 UPI fietds addition
25-Jut-2019 0.7 Error Codes Addition- UPl, IMPS, NEFT
30-Jut-2019 0.8 Cur[ added
01 -Aug-2019 0.9 UPI request packet correction
07-Aug-7O19 0.1 0 IMPS API spec update
08-Aug-2019 't.01 IMPS paytoad changes
26-Nov-2020 1 .13 IMPS 360 APl, CIB API under hybrid encryption and VPATag addition
12-Dec-2020 1.14 New APIGEE lPs added in composite API
30-Apr-2021 1.15 Status and 360 APIs integrated into composite status API
08-Sep-2021 1.16 IMPS recon API tranref number based search
flrcrct aunx
' Contents
1. INTRODUCTION:
. .
t. nil=er: ]-...
'1$:'
:
-.':t-
tn'tciilay's digitat wortd, large base of E-commerce companies and ea'yh6nt Gatbway Aggregators
companies are moving towardsAPl based payments and collection solutions and drifting away from
the existing payment solutions which have a manual intervention or muttipte hops in processing of
the payments to the beneficiaries
ln context to this document, we are introducing the "Composite pay APl" that witt cater to any of
the payout types payments. The umbrella of composite API witt atso include the status check API
and beneficiary services APls for Nodat account hotding merchants. Through this the customer wi[[
have atl the payment modes in the API with them and wouldn't have to go into further iterations
of integration with the Bank. Currently, IMPS, NEFT and UPI are a part of this APl.
The API is designed in such a manner that it can accommodate multiple payment modes, has a
provision of prioritizing a specific payment mode and the immediate payment modes tike IMPS and
UPI can atso have a fattback option of NEFT or other payment modes once introduced. The ctient
can atso choose to use a[[ or any one mode of payment. The Composite Pay API is hosted in the API
Gateway of lClCl Bank. APIGW witt route any request of Composite Pay API to the respective system
of the payment mode depending on the priorities set in the payment request.
ln the ERP Banking context, these APls witl be directty integrated into the ERP of the ctient and
the ctient can directty carry out the transactions from the ERP. The transaction status will be fed
back into the ERP as response to the fired API (more detaits given betow). The entire maker-
checker leg is at the customer's end without any bank's ptatform being involved in the process.
2. Structure of pavments:
This is a mandatory one-time registration API that is required to access the Beneficiary
Registration & Vatidation APl, NEFT and RTGS payment mode APls. CIB (Corporate lnternet
Banking) is the internal data-base in lClCl Bank for composite pay API and hence, for
processing these APls credentiats are required to be created for the ctient in the CIB
database.
This is the first step for merchants hotding the Nodal account. After CIB registration API is
fired, this API is required to be fired which shatl register beneficiaries on the fly to the CIB
database.
2. 2 Beneficiarv Validation*':
The bene validation service is a part of composite pay API and is structured in such a way
that when the Composite Pay API is hit by the ctient, at the bank's end the bene vatidation
service wit[ be called first by APIGW which wit[ check if the bene is registered in the CIB
O,",",
database. lf the vatidation is successfut, the transaction [eg is catted which
orr
processes the
transaction basis the payment mode. lf the validation faits, the transaction is dectined. The
ctient is shown an appropriate error code as response that the beneficiary is not registered
and the transaction is declined. Ptease note, this beneficiary validation teg witt only be
enabted for the Nodal account hotding merchants only.
'ClB registrotion API is required for clients who wont to occess NEFI, RTGS or beneficiory
registrotion APl.
..Beneficiary Registration &, Validotion is mondatory
for Nodol account holding merchants. Pleose
refer the section '4, Debits allowed for Nodal account holding clients'in this section below.
2.3 Pavments:
The composite API witt first hit the APIGW system from clients ERP system. Based on the
priority set by the client, APIGW will route the transaction request to the respective
payment mode systems.
Please note, even though UPI and IMPS are real-time payment modes, but we recommend
foltowing timetine to our ctients:
For UPl, the final, status of the transaction witl be avaitable between 180 secs and T+2 days
of initiating the transaction
For IMPS, the final status of the transaction wi[[ be avaitable between 180 secs of initiating
the transaction.
l.The exact timeline is subjective to purying activity ot our end, Hence, it is recommended
to check with lClCl Bonk teom before taking any oction on back dated transaction. ldeolly)
2. 4096 Bits Public Kev Certificate: Composite API witt fotlow encryption and decryption
.mechanism to send and receive request & response from ctient's end. Every certificate fite
witt h-ave two compbnents, i.e. Puttic Key certificate e nrivaier<ey-c"rtiti.ut". pubic Key
' Certificates are useil to encrypt and Private key certificates are usdd to decrypt.
' The client witt use tcict aank;i pubic key certificate i.i tha il6;;i
request. rcrcr
Bank witt decrypt ttiB payment request using our private ""i.lpi
key tbrtlfjcaie and then process
the transaction acc6rdingty as per the payment mode preferrbd. Aftbr the request has been
,, .'processed, lClCl Bank witt encrypt the response using ctient's pubtlc key certificate and post
" it back. Ctient witt use their corresponding private key certificat'e td decrypt the response
received.
These certificate files are available with third party vendors. A setf-signed certificare for UAT
is acceptable, but for live environments a CA signed one is mandatory.
...Please note, we require the technical pre-requisites lists in both UAT ond Production
environment.
There are three types of debits atlowed on nodal account that is:
'l . Refunds/Cashback
2. Vendor payout
3. Commission
Beneficiary Registration and Validation is a mandatory API when the ctient wants to use the Nodat
account for Vendor payouts onty. The ftow witl be such that the client witt first fire the Beneficiary
Registration API and then inctude the registered beneficiary details in the composite API request
packet and then subsequentty fire the composite APl. Composite APl for Nodat account merchants
is structured in such way that they shatt first vatidate the beneficiary before processing the
payment request.
1.1 Description: This API witt be used to make payment inctuding priority order to identify
and carry out the three types of payment options i.e., UPl, IMPS and NEFT.
Bane Ro,
API g St6tl./s check
Belretici.ry
regrstration cla
Slatus check
API crB
...F
!
Eni
Occrsron mat alq
Dy llag
NEFT
RTGS
ll succosg
s{racoss respotis€
pe€tel
flrcrct e"r*
1.3 API Endpoint:
1 .5 lnput Parameters:
Type
Mandatory
(Y-Yes, Provided
Name (max. Description N-No, by lClC
char. O-Optional
Limit) &c- (Y/N)
Conditional)
o
API Header
Priority of Apj sequencing eg: -
crpUsr
SMS Corporate User (mandatory onty for Nodat
String c
account)
NEFT
tranRefNo String (16) Transaction Reference Number Y N
Number
amount Transaction Amount Y N
(19)
Number
flrc,", *r*
senderAcctNo Sender's Bank Account No Y N
35
Number
beneAccNo Beneficiary Account Number Y N
(3s)
beneName String (50) Beneficiary Name Y N
{
"mobile": "7000000023",
"device-id": "1 901 601 901601901 601 901 60",
"seq-no":'1Cl5DC866EA6ADC427",
"account-provider" 1 "74" ,
"payee-va": "moto2.4@icici",
"payer-va": "uat@icici",
"profite-id": "2995692,
"amount": "1 ,00",
"pre-approved": "P",
"use-defautt-acc": "D",
"default-debit": "N",
"default-credit": "N",
"payee-name": "MEHUL",
"mcc": "601 1",
"merchant-type": "ENTITY',
"txn-type": "merchantToPersonPay',
'thannet-code": "MlClCl",
"remarks": "none"
"crplD": "APl3",
"aggrlD" : "AGGR0008",
"userlD" : "USER2",
"vpa": "mot02.4@icici"
]
Ptease note sample detaits for UAT testing:
t
"tocatTxnDtTime":"201 908081 61 038",
"beneAccNo" : "001 700000004",
"benelFSC":'HDFC092291 5',
"amount":"287.00",
"tranRef No":"1 23&56",
"paymentRef ' : "FTIransferP2A",
"senderName":"Ram singh",
"mobite':"9999988888",
flrcrct e"rx
"retailercode": "rcode",
"passCode": "3f4dbbdad1 a241 bca994339c0d3f 3efd",
"bclD": "lBCFti00044",
"crpld":"CIBNEXT',
"crpUsr":"BALAKIRAN",
"aggrld": " AGGRID"
]
(Ptease note, ,aggrld, 'crplD'& 'crpusr'are only mandatory in case of merchants opting for beneficiary registration
& vatidation API services)
I
"tranRefNo": "abc1 2345",
"amount": "1",
"senderAcctNo": "000451 000301 ",
"beneAccNo": "00M05C02777"
"beneName": "Mehul",
"benel FSC": "S81N0003060",
"narrationl ": "Test",
"crpld": " PRACHICIB1",
"crpUsr": " USER3",
"aggrld": " AGCRID",
"
ur n" : "7 59969775cff 4dcc8b8c63402e645da3",
"aggrName": " AGGRNA itE"
"txnType": "RGS"
" WORKFLOW_REQD": "N"
I
"AGGRID": "AGGRID',
"CORPID": " PRACH|C|Bl",
"USERID": " USER3",
"URN": "7ef3bc0d03ec495b9f 5fa320724ce94e",
"AGGRNAME': "AGGRNAME",
"UNIQUEID": "1C101 234",
"DEBITACC": " 00040500161 1",
"CREDIT CC": "000405002777",
"lFSC": "1C1C00000M",
"AI OUNT': "1.00",
"CURRENCY': "lNR",
'TXNTYPE': "RTG",
"PAYEENAME': 'ASDAS",
"RE vtARKS": "Satary
Orcrct e"rx
for Payrolt Jan"
'WORKFLOW_REQD": "N"
l
Ptease note sampte detaits for UAT testing:
t
"device-id":"c 1 6e561 d751?ac43",
"mobite":"99999888888",
"channe[-code":"GOOGLE",
"profite-id": "7759403",
"seq - no" : "1 C I bb6 0062b47 54450dM00209af f b30bb3",
"mpin": "NPC1,201 508zrw==",
"account-provider":"508534",
"account-number":"AXe1 72001 5d6ce948bae2cc55382925679,
"senderlFSC":"1C1C0006246",
"account-type":"UNKNOWN",
"payee-account" i" 0441234567 89 ",
"payee-ifsc" : "1C1C0000001 ",
"gtobat-address-type": "ACCOUNTIFSC "
"payer-va":"merchant2@icici",
"amount":"287.00",
"pre-approved":"A",
"use-default-acc":"N",
"def autt-credit" : "N",
"default-debit":"N",
"currency":"lNR",
"txn- type": "paytoGtobat",
"remarks":"1 paid cash bcz this was pending",
"mcc":"6011",
"merchant-type":"ENTITY',
"ref-id": "1 2345678",
"expire-af ter":"1 439",
"detiveryChannetCtrtl D":"ClB",
"tocalTxnDtTime":"201 701 091 61 038",
"beneAccNo": "001 700000004",
"benel FSC" : " HDF C9229 1 54",
"tranRef No":"cl 6e561 d751 2ac43",
"paymentRef ' : " 1 734567 89",
"senderName":"GOOGLE",
"retailerCode": "01 23",
"passCode": "0000"
"bclD": "lBCFti000zl4",
]
fl,"rc, r"n*
(6) Sample Request Packet for UPI - NEFT (priority: - 1020)
t
"mobite": "7000000023",
"device-id":'190160190160190160190160",
"seq-no': "5DC866EA6ADC427",
"account-provid er" : "7 4",
"payee-va": "mot02.4@icici",
"payer-va": "uat@icici",
"prof ite-id" : "2995692",
"amount": "1 .00",
"pre-approved": "P",
"use-defautt-acc": "D",
"default-debit": "N",
"default-credit": "N",
"payee-name": "MEHUL',
"mcc": "6011",
"merchant-type": "ENTITY",
"txn-type": "merchantToPersonPay",
"channet-code":'MIClCl',
"remarks": "none"
"tranRefNo": "abcl 2345",
"amount": "1",
"senderAcctNo": "000405001 257",
"beneAccNo": "000451 000001 "
"beneName": "Mehut",
"benelFSC": "SBl N0003060",
"narration l ": "Test",
"crpld": "PRACHlClB1",
"crpUsr": "ABC",
"aggrld": "AGGR0028",
" ur n" : " 7 5996977 5cff4dcc8b8c63402e645da3",
"aggrName": "Abc"
"txnType': "RGs"
I!
"locatTxnDtTime":"201 908081 61 038",
"beneAccNo": "001 7000000&1",
"benel FSC" : " HDF C9229 1 54",
"amounf':"287.00",
"tranRef No":"1 23956",
"paymentRef ' : "FT[ransferP2A",
"senderName":"Ram singh",
"mobiLe':"99999888888",
"retailercode": "rcode",
"passCode": "3f4dbbdad1 a241 bca994339c0d3f 3efd",
"bclD": "1BCFti00044",
"tranRefNo": "abc1 2345",
"amount": "1",
"senderAcctNo": "000405001 257',
"beneAccNo": "000451 000001 "
Orcrct ernx
"beneName": "Mehut",
"benelFSC": "SBl N0003060",
''narrationl":'Test",
"crpld": "PRACHlClB1 ",
"crpusr": "ABC",
"aggrld": "AGGR0028",
" urn" : " 7
599 697 7 5cf f 4dcc8b8c63402e645da3",
"aggrName": "Abc"
"txnType": "RG5"
{
"mobite": "7000000023",
"device^id": "1 901 601 901601 901 601 901 60",
"seq-no": "5DC866EA6ADC427',
"account-provider" : "74",
"payee-va": "moto2.4@ic'ici'',
"payer-va": "uat@icici",
"prof ite-id": "7995692,
"amount": "1 .00",
"pre-approved": "P",
"use-default-acc": "D",
"defau[t-debit": "N",
"defautt-credit": "N",
"payee-name": "MEHUL',
"mcc": "601 1",
"merchant-type": "ENTITY',
"txn-type": "merchantToPersonPay",
"channe[-code":'MlClCl",
"remarks": "none"
"tocatTxnDtTime": "201 908081 61 038",
"beneAccNo": "001 700000004"
"benel FSC" : " HOF C9229 1 54",
"amount":"287.00",
"tranRefNo":"1 236456",
"paymentRef': "FTIransferP2A",
"senderName":"Ram singh",
"mobite":"99999888888",
"retai(erCode": "rcode",
"passcode": "3f4dbbdadl a241 bca994339c0d3f 3efd",
"bclD": "lBCFti000,l4",
"tranRefNo": "abcl 2345",
"amount": "1",
"senderAcctNo":'00(X05001 257",
"beneAccNo": "000451 000001 ",
"beneName": "Mehul",
"benel FSC": "S81N0003060",
"narrationl': "Test",
"crpld": "PRACHlClB1 ",
"crpUsr": "ABC",
"aggrld": "AGGR0028",
flrctct arrx
" wn" i "759969775cff4dcc8b8c63402e645da3",
"aggrName": "Abc"
'txnType": "RGS"
"success" : true,
"response" : "0",
frrcrct aur*
''message" : Transaction Successfu[',
''8ankRRN" :'82191 1303721",
"UpiTrantogld" i " 1275303721",
"UserProfite" : "1 5980666",
"seqNo" : .1cl820f 8967 8241 4fddb9d1 1 e72b07566a",
"MobiteAppData" : "5UCCE5S",
"PayerRespcode" :'00",
"PayeeRespcode" : "00"
]
{
"URN": "263448",
"STATUS": "5UCCESS",
''UNIQUEID':' 3 12342543",
"RESPONSE': "SUCCESS',
"REQID": "275843"
"UTR": "455849"
I
''URN": "263448",
"STATUS": "sUCCE55",
"UNlqUElD": " 317342543',
"RESPONSE": "SUCCESS",
''REQ|D": "275E43"
"UTR": "455849"
:
"success" : fait,
"response" : "39",
"message' : "duplicate seq no from channel",
"BankRRN". : " 445U5645U",
"UpiTrantogld" : "1151 51",
"UserProfile" : " 1 1 4812.17',
"SeqNo" : "lCla97E81 6e9f914de669791fd15430da6b",
"MobiteAppData" : ""
''success":fatse,
"ActCodeDesc": "Duplicate transaction",
"Actcode": "094",
flrcrct ern*
'TransRefNo": "8031 1 2626398
'RESPONSECODE":" 1 00042",
"Nl ESSAG E":"Transaction with reference id 346712386 failed during processing, due to System Malfunction",
"STATUS":"FAlLURE",
"ERRORCODE":"10691 0",
" RESPONSE":"FAILURE"
(8) Response packet of Gateway Failure, common to all payment modes (failure)
t
"success":false,
"errorCode":"997",
"description":"Note : lnitaite Status check after Some time"
)
2,1 Description: This API wi[[ be used to check the transaction status of the UPI Pa yment.
2.2 Endpoint:
hannel-code tri ng code for the source apptication from which the Y
ransaction witI be initiated.
I
{
"dale": "02I22I2021",
"recon360': "Y",
"seq-no':"Unique id every time you hit the APl",
"channe[-code": "imob'i [e",
"ori-seq-no":"SBlbb831 9eefl c74f 1 6aa8c92&0552d2b0",
"mobite' : "9956979792",
flrcrct ernx
"prof ite-id":"3239272",
"device-id":"1 9ee1 bee5d349d1 1'
]
. Ctient has to pass "N" value in recon360 tag to get the UPI transaction status response and for Recon360 the
value to be passed is "Y"
. Ctient wit[ receive two different responses for status and UPl360.
o Recon360 to be used for "Deemed" cases post using the status API and on T+2 working days of the originat
transactions.
. Last 5 days transaction status witl be present over UPI status enquiry at any point of time.
t
"FayeeAccount" : "XXXXX7639"
'TransactionType" : "PAY',
"PayeelFSC":'SBlN0003 1 60",
"OriSinatingchannet': "UPl. NPCl",
"OriginalTransactionStatus": "Deemed Approved",
"PayeeName": 'Mr S VIMALAN",
"PayerlFSC": "",
"PayerName":'Yignesh .",
"PayerVPA": "vigneshl 8895@oksbi",
' MerchantlD": "SBlbb83 1 9eef/c74t 1 6aa8c92640552dzbo",
"PayeeVPA" : "vimatan281 096@0kicici",
"RRN": "000320706502",
'TransactionAmount": "500",
"PayerAccountNumber" : "}}XX}xXX)o0fiX4976",
"DateTimestatuschange': "2020-01-29 1t5.14:32.0",
'turrentTransactionStatus": "Credit Confirmation Received",
"SequenceNumber": "SBlbb831 9eef7 c7 4f 1 6aa8c97640552d2b0",
fl,crct ernx
"lRC": "0000",
"DisptayMessage":'Success. 223813",
"OriginalTransactionDateTime": "2020-01 -03 20:38:48.0"
)
3.1 Description: This API wil[ be used to check the transaction status for IMPS.
UAT: htt :l la ibankin onesandbox. iciciban k. com / a i /vl /com osite -status
Live: httos: / /aoibankineone. icici bank. com / a pi/vl /composite-status
ilandatory
Name Type Description (Y/N)
ransRefNo umber TA nsaction Reference Number that uniquety identifies
transaction at BC end
Y
bclD String f",..n ant's BCID
Channet-code Atphanumeric ChanneI code Conditionat
Date Date i\^M/ DD / YYYY format, Date has to be transaction
initiated date
Recon360 String lFixed vatue Recon360
]for vatue "N", API witl be routed to status APl, API witt
{
"t ransRef No": "1 )4755",
"passCode": "3f4dbbdad1 a241 bca994l39c0d3f3efd",
"bclD": "18CF1i00044",
"recon360":"N",
"date":" 02I16I2021"
]
lA,lPS recon 360 request packet:
{
"date" .'07 t 1612021" ,
"recon360':"Y",
" trdrsRefNo ": " 8442310086",
l?rcrcr eun*
)
Ctient has to pass "N" vatue in recon360 tag to get the IMPS transaction status response and for Recon360
the vatue to be passed is "Y"
Recon360 to be used for error codes 1 1&30 post using the status API and on T+2 working days of the originat
transactions.
Code umber sponse code of the APl. Response code "0" indicates the success response
iN
_L
Ba nkRRN lNu mber nk RRN number
ra n RefNo lNu mber Tansac tion Reference Number that uniquely identifies the transaction at BC
nd
aymentRef tring Payment Reference
L_,
iTra nDateTime l*I te ETansactlon Oate
I
ina ti me
iNumber hmount
[m"r.t
EA neMMlD lNumber Beneficary MMID
I
RemName t
S TI ng Nanre
fena-
tailerCode String Code
lRetaiter
IMPS recon 360 response parameters
hranRefNo Number Reference Number that uniquely identifies the transaction at BC end
[ransaction
PaymentRef
Frpuy rra.*re"
lYl String
avment Reference
"recon-api-aesponse" :{
"heade.s": {
"message-type": 1401,
"proc-code": 455002,
"channel-code": "mobi1e",
Orcrct sanx
"stan": "STAN000002 ",
"response-code" : "0000",
"nesponse-message": "Success, "
),
"parameters": {
"index": {
"ld": 0,
"parameter": I
t
"name" : "Benef i.ciarylttobileNo",
"va1ue": {}
L
i
"name" : "RemltterAccountNumben",
"value" : "Xn(x)(xXX0190"
\
t
"name": "Benefici.aryl FSc ",
"value" : "A8HYO065632"
),
{
"name" : "Originatingchannel",
"value": "Internet"
)
{
"name"i "Ori.ginalTransactionStatus",
"value": "Suspect "
)
{
"name" : "BeneficiaryNaflie",
"value" i {}
)
{
"name" : "BeneficiaryAadharNumber",
"va1ue": {}
)
{
"name": "RRN",
"va1ue" : "0938134S5317"
)
{
"name" : "TransactionAmount",
"value":1.84
)
t
"name" : "Benef icial'yAccountNumber",
"value" : ")(XUXXXXXXX2259"
)
t
"nane": "t1obi leNumbe n ",
"va1ue": 8898S26449
i
{
flrcrct ernx
"name": " Cu.ne ntTr ans act ionStat us ",
"value": "credit confirmation Received "
t
"name": "TranRefNo",
"va1ue":8442310985
),
t
"name': "IRC",
"va1ue": "0091"
),
{
"name": "Displ ayMessage ",
"value": "Tirne out at NPCI"
i,
{
"name": "Origi nalT ran sa ctionDateTime ",
"va1ue": " 12- F EB -2OOO.OO.OO"
)
t
"name": " Remittenl.laole ",
"value": "Paytmol"
)
l
)
)
)
)
NE transaction processing essentiatly takes ptace in two steps - a) There is a debit in to remitter
nt first, b) Fotlowed by transaction getting submitted to RBI for processing with the time lag.
For NEFT status enquiry there are two sets of APls availabte from lClCl bank given below as -
1) NEFT debit confirmation API - Provides the status of the debit in remitter a/c
2) NEFT credit confirmation API - Provides the status of the credit in beneficiary a/c
Status Enquiry -
For the amount transferred within lClCl bank the remitter needs to onty use the first API ie.
Debit confirmation APl.
flrcrct arnx
The remitter needs to fire this API and if the response received in status fietd is "SUCCESS"
in that case the transaction can be marked as successfutty processed.
For the status received as faiture(Response tag vatue to be success) the same can be marked
as faited and that particutar transaction can be re-initiated. For any other status remitter
should recheck the status after 2 hours. This re-check is required to be done onty once. ln
case the status does not change to a definite success or failure, in that case no further
action is possible and this transaction is to be marked as 'pending'.
Att pending transactions are to be reconciled with the remitter bank statement to ascertain
the final status of the transaction. ln case of no respective debit is found the transaction
can be marked a failed & fresh transaction can be re-initiated. ln case the debit is present
in the account the transaction can be marked as successful.
Additionatty, this API can atso be utilized to fetch the UTR number for the transaction in
case the same is not received with initial
1. The remitter needs to fire the first API (Debit) and if the response received in status
fietd is "SUCCESS" onty and onty in that case the remitter shoutd proceed to step 2 tisted
betow.
For the status received as faiture the same can be marked as faited and that particutar
transaction can be re-initiated. For any other status remitter should recheck the
status after 2 hours. This re-check is required to be done only once. ln case the status
does not change to a definite success or failure, in that case no further action is possibte
and this transaction is to be marked as 'pending',
Att pending transactions are to be reconcited with the remitter bank statement to
ascertain the final status of the transaction. ln case of no respective debit is found the
transaction can be marked a failed & fresh transaction can be re-initiated. ln case the
debit is present in the account then the remitter can proceed to step 2.
2. Understep2, the remitter should invoke the secondAPl (CreditAPl or lncremental status
API) with the requisite request packet as documented in API document. Once the status
is successfulty received as "amount credited to beneficiary" transaction can be marked
as successful.
3. lt is possibte that in some scenarios the status is received as "posted to RBl". This status
is provided for the transaction which the beneficiary bank has not provided the uttimate
status and after 5hrs of the transaction the status would be changed ,,paid',. ln such a
scenario RBI has provisioned for 72 hrs for the beneficiary bank to update the final status
of the transaction. However, if the status does not change post 72 hrs the remitter can
mark these transactions as successfut.
4.1. Description: RTGS response received over composite status API is a terminal response.
lrrcrct aanx
4.2. Endpoint URL:
UAT: httos: / / aoi bankineonesandbox. icici bank. com / a pi/v1 / com oosite - sta tus
Live: h ttps: / / apiban kinqone. icicibank. com / api / v1 / com posite -status
AGGRID
CORPID
I String
String
Aggregator ld
Corporation ld
Sample Request:
t
"AGGRID": "AGGR0001",
"CORPID": "PRACHICIBl ",
"USERID": "USER3",
"URN": "1288883",
"UNIQUEID": "abc1 2dk3d7dd4hc5ducdfe"
]
4.5. Output Parameters:
i._+---.,.-
URN Number URN Number of transaction
Sampte Response:
{ XML": {
"STATUS": "SUCCESS",
"URN": 1288883,
"UNIQUEID": "abc12dk3d7dd4hc5ducdfe",
"UTRNUMBER": "056931871",
"RESPONSE": "SUCCESS"
Orctct eanx
)
t
"STATUs":"Amount credited to Beneficiary.",
" UTRNUMBER" :"XXXXXn(n0(,
"CreditDate":"DD,filfil,YYYY HH:Mm:SS AM/Pi{",
"Response":'SUCCESS"
..REASON":'"'
1
There are two such APls. One registers the beneficiary on the basis of account number &
IFSC which would suffice the payment needs for IMPS, NEFT & RTGS modes. Other API
registers beneficiary on the basis of Virtual Payment address which wi[[ suffice payment
needs for UPI mode.
For clients with existing ALIAS lD, the default configuration for this API witt not work.
Client needs to detete their existing ALIAS lD through CIB portal and create a new ALIAS
lD simitar to the existing corporate user lD. For exampte, a client has ALIAS ,l[ -as
'lClClBank'and corporate user lD as 'Bank12345', then ctient needs to delete the existing
ALIAS lD i.e. 'lClClBank' through CIB portal and create a newAL|AS lD as '8ank12345' which
has to be simi[ar to the corporate user lD.
Orcr"t Bank
6.2. Beneficiarv Reeistration throu qh account & IFSC
7.2."1 API Endpoint:
UAT: https://a p iba n kingo nesa nd box. iciciba n k.com/a p i/Corpo rate/C lB/v1/Ben eAd d itio n
URN
R_ID NVARCHAR2 (100)
NVARCHARz (40)
lD of the partner
hardcoded by
to be provided and
lclcl Bank.
This a unique vatue that partner wilt
assign to each registration from his end
I
for security and recon.
"Crpld" : "PRACHlClBl",
"CrpUsf':"USER4",
"BnfName" : "AnshumanMishra",
"BnfNickName" :'Ansh",
"BnfAccNo" : "000405001257",
"PayeeType" : "W,
"lFSC" : "1C1C0000011",
'AGGR_lD" : "AGGR0002",
"URN" : "3kCy4sPuSqDNi4kggXJloE568221 "
l
7.2.4 Output Parameters:
Response:Success
{
BNF_l[):"4836",
Message:"You may not be abte to make fund transfer immediately with newty added payee, please
check payee status before proceeding",
Response:"SUCCES5"
Response:Failure
t
Message:"lnvatid Corp Id or User ld or Aggregator ld is passed.",
ErrorCode:"9906",
Response:"FaiIure"
]
Type (Max
Name Description
char limit)
Message String Message
Response:Success
t
tsNF tD: '4836 ',
Message:"You may not be ab(e to make fund transfer immediatety with newty added
payee, ptease check payee status before proceeding.,,
Response:"5UCCE5S"
l
Response: Fallure
i
Message:"lnvatid Corp ld or User ld or Aggregator ld is passed..,,
ErrorCode:"9906",
Response:"Failure"
]
7.1. Description: This is a on e-time API which is required to access NEFI RTGS & Beneficiary
Registration APls.
lnput Parameters:
Type (Max
Name Description Name
char timit)
Orcrcr arrx
AGGRNAME
AGGRID
I tring
String
Aggregator name
Aggregator ld Y
t
''CORPID":"<Corp ld>"
"USERID":"<user id>"
'AGGRNAME":"<Partner
name>"
"AGGRID":"<Panner
id>"
"URN":"<URN>"
'BANKID":"lCl"
Output Parameters:
AGGRID
-[IT Aggregator ld
1'IT
CORPID ng Corporation ld
11
USERID String User ld
3. CURL COMMAND
r API Key needs to be passed in the header (apikey) and merchant lP witl also be required for lP
whitetisting.
. API Key: to be shored by lClCl teom.
. API request and response to Merchant is secured using advanced and agreed upon encryption
atgorithm agreed to maintain data confidentiatity and integrity.
. API Gateway uses the standard authenticating and authorizing process for the incoming
request from merchant and for maintaining the integrity and confidentiality we appty state of
art Encryption/ Decryption atgorithm.
r Please refer betow given steps for Encryption & Decryption process.
"encryptedData":
"wBJSefiinJVtobhI cJR553w6Ay6b8/2frcjxvdZl BsnxztsutTHaSlFt4PoZD+lhdtRShwdKgz3yJYlisGV/KKpy&lSY3DlLOpbkqEa
0Qq0g=",
"ctienthlfo": "",
"option.tlParam": ""
]
4.2 Fietd Description:
5.1 For Composite Payment, Status Check APls and CIB APls
bytes[ iv = lV;
bytes[] cipherText = symmetrica[y encrypted Bytes (step3)
bytes[] concatB = iv + cipherText;
encryptedData = B64Encode(concatB);
5) Perform AES/ CBC/ pKCS5padding encryption on DATA using RANDoMNo as key and
Base64encoded RANDOMNO as lV. Say ENCR_DATA.
1) Get the lV- Base64 decode the excryptedData and get first 16 bytes and rest is encrypted response.
bytes[]lV-getFirstl6Bytes(Base54Decode(encryptedData)
-
2) Decrypt encryptedKey using atgo (RSA/ ECB/ pKCSl p;ddjng) and Ctient,s private key.
3) Decrypt the response using atgo (AES/CBC / pKCS5paddingJ.
4) lgnore first 16 bytes of response, as it contains lV
6. FAQs
1 . What is composite Apl?
flrctq a"nx
Ans: One single API which witt accommodate payments for UPl, IMPS, NEFT & RTGS.
2. How do you know the status of the transaction lf there is no response recelved for the fired API?
4. What is 'x-priorlty'?
Ans: .x-priority' is a 4 digit input header parameter which determines the payment mode. The first,
second, third ind fourth digit sets the priority for UPl, IMPS, NEFT & RTGS respectively.
Ans: Yes. Put the vatue "l' against the preferred payment mode and rest a[[ as '0'. Therefore, in case
of just UPl, IMPS, NEFT & RTGS, x-priority shatt be 1000, 0100, 0010 & 0001'
7. Will the request parameter change for more than one Payment modeAPl?
Ans: yes. The request packet needs to include the mandatory parameters for att the
payment modes
selected.
1O.How much tlme does beneflclary registratlon API takes to register the beneficlarles?
is
Ans: Beneficiary Registration API is real time APl. As soon as the API response is received, Beneficiary
registered on the Data base and the transfer API can be processed'
The ctient witt use lClCl Bank's pubic key certificate and encrypt the payment request.
lclcl Bank witt
decrypt the payment request using our private key certifitate ih"n proi"ii t|t" transaction
accordingly as per the payment. mode preferred. Afte; the request has"ni been processed, lClCl gank wilt
encrypt the response using ctient's pubtic key certificate and post it
back. Ctient witt use their
corresponding private key certificate to decrypL the response received.
These certificate fites are avaitabte with third party vendors. A setf-signed
certificate for UAT is
acceptabte, but for live environments a CA signed one is mandatory.
16,what are the details provided by rcrcr Bank after the configuration
is compreted?
Ans: we provide the API Key & lClCl Bank's Pubtic key certificate
separately for both uAT & production.
17, What is APt Key?
Ans: 'APl Key'is a unique vatue generated for each ctient which is required
to be passed in the header.
18' what is Device'rD, proffle'rD, channel code, account provider, merchant
type, etc. in upr
request packet?
Ans: These are fixed vatues which are generated when the ctient
is configured in uAT & production
environment and the same shatt be provided after the configuration.
2O.what is AGGRTD, AGGRNA 4E, coRprD e USERTD in the NEFT & RTGS request packet?
Ans: These are fixed vatues which are generated when the
ctient is configured in UAT & production
environment and the same shatt be provided after the configuration.
fnlt F9r UPl, ideatty the finaL status of the transaction will be avaitable within 1g0 secs of
initiating the transaction.
ln:: Fg, IMPS, ideatty the final status of the transaction witt be availabte
initiating the within 1g0 secs of
transaction.
Ans: No transaction timit on votume per day. Can manage 2'3 transactions per second.
28.What wilt be the status of NEFT transaction, if it is initiated after the NEFT time slot is over for
that day?
Ans: The transaction witt be kept in pending state. No amount sha[[ be debited until the NEFT
window
reopens.
36.What are the encryption steps for clB registration & Beneficlary ReSistration APls?
Ans: Refer Section 5.2
37.What are the encryption-decryption mechanism for composite API and their resPective
status
check APls?
Ans: Refer Section 5.1
38.When can I use status check of an API and for how many days the status is available
Orcrct aunk
Ans. You can use the status check API for response not received and for pending scenario. Status check
to be used upto 5 days from the originat transaction day
39. What is the Chargeback request TAT for wrong fund transfer
Ans: within 60 days from the original request.
t*o!{ie-d text: 'For UPl, the finat status of the transaction witt be availabte between
ig0 secs
and T+2 days of initiating the transaction,.
Modified text: 'For IMPS, the final status of the transaction witt be avaitabte
between 180 secs
&. 6 months' of initiating the transaction.,
(.rry exggt tjyeline is subiective to purging actiyity at our end. Hence, it is recommended
check with lclcr team before taking any iction on back doted tronsaction) to
Added text: 'A setf-signed certificate for UAT is acceptabte, but for tive
environments a cA
signed one is mandatory.,
2) 2. API Detaits
U PI
Removal of MPIN, Ref-lD, Expire-after & Notes from Upl request packet
section as these fietds
are not mandatory
seg-no: This shoutd start with 'rcr and shoutd not have any special characters.
NEFT:
1 .7 Output Parameters
" NEFT & RTGS out parameter table have been combined
" Sampte response packet for NEFT & RTGS have been updated.
" ln case of success response packet, UTR fietd has been added
". ln case of faiture response packet, ERRORCODE fited has been added.
Sample response code packet have atso been added along with a disctaimer 'Please note, the
sampte response packet mentioned above is standard. But, in some failure cases, parameters
RESioNsECoDE, STATUS & ERRoRCoDE might not appear. RESPoNSE and MESSAGE parameters
witl always appear.'
5.1 Description
Added text: ,For ctients with existing ALIAS lD, the defautt configuration for this API witt not
work. Ctient needs to detete their existing ALIAS lD through CIB portat and create a new ALIAS
and
lD simitar to the existing corPorate user tD. For exampte, a ctient has ALIAS lD as 'lClClBank'
corporate user lD as
iBanitz3l5', then client needs to delete the existing ALIAS lD i.e.
itftiS"nL, through CIB portat and create a new ALIAS lD as '8ank12345' which has to be similar
to the corporate user lD.'
Chanqes incor porated fro m Comp osite API Docu ment vl .12 onwards
. VPA Tag added to the UPI request parameter for Nodal account flow
o New Cl-A APts under one nybriO entryptlon, CIB Registration, Bene addition, Bene
Validation and
CIB Neft Status
.lMPsstatusAPladdedtochecktheterminatstatusoffinaltransactions
Chanqes incor porate d from Composite API Docu ment v1 .14 onwards
. IMPS and UPl, status and recon360 APls are integrated into comPosite status
. is
Standalone status and imps recon API removed
. change done to IMPS status API with response starting with {"ImpsResponse":
Original Thxt:
(lFT fund transfer) - composite status API shows the finat response
lclcl to lclcl fund transfer
RGS transaction- Composite status API to be used for checking debit at account
levet and retrieving UTR
number in case of pending transaction.
RGS lncrementaL status- lncrementat API to be used for finat NEFT resPonse
Modified Text:
Orcrct a"n*
NEFT transaction processing essentiatty takes place in two steps - a) There is a debit in to remittei
account first, b) Followed by transaction getting submitted to RBI for processing with the time lag.
For NEFT status enquiry there are two sets of APls availabte from lClCl bank given below as -
3) NEFT debit confirmation API - Provides the status of the debit in remitter a/c
4) NEFT credit confirmation API - Provides the status of the credit in beneficiary a/c
Status Enquiry -
For the amount transferred within lClCl bank the remitter needs to onty use the first Apl ie,
Debit conf irmation APl.
The remitter needs to fire thisAPl and if the response received in status fietd
is .,SUCCESS,,
in that case the transaction can be marked as successfutty processed.
For the status received as faiture the same can be maried as faited and
that particutar
transaction can be re-initiated. For any other status remitter shoutd recheck
the status
after 2 hours. This re-check is required to be done onty once. ln case the status
does not
change to a definite success or falture, in that case no further action
is possibte and this
transaction is to be marked as ,pending,.
Additionatty, this API can atso be utitized to fetch the UTR number
for the transaction in
case the same is not received with init.iat
4' The remitter needs to fire the first API (Debit) and if the response
received in status
fietd is "SUCCESS" onty and onty in that case the remitter shoutd proceed
to step z tisted
betow.
6. lt is possibte that in some scenarios the status is received as "posted to RBl". This status
is provided for the transaction which the beneficiary bank has not provided the uttimate
status. ln such a scenario RBI has provisioned for 72 hrs for the beneficiary bank to
update the finat status of the transaction. However, if the status does not change post
72 hrs the remitter can mark these transactions as successful.
. Neft incremental API request packet parameter changed from "UTR" to UTRNUMBER".
. Expected status vatues updated in NEFT incrementat APl-output parameters
(
"success":false,
"errorCode":"997",
"desc.iption":"Note : lnitaite Status check after Some time"
)
Client Name:
Projected Avg. #
Avg. # Txns./Day: Txns./Day:
Peak # Txns./Day:
Average TPS
Peak TPS
Avg. Monthly Volume:
Avg Quaterly Volume
Avg. Yearly Volume:
a PLEASEFILL THE FORMIX ELAC( INI(ONL
Bank
CORPORATE API SUITE - Onboarding Form
We are ready if you are!
DETAILS:
'On-Boarding l0
'IFSC Code
'Contact Name
'Registered Emajt lD
.GSTIN
City
State
ln tegrati,on
API
E CIB RcAisvrtlon E P.ymerts tr ecoltection API - With / Without vatid.tion Balance check
uPt r.0 / uPt 2.0 E cash Deposit ttachine (CDM) API Trade API
IPAY API tr Eazypay (Transaction iettlement & refund API) fl Tranmction aterts
I aers
Direct Tax
tr Goods & Service Tax
D Penny orop
Other:
Commercial:
Rate (per
Transactlon Value transaction)
Less than INR 1,000
Refund Code :
of payment: Elnrcs - Nrrr ElmPs E Funds Transfer
'For onty
Mode acceptance; Ecasn Etctct ctreque Etctct oo nNon lclcl DD Eoebit Authorization
-
For Tax API blank if
Corp lD (lf applicabte)
Address
STP I blank if
'user lD
I I
Setup/ Product SetuD/ lmDlementation charges Transaction chartes (Define flat or per R5 t000 basls)
7.
4.
For H
SetuD/ lmDlementation charget M.ndate charges (Per mandate) Transaction charges (per transaction)
rTechnical
.UAT
'Production
URL/ catLback URL
retum URL/ cattback URL
.UAT URL
URL
. for development support witl be applicable ar per actuals agreed between cllent and TsP vcndor
TSP chargcs
. rmptemeiiation support will beibmpttmentary tt tetup/ implementauon charSes excecd R5 50000/. p€r setup
ETPEEN
> h.ra6y.r(le t,|t .ll tlj. p.rtLuLR.id hlo.
I / Wa tro. alv6 h tn Arclk tt . @ tu, dkt, dpl.t .d !p-to'd.ta h.ll raracB .nd I / w. he mt d$h.ld my ldomtlon
> r/-ti..rr!.nd6t.rur.bp.dld...yturtldhfo.tudol!tntErCllekUd./lBGo,Cmp.niatxt.!quk
> I / w. .ir.. .r!r, u!.LBt rt tn t EIO !&l ltd. / G.o(D Cod9.nLr tn dtht to EJct any .prli..tbn nthdt prryldlna .ny r..s
'6.m
frc.n tlne to tlna
> I/ w. traw rc.d, und.ntood .!d hd.by ag.. to r.rn! .nd <ondltio.3 tddlrB UE _rrsh r ..r{!ntrn w{th lmt .M Co.titlsE p.n nnitl
to "Grr.^! r.cMt-.d 'CdDo.tt l6t.rn t likht" a dtpl.yld on w.klclb.nk.cdn.d {r.. to.bl& b, tn sm
> I / w. und.Rt d U.t rh. rid r.G ... rol.ct to BBh. r@ tiE to tl@ .,ld I / iE .ar.. to l!.o @6.t8 up.Ltld oa rudr cn nF .rd b. b.!nd by th. l.m - .r. rn lorc. rrcm Utrt lo tm
6@ffit .;np..y, d t^ G.s or Fx{tty/tB not w69Bd Uy th. ctictid tFcrLd b, th. led. L.k of lnd. lrm dnl. to lj l E!.cgt th.t no dlrRlq q . r.{.llv. / E:r r.l.th. (u sp.clat d
R.GE B. ot llnl!) b. p.rri.r ol mtm / 6, r drc.io., fr. F,6plqE ol nlE / 6 or ot r tri3ldi.ry of m / c, d or ttr lEldlry com95y ol rc / 6, d. aututot d b.h.tr oa / lq / toe / 6, d
hol6 i!b.t hta6t, ln ru / c q. roildLry o.ldlnna @.p.ry of c / 6
^tl.(
*h.t4tr, to.ry Flu d ay thtd 9.ny.nd tn oftkntl.l lntm.tlo. th.ll b. @d by 6, tol.ly lo. th. pu,F* @Ptr.d h.r.h.
> I / W. d..l.rc that I / { he h.d m telvaEy p.E..dq{, {nttl.t d q.tat nt / 6 N h.4l / € .G b6.dd<.Ld hratvt n
sd rh.U F!6 rn rhrlt .ot holrt lCEl LDt Lt!, / lE G@p dtp..l6 li.bl. rd 4 or lhb lniomtlon
> ln.& my / @r PA h mt ed.t d io. Mltllt C.sh lls.a.|ffit !.rvL6, Pl..!. updd. tn. ltr a tBtldtd l. th! lCplk.tion
> trw..,.clx., conlth.,ta iyrc $.t. UWc ina6*rna nxl c..t h prtkuLr! ttuln D, m/G .E ruqslr.d b, tl|. $.r.ti.dl lUid.lln6lo€rnlt b$hlrt cmp.nL'..
> Th.r th. dlriha &col]nt d.-r.tl, rqlrt r.d v,trh l(lcl But (tdlJ(,hi th. &lnabd naoto.la .rx, rh.lt r.rCGtlE tr.B.ctlo. !l!nb) n!!.h,,!*M!d:-.-. - . .
.nytnl*th6 $.rard.. o nryls r.q(t.t.
> irw" r,-.tv ilrc.,
-a.rt.k.;.utlEd; En r.* Lrht.d to mk p.yr6t! by d.btrl,a tlf &(Mt e F lh.lnilrctl6.oLlEd ln lh. r.Bth. nt rdld.dd!o!$tErn!dk.tMs
i-* i.O i-iOv.tr- rOctuk uut 6.rdt b. !.urd b, .ny .'n , .Ll .<{o; rrrd Fr{nt to iJch i.qctt n6 lr rEh reqt 6t3 hn. b.a @unt rhr.d.n by..ub..qst t6r*tld d rnttF
"rA
lliE fd purpor.. ot tnll3nltdn| $d tnl!!.cnd nt6 throqn Afl tt vl..
.rirhi fr.{n non-lohptl.E or br.&h of rE taB h.cln Dv @{or9ti@/brdcn ol.colk 6l. t tt.
> !.t-olr.nd Lr6;
.nd li.bnl9 to *ttt. .ll dbp{t6/ oolldb wilh nry r(rh Joint t.Mt h.ld.a.
To be signed by cuStomer:
For
confirm that the application and related do.uments have been executed at
(ptace) by Person riSned below, in my presence
I
in the Apptication form
on the date mentioned betow and verified with customer tignature availabte Mth Bank account. Atl the information