0% found this document useful (0 votes)
13 views

OnboardingManual - UPI - API v1

The document provides instructions for merchants to integrate with ICICI Bank's UPI payment APIs. It describes the onboarding process, API formats, encryption requirements, and examples of the collect payment and transaction status check APIs.

Uploaded by

crorepathi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

OnboardingManual - UPI - API v1

The document provides instructions for merchants to integrate with ICICI Bank's UPI payment APIs. It describes the onboarding process, API formats, encryption requirements, and examples of the collect payment and transaction status check APIs.

Uploaded by

crorepathi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

ICICI BANK UPI API

Onboarding manual
V1.8

ICICI Bank API Management Suite


MERCHANT ON BOARDING PROCESS

Merchant needs to provide the following information for onboarding:


 Organization Name
 Contact First Name
 Contact Last Name
 Contact Email Address
 Calling server IPs (UAT & Production) and port
 Account Number for credit
 IFSC Code for credit
 Expected Volume , TPD, TPS
 Merchant call-back URL
 Public key of merchant’s SSL certificate

Bank will provide ICICI bank’s public key of SSL certificate. Merchant will need to make REST call to APIs f rom its
Application Server, the IP of which needs to be whitelisted.

TRANSACTION API

API format

The URL to be used is: https:// api.icicibank.com:8443/<apiName>

The specific name of different APIs is mentioned in the below sections. The customer parameters to be passed
are, again, specific to each API. Below is the format for sending details. First the parameters and their values will
be entered in JSON Object. Then the whole JSON object will be encrypted and then encoded. Finally the whole
request will be passed through URL.

[GatewayURL(Base64Encode(RSA_Encrypt(JSON_Object{Field_Elements(field1,field2,…)})))]

The JSON Request Object is mentioned below where complete payload is encrypted using the public key
provided by ICICI Bank:

Base64Encode(RSA_Encrypt( { "merchantId" : "111111", "subMerchantId" : "12234", "terminalId" : "2342342",


"merchantTranId" : "612413726581",…,… }))

Encryption needs to be done using RSA 4,096 bits using the key provided by ICICI Bank.

ICICI Bank API Management Suite


Collect Pay API Request Call

The URL is https:// api.icicibank.com:8443/collectPay

The UAT URL of the same is https://apigwuat.icicibank.com:8443/newCollectPay

For collectPay API Request Call, the following parameters and their values need to be passed in encrypted
message:

payerVa , amount, note, collectByDate (format: DD/MM/YYYY HH:MM AM/PM), merchantId,


subMerchantId, terminalId, merchantTranId, billNumber

The details of the parameter values:

Field Remarks Type Length

merchantId Merchant ID given by ICICI Bank at the time of on- Numeric 10


boarding

merchantName Name of the merchant Alphanumeric 50

subMerchantId Sub-merchant ID in case Merchant is an aggregator Numeric 10


(Optional)

subMerchantName Name of the sub-Merchant (Optional) Alphanumeric 50

terminalId Needs to send Merchant category code (MCC Numeric 4


code). It should be 4 digit number. [UAT MCC-
5411]

merchantTranId Transaction reference ID of the merchant Alphanumeric 20

ICICI Bank API Management Suite


billNumber Optional field to add a bill number apart from the Alphanumeric 50
transaction ID

payerVa Payer’s virtual payment address communicated to Alphanumeric 255


the merchant

amount Amount of the transaction Numeric with 20


two decimal
point

note Optional remarks field Alphanumeric 50

collectByDate If the collect from payer is delayed collect, fill this Date and Time
field with the date and time by which the payer
needs to authorize the payment. This date cannot (DD/MM/YYYY
HH:MM
be a past date
AM/PM)

Note: For UAT purpose, please send values in optional parameters also. Values can be static values.

Sample: CollectPay Request

{
"payerVa" : "vishal2@icici",
"amount" : "5.00",
"note" : "collect-pay-request",
"collectByDate" :"30/12/2016 06:30 PM",
"merchantId" : "106088",
"subMerchantId" : "12234",
"terminalId" : "5411",
"merchantTranId" : "ABCD290806",
"billNumber" : "sdf234234"
}

ICICI Bank API Management Suite


Response to the Collect pay request
The API will send below parameters in the immediate response to the collect pay request. Response will be
encrypted with merchant’s public key shared with ICICI bank. Merchant needs to decrypt the response with their
own the private key of the key pair shared with ICICI Bank.

Field Remarks

response Response code indicating the status of CollectPay request

merchantId Merchant ID given by ICICI Bank at the time of on-boarding

subMerchantId Sub-merchant ID in case Merchant is an aggregator (Optional)

terminalId To identify specific entities within the sub-merchant (if applicable)

Success Indicates the status of this transaction

Message Message indicating status of the CollectPay request transaction

