Start with the uncomfortable FAQ
If you only need “did I mistype twelve digits?”, a local check-digit test is enough. If you need “is this person real, enrolled, and matching this face?”, that is KYC — a lawful UIDAI path, not a random website with a green tick. This page only does the first job. I built it so you can catch a fat-finger before a bank form, a payroll sheet, or a courier label, without shipping the number to a server that has no business seeing it.
Aadhaar is an identity number issued by the Unique Identification Authority of India. Official resident services live on uidai.gov.in. This tab is not a UIDAI API, not eKYC, not XML, not a demographic lock, and not a way to “verify someone” for a rental or a hiring round. A pass here never means UIDAI issued the digits.
Verhoeff in plain language
Twelve digits. The last one is not a serial. It is a check digit, computed from the first eleven with the Verhoeff algorithm — a small table-driven checksum that is unusually good at catching the mistakes humans actually make: one wrong key, and two neighbouring digits swapped (67 typed as 76). Credit cards use a different checksum (Luhn). Aadhaar uses Verhoeff. You do not need the dihedral-group lecture. You need this: if the twelve digits disagree with each other, something in the typing is wrong. If they agree, they are self-consistent. Self-consistent is not the same as issued, active, or yours.
Spaces are cosmetic. The box accepts XXXX XXXX XXXX and strips whitespace before the check. Letters, hyphens, and eleven-digit pastes fail because they are not twelve digits. Hide-digits is for a shared laptop, not for making the number safe to screenshot into Slack.
Worked example: eleven digits and the missing check
Someone WhatsApps 1234 5678 901 — eleven digits — and asks you to “just check.” The tool should refuse. Aadhaar is twelve. Eleven digits is a truncated paste, not a near-miss. Same if OCR on a photocopied card drops a digit in the middle: the remaining eleven cannot be “validated” by inventing a twelfth. Fix the source. Nobody at UIDAI was contacted, and nobody should have been.
Worked example: the swap Verhoeff is famous for
You meant to type a number ending …9012 and your fingers produced …9102. Adjacent transposition. Verhoeff was designed so that class of error usually fails the check. That is the whole product: catch the typo before the number lands in a spreadsheet named kyc_final_v3.csv. If the check fails, retype from the card or the mAadhaar screen you already trust. Do not “correct” digits until the tick goes green. A green tick you manufactured is worse than a red X.
Worked example: checksum passes and you should still stop
Twelve nines — 9999 9999 9999 — is an obviously fake string. It can still satisfy Verhoeff, because the algorithm only asks whether the digits agree with each other. A leaked real Aadhaar copied from a data dump will usually pass too. Treat success as “these twelve digits are internally consistent,” never as “UIDAI knows this person” or “safe to onboard.” If a vendor’s form turns green on a checksum and calls it KYC, they are lying about the second word.
What this box will not eat, on purpose
Masked last-four displays (XXXX XXXX 1234) are how statements and tickets are supposed to look. They are not a full number. Virtual IDs (VID) are a different UIDAI scheme; they are not twelve-digit Aadhaar and do not belong in this field. mAadhaar QR payloads are not a number you paste into a stranger’s textarea. Enrolment IDs (EID) from the acknowledgement slip are yet another length. If you have to ask which of those you are holding, you should not be pasting any of them into a website — including this one, unless you are checking a typo on a number you already had a lawful reason to type.
I will say the quiet part again because AdSense-quality pages that “validate Aadhaar” often bury it: do not paste Aadhaar into random sites to see if they are “working.” A checksum toy that phones home is a harvester with extra steps. This page’s compute log should show in-tab work, not a UIDAI round trip, because there is no UIDAI round trip. For anything that must be official, use UIDAI’s own portal and the KYC path your regulator actually named.
Questions
What is actually checked?
Only the Verhoeff check digit on twelve digits. Not whether UIDAI issued the number, not biometrics, not address, not “active” status, not name match.
Is the number uploaded?
No. The check runs in this tab after the page loads. Shared computers, screenshots, and browser extensions can still expose what is on screen.
Can a checksum pass on a fake or leaked number?
Yes. Verhoeff catches many typos. It does not catch a number copied from a dump, a photocopy, or twelve digits generated only to satisfy the same formula.
What about VID or a masked last-four?
A Virtual ID is a different UIDAI scheme (typically sixteen digits). Do not force it into this field. XXXX-XXXX-1234 is not a full number and cannot be checked here.
Should I paste Aadhaar here to “see if it is real”?
No. A pass is not issuance. For your own enrolment, use UIDAI’s channels at uidai.gov.in or mAadhaar. Do not paste Aadhaar into other random websites either.
Does a failed check mean a fake card?
It usually means a typo, a missing digit, or an OCR mix-up (8 vs 3). It is not a legal finding and not something to accuse a person with.