post https://staging.eko.in/ekoapi/v2/aeps/kyc
This API is used for merchant's e-KYC using biometric device
After Biometric, attempt daily e-KYC and kindly wait T+2 days to do daily e-KYC again and proceed for the transaction.
NOTE - TAT is from the bank and the above is only applicable for service_code = 43.
Response Error Codes
ERROR CODES | MEANING | SOLUTION |
---|---|---|
403 | Forbidden | Regenerate your secret key and timestamp or check if your service is activated or not |
500 | Internal Server Error | Check if your request url is correct or the parameters you're passing is correct according to the parameters mentioned above |
415 | Unsupported Media Type | Re-check the content/type of the request body. |
/**
* Sample Function to capture fingerprint from RDService based biometric device in the browser (using JQuery).
*
* @param {string} capture_url RDService URL to call for capture. Eg: http://127.0.0.1:11100/capture or http://127.0.0.1:11100/rd/capture
* @param {function} callbackFunction The function to call back on capture success or failure
*
* @return {Object} response Object containing the response details.
* @return {boolean} response.httpSuccess Whether AJAX request successful.
* @return {boolean} response.captureSuccess Whether fingerprint capturing successful.
* @return {number} response.captureQuality Quality of fingerprint scan if captureSuccess is true.
* @return {number} response.errCode Error code returned by RDService if captureSuccess is false.
* @return {string} response.errInfo Error details returned by RDService if captureSuccess is false.
* @return {string} response.textStatus HTTP status if httpSuccess is false.
* @return {string} response.errorThrown Error details if httpSuccess is false.
*/
function capturefingerprint(capture_url, callbackFunction) {
var doc = document.implementation.createDocument("", "", null);
var pidOptionsElem = doc.createElement("PidOptions");
var optsElem = doc.createElement("Opts");
optsElem.setAttribute("fCount", 1);
optsElem.setAttribute("fType", 2);
optsElem.setAttribute("iCount", 0);
optsElem.setAttribute("pCount", 0);
optsElem.setAttribute("format", 0);
optsElem.setAttribute("pidVer", "2.0");
optsElem.setAttribute("timeout", 10000);
optsElem.setAttribute("posh", "UNKNOWN");
optsElem.setAttribute("env", "P");
optsElem.setAttribute("wadh", "E0jzJ/P8UopUHAieZn8CKqS4WPMi5ZSYXgfnlfkWjrc=");
pidOptionsElem.appendChild(optsElem);
doc.appendChild(pidOptionsElem);
$.ajax({
url: capture_url,
type: 'CAPTURE',
data: doc,
processData: false,
success: function (response) {
var doc2;
var result = {
httpSuccess: true
};
if (typeof response === 'string') {
doc2 = (new DOMParser()).parseFromString(response, 'text/xml');
result.pid_data = response;
} else {
doc2 = response;
result.pid_data = (new XMLSerializer()).serializeToString(response);
}
var resp = doc2.getElementsByTagName("Resp");
result.errCode = resp[0].getAttribute('errCode');
if (errCode != 0) {
result.captureSuccess = false;
result.errInfo = resp[0].getAttribute('errInfo');
} else {
result.captureSuccess = true;
result.captureQuality = parseInt(resp[0].getAttribute('qScore'));
}
callbackFunction(result);
},
error: function (jqXHR, textStatus, errorThrown) {
callbackFunction({
httpSuccess: false,
captureSuccess: false,
textStatus: textStatus,
errorThrown: errorThrown
});
}
});
}
If you are using your own code to generate PID data(Biometric), then make sure that you add the following wadh value in it(just like you set the value of fcount,ftype,etc).
wadh=E0jzJ/P8UopUHAieZn8CKqS4WPMi5ZSYXgfnlfkWjrc=