POSTValidate Aadhaar & Generate OTP
Validate a sender's Aadhaar number and trigger an OTP to the linked mobile for DMT Levin onboarding.
https://staging.eko.in/ekoapi/v3 return an error response. Test it in Production.Submits the sender's Aadhaar number via the DMT Levin channel to initiate OTP-based Aadhaar validation. The otp_ref_id from the sender's existing profile plus the Aadhaar number are required. Returns a new otp_ref_id for the validation session. Part of the Levin DMT sender onboarding flow.
Request
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
customer_id | integer | required | Sender's mobile number.e.g. 9876543210 |
customer_idintegerRequiredSender's mobile number.
example: 9876543210
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
initiator_id | string | required | Registered mobile number of the API user (see Platform Credentials).e.g. 9962981729 |
client_ref_id | string | optional | Unique reference ID per API call, generated by your system (10–20 characters; 10 recommended). The SDKs generate one for every non-GET call when you don't.e.g. 2026010100123456789 |
aadhar | string | required | 12-digit Aadhaar number of the sender.e.g. 123456789012 |
otp_ref_id | string | required | Reference ID returned from the Get Sender Info (or Create Sender) API for this customer.e.g. 73849201 |
additional_info | string | required | Additional info flag. Defaults to 1.e.g. 1 |
initiator_idstringRequiredRegistered mobile number of the API user (see Platform Credentials).
example: 9962981729
client_ref_idstringoptionalUnique reference ID per API call, generated by your system (10–20 characters; 10 recommended). The SDKs generate one for every non-GET call when you don't.
example: 2026010100123456789
aadharstringRequired12-digit Aadhaar number of the sender.
example: 123456789012
otp_ref_idstringRequiredReference ID returned from the Get Sender Info (or Create Sender) API for this customer.
example: 73849201
additional_infostringRequiredAdditional info flag. Defaults to 1.
example: 1
These headers authenticate and sign every request. See How Auth Works for details.
| Field | Type | Required | Description |
|---|---|---|---|
developer_key | string | required | Static API key issued to your account after KYC. |
secret-key | string | required | Dynamic per-request signature: base64(HMAC-SHA256(timestamp, base64(access_key))). |
secret-key-timestamp | string | required | Current time in milliseconds since UNIX epoch, used to compute secret-key. Must match server time. |
content-type | string | required | application/jsone.g. application/json |
developer_keystringRequiredStatic API key issued to your account after KYC.
secret-keystringRequiredDynamic per-request signature: base64(HMAC-SHA256(timestamp, base64(access_key))).
secret-key-timestampstringRequiredCurrent time in milliseconds since UNIX epoch, used to compute secret-key. Must match server time.
content-typestringRequiredapplication/json
example: application/json
Responses
statusnumberPrimary success indicator (0 = success).
messagestringHuman-readable response / error message.
response_status_idnumberUI display hint only (-1/0 success, 1 failure, 2 initiated, 3 refund initiated, 4 refunded). Never branch on it — use `status` (and `tx_status` for financial APIs), or `response_type_id` where documented.
response_type_idnumberA unique id for every possible response shape (success or error) — useful for client logic branching and analytics.
dataobjectAPI-specific response payload.
otp_ref_idstringNew OTP reference ID for the Aadhaar validation session. Pass to Validate Sender Aadhaar OTP.
mobile_hintstringMasked mobile number to which the OTP was dispatched.