Skip to main content
POST
Verifies the input Aadhaar number against UIDAI identity records. Didit exposes this service through POST /v3/database-validation/ so you can verify the submitted data against the authoritative source and receive normalized match results.

Coverage

  • Coverage: ~ 100%
  • Country: India
  • Service ID: ind_aadhaar
  • Data domain: Identity
  • Category: NationalIDRegistry

Inputs

  • Required inputs: full_name, date_of_birth, personal_number, pan
  • Optional inputs: vendor_data
  • Consent: Required
  • Workflow availability: Available in workflow
  • Coverage: ~ 100%
  • Price: $0.25 per successful query
Not every document this service accepts carries the identifier it queries by. When the identifier is not extracted from the document the check is recorded as not applicable - no database is queried and you are not charged - which for some countries is a large share of real users. To cover them, also collect the identifier from a Questionnaire answer, a Document AI extraction field, or a value you send when you create the session, and map it on the Database Validation step.

Body parameters

string
default:"IND"
required
ISO 3166-1 alpha-3 country code for this database service.Example: IND
string
default:"ind_aadhaar"
required
Array containing this service ID. Pinning the service keeps the request scoped to this exact database.Example: ind_aadhaar
Explicit end-user consent for this service.Example: true
string
default:"John Doe"
required
Full legal name to validate.Example: John Doe
string
default:"1990-01-01"
required
Date of birth in YYYY-MM-DD format.Example: 1990-01-01
string
default:"111111111111"
required
Country-specific personal identity number.Example: 111111111111
string
default:"ABCDE1234F"
required
Permanent Account Number.Example: ABCDE1234F
string
default:"user-1234"
Your stable user reference for this person, such as your internal user ID. Didit uses it to link standalone checks to the same end user and reduce duplicate-detection noise.Example: user-1234

Input rules & validation notes

  • pan must use uppercase letters.
  • pan must match [A-Z]{5}\d{4}[A-Z].
  • personal_number must contain digits only; remove spaces, hyphens, and punctuation before sending the request.
  • personal_number must be exactly 12 characters long.

How to call it

Returned data

The exact fields surfaced in source_data depend on what the registry returns. The generated example for ind_aadhaar currently documents this normalized shape:
  • date_of_birth
  • full_name
  • identification_number

Pricing & SLAs

India Aadhaar (UIDAI) queries are billed only when Didit receives a conclusive result from the validation source.
  • Per-call price: $0.25 USD.
  • Billing: per successful query. You are not charged when the registry is unreachable, when required fields are missing, or when the request is rejected before reaching the source.
  • Latency: typical p95 < 2 s.
  • Availability: 99.9% per quarter on Didit’s side; downstream source availability varies by country and dataset.

Continue reading