Home · GSTIN Validator

GSTIN Validator

Two layers, both checked locally: the format (state code + PAN pattern + entity code + Z + check character) and the checksum itself, recomputed from the first 14 characters.

Check a GSTIN

Validation runs entirely in your browser: format against the GSTN pattern, state code against the official table, and the checksum recomputed digit by digit. Nothing is sent anywhere, and no GSTIN is stored. A valid checksum proves the number is internally consistent — it does not prove the registration is active; that check exists only on the official GST portal.

The checksum, worked by hand

Take the base 29ABCDE1234F1Z. Code-point values: 2, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 15, 1, 35. Multiply positions 1–14 by factors 1, 2, 1, 2 … and fold each product as ⌊p/36⌋ + (p mod 36). The folded sum is 184. 184 mod 36 = 4, so the check value is 36 − 4 = 32 → character W. Therefore 29ABCDE1234F1ZW is checksum-correct and 29ABCDE1234F1ZX is not — try both above. The invoice generator runs this same check on every GSTIN you type: an invalid recipient GSTIN is flagged on the document and excluded from the B2B export, never silently exported as valid.

Rule source: GSTN specifications / GST portal — GSTIN structure and checksum algorithm · Last verified: 2026-11-08 · State codes: GSTN state code table

GSTIN questions

What does a valid checksum actually prove?

That the 15 characters are internally consistent — the check character matches the other 14 under the GSTN algorithm. It does not prove the registration exists or is active; only the official GST portal can tell you that. Anyone who claims a checksum check verifies a business is overselling arithmetic.

Can I validate a GSTIN by hand?

Yes — the worked example below does exactly that. Convert each of the first 14 characters to its code-point value (0–9 stay, A=10 … Z=35), multiply alternately by 1 and 2, fold each product in base 36, sum, and the check character is what brings the total to a multiple of 36.