by Profiden

Aadhaar eKYC (OTP)

Identity & KYC

Full Aadhaar eKYC with a one-time password on the registered mobile.

Run a complete, consent-based Aadhaar eKYC: the person enters the OTP sent to their Aadhaar-linked mobile, and you receive their verified name, date of birth, gender, address and photograph. The gold standard for regulated onboarding.

Endpoint

POST https://app.emver.io/api/sandbox/v1/aadhaar-ekyc-otp
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json

Request parameters

FieldTypeDescription
aadhaar_number required string Aadhaar number
o_t_p_entered_by_the_person required string OTP entered by the person

Example request

cURL
curl -X POST https://app.emver.io/api/sandbox/v1/aadhaar-ekyc-otp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "aadhaar_number": "string",
    "o_t_p_entered_by_the_person": "string"
}'

Replace YOUR_API_KEY and the placeholder values. Use the switch above to see production URLs.

Response

Structure · 200

{
  "status": INTEGER,
  "message": STRING,
  "data": {
    "verified_name": STRING,
    "date_of_birth": STRING,
    "gender": STRING,
    "full_address": STRING,
    "photograph": STRING,
    "masked_aadhaar": STRING,
    "consent_reference": STRING
  }
}

Example · 200

{
  "status": 200,
  "message": "string",
  "data": {
    "verified_name": "string",
    "date_of_birth": "string",
    "gender": "string",
    "full_address": "string",
    "photograph": "string",
    "masked_aadhaar": "string",
    "consent_reference": "string"
  }
}

Error · 4xx / 5xx

{
  "status": INTEGER,
  "message": STRING
}

See Errors & status codes for what each status means and which calls are billed.

About this API

Where demographic validation only confirms a number is genuine, OTP-based eKYC proves the person in front of you controls the Aadhaar and returns the full KYC record from the authority: name, date of birth, gender, full address and photo. It is the identity check regulators expect for accounts, lending and high-value onboarding.

The flow is two calls: generate the OTP against the Aadhaar number, then submit the OTP the person received. emver hosts the consent screen if you want it, captures the consent artefact and returns a masked Aadhaar with the KYC data.

Consent. OTP-based eKYC is consent by construction: the person must enter the code sent to their own mobile. emver stores the consent text, timestamp and transaction reference with the request.

Typical uses

  • Account opening. Fully digital KYC for savings, current and demat accounts.
  • Lending and insurance. Identity and address in one step before disbursal or policy issue.
  • Employee onboarding. Verified identity and address for the personnel file.
  • Age-gated platforms. Confirm date of birth for gaming, trading and other restricted services.

Questions

What if the person does not have a mobile linked to Aadhaar?
They cannot complete OTP eKYC. Fall back to DigiLocker, or to demographic Aadhaar validation combined with Face Match on an ID document.
Do I need my own consent screen?
No. emver can host the consent and OTP screens and hand the result back, or you can build your own and pass the consent record with the request.
Is the full Aadhaar number stored?
No. Responses carry a masked Aadhaar, and the raw number is not persisted.