This API will help Merchant to do 2FA on a daily basis for every onboarded merchant for doing any AePS transactions.
Header Parameters
Name | Type | Description | Mandatory (M) , Optional (O) | Provided by INSTANTPAY (Y/N) |
---|---|---|---|---|
X-Ipay-Auth-Code | String | Auth Code - 1 (Fixed) | M | Y |
X-Ipay-Client-Id | String | Unique Client ID | M | Y |
X-Ipay-Client-Secret | String | Unique secret key | M | Y |
X-Ipay-Outlet-Id | String | Merchant unique ID | M | Y |
X-Ipay-Endpoint-Ip | String | End Customer IP Address | M | N |
Request Parameters
Name | Type | Mandatory (M) , Optional (O) | Description |
---|---|---|---|
type | String | Mandatory | It will be DAILY_LOGIN |
latitude | String | Mandatory | Current location latitude |
longitude | String | Mandatory | Current location longitude |
externalRef | String | Mandatory | Your unique transaction id |
biometricData | Array | Mandatory | Biometric data details |
biometricData.encryptedAadhaar | String | Mandatory | Aadhar Number in encrypted form(aes-256-cbc) |
biometricData.dc | String | Mandatory | Returned by RD Service when using biometric authentication. Registered Device code. |
biometricData.ci | String | Mandatory | Returned by RD Service when using biometric authentication. Public key certificate identifier of UIDAI using which skey was encrypted. |
biometricData.hmac | String | Mandatory | Returned by RD Service when using biometric authentication. SHA -256 Hash of PID XML and then encrypted and base 64 encoded |
biometricData.dpId | String | Mandatory | Returned by RD Service when using biometric authentication. Device provider Id. |
biometricData.mc | String | Mandatory | Returned by RD Service when using biometric authentication. encrypted registered device public key certificate |
biometricData.pidDataType | String | Mandatory | Returned by RD Service when using biometric authentication. |
biometricData.sessionKey | String | Mandatory | Returned by RD Service when using biometric authentication. AES session key generated dynamically for every txn. |
biometricData.mi | String | Mandatory | Returned by RD Service when using biometric authentication. RD model Id. |
biometricData.rdsId | String | Mandatory | Returned by RD Service when using biometric authentication. RD Service Id. |
biometricData.errCode | String | Mandatory | 0(Default)- Request success |
biometricData.errInfo | String | Optional | Information about the error |
biometricData.fCount | String | Optional | Total number of FIR records which was part of input. |
biometricData.fType | String | Mandatory | When connecting the Device to RD service send ftype 2 in the request. |
biometricData.iCount | String | Mandatory | Total number of IIR records which was part of input. |
biometricData.iType | String | Optional | ISO format (0 for IIR), 0 (IIR) is default. |
biometricData.pCount | String | Optional | Number of face photo records to be captured (0 to 1). |
biometricData.pType | String | Mandatory | Face format |
biometricData.srno | String | Mandatory | Serial Number of biometric device. |
biometricData.sysid | String | Optional | System Id |
biometricData.ts | String | Optional | Current Timestamp. |
biometricData.pidData | String | Mandatory | Returned by RD Service when using biometric authentication. |
biometricData.qScore | String | Mandatory | If quality check is done, send a normalized score that is between 0 and 100. Device providers may allow configuration within RD service to use specific quality check algorithms to be enabled. |
biometricData.nmPoints | String | Mandatory | Number of minutiae points when FMR is captured. Applications may use this for accepting or retrying the capture. |
biometricData.rdsVer | String | Mandatory | Returned by RD Service when using biometric authentication. RD Service version. |
Info:
Click here for guidelines for entering data in latitude/ longitude parameter.
Info
For daily Two-Factor Authentication (2FA), use "DAILY_LOGIN" as the type.
Sample Request
curl --location 'https://api.instantpay.in/fi/aeps/outletLogin' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Ipay-Auth-Code: 1' \
--header 'X-Ipay-Client-Id: YWY3OTAzYzNlM2ExZTJlOfh549Gzt+5IEcETrD5Yx+Q=' \
--header 'X-Ipay-Client-Secret: 82e4755d7c1cf636816addfe1460936d7b64612208df87f3000aa5b56fc926d1' \
--header 'X-Ipay-Outlet-Id: 72762' \
--header 'X-Ipay-Endpoint-Ip: 49.242.233.2' \
--data ' {
"type" :"DAILY_LOGIN",
"latitude": "21.1231",
"longitude": "70.1231",
"externalRef" : "Abc1234",
"biometricData": {
"encryptedAadhaar": "GWFDLdnHmGF7Am6oG4F6X6GNyO02eQj24hlOiK/Y+js=",
"dc": "81cfa394-d641-44cf-835d-cb65532bbc20",
"ci": "20221021",
"hmac": "I5EODHg8w1bkDDzUn5tJGJ8K0ZKBMGa4iD+yQgI63Hr6OwKy7KEkCdemVK5yFEP3",
"dpId": "STARTEK.ACPL",
"mc": "MIIDgDCCAmigAwIBAgIFAAZeW+IwDQYJKoZIhvcNAQELBQAwdDEdMBsGA1UEAxMUQklKQVkgQU1BUk5BVEggU0lOSEExEDAOBgNVBAgTB0dVSkFSQVQxETAPBgNVBAsTCERJUkVDVE9SMSEwHwYDVQQKExhBQ0NFU1MgQ09NUFVURUNIIFBWVCBMVEQxCzAJBgNVBAYTAklOMB4XDTIyMDQyNjA2MDg0M1oXDTIyMDUyNjA2MDg0M1owUTELMAkGA1UEBhMCSU4xEDAOBgNVBAgMB0d1amFyYXQxDTALBgNVBAoMBFVTRVIxDTALBgNVBAsMBFVTRVIxEjAQBgNVBAMMCVBST0RfVVNFUjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMk3kObEzchV/cithqKtBslzmafe4ky0mpPYwp4zTwt/d5RJ2JbtKnWYYLHJ8IUCXbhGPMtAmiZAG3fA6tlCw71z0rimo11g8GUQasfkKZE93V0cO8zW+V4Mi/V27mNfduZBGeGRyf5YPq4JDA3GnKrW7kSiHpUJ+KMp8QWZA5vqam0kknqGO06Zpx0x8jOmV27z3XN8Xh/3nDOfTh+NelQ6dkrLCkHpN4oWYPmj+uIF/JrTfPtgYe9+54z6LO/K3zNfHSsZtuO7IWWvC3DYFRoDLzc9pVAQ5DP0xxrEUYwJJu258NNrd4ouZel+EIEFg73FM9fTV5VxmmGxaQQugLECAwEAAaM8MDowDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAYYwHQYDVR0OBBYEFIuDs650JC9y2NFbmYq8mLXQLmEDMA0GCSqGSIb3DQEBCwUAA4IBAQAT9FUmGdDb9f1BpIhk0Ak3Zko2sggSMD9ORg7veRKTUEvX5xUNowDT37jgXWPRIn3lZ9pHIbJOL4oDLPQACpL2GReagcwGWyhm9J9ICO7Z0mocXhc/M101fWlpX0qEUhpNgaz+AqXWmM5vj6eeGd50xTXKirVmlzlnqwzc+1RNu3fP0h5HQhxd2HIroffLHLBEzVZMIaLZ7NBuMdCdfSfYa9fFAyFJ/WhT4hskcRNecZLoH89Bk1fgJMd7MnFXpe1JQqgZqE1REp+wDQom0DRxtyLT8a8HndP/1Fn/PiXP+AaJOmGiJMNZ66QBirdAxfQUhozPlich2KVFeOagTmyB",
"pidDataType": "X",
"sessionKey": "j8ZosXKbnzqqiXScig0WE3Rg3EZyGZKvscEMcQcSCOfdif0g7ccHUVLf+LVKOdm5EEWNbtxDSItk3GK1v3/f9fcWEIMbtvDkv4kkZlPs35TFsGkfO/hk5YLmjrFSHjMNqUYazajMQ2Tnvv1hFBLIVe1pJbeLqLYLt9Pj98heZhxbgpOdu1P7h0MMAzpPjv7NBIIeF+GUPH2qL45ui/cjJLd0F2r4YFq091Pl38OkKYbGTPeYdIvs6Oe5ZYfvnD1OU/i8ZBz5wgqYSmtrebcM1EbA6YxURmM03qLV8fqa8O/e3hyOE3tQ3hf1Z27oZckwgZYgzgtyrlaltemewD5hrQ==",
"mi": "FM220U",
"rdsId": "ACPL.WIN.001",
"errCode": "0",
"errInfo": "",
"fCount": "1",
"fType": "2",
"iCount": 0,
"iType": "",
"pCount": 0,
"pType": "",
"srno": "N00115075",
"sysid": "MDAyNTM4ODU4MUI0OTgwNU4wQ1YxODM4TUIwMDU0NDk3SkFOMENWMDM2MjM3NDEw",
"ts": "2022-04-27T18:46:04+05:30",
"pidData": "MjAyMi0wNC0yN1QxODo0NjowNLL1HoqElpz2slVi9REBE0SWvCFZFIDkDLN7fyjOF/c2oCR+YYPakGCjwlUUQyinqcuK0VEpdP14UqJd5r4nkqds8atvH/h0RTrupNJXVgyVkRkuWzpWRllvv0PGSvqJf/G6x7hGpFYq2JhAkN48xQO8f7L3XOzfrckd84M10yrlIUFZDlWCfx9CwghRLNYOFzQkD/Hqf9RHG1b7vi9R16RP8LIjCwS5w/GsumylYT++ad1Qug0hZYcneZJHf7Z6zK/43LBO6AuXc9ZbaZdBBymvqrrHsT50J4/P34ENzcmA4mBK3TnIfVPPZ6SNI2msZqbu7YM2O5CLoT6EE8DcvC9TwJqAVqV4ddVH3R2CkwCvDMQ+Lt08tUS8R5sxCYmUnR7BQk8kVHHiRhSZUfcJcQYTmdJKKv4wRi84ZEAfOwHPJ/rZU5hzJf6VdRoz48aJM1iv9ehg+4idng+HfbvnP99h68xEr5FHYT0cpFz91LfosKYmm2X6ioHCtHd+AASpyyBA0FGHSVvDRSZ4M+PtLG/jLGV1C61iMZZ2VkNZPoOH3XlqOup2ACOYECFaVcjYF6YM/T2wLj/7hFSCXKcQ4nmICpHY+3adbYnFmsoLnhQDZZbHyVuGWMFDvfg+jNk0c3S9XzFUaIqBDtw74o51Zzgn1s6ysmjjWzwt1R96golmhwtvHUET9fvB8UCC9nkweriTW2NbX9P84nngvijMZzE1BUUy5r7TP3nDYHIDcOgGRxYZdNC/Hn+G7dL8wx3C1d2Sg6Cwepz/09+jxNuFeE7Nznmd/v/ngoXaLzhSsNp11hC9lLukRoyvvp+rX/GPMrSW2jvTdL13YlijonK0ekmoqH9Vd7QBRCvxXTMVMC9byal+AUiCx7h0CCX+gByFGTstHDTa0MHmepOIG8G5xCJQqiY8EOxrWAi+halfFGMY9ztW/fgXlVGkjhtFbQTUDyGecfQeDSL31vOgCwVX5ts9g6G2GXMdpEYt8m25y3Dd6unL6eowpHGfKlJ3Gtkqc/XQvvRdo7iIMz2xkYOd3qBhwhwdhMN6doxtEIUFw0Q33JPlfZ/Z998rU5CDHscnvgDFC1vISTl4W0RvbnLSa2mh3N0Y67o+KacwVWOA5Yj9Qvx5T84qPeK3J233hUVctFjVsd1cjBTVXxTOSqjPRYVJwAljLlvWjwOhvA8OapyvWIVJa3viCNvR2RCTFR5npYlYn4/LlDotyGKKw7SlT14gwouMAMwYbROxFXjp7g5spX/UGohh4jCjIlWZKQFyyURXKm+j8EjJ8gvH47JgC+UE/TAI4qqH",
"qScore": "100",
"nmPoints": "46",
"rdsVer": "1.0.3"
}
}'
POST /aeps/outletLogin HTTP/1.1
Host: api.instantpay.in
Accept: application/json
Content-Type: application/json
X-Ipay-Auth-Code: {{authCode}}
X-Ipay-Client-Id: {{clientId}}
X-Ipay-Client-Secret: {{clientSecret}}
X-Ipay-Endpoint-Ip: {{endPointIP}}
X-Ipay-Outlet-Id:{{outletId}}
"Body": {
"type" :"DAILY_LOGIN",
"latitude": "2*.***1",
"longitude": "7*.****1",
"externalRef" : "Abc1234",
"biometricData": {
"encryptedAadhaar": "GWFDLdnHmGF7Am6oG4F6X6GNyO02eQj24hlOiK/Y+js=",
"dc": "81cfa394-d641-44cf-835d-cb65532bbc20",
"ci": "20221021",
"hmac": "I5EODHg8w1bkDDzUn5tJGJ8K0ZKBMGa4iD+yQgI63Hr6OwKy7KEkCdemVK5yFEP3",
"dpId": "STARTEK.ACPL",
"mc": "MIIDgDCCAmigAwIBAgIFAAZeW+IwDQYJKoZIhvcNAQELBQAwdDEdMBsGA1UEAxMUQklKQVkgQU1BUk5BVEggU0lOSEExEDAOBgNVBAgTB0dVSkFSQVQxETAPBgNVBAsTCERJUkVDVE9SMSEwHwYDVQQKExhBQ0NFU1MgQ09NUFVURUNIIFBWVCBMVEQxCzAJBgNVBAYTAklOMB4XDTIyMDQyNjA2MDg0M1oXDTIyMDUyNjA2MDg0M1owUTELMAkGA1UEBhMCSU4xEDAOBgNVBAgMB0d1amFyYXQxDTALBgNVBAoMBFVTRVIxDTALBgNVBAsMBFVTRVIxEjAQBgNVBAMMCVBST0RfVVNFUjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMk3kObEzchV/cithqKtBslzmafe4ky0mpPYwp4zTwt/d5RJ2JbtKnWYYLHJ8IUCXbhGPMtAmiZAG3fA6tlCw71z0rimo11g8GUQasfkKZE93V0cO8zW+V4Mi/V27mNfduZBGeGRyf5YPq4JDA3GnKrW7kSiHpUJ+KMp8QWZA5vqam0kknqGO06Zpx0x8jOmV27z3XN8Xh/3nDOfTh+NelQ6dkrLCkHpN4oWYPmj+uIF/JrTfPtgYe9+54z6LO/K3zNfHSsZtuO7IWWvC3DYFRoDLzc9pVAQ5DP0xxrEUYwJJu258NNrd4ouZel+EIEFg73FM9fTV5VxmmGxaQQugLECAwEAAaM8MDowDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAYYwHQYDVR0OBBYEFIuDs650JC9y2NFbmYq8mLXQLmEDMA0GCSqGSIb3DQEBCwUAA4IBAQAT9FUmGdDb9f1BpIhk0Ak3Zko2sggSMD9ORg7veRKTUEvX5xUNowDT37jgXWPRIn3lZ9pHIbJOL4oDLPQACpL2GReagcwGWyhm9J9ICO7Z0mocXhc/M101fWlpX0qEUhpNgaz+AqXWmM5vj6eeGd50xTXKirVmlzlnqwzc+1RNu3fP0h5HQhxd2HIroffLHLBEzVZMIaLZ7NBuMdCdfSfYa9fFAyFJ/WhT4hskcRNecZLoH89Bk1fgJMd7MnFXpe1JQqgZqE1REp+wDQom0DRxtyLT8a8HndP/1Fn/PiXP+AaJOmGiJMNZ66QBirdAxfQUhozPlich2KVFeOagTmyB",
"pidDataType": "X",
"sessionKey": "j8ZosXKbnzqqiXScig0WE3Rg3EZyGZKvscEMcQcSCOfdif0g7ccHUVLf+LVKOdm5EEWNbtxDSItk3GK1v3/f9fcWEIMbtvDkv4kkZlPs35TFsGkfO/hk5YLmjrFSHjMNqUYazajMQ2Tnvv1hFBLIVe1pJbeLqLYLt9Pj98heZhxbgpOdu1P7h0MMAzpPjv7NBIIeF+GUPH2qL45ui/cjJLd0F2r4YFq091Pl38OkKYbGTPeYdIvs6Oe5ZYfvnD1OU/i8ZBz5wgqYSmtrebcM1EbA6YxURmM03qLV8fqa8O/e3hyOE3tQ3hf1Z27oZckwgZYgzgtyrlaltemewD5hrQ==",
"mi": "FM220U",
"rdsId": "ACPL.WIN.001",
"errCode": "0",
"errInfo": "",
"fCount": "1",
"fType": "2",
"iCount": 0,
"iType": "",
"pCount": 0,
"pType": "",
"srno": "N00115075",
"sysid": "MDAyNTM4ODU4MUI0OTgwNU4wQ1YxODM4TUIwMDU0NDk3SkFOMENWMDM2MjM3NDEw",
"ts": "2022-04-27T18:46:04+05:30",
"pidData": "MjAyMi0wNC0yN1QxODo0NjowNLL1HoqElpz2slVi9REBE0SWvCFZFIDkDLN7fyjOF/c2oCR+YYPakGCjwlUUQyinqcuK0VEpdP14UqJd5r4nkqds8atvH/h0RTrupNJXVgyVkRkuWzpWRllvv0PGSvqJf/G6x7hGpFYq2JhAkN48xQO8f7L3XOzfrckd84M10yrlIUFZDlWCfx9CwghRLNYOFzQkD/Hqf9RHG1b7vi9R16RP8LIjCwS5w/GsumylYT++ad1Qug0hZYcneZJHf7Z6zK/43LBO6AuXc9ZbaZdBBymvqrrHsT50J4/P34ENzcmA4mBK3TnIfVPPZ6SNI2msZqbu7YM2O5CLoT6EE8DcvC9TwJqAVqV4ddVH3R2CkwCvDMQ+Lt08tUS8R5sxCYmUnR7BQk8kVHHiRhSZUfcJcQYTmdJKKv4wRi84ZEAfOwHPJ/rZU5hzJf6VdRoz48aJM1iv9ehg+4idng+HfbvnP99h68xEr5FHYT0cpFz91LfosKYmm2X6ioHCtHd+AASpyyBA0FGHSVvDRSZ4M+PtLG/jLGV1C61iMZZ2VkNZPoOH3XlqOup2ACOYECFaVcjYF6YM/T2wLj/7hFSCXKcQ4nmICpHY+3adbYnFmsoLnhQDZZbHyVuGWMFDvfg+jNk0c3S9XzFUaIqBDtw74o51Zzgn1s6ysmjjWzwt1R96golmhwtvHUET9fvB8UCC9nkweriTW2NbX9P84nngvijMZzE1BUUy5r7TP3nDYHIDcOgGRxYZdNC/Hn+G7dL8wx3C1d2Sg6Cwepz/09+jxNuFeE7Nznmd/v/ngoXaLzhSsNp11hC9lLukRoyvvp+rX/GPMrSW2jvTdL13YlijonK0ekmoqH9Vd7QBRCvxXTMVMC9byal+AUiCx7h0CCX+gByFGTstHDTa0MHmepOIG8G5xCJQqiY8EOxrWAi+halfFGMY9ztW/fgXlVGkjhtFbQTUDyGecfQeDSL31vOgCwVX5ts9g6G2GXMdpEYt8m25y3Dd6unL6eowpHGfKlJ3Gtkqc/XQvvRdo7iIMz2xkYOd3qBhwhwdhMN6doxtEIUFw0Q33JPlfZ/Z998rU5CDHscnvgDFC1vISTl4W0RvbnLSa2mh3N0Y67o+KacwVWOA5Yj9Qvx5T84qPeK3J233hUVctFjVsd1cjBTVXxTOSqjPRYVJwAljLlvWjwOhvA8OapyvWIVJa3viCNvR2RCTFR5npYlYn4/LlDotyGKKw7SlT14gwouMAMwYbROxFXjp7g5spX/UGohh4jCjIlWZKQFyyURXKm+j8EjJ8gvH47JgC+UE/TAI4qqH",
"qScore": "100",
"nmPoints": "46",
"rdsVer": "1.0.3"
}
}'
Response Parameters
Name | Type | Description |
---|---|---|
statuscode | String | InstantPay Status Code |
actcode | String | Action Code |
status | String | Status Message |
data | Array | Response Data (If Present) |
timestamp | String | Current time (YYYY-MM-DD HH:II:SS) |
ipay_uuid | String | Request reference number |
orderid | String | Transaction Id ( If transaction otherwise it is null ) |
environment | String | Live |
Sample Response
{
"statuscode": "TXN",
"actcode": "LOGGEDIN",
"status": "Transaction Successful",
"data": null,
"timestamp": "2023-07-31 10:46:24",
"ipay_uuid": "h00699c68d9d-2342-43d8-8cd2-eeb8265f7663",
"orderid": null,
"environment": "LIVE",
"internalCode": null
}
Note :
Biometric login by a Outlet will be active for 1 calendar day and will expire at midnight.
In case a Outlet tries to initiate any AEPS transactions without biometric auth then the outlet will receive the error.
Daily Merchant 2FA will be chargeable for every attempt.
If the Merchant 2FA failed with validation i.e Biometric Data did not match error then you will TXN in statuscode and actcode as LOGINREQUIRED and it will be chargeable which means the Merchant needs to initiate 2FA again
If you are encountering error code OUI with the message "The X-Ipay-Outlet-Id header must have a valid outletId," even though the outlet is registered on your end, please re-onboard the outlet using the Merchant Onboarding API. This issue typically arises when the outlet has not processed any transactions in the last 6 months.