India GSTIN Validator
ValidatorValidate a 15-character Indian GSTIN instantly. Verifies the Luhn mod-36 check character, confirms the state code, and decodes the embedded PAN and its holder type. Free, runs in your browser.
Just need to check the underlying PAN?
This tool validates a full Indian GSTIN, which embeds a PAN in characters 3-12. To validate a standalone PAN, use our PAN Validator →
About this tool
About India GSTIN Validator
GSTIN (Goods and Services Tax Identification Number) is India's 15-character GST registration number: a 2-digit state code, a 10-character PAN, a 1-character entity code, the literal letter Z, and a check character computed with the Luhn mod-36 algorithm (values 0-9=0-9, A-Z=10-35, alternating weights of 1 and 2 read from the right).
The validator confirms the state code against a curated 38-row table (all Indian states and union territories, including Ladakh's code 38), reuses this site's PAN structural validator on the embedded 10 characters rather than duplicating that logic, and recomputes the Luhn mod-36 check character over all 15 characters.
Use this to verify a supplier's or customer's GSTIN before invoicing, to debug a GST-number field in your own system, or to decode which state a GSTIN was registered in and what type of PAN holder it belongs to.
Instant, fully client-side validation with a genuine, publicly documented checksum — unlike PAN's undocumented check letter, GSTIN's Luhn mod-36 check is independently verifiable, and this tool does exactly that against 6 real, publicly listed GSTINs during development.
Key Features
- Verifies the Luhn mod-36 check character over all 15 characters
- Curated 38-row GST state-code table (01-38, including Ladakh)
- Reuses this site's PAN validator on the embedded 10 characters
- Decodes the PAN holder type from the embedded PAN
- 100% browser-based, no data sent
FAQ
India GSTIN Validator — Frequently Asked Questions
How is the GSTIN check character calculated?
GSTIN uses the Luhn mod-36 algorithm: each of the 15 characters is given a base-36 value (0-9 for digits, 10-35 for A-Z), weights alternate 1 and 2 read from the right, doubled values over 35 have their base-36 digits added together, and the whole sum (including the check character itself) must be a multiple of 36.
What's a commonly cited GSTIN example that doesn't actually work?
The GSTIN 22AAAAA0000A1Z5, widely used in explainer articles to illustrate the format, does not pass this checksum — recomputing it gives a check character of 'C', not '5'. Its embedded PAN also uses a placeholder serial of '0000', which no real PAN would have. It's a purely illustrative example, not a real, checksum-valid number, and this validator correctly reports it as invalid.
Why does the validator also check the embedded PAN?
Characters 3-12 of a GSTIN are the taxpayer's PAN. This tool reuses the same structural PAN check used on the standalone PAN Validator page rather than duplicating that logic, so a GSTIN built on a structurally invalid PAN is correctly rejected.
Can this tool confirm a GSTIN is currently registered and active?
No. This is a mathematical and structural check only. For live registration status, use the Indian government's official GST portal search, which this 100% client-side tool cannot query.
Tips
- Spaces and hyphens are stripped automatically before validation
- The first 2 digits are the state code (01-38) — this tool decodes it to a state/UT name
- The 14th character is always the literal letter Z
- Need to check just the PAN portion? Use the PAN Validator on characters 3-12
Explore more
Related Tools
Other tools that might be useful for your workflow