Pro UPI QR

GST tools

GSTIN validator and decoder

Paste a GSTIN, the 15-character number on an Indian GST registration, and this page checks how it is written, tests its check digit and reads what the characters say: the state or UT, the PAN inside it, the holder type and the entity number. You can check a whole list in one go. It runs in your browser, so nothing you type is sent anywhere.

Format and check digit only. This does not show that a GSTIN is registered.

Check one GSTIN

Type or paste a GSTIN to see what its 15 characters say.

Format and check digit only. This does not show that the GSTIN is registered or whose it is. Look it up on the official GST portal (opens in a new tab).

Check a list

A new line, comma, tab or space starts the next GSTIN. Up to 500 are checked at a time.

Nothing you paste is uploaded, saved or put in the web address. The list and results stay on this page until you close or reload it.

Independent tool, not run or approved by GSTN or any tax department. Read the disclaimer

How it works

  1. Type or paste a GSTIN

    Spaces, hyphens and lower case are tidied up for you. The sample button fills in a made-up number so you can see how the result reads.

  2. Read the result

    It says whether the layout and the check digit are fine, lists the exact positions that are not, and reads out the state or UT, the PAN, the holder type and the entity number.

  3. Look the taxpayer up on the GST portal if you need to know who holds it

    This page cannot show that a GSTIN is registered or whose it is. To check many numbers at once, paste a list, then copy the results or download them as CSV.

What the 15 characters mean

The GST Council's registration flyer describes a GSTIN as a 15-digit number. The first two digits are the state code, the next ten are the PAN of the legal entity, the next two are an entity code and the last is a check sum. Public references, such as the python-stdnum documentation, add that the 13th character counts the registrations a PAN holder has in that state, running from 1 to 9 and then A to Z, and that the 14th is usually Z.

The five parts of a GSTIN, with the made-up sample 27AAAAA0000A1Z2
CharactersPartIn 27AAAAA0000A1Z2What to know
1-2State or UT code27Two digits from the GST state and UT list below.
3-12PAN of the holderAAAAA0000AFive letters, four digits, one letter.
13Entity number1Which registration this is under that PAN in that state: usually 1 to 9, then A to Z.
14Usually ZZOther letters can appear. This page notes them instead of failing the number.
15Check digit2Worked out from the first 14 characters, so a typing mistake usually breaks it.

The sample is made up. Its PAN digits are 0000, and the Income Tax Department issues PAN digits from 0001 to 9999, so the sample's PAN falls outside the numbers it issues.

The PAN's fourth letter shows who holds it

That letter is the sixth character of the GSTIN. The Income Tax Department's FAQ on how a PAN is formed lists these ten, and the public references below agree. python-stdnum's PAN module also lists a K and notes that it may have been discontinued. This page treats a K like any other letter outside the list: it shows a note, not an error.

  • AAssociation of persons (AOP)
  • BBody of individuals (BOI)
  • CCompany
  • FFirm or LLP
  • GGovernment
  • HHindu undivided family (HUF)
  • JArtificial juridical person
  • LLocal authority
  • PIndividual
  • TTrust

How the check digit catches typing mistakes

The last character is worked out from the first 14 with a method called Luhn mod 36, in which the digits count as 0 to 9 and the letters A to Z as 10 to 35. If any one of the 15 characters changes, the check digit stops fitting. Two neighbouring characters traded places are caught too, unless they are 0 and Z. Two mistakes in one number can cancel each other out about one time in 36.

A check digit has 36 possible values, so roughly one random 15-character string in 36 passes it. Passing shows that a number is well formed. It does not show that the number exists.

What this page does and does not do

It does

  • Check the length, the characters allowed, the layout of the PAN part and the check digit.
  • Read out the state or UT, the PAN, the holder type and the entity number, and note anything unusual.
  • Run a bulk check on up to 500 GSTINs at a time, and let you copy the results or download them as CSV.

It does not

  • Show whether a GSTIN is registered, active or cancelled, or whose it is. Search Taxpayer on the GST portal does that.
  • Make GSTINs, show the check digit a number should have, or suggest a corrected number.
  • Read special identifiers, such as the registrations given to non-resident taxable persons or to tax deductors who registered on a TAN instead of a PAN (neither is based on an Indian PAN), or the UINs issued to some United Nations bodies and other organisations. They can show format problems here, so look them up on the GST portal.
  • Send or save anything you type.

This is an independent tool. It is not run or approved by GSTN or any tax department. Read the disclaimer.

State and UT codes

These 37 codes appear in both government code lists: the e-way bill state code list and the e-invoice master codes. They are the only codes this page names. Any other code gets a note, never a failure on its own: the check digit decides.

State and UT codes 01 to 13
CodeState or UT
01Jammu and Kashmir
02Himachal Pradesh
03Punjab
04Chandigarh
05Uttarakhand
06Haryana
07Delhi
08Rajasthan
09Uttar Pradesh
10Bihar
11Sikkim
12Arunachal Pradesh
13Nagaland
State and UT codes 14 to 27
CodeState or UT
14Manipur
15Mizoram
16Tripura
17Meghalaya
18Assam
19West Bengal
20Jharkhand
21Odisha
22Chhattisgarh
23Madhya Pradesh
24Gujarat
26Dadra and Nagar Haveli and Daman and Diu
27Maharashtra
State and UT codes 29 to 97
CodeState or UT
29Karnataka
30Goa
31Lakshadweep
32Kerala
33Tamil Nadu
34Puducherry
35Andaman and Nicobar Islands
36Telangana
37Andhra Pradesh
38Ladakh
97Other Territory

