Checks the built-in check digit on every GSTIN, PAN and Aadhaar · verified 6 Sep 2026

Paste a column of GSTINs, PANs or Aadhaar numbers. Get every line checked and a clean CSV back.

Mixed lists are fine. Nothing is uploaded — Aadhaar numbers are masked before you see them.

This is a sample of 12 lines — replace it with your list.
Options

3 checks · paste and done · no signup

0
Lines
0
Valid
0
Problems
0
Duplicates
#InputTypeResultWhyDecodedClean value
What this checked, and what it didn't Every line was checked for its shape and, where the ID carries one, its built-in check digit. It cannot tell you whether an ID exists, is active, or belongs to the business you think it does.

What this checked, and what it didn't

What this avoids: a GSTIN with a wrong check character is rejected by the portal at filing, and a wrong PAN in a TDS return means the deductee's credit does not reach them — both come back to you as a correction after the due date. And a client's Aadhaar numbers sitting in your browser is the firm's exposure, not the client's: UIDAI does not allow an entity to keep them in its records at all, so nothing here is saved unmasked.
Full result above, nothing held back. If the list is a vendor master headed for a GSTR-2B reconciliation, the recon tool takes the same paste; for a donor list, the Form 113 builder does. Need the KYC done properly? Karan's firm does these.
Paste your list.

Your data never leaves this browser. Every check on this page runs in JavaScript on your own device. Nothing you paste is uploaded, stored on a server, or sent anywhere — you can disconnect from the internet and it still works. Aadhaar numbers are masked by default. Your list is written to this device only if you tick “Remember this list”, and then only in masked form — UIDAI does not allow an entity to keep Aadhaar numbers in its records in any form, physical or virtual, and requires the first eight digits to be masked before any copy is stored (sections 29(2), 29(3), 29(4) and 37 of the Aadhaar Act, 2016). A full twelve-digit number is never written to this device. Your three option ticks (mask, remember, show-only-problems) are remembered so the page opens the way you left it.

Where this sits. A bulk GSTIN check is free in several places — SmartGST's bulk validator and GSTExtract both recompute the mod-36 check character and decode the state code in your browser, and both do it well. What none of them takes is the column you actually have: one paste with GSTINs, PANs and Aadhaar numbers mixed together, each classified by its own shape. This page adds the Aadhaar side (the Verhoeff check digit, the leading-digit rule, and masking in every output), scans every cell of a pasted Excel row rather than the first, marks each duplicate with the line it first appeared on and keeps it so the row count still ties, puts the reason to fix in the CSV, and sets no limit on how many lines you paste.

This tool checks structure and checksums only. It cannot tell you whether an ID exists, is active, or belongs to the person or business you think it does — only the GSTN, the income-tax portal and UIDAI can do that. Statutory rules and code lists change; verify against the latest notifications before you rely on a decoded value. Built and maintained by a practising Chartered Accountant.