Tax

GSTIN Format Validator

Check ordinary PAN-based GSTIN format and checksum locally, without claiming registration verification.

By Nitin Raturi · Last reviewed

Check an identifier

How to use the GSTIN Format Validator

Check transcription without sending the identifier to a service.

  1. Paste the GSTIN from the original document.
  2. Read the separate format and checksum findings.
  3. If the checksum fails, recheck the original identifier rather than changing a digit blindly.
  4. For legal name or registration status, open the plain official taxpayer-search link and enter it there yourself.

Good to know

  • Typed identifiers are not placed in the address, storage or analytics.
  • The example is synthetic; a checksum is not proof of registration.
  • Special registration identifiers outside this checker’s scope need the official portal.

Offline only. No registration lookup, no identifier in the address or storage.

GSTIN

An identifier to check locally for the ordinary PAN-based GSTIN format and its final check character.

How to fill it in

  • Paste one 15-character identifier. Outer whitespace and letter case are normalised; internal punctuation is not removed.
  • This checker supports Z at position 14. It does not check state-code allocation or PAN ownership.

Example

Synthetic arithmetic example 27AAAAA0000A1Z2 has expected check character 2. It is not a registration lookup.

Keep in mind: A passing checksum does not prove registration, active status, legal name or eligibility for tax credit. Confirm those on the official GST portal.

Ordinary PAN-based GSTINs with Z at position 14 only. A passing result does not verify registration.

Local format check

Not checked

Enter a GSTIN, then choose Check format and checksum.

Enter a GSTIN, then choose Check format and checksum.

Open official GST taxpayer search. Enter the identifier there yourself if you need registration details. This link does not carry it.

Format and checksum only. No registration, active-status, legal-name, PAN-ownership, state-allocation or input-tax-credit verification.

How this calculator works

  1. Step 1Read the shape15 charactersTwo prefix digits, a PAN-shaped segment, entity sequence, Z marker and final check character.
  2. Step 2Recalculate the check digit2Computed from the first fourteen characters using the GST portal’s published validation algorithm.
  3. Step 3Keep the claim limitedFormat onlyNo contact with the GST portal, no legal-name or active-registration confirmation.

This is an offline format and checksum checker for ordinary PAN-shaped GSTINs with Z at position fourteen. It can help spot a transcription problem before you use an identifier elsewhere. It does not establish that the identifier belongs to a taxpayer.

A checksum is a small arithmetic consistency check. A fabricated identifier can satisfy it, and an identifier that once belonged to a taxpayer might no longer be active. Legal name, registration status and tax-credit eligibility require separate verification.

Worked example: synthetic, not a taxpayer record

Check an explicitly synthetic identifier
Base-36 character values
0–9 represent 0–9; A–Z represent 10–35
Weights for the fourteen-character prefix
From the left, alternate factors 1 and 2
Fold each weighted value
contribution = floor(product / 36) + product mod 36
Expected final character
index = (36 − sum of contributions mod 36) mod 36
  • prefixfirst fourteen characters 27AAAAA0000A1Z
  • providedfinal character in the example 2
  1. Synthetic identifier27AAAAA0000A1Z2
  2. Prefix digits; allocation not checked27
  3. PAN-shaped segment; ownership not checkedAAAAA0000A
  4. Entity sequence1
  5. Reserved marker supported hereZ
  6. Recomputed check character2

The example is created to illustrate the arithmetic, not presented as an unallocated or real registration. The expected final character matches the supplied one. The tool therefore reports format and checksum pass, while explicitly stating that registration has not been verified.

The checker trims whitespace at the outside and normalises letter case. It does not remove spaces or hyphens inside the identifier, because silently repairing a copied identifier could hide the original error.

What each outcome means

  • Format mismatchRecheck the sourceThe text does not match the supported character positions. Look for an extra space, missing character or transposed letter and digit.
  • Checksum mismatchDo not auto-correctThe shape matches but its final character does not agree with the arithmetic. An earlier character may be wrong.
  • Format + checksum passNot a registration checkOnly the pattern and arithmetic agree. No taxpayer data has been retrieved.

The expected check character is shown to explain a mismatch. Replacing the final character to make the arithmetic pass is not verification. Compare the entire identifier with the original invoice or registration document and resolve discrepancies with the issuer.

