POSTValidate Aadhaar OTP
Verify the Aadhaar OTP to complete identity validation in the PPI Levin wallet onboarding flow.
Validates the OTP dispatched during the PPI Levin Aadhaar validation step. On success, the sender's Aadhaar identity is confirmed and their PPI Levin wallet profile is updated with verified KYC data. Wallet-level parameters wallet_token and wallet_id may be required.
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
customer_id | string | required | Sender's mobile number.e.g. 9876543210 |
customer_idstringRequiredSender'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 |
user_code | string | required | User code of the retailer/agent the service is run for.e.g. 20810200 |
client_ref_id | string | optional | Unique reference id per API call, generated by your system.e.g. REQ-20260101-001 |
otp | integer | optional | OTP received on the Aadhaar-linked mobile number.e.g. 654321 |
otp_ref_id | integer | required | Reference ID from the PPI Levin Validate Aadhaar response.e.g. 66748392 |
intent_id | string | optional | Intent flag: "19" for sender onboarding, "20" for Aadhaar validation.e.g. 20 |
wallet_token | string | optional | Wallet token for authenticated context.e.g. wtkn_abc123xyz |
wallet_id | string | optional | Wallet identifier for the sender.e.g. wlt_0091234 |
initiator_idstringRequiredRegistered mobile number of the API user (see Platform Credentials).
example: 9962981729
user_codestringRequiredUser code of the retailer/agent the service is run for.
example: 20810200
client_ref_idstringoptionalUnique reference id per API call, generated by your system.
example: REQ-20260101-001
otpintegeroptionalOTP received on the Aadhaar-linked mobile number.
example: 654321
otp_ref_idintegerRequiredReference ID from the PPI Levin Validate Aadhaar response.
example: 66748392
intent_idstringoptionalIntent flag: "19" for sender onboarding, "20" for Aadhaar validation.
example: 20
wallet_tokenstringoptionalWallet token for authenticated context.
example: wtkn_abc123xyz
wallet_idstringoptionalWallet identifier for the sender.
example: wlt_0091234
Headers
| 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_idnumberGranular status id; see the shared error-codes table.
response_type_idnumberA unique id for every possible response shape (success or error) — useful for client logic branching and analytics.
dataobjectAPI-specific response payload.
verifiedbooleanTrue if Aadhaar OTP verification was successful.
namestringVerified sender name from Aadhaar.
genderstringGender from Aadhaar record: M, F, or T.
dobstringDate of birth as per Aadhaar.
masked_aadhaarstringAadhaar number with first 8 digits masked.