Codes that are not in the list

  • 25Code 25 (Daman and Diu) is in the e-invoice portal's master list but not in the e-way bill list, which uses 26 for the merged Dadra and Nagar Haveli and Daman and Diu.
  • 28Code 28 is not in the GST-era state lists. The older VAT and TIN list used it for Andhra Pradesh, which the GST lists code as 37 (Telangana is 36).
  • 96 and 99Codes 96 and 99 are not states: the e-invoice master list names both OTHER COUNTRIES, and the e-way bill list names 99 OTHER COUNTRY. This tool reads the standard state layout, so for these codes it can only say whether the format fits.
  • Any other codeThis code is not in the GST state and UT lists we checked (01-24, 26, 27, 29-38 and 97).

Sources and method

Last reviewed 31 October 2026 by Kunal Siyag · Accuracy policy

Government pages come first. The public references are cross-checks for details that no government page spells out. The flyer calls the last digit a check sum without describing the method, so the check digit follows the Luhn mod 36 method as python-stdnum implements it. We tested our code against python-stdnum's published sample, against GSTINs shown in public company listings (every one we tried fits) and, on tens of thousands of random strings, against a separate implementation. The two always agreed.

Government pages

Public references

The flyer gives no detail on characters 13 and 14, which is why those rest on the public references. The e-invoice schema accepts any letter or digit in the 14th place, so an unusual 14th character gets a note, not an error. If you spot a mistake, the accuracy policy says how to report it and how corrections are logged.

FAQ

GSTIN questions

What is a GSTIN?

A GSTIN is the 15-character GST identification number that India's GST system gives to a registered taxpayer. A business registered in several states gets a separate GSTIN for each one, because GST has no single registration for units in different states. You will usually find it on a supplier's invoices.

What do the 15 characters of a GSTIN mean?

Characters 1 and 2 are the state or UT code. Characters 3 to 12 are the PAN of the holder. Character 13 is the entity number, which counts the registrations under that PAN in that state (usually 1 to 9, then A to Z). Character 14 is usually the letter Z. Character 15 is a check digit worked out from the first 14. The GST Council's flyer describes the state code, the PAN, an entity code and a check sum; the finer points on the 13th and 14th characters come from public references.

Can this page tell me whether a GSTIN is active?

No. It only checks how the number is written. A GSTIN that passes is correctly formed; that does not show it is registered, active, suspended or cancelled, or whose it is. Use Search Taxpayer on the GST portal for that. It asks for a captcha and, without logging in, shows details such as the legal name, trade name, registration date and cancellation date where one applies. This page never contacts the portal.

Why does my GSTIN fail the check?

Usually a character was mistyped or two neighbours were swapped, the number was copied with a character missing or added, or the document it came from has a typing mistake. The result lists the positions that break the layout. If the layout is fine but the check digit does not match, at least one character is not what it should be, and this page cannot say which one. Copy the number again from the invoice or the registration certificate instead of guessing.

Is the 14th character always Z?

Most GSTINs have Z there, and the python-stdnum documentation describes it as fixed. Public explainers also say that C and D are used for tax collectors and tax deductors, and the government's e-invoice API schema takes any letter or digit in that place. So this page treats any other character in the 14th place as unusual, shows a note, and lets the check digit decide. It does not call a number wrong for that alone.

How do I find the PAN from a GSTIN?

Take characters 3 to 12. In the sample 27AAAAA0000A1Z2 that is AAAAA0000A. The fourth letter of the PAN, which is the sixth character of the GSTIN, shows the holder type: P for an individual, C for a company, F for a firm or LLP, H for a Hindu undivided family, T for a trust, and A, B, G, J or L for the other types. For a sole proprietor, the PAN inside the GSTIN is the owner's personal PAN.

What is the regex for GST number validation?

For the layout this page checks, use ^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][0-9A-Z]{3}$ on the upper-case number: two digits, five letters, four digits, one letter, a digit or a letter, then two more letters or digits. It is written for the usual PAN-based GSTINs: special identifiers, such as a tax deductor registered on a TAN, can follow another layout. It does not insist on a Z in the 14th place, because some GSTINs carry C or D. A pattern cannot check the last character: that comes from the first 14 by the Luhn mod 36 method, so it takes a small calculation, not a pattern. A pattern also cannot tell you whether the state code is on the list or whether the GSTIN is registered.

Does "GST number" mean the same in Canada, Australia or New Zealand?

No. This page reads India's 15-character GSTIN and nothing else. Canada's GST/HST account number is a 9-digit business number followed by RT and a 4-digit reference. New Zealand's GST number is the same as the IRD number. In Australia, a business's GST registration is listed on ABN Lookup. This page checks none of those, so use the tax authority's own tools.

Is the GSTIN I type sent anywhere?

No. The check runs in your browser. Nothing you type or paste is uploaded, saved in your browser, put in the web address or reported to analytics, and the page does not contact the GST portal. The one link that leaves this page goes to the portal and carries no number. Results disappear when you close or reload the page.