Supported scope is narrower than the GST portal

A non-Z marker is outside this checker’s ordinary-format scope, not proof that a registration cannot exist.

The portal’s public validation code recognises additional marker patterns. This tool intentionally does not interpret those special cases. An otherwise shaped identifier with a different marker receives an unsupported-format explanation and a link to the official portal.

The two starting digits are shape-checked only. This page does not maintain a state-code allocation list. It also does not validate PAN holder classification, ownership, entity allocation or the relationship between the PAN and a legal name.

Privacy: identifiers stay in this page

No GSTIN is added to the URL, browser storage, analytics events or a lookup request.

Your text is processed in memory in the current browser page. Reloading clears it. Unlike numeric calculator plans, this tool does not create a shareable input URL. Its hosted embed uses the same local-only behaviour and exchanges height information only.

The official taxpayer-search link is plain and never prefilled. Following it opens a different service; enter the identifier there yourself if you need registration details. That service has its own privacy and availability conditions.

  • Possible copy or typing errorUse this local checkerA quick pattern and checksum result without transmitting the identifier.
  • Legal name or registration statusUse the official portalOpen the GST taxpayer search and verify the information relevant to your transaction.

A local pass is not evidence that an invoice is genuine, the supplier is compliant or input tax credit is available. Those questions depend on official records and applicable rules, which are outside this calculator’s scope.

A valid format and check digit do not prove a GSTIN is registered or active.

To work out GST on an amount, use the GST calculator. For the tax on income, see the income tax calculator.

Common mistakes

  • Mistake: Read a green checksum result as an active registration.

    Instead: Keep format checking separate from an official taxpayer lookup.

  • Mistake: Change the final digit until the checker passes.

    Instead: Recheck every character against the original document.

  • Mistake: Interpret an unsupported marker as a nonexistent taxpayer.

    Instead: Use the official service for identifiers outside this checker’s scope.

  • Mistake: Share an identifier in a URL expecting a private lookup.

    Instead: This page deliberately does not encode identifiers in shared links.

Methodology and primary evidence

Independent tests recompute synthetic checksums in reverse order and mutate every possible final character.

The implementation follows the character mapping, alternating weights and modulo-36 checksum in the GST portal’s publicly served validation code. It does not copy or execute that code in your browser. The official source and registration guidance are linked below with their access dates.

Read how we test our calculators, or browse more money calculators.

Frequently asked questions

Does a passing result prove that a GSTIN is registered?

No. It only means the supported pattern and checksum agree. It does not confirm legal name, registration, active status, PAN ownership, invoice authenticity or input-tax-credit eligibility.

What format does this checker support?

Ordinary PAN-shaped identifiers with two starting digits, a ten-character PAN-shaped segment, a nonzero alphanumeric entity sequence, Z at position fourteen and an alphanumeric check character. Prefix allocation and PAN holder type are not checked.

What does an unsupported marker mean?

It means the identifier falls outside this checker’s ordinary Z-marker scope, not that registration cannot exist. The GST portal handles additional identifier patterns; use its official service for those cases.

Can I fix a mismatch by replacing the final character?

Do not assume so. An earlier character may be wrong. The expected check character explains the arithmetic, but the entire identifier needs checking against the original source.

Is the identifier sent to a server or stored?

No. The tool processes it in page memory, does not add it to the address or storage, and never includes it in analytics events. Reloading clears it. The official search link is plain and never prefilled.

Why use a synthetic example?

It demonstrates the checksum without asserting that an identifier belongs to a taxpayer or is unallocated. A made-up pattern can pass arithmetic, which is exactly why a checksum is not registration proof.

Can I embed this local checker?

Yes. Its hosted embed uses the same local-only behaviour and visible WebTools credit. It exchanges sizing messages only. The integration guide explains iframe and optional auto-height setup.

Sources and methodology

The formulas are standard time-value-of-money results. We check every figure against golden values worked out independently, by closed form and by month-by-month simulation; see the methodology.

Written and maintained by Nitin Raturi, a software engineer (about the author). Last reviewed 27 Oct 2026; next review due by . Found an error? Tell us.

Changelog

  • : Initial release: offline ordinary-format and checksum checks, synthetic example, decomposed findings and no input URL or storage.