Bulk GSTIN validator with check digit, plus PAN, TAN, CIN, DIN and LLPIN
Paste one ID or a mixed column. Catches a mistyped GSTIN with its check digit and decodes a CIN's state, year and class.
- YOU BRING
- One ID, or a column of GSTIN, PAN, TAN, CIN, DIN and LLPIN pasted from Excel
- YOU GET
- Each number checked and decoded, and an Excel of the results
- YOUR DATA
- Worked out in your browser from what you enter. Nothing is uploaded.
Use the tool
- Fill in the details(you are here)
- Read the result(next)
- Download or print(next)
A GSTIN's last character is a check digit calculated from the first 14, so one mistyped character is caught here without contacting the GST portal. A CIN is decoded rather than checked: listing status, NIC industry code, state, year of incorporation and ownership class, with a plausibility check on the state, year and class. A DIN/DPIN and an LLPIN have no published check digit, so only their format is checked; an 8-digit number is always shown as a DIN since nothing else distinguishes it. None of this confirms a registration is still active — only the GST, MCA or LLP portal can.
IN SHORT
What the GSTIN, PAN, TAN, CIN, DIN & LLPIN validator does
This free validator checks GSTIN, PAN, TAN, CIN, DIN/DPIN and LLPIN numbers one at a time or a whole column at once. For a GSTIN it verifies the check digit, so one mistyped character is caught, and shows the state and PAN inside it; for a CIN it decodes the listing status, industry code, state, year of incorporation and company class. Nothing is sent anywhere, and it confirms a number is well-formed, not that the registration is active.
Updated
GSTIN check digit: a worked example
The 15th character of a GSTIN is worked out from the first 14 with a base-36 checksum. If any character is mistyped, the character the tool works out no longer matches the one typed. This is caught without the GST portal.
- GSTIN as typed
- 27AAACE7234F1Z6
- First 14 characters
- 27AAACE7234F1Z
- 15th character typed
- 6
- The tool works out the check character for 27AAACE7234F1Z. It comes to U.
- The number carries 6, so the check fails: Check character should be U: a digit or letter is mistyped.
- Correct the 8th character from 7 to 1 and the first 14 characters give 6, which matches the 15th, so 27AAACE1234F1Z6 is valid: Maharashtra, PAN AAACE1234F, Company.
27AAACE7234F1Z6: not valid. 27AAACE1234F1Z6: valid. A well-formed number says nothing about whether the registration is active. Only the GST portal shows that.
GSTIN structure: what each position means
| PART | POSITIONS | IN 27AAACE1234F1Z6 |
|---|---|---|
| State code | 1 to 2 | 27 |
| PAN of the holder | 3 to 12 | AAACE1234F |
| Entity number for that PAN | 13 | 1 |
| Fixed letter Z | 14 | Z |
| Check character | 15 | 6 |
| CASE | NUMBER | RESULT |
|---|---|---|
| 14 characters, one short | 27AAACE1234F1Z | GSTIN has 15 characters, this has 14 |
| Letters where digits belong | ABAAACE1234F1Z6 | Format is wrong: expected 2 digits, a 10-character PAN, entity number, Z, check character |
| State code that does not exist | 00AAACE1234F1Z6 | Unknown state code 00 |
| One character mistyped | 27AAACE7234F1Z6 | Check character should be U: a digit or letter is mistyped |
| Correct | 27AAACE1234F1Z6 | Valid. Maharashtra |
GSTIN state code list and PAN holder types
The first two digits are the state code. The fourth character of the PAN inside the GSTIN is the holder type.
| CODE | STATE | CODE | STATE |
|---|---|---|---|
| 01 | Jammu and Kashmir | 21 | Odisha |
| 02 | Himachal Pradesh | 22 | Chhattisgarh |
| 03 | Punjab | 23 | Madhya Pradesh |
| 04 | Chandigarh | 24 | Gujarat |
| 05 | Uttarakhand | 25 | Daman and Diu (old) |
| 06 | Haryana | 26 | Dadra and Nagar Haveli and Daman and Diu |
| 07 | Delhi | 27 | Maharashtra |
| 08 | Rajasthan | 28 | Andhra Pradesh (old) |
| 09 | Uttar Pradesh | 29 | Karnataka |
| 10 | Bihar | 30 | Goa |
| 11 | Sikkim | 31 | Lakshadweep |
| 12 | Arunachal Pradesh | 32 | Kerala |
| 13 | Nagaland | 33 | Tamil Nadu |
| 14 | Manipur | 34 | Puducherry |
| 15 | Mizoram | 35 | Andaman and Nicobar Islands |
| 16 | Tripura | 36 | Telangana |
| 17 | Meghalaya | 37 | Andhra Pradesh |
| 18 | Assam | 38 | Ladakh |
| 19 | West Bengal | 97 | Other Territory |
| 20 | Jharkhand | 99 | Centre Jurisdiction |
| 4TH CHARACTER | HOLDER |
|---|---|
| P | Individual |
| C | Company |
| H | HUF |
| F | Firm / LLP |
| A | Association of Persons |
| T | Trust |
| B | Body of Individuals |
| L | Local Authority |
| J | Artificial Juridical Person |
| G | Government |
STEP BY STEP
How it works
- Paste one number, or a whole column from Excel mixing GSTINs, PANs, TANs, CINs, DINs and LLPINs.
- Each is recognised by its length and shape: GSTINs are checked against the check digit and state code, CINs decoded into their parts, and PANs, TANs, DINs and LLPINs checked for format.
- Download the result as Excel, with the state, embedded PAN, holder type and decoded CIN parts filled in.
GOOD TO KNOW
Common questions
- How does the GSTIN check digit work?
- The 15th character of a GSTIN is calculated from the first 14 with a base-36 checksum. If any character is mistyped the calculated digit no longer matches, so the error is caught without the GST portal.
- Does this confirm the GSTIN is active?
- No. It confirms the number is well-formed. Whether the registration is active, cancelled or suspended can only be seen on the GST portal.
- What does the fourth character of a PAN mean?
- The holder type: P individual, C company, H HUF, F firm or LLP, A association of persons, T trust, B body of individuals, L local authority, J artificial juridical person, G government.
- What does a CIN tell me?
- Its 21 characters give the listing status (L listed, U unlisted), a 5-digit NIC industry code, the 2-letter state, the year of incorporation, a 3-letter company class such as PTC (private) or PLC (public), and a 6-digit registration number. The tool decodes them and flags an unknown state, an impossible year or an unrecognised class.
- Can it check a DIN or LLPIN properly?
- Only the format: 8 digits for a DIN or DPIN, and 3 letters and 4 digits for an LLPIN. Neither has a check digit, so confirm a well-formed number on the MCA portal. An 8-digit number is always read as a DIN.
- Can I do this inside Google Sheets?
- Yes. The free Filingo add-on gives you =GSTIN_VALID(), =GSTIN_CHECK(), =GSTIN_STATE() and =PAN_TYPE(), each of which accepts a whole range.