Transaction OTP

This API will be used to generate the OTP for AePS cash withdrawal transactions where transaction amount exceeds 5000

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Header Parameters

NameTypeDescriptionMandatory (M) , Optional (O)Provided by INSTANTPAY (Y/N)
X-Ipay-Auth-CodeStringAuth Code - 1 (Fixed)MY
X-Ipay-Client-IdStringUnique Client IDMY
X-Ipay-Client-SecretStringUnique secret keyMY
X-Ipay-Outlet-IdStringMerchant unique IDMY
X-Ipay-Endpoint-IpStringEnd Customer IP AddressMN

Request Parameters

NameTypeMandatory (M) , Optional (O)Description
bankiinStringMandatoryIIN Number of the CW Bank
encryptedAadhaarStringMandatoryEncrypted aadhaar of the User
latitudeStringMandatoryMerchant Location in Latitude
longitudeStringMandatoryMerchant Location in Latitude
amountStringMandatoryWithdrawal Amount
mobileStringMandatoryMobile Number of the User

Sample Request

curl --location --request POST 'https://api.instantpay.in/fi/aeps/transactionOtp' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Ipay-Auth-Code: 1' \
--header 'X-Ipay-Client-Id: {{clientId}}' \
--header 'X-Ipay-Client-Secret: {{clientSecret}}' \
--header 'X-Ipay-Endpoint-Ip: {{endpointIP}}' \
--header 'X-Ipay-Outlet-Id: {{outletID}}'
--data ' {
    "bankiin":"607234",	          "encryptedAadhaar":"YzRjYTQyMzhhMGI5MjM4Ml2jc8haPkMBnNu0cSnvL+Y=",
    "latitude":"30.7207888",
    "longitude":"76.8333603",
    "amount":6000,
    "mobile":"8878735240"
}'
POST /fi/aeps/transactionOtp HTTP/1.1
Host: api.instantpay.in
Accept: application/json
Content-Type: application/json
X-Ipay-Auth-Code: 1
X-Ipay-Client-Id: {{clientId}}
X-Ipay-Client-Secret: {{clientSecret}}
X-Ipay-Endpoint-Ip: {{endpointIP}}
X-Ipay-Outlet-Id: {{outletId}}
"Body": {
    "bankiin":"607234",    "encryptedAadhaar":"YzRjYTQyMzhhMGI5MjM4Ml2jc8haPkMBnNu0cSnvL+Y=",
    "latitude":"30.7207888",
    "longitude":"76.8333603",
    "amount":6000,
    "mobile":"8878735240"
}

Response Parameters

NameTypeDescription
statuscodeStringInstantPay Status Code
actcodeStringAction Code
statusStringStatus Message
dataArrayResponse Data (If Present)
timestampStringCurrent time (YYYY-MM-DD HH:II:SS)
ipay_uuidStringRequest reference number
orderidStringTransaction Id ( If transaction otherwise it is null )
environmentStringLive

Sample Response of Offus Transaction

{
    "statuscode": "OTP",
    "actcode": null,
    "status": "OTP Successfully sent",
    "data": {
        "validity": "2026-06-19 15:59:11",
        "referenceKey": "F7Z7WzbRJZeF5nM1mIHHNaqQeT3Z4v3GCenzUR6OGEyZuJKMjTJdTJB5SSVI10q0"

    "orderid": null,
    "environment": "SANDBOX",
    "internalCode": null
}

Sample Response of Onus Transaction

{
    "statuscode": "TXN",
    "actcode": null,
    "status": "OTP not required for this transation",
    
    "timestamp": "2026-06-19 15:44:11",
    "ipay_uuid": "h000a20f4161-9c74-4ebd-a153-b88b69252646-VzqygebR2S0j",
    "orderid": null,
    "environment": "SANDBOX",
    "internalCode": null
}
📘

Note :

For On-Us transactions, no OTP is sent to the customer. The Transaction OTP API returns statusCode = TXN along with the referenceKey. Pass the referenceKey in the CW Transaction API request when the statuscode is TXN. No OTP is required.

For Off-Us transactions, an OTP is sent to the customer. The Transaction OTP API returns statusCode = OTP and the referenceKey. Use both the OTP and referenceKey in the CW Transaction API request.


Biometric Request Structure for RD Service:

Under PidOptionsrequest, the user-provided OTP must be passed in the attribute "otp" of Opts tag and passed to RD service.

<PidOptions ver="" env="">
  <Opts fCount="" fType="" iCount="" iType="" pCount="" pType=""
        format="" pidVer="" timeout="" otp="" wadh="" posh=""/>
  <CustOpts>
  </CustOpts>
</PidOptions>
Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json