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.
Request
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 |
client_ref_id | string | optional | Unique reference ID per API call, generated by your system (max 20 characters).e.g. 2026010100123456789 |
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
client_ref_idstringoptionalUnique reference ID per API call, generated by your system (max 20 characters).
example: 2026010100123456789
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
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_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.