GSTIN Validator
Check a GSTIN's format and check digit, and decode its state code and embedded PAN
Runs entirely in your browser. Nothing you type or upload is sent to us or stored. How we handle privacy
| Code | State / UT |
|---|---|
| 01 | Jammu and Kashmir |
| 02 | Himachal Pradesh |
| 03 | Punjab |
| 04 | Chandigarh |
| 05 | Uttarakhand |
| 06 | Haryana |
| 07 | Delhi |
| 08 | Rajasthan |
| 09 | Uttar Pradesh |
| 10 | Bihar |
| 11 | Sikkim |
| 12 | Arunachal Pradesh |
| 13 | Nagaland |
| 14 | Manipur |
| 15 | Mizoram |
| 16 | Tripura |
| 17 | Meghalaya |
| 18 | Assam |
| 19 | West Bengal |
| 20 | Jharkhand |
| 21 | Odisha |
| 22 | Chhattisgarh |
| 23 | Madhya Pradesh |
| 24 | Gujarat |
| 25 | Daman and Diu Old code: moved to 26 from 1 August 2020 after the merger |
| 26 | Dadra and Nagar Haveli and Daman and Diu Merged UT (since 26 January 2020) |
| 27 | Maharashtra |
| 28 | Andhra Pradesh (old) Undivided Andhra Pradesh; not used for GSTINs, which use 37 |
| 29 | Karnataka |
| 30 | Goa |
| 31 | Lakshadweep |
| 32 | Kerala |
| 33 | Tamil Nadu |
| 34 | Puducherry |
| 35 | Andaman and Nicobar Islands |
| 36 | Telangana |
| 37 | Andhra Pradesh |
| 38 | Ladakh |
| 97 | Other Territory Offshore areas outside any state, e.g. oil and gas fields |
| 99 | Centre Jurisdiction Used for some centrally administered registrations, e.g. foreign online service providers |
Runs entirely in your browser. Nothing you type or upload is sent to us or stored.
Results are for general guidance. Please check anything important before relying on it. Terms of use
How to Use
- Type or paste the 15-character GSTIN from an invoice, quotation or supplier form. Spaces and lower-case letters are fine. Use Try an example to see a sample.
- The result updates as you type. A valid format means the length, state code, embedded PAN, entity number and the check character all add up.
- If something is wrong, the tool says which part. For a wrong last character it also shows what the check character should be, which usually points to a typo earlier in the number.
- See the state and the PAN inside the GSTIN, and use the state-code table below the tool to look up any code.
- To confirm the business is actually registered and active, search the GSTIN on the official GST portal (Search Taxpayer).
What a GSTIN validator checks
Every business registered under GST gets a 15-character Goods and Services Tax Identification Number (GSTIN). Before you put a supplier's GSTIN on a purchase entry, or a customer's GSTIN on a B2B invoice, it pays to catch typos. With a wrong GSTIN, the buyer may not see the invoice in GSTR-2B and can lose input tax credit. This GSTIN validator checks the structure and the built-in check character, all inside your browser.
It checks format and checksum only. It doesn't contact the GST Network, so it can't tell you whether the GSTIN is registered, active, cancelled or suspended, or what the business's legal name is. For that, use Search Taxpayer โ Search by GSTIN/UIN on the official GST portal.
Structure of a GSTIN
| Position | Example (27AAPFU0939F1ZV) | Meaning |
|---|---|---|
| 1โ2 | 27 | State code (27 = Maharashtra) |
| 3โ12 | AAPFU0939F | PAN of the business (4th letter F = firm) |
| 13 | 1 | Entity number: the 1st registration under this PAN in this state (1โ9, then AโZ) |
| 14 | Z | "Z" by default |
| 15 | V | Check character |
A business with several registrations in the same state (for separate business verticals, say) gets 1, 2, 3 and so on in position 13. Special registrations, such as the UIN given to embassies and UN bodies, registrations of foreign online service providers, and tax deductors registered with a TAN, use different characters in positions 3โ14. The tool accepts these if the state code and check character are right, and tells you that the middle part isn't a PAN.
How the check character is calculated
The last character is computed from the first 14 with a mod-36 method similar to the Luhn algorithm used on card numbers:
for i = 1 โฆ 14: p = value(cแตข) ร (1 if i is odd, 2 if i is even)
sum += floor(p รท 36) + (p mod 36)
check = (36 โ sum mod 36) mod 36 โ back to a character
Worked example: for 27AAPFU0939F1Z the products are 2, 14, 10, 20, 25, 30, 30, 0, 9, 6, 9, 30, 1 and 70 (Z = 35, doubled). Only 70 is 36 or more, and it counts as 1 + 34 = 35. The sum is 221; 221 mod 36 = 5; 36 โ 5 = 31, which is V. So 27AAPFU0939F1ZV is correct. Every character is weighted by its position, so a single wrong character anywhere changes the check character. If the last character doesn't match, there's almost always a typo somewhere earlier.
GST state codes worth knowing
| Code | State / UT | Note |
|---|---|---|
| 26 | Dadra and Nagar Haveli and Daman and Diu | Daman and Diu GSTINs (code 25) moved to 26 from 1 August 2020 |
| 36 / 37 | Telangana / Andhra Pradesh | 28 was undivided Andhra Pradesh and isn't used in GSTINs |
| 38 | Ladakh | Separate from Jammu and Kashmir (01) |
| 97 | Other Territory | Areas outside any state or UT, such as offshore installations |
| 99 | Centre Jurisdiction | Some centrally administered registrations |
The full list is in the table under the tool. Source: the state code master published on the GST e-invoice portal (einvoice1.gst.gov.in), checked October 2026.
Tips
- The state code must match the state the supplier is registered in. If you're billed from a Karnataka address with a 27 GSTIN, ask why.
- Characters 3โ12 should match the supplier's PAN. A mismatch with the PAN on their other documents is a red flag.
- A valid format doesn't prove the business is real or active. Confirm on the GST portal before you pay GST to a new supplier.