Filingo
toolsgstin-validator

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

  1. Fill in the details(you are here)
  2. Read the result(next)
  3. Download or print(next)
A1fxpaste GSTINs, PANs, TANs, CINs, DINs or LLPINs: one per line, or a whole column from Excel

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.

Did this help?

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
  1. The tool works out the check character for 27AAACE7234F1Z. It comes to U.
  2. The number carries 6, so the check fails: Check character should be U: a digit or letter is mistyped.
  3. 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

The parts of the GSTIN 27AAACE1234F1Z6
PARTPOSITIONSIN 27AAACE1234F1Z6
State code1 to 227
PAN of the holder3 to 12AAACE1234F
Entity number for that PAN131
Fixed letter Z14Z
Check character156
What the validator says for five different numbers
CASENUMBERRESULT
14 characters, one short27AAACE1234F1ZGSTIN has 15 characters, this has 14
Letters where digits belongABAAACE1234F1Z6Format is wrong: expected 2 digits, a 10-character PAN, entity number, Z, check character
State code that does not exist00AAACE1234F1Z6Unknown state code 00
One character mistyped27AAACE7234F1Z6Check character should be U: a digit or letter is mistyped
Correct27AAACE1234F1Z6Valid. Maharashtra
The checks run in this order: length, format, state code, check character.

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.

State codes the validator accepts
CODESTATECODESTATE
01Jammu and Kashmir21Odisha
02Himachal Pradesh22Chhattisgarh
03Punjab23Madhya Pradesh
04Chandigarh24Gujarat
05Uttarakhand25Daman and Diu (old)
06Haryana26Dadra and Nagar Haveli and Daman and Diu
07Delhi27Maharashtra
08Rajasthan28Andhra Pradesh (old)
09Uttar Pradesh29Karnataka
10Bihar30Goa
11Sikkim31Lakshadweep
12Arunachal Pradesh32Kerala
13Nagaland33Tamil Nadu
14Manipur34Puducherry
15Mizoram35Andaman and Nicobar Islands
16Tripura36Telangana
17Meghalaya37Andhra Pradesh
18Assam38Ladakh
19West Bengal97Other Territory
20Jharkhand99Centre Jurisdiction
PAN holder type by fourth character
4TH CHARACTERHOLDER
PIndividual
CCompany
HHUF
FFirm / LLP
AAssociation of Persons
TTrust
BBody of Individuals
LLocal Authority
JArtificial Juridical Person
GGovernment

STEP BY STEP

How it works

  1. Paste one number, or a whole column from Excel mixing GSTINs, PANs, TANs, CINs, DINs and LLPINs.
  2. 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.
  3. 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.

Related tools