Integration Document
Integration Document
B. Process Flow
1: Bene Registration (SYNC API)
1. Axis bank would expose the API’s for Bene Registration.
2. Client would consume the API to initiate the Beneficiary Registration
3. Once the Registration requests reaches Axis Bank’s server end, Bank will validate and decrypt all the
Registration request.
4. As a best practise, in a single API call corporate should send single beneficiary details in a way that the
payload will be lighter so that real time processing and status can be managed
5. Post successful decryption Bank will give response as below with HTTP status as 200 OK to the customer’s
request.
• In case of Successful parsing
"BeneficiaryRegistrationRespons eBody": {
"data": {
"beneDetails": [
{
"beneMobileNo": "7719871404",
"beneBankName": "HDFC Bank",
"beneName": "Sangeetha Mobiles Pvt ltd",
"beneIfscCode": "HDFC0000523",
"beneCode": "VEND01264215",
"beneEmailAddr1": "[email protected]",
"corpCode": "DEMOCORP11",
"status": "ACTIVE",
"beneAccNum": "5230330001915"
}
] , "checksum": " c1ca326533f55d0aa93c1caffde30769a71e3265"
},
"message": "Success"
"status": "S"
}}}
• In case of any rejections due to format or data validation, a response message at initial level with
reason of failure will be given.
"BeneficiaryRegistrationResponseBody": {
"data": "",
"message": "Invalid Corporate Code",
"status": "F"
If the count of Beneficiary is more than 10K, then a .csv file will be triggered after 30 mins to the mail address
captured in the API request.
• In case of any rejections due to format or data validation, a response message at initial level with
reason of failure will be given.
"TransferPaymentRespons e": {
"data": "",
"message": "-> corpAccNum can't be blank.",
"status": "F"
8. In case of any Failure of request parsing failures or internal errors system will send any Non 200 HTTP
response.
NEFT 60 Mins
RTGS 30 Mins
6: CallBack API
1. Customer will host an API which will be consumed by Axis Bank to post txns status reverse feed.
2. Once a transaction is processed, Axis Bank will generate and provide the Reverse feed for the transactions.
3. The reverse feed will be provided with the payment status, status description transaction no. / UTR number
etc. as per the defined format.
4. Axis Bank will retry this request until 200 OK is received
5. Refer Callback API document.
• The customer needs to keep enquiring till they get either of the following status
• Get Status API will give the current status of transaction i.e. the status at that point of time.
• In case of NEFT/RTGS “transactionStatus” as “Processed” and “statusDescription” as “Success” means
corporate account has been debited and send to beneficiary bank (This is first level response when
transaction is sent to RBI). This status is not terminal & can be changed to RETURN post confirmation from
the beneficiary bank.
• There are few Banks which do not provide the credit confirmation and the first Level Response is deemed
Success
• “Rejected” status is terminal status and cannot be changed later.
• On Payment Rejected/Returned from Bene Bank:
o Txn status will be updated as RETURN with standard rejection/return reason
o If the transaction is returned from the Beneficiary bank as a fresh inward the status of the original
txn will be reflected as “SUCCESS”. This need to manually be managed by Corporate.
Axis Bank – Corporate API Process Do cument Page 6
• The Corporate may retry for the rejected/return transactions using the same CRN.
o If the previous transaction status is PROCESSED: the client will get a message of Duplicate
transaction ID.
"CUR_TXN_ENQ": [
{"corpCode": "DEMOCORP87",
"statusDescription": "Success",
"batchNo": "1134",
"utrNo": "AXISCN0006388931",
"processingDate": "08-06-2021 15:07:23",
"responseCode": "ACAR",
"crn": "ulx13639040796621",
"transactionStatus": "PROCESSED"
},
{"corpCode": "DEMOCORP87",
"statusDescription": "Duplicate payment. Payment has been already made for the CRN
<ulx13639040796621> with Bank Txn ID <CN0006388931>.",
"batchNo": "1136",
"utrNo": null,
"processingDate": "08-06-2021 15:47:10",
"responseCode": "F404",
"crn": "ulx13639040796621",
"transactionStatus": "REJECTED"
}],
"errorMessage": null,
"checksum": "ea2f25879cfc337b0a7a1e453a44dc85"
},
"message": "Success",
"status": "S"}}}
o If the previous transaction status is REJECTED: the transaction can be taken as fresh and retried at
Corporate Client end for the same CRN.
o If Same CRN is invoked multiple times, then the status enquiry will contain all the historic data and
corporate to consider the status on the basis of timestamp in the processing date.
NOTE: Axis Bank Stores the CRN for current FY only. Therefore, CRN validation is done only for the current FY.
"GetAccountBalanceResponseBody": {
"data": {
"channelId": "TXB",
"corpAccNum": "248012910169",
"corpCode": "DEMOCORP11",
"Balance": "-454327168887.67",
"checksum": "d331ca31b40d76879252b9cd021b3215"
},
"message": "Success",
"status": "S"
}
}
}
• In case of any rejections due to format or data validation, a response message at initial level with
reason of failure will be given.
"GetAccountBalanceResponseBody":{
"data": "",
"message": "Debit account number incorrect",
"status": "F"
}}
1. Request Validation
All the API’s have few mandatory and non-mandatory fields.
2. Business Validations
In business validation we are considering request should be correct for that we are validating checksum.
Another validation will be corporate code and channel id should be mapped properly so that only correct
request will get processed.
D. Pre-requisites
For establishing connectivity between the Customer & Axis Bank production system
a. Details to be shared by Bank
• Bank will share API URLs for various Request types
• Bank will share the Signed certificate (.cer) of corporate based on CSR (certificate signing request) of client.
This is mandatory for 2-way SSL configuration.
• Bank will share the basic credentials for UAT / Production initiation
2. IP whitelisting
We allow only select IP addresses to access our application over the internet. Hence as a consumer it may be
required to whitelist all the ip addresses that the consumer would be consuming the application from. This step is a
prerequisite to setup successful connectivity.
3. Symmetric encryption
The API to be invoked accepts the request body encrypted using encryption algorithm. The body must be encrypted
using AES-128 encryption. The encryption key will be provided and will be different for each consumer.
4. Other Parameters
Client Keys - All APIs require Client id and secret that is generated as a part of HTTP Header.
Checksum – A checksum is a value used to verify the integrity of a file or a data transfer. This is calculated only on
attributes within body.
Channel ID - Channel ID is client specific which will be configured on API Connect. It will be provided by API Connect
to all the clients. It will also be used for decryption of the encrypted request body sent by the client.
2-way SSL - This means that we would be validating the consumer certificate. Hence it is required that the consumer
sends a CSR to us, we will sign the same and return the signed certificate which consumer needs to configure and
produce during each communication. Certificate shared should be valid and should have the usage for client ssl.
Consumer needs to invoke the application over HTTPS protocol. We will use TLSv1.2 protocol
1) Generate a key
openssl genrsa -aes128 -out <keyfile.key>> 2048
2)Generate a CSR
openssl req -new -key <<keyfile.key>> -out <<csrfile.csr>>
3) Axis will sign the CSR and share you the CRT
4) Validate the CRT
openssl x509 -in <<certfile>> -text -noout
5) Create the cert chain
cat <<certfile>> ../SakshamUATIntermediateCertificate.crt ../SakshamUATRootCertificate. crt > Corporate-cert
chain.pem
6) Create the pkcs12 keystore
openssl pkcs12 -export -out <<keystore.p12> -inkey <<keyfile.key>> -in <<certfile>> -name <<aliasname>> -
certfile ../SakshamUATRootCertificate.crt -certfile ../SakshamUATIntermediateCertificate.crt
https://sakshamuat.axisbank.co.in/gateway/ https://saksham.axisbank.co.in/gateway/api/txb/v
Get Status
api/txb/v1/acct-recon/get-status 1/acct-recon/get-status
https://sakshamuat.axisbank.co.in/gateway/ https://saksham.axisbank.co.in/gateway/api/txb/v
Get Balance
api/txb/v1/acct-recon/get-balance 1/acct-recon/get-balance
https://sakshamuat.axisbank.co.in/gateway/
Bene https://saksham.axisbank.co.in/gateway/api/txb/v
api/txb/v1/payee-mgmt/beneficiary-
Registration 1/payee-mgmt/beneficiary-registration
registration
https://sakshamuat.axisbank.co.in/gateway/ https://saksham.axisbank.co.in/gateway/api/txb/v
Bene Enquiry
api/txb/v1/payee-mgmt/beneficiary-enquiry 1/payee-mgmt/beneficiary-enquiry
https://sakshamuat.axisbank.co.in/gateway/ https://saksham.axisbank.co.in/gateway/api/txb/v
Fund Transfer
api/txb/v1/payments/transfer-payment 1/payments/transfer-payment
1) 115.112.85.180
443
2) 36.255.28.180
I. Annexure –