merchantTranId Transaction reference ID of the merchant

BankRRN Transaction reference number of ICICI Bank

Sample:

{
"response": "92",
"merchantId": "106088",
"subMerchantId": "12234",

ICICI Bank API Management Suite


"terminalId": "5411",
"success": "true",
"message": "Transaction initiated",
"merchantTranId": "0030011111101",
"BankRRN": "628610627304"
}

Response Codes of Response to collect pay Request

Response Code Success Message

92 Transaction Initiated

1 User profile not found

4 Response parsing error

9 Transaction rejected

10 Insufficient data
5000 Invalid Request
5001 Invalid Merchant ID

5002 Duplicate MerchantTranId

5003 Merchant Transaction Id is mandatory


5004 Invalid Data

5005 Collect By date should be greater than or equal to Current date

5006 Merchant TranId is not available

5007 Virtual address not present


5008 PSP is not registered
5009 Service unavailable. Please try later.
All other values of response
Transaction has failed
code

ICICI Bank API Management Suite


Transaction Status Check Call

The URL is https:// api.icicibank.com:8443/transactionStatus

The UAT URL for this is: https://apigwuat.icicibank.com:8443/newTransactionStatus

For transactionStatus request Call, the following parameters and their values need to be passed in encrypted
message:

merchantId, subMerchantId, terminalId, merchantTranId

Field Remarks Type Length

merchantId Merchant ID given by ICICI Bank at the time of Numeric 10


on-boarding

subMerchantId Sub-merchant ID in case Merchant is an Numeric 10


aggregator

terminalId Merchant category code(MCC) for auto Numeric 4


charging module based on category of
merchant

merchantTranId Transaction reference ID of the merchant Alphanumeric 20

Sample:

Transaction Status

{
"merchantId": "106092",
"merchantTranId": "6CnKxKtuhVYNDe",
"subMerchantId": "1000000000",
"terminalId": "5411"
}

ICICI Bank API Management Suite


ICICI Bank API Management Suite
Response to the Transaction status check

The API will send below parameters in the immediate response to the collect pay request. Response will be
encrypted with merchant’s public key shared with ICICI bank. Merchant needs to decrypt the response with their
own the private key of the key pair shared with ICICI Bank.

Field Remarks

Response Response code indicating the status of the transaction status check

merchantId Merchant ID given by ICICI Bank at the time of on-boarding

subMerchantId Sub-merchant ID in case Merchant is an aggregator (Optional)

terminalId Merchant category code(MCC) for auto charging module based on


category of merchant

Success Indicates the status of the transaction status check request. If “true”,
the status check transaction is successful

Message Status of the transaction status check

merchantTranId Transaction ID of the merchant as sent in the request from the


merchant

OriginalBankRRN Transaction reference number of ICICI Bank of the original transaction

Status Indicates the status of the original transaction that is being queried

ICICI Bank API Management Suite


Sample:

{
"response": "0",
"merchantId": "106088",
"subMerchantId": "1000000000",
"terminalId": "5411",
"success": "true",
"message": "Transaction Successful",
"merchantTranId": "0030011111101",
"OriginalBankRRN": "628610627304",
"status": "PENDING"
}

Current response

PENDING, SUCCESSS, FAILURE

ICICI Bank API Management Suite


Response on the Call Back URL

Field Remarks Type Length

merchantId Merchant ID given by ICICI Bank at the time Numeric 10


of on-boarding

subMerchantId Sub-merchant ID in case Merchant is an Numeric 10


aggregator (Optional)

terminalId To identify specific entities within the sub- Numeric 10


merchant (if applicable)

PayerName Name of the Payer Alphanumeric 50

PayerMobile Mobile number of the Payer Numeric 10

PayerVA Virtual Payment Address of the Payer Alphanumeric 255

PayerAmount Amount of the transaction Numeric 20

TxnStatus Status of the transaction

TxnInitDate Date and Time on which the transaction Date and Time
was initiated
(YYYYMMDDHHMMSS)

TxnCompletionDate Date and Time on which the transaction Date and Time
was completed

ICICI Bank API Management Suite


(YYYYMMDDHHMMSS)

BankRRN Bank reference number for this transaction Alphanumeric 50

Sample

"merchantId" : "106161",

"subMerchantId" : "12234",

"terminalId" : "5411",

"BankRRN" : "615519221396",

"merchantTranId" : "612411454593",

"PayerName" : "hhjjj",

"PayerMobile" : "8879770059",

"PayerVA" : "testing1@imobile",

"PayerAmount" : "12",

"TxnStatus" : "SUCCESS",

"TxnInitDate" : "20160715142352",

"TxnCompletionDate" : "20160715142352"

Current expected TxnStatus

SUCCESS,

REJECTED (For all scenarios)

ICICI Bank API Management Suite

You might also like