POSTDMT Customer KYC
Complete the one-time biometric eKYC of a DMT-Levin sender to finish registration.
https://staging.eko.in/ekoapi/v3 return an error response. Test it in Production.One-time biometric eKYC using a fingerprint captured on an RD-service device, called after the sender's OTP is validated. Submit the otp_ref_id from Validate Sender Aadhaar OTP with the PID XML. On success (response_type_id 2132) the sender's registration is complete.
If you generate the PID block with your own code rather than the RD service default, set wadh=E0jzJ/P8UopUHAieZn8CKqS4WPMi5ZSYXgfnlfkWjrc= alongside fCount, fType and the other attributes.
To capture the piddata PID block with an RDService-compliant fingerprint scanner, see the Aadhaar Biometric Authentication guide.
Request
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
customer_id | string | required | Sender's 10-digit mobile number.e.g. 9911542536 |
customer_idstringRequiredSender's 10-digit mobile number.
example: 9911542536
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 |
user_code | string | required | 8-digit code of the registered user (partner's merchant), received in the user onboarding response.e.g. 99080253 |
otp_ref_id | string | required | OTP reference received in the Validate OTP response.e.g. Yd6uRIneZVJpTQRhqL6CZ1e46nmMhYYjxg40levn4pG4m+AWOZn5R29EUkNGljBEkwjW4GWlKNiPdQXFVtwHccxey5PZnPgz |
piddata | string | required | PID XML returned by the biometric device, passed as a string.e.g. <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData> |
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
user_codestringRequired8-digit code of the registered user (partner's merchant), received in the user onboarding response.
example: 99080253
otp_ref_idstringRequiredOTP reference received in the Validate OTP response.
example: Yd6uRIneZVJpTQRhqL6CZ1e46nmMhYYjxg40levn4pG4m+AWOZn5R29EUkNGljBEkwjW4GWlKNiPdQXFVtwHccxey5PZnPgz
piddatastringRequiredPID XML returned by the biometric device, passed as a string.
example: <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData>
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
Response types
| response_type_id | Meaning | Next step |
|---|---|---|
2132 | Sender registration completed | Get Recipients |
Responses
2132Sender registration completedNext:Get Recipients
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.