Aadhaar Number Validator

Type the 12 digits and know in a second whether an Aadhaar number is valid. Free, no sign-up, and the number never leaves your phone. Same Verhoeff checksum UIDAI uses.

Check an Aadhaar number

Type or paste the 12 digits. The result appears automatically.

Verified locally — nothing leaves your device.

0 of 12 digits

What this checks

Length (12 digits), the first-digit rule (never 0 or 1), and the Verhoeff check digit that UIDAI builds into every Aadhaar number. A pass means the number is well-formed; only UIDAI can confirm it has been issued or who it belongs to. Need to check many numbers? Use the bulk validator. Have a 16-digit number? That is a Virtual ID.

How the Aadhaar validator works

1. Format checks

An Aadhaar number is exactly 12 digits, usually written as three groups of four (XXXX XXXX XXXX). Spaces and dashes are ignored. UIDAI never issues numbers that start with 0 or 1, so those are rejected immediately.

2. Verhoeff checksum

The 12th digit is a check digit computed with the Verhoeff algorithm. It catches every single-digit typo and every swap of two neighbouring digits, which is why UIDAI chose it. Click Show the calculation after validating to see each step.

What a "valid" result does and doesn't mean

Valid means the number could have been issued: it has the right shape and its check digit is correct. It does not mean the number is active or belongs to a specific person — that requires UIDAI's own services. Read how to properly check an Aadhaar number for the official options.

More free validation tools

Every tool runs in your browser. Nothing you type is uploaded, logged or stored.

For developers: validate Aadhaar in your own code

A regex alone can't check the checksum. The snippet below is the shape of a correct implementation; the developer guide has complete, copy-paste versions for JavaScript, TypeScript, Python, Java, C#, PHP, Go, Kotlin, Swift and Dart, plus test numbers for your unit tests.

JavaScript
// Verhoeff check used by UIDAI — full tables at /developers
const isValidAadhaar = (s) =>
  /^[2-9]\d{11}$/.test(s = String(s).replace(/\s/g, '')) && verhoeffValid(s);

Get the full code in 10 languages

Guides

Plain-language explanations of how Aadhaar numbers are built and verified.

Frequently asked questions

Is it safe to enter my Aadhaar number here?

Yes. The check runs in JavaScript on your device. The number is never sent to our server or anyone else's, and it is not stored. You can even load this page, switch off your internet connection, and it still works.

Can an Aadhaar number start with 0 or 1?

No. UIDAI's numbering scheme reserves 0 and 1 as leading digits, so a genuine Aadhaar number always starts with a digit from 2 to 9. Numbers beginning with 0 or 1 are rejected before the checksum is even computed.

Why does my real Aadhaar number show as invalid?

Almost always a typo: one wrong digit or two digits swapped. The Verhoeff algorithm detects both, so re-check the number against your card. If you copied it from a PDF or SMS, make sure no digit was dropped or duplicated.

Does "valid" mean the Aadhaar is real and active?

No. It means the number is mathematically well-formed. Whether it has been issued, is active, or belongs to a particular person can only be confirmed by UIDAI through its official verification services.

What is the difference between an Aadhaar number and a VID?

A Virtual ID is a temporary 16-digit number you can generate from UIDAI and share instead of your Aadhaar number. It uses the same checksum. Use the VID validator for 16-digit numbers.

View all questions

Not affiliated with UIDAI. For information about how we handle data, read our Privacy Policy.