Verify GST numbers without leaving your spreadsheet
Most GST verification starts in a spreadsheet and then gets copied into a browser tab one number at a time. This add-on collapses that: select the column, and every GSTIN is checked in place. The format and check-digit pass is free and runs offline. The register lookup fills in who the number actually belongs to.
The Marketplace listing is in review with Google. Create your API key now and this page will carry the install link the moment it is approved — the key and credits are the same ones the REST API uses.
Two passes, and only one of them costs anything
A GST number carries a lot of information in the number itself. Reading it needs no lookup, so the add-on does that part for free, forever, with no account — and it uses the result to make sure the paid pass never spends a credit on a number that could not possibly resolve.
Validate — free and offline
Checks the 15-character format, recomputes the modulus-36 check digit, and decodes the state, the embedded PAN and the entity type. Nothing leaves your spreadsheet, there is no usage limit, and no account is involved. Available both as sidebar buttons and as spreadsheet formulas.
Verify — one credit per registration found
Looks each surviving number up in the government register and writes back the legal name, trade name, status, constitution, taxpayer type, registration date and principal address. Rows that failed the offline pass are skipped without a request, so typos cost nothing.
Spreadsheet formulas that need no API key
Installing the add-on adds these functions to every sheet in the file. Each one accepts a single cell or a whole
range, so =GSTIN_VALID(A2:A500)
fills 499 rows from one formula. They run in Google's restricted function context, which has no network access
at all — that is why they are free, and why they can never send your data anywhere.
| Formula | What it returns | Example result |
|---|---|---|
=GSTIN_VALID(A2) |
TRUE when the number passes the format rules and the modulus-36 check digit. | TRUE |
=GSTIN_CHECK(A2) |
Says "Valid", or explains exactly what is wrong — wrong length, stray character, mistyped check digit. | Check digit mismatch — expected 7, found 0 |
=GSTIN_CLEAN(" 27-aaacr 5055 k1z7 ") |
Strips spaces, dashes and casing so two copies of the same registration finally match in a VLOOKUP. | 27AAACR5055K1Z7 |
=GSTIN_STATE(A2) |
The state the registration was issued in, read from the first two digits. | Maharashtra |
=GSTIN_STATE_CODE(A2) |
The two-digit state code as text, so a leading zero survives. | 06 |
=GSTIN_PAN(A2) |
The PAN embedded in characters 3 to 12 — the way to group one company's registrations across states. | AAACR5055K |
=GSTIN_ENTITY_TYPE(A2) |
Company, Individual / Proprietor, Firm / LLP, Trust, HUF and the rest, decoded from the PAN. | Company |
=GSTIN_CHECK_DIGIT(A2) |
The 15th character the first 14 imply — what a mistyped number should have ended with. | 7 |
The same rules power the browser-based GSTIN validator on this site, so a number checked in a spreadsheet and the same number checked on the web give the same verdict.
Getting started
-
1
Install the add-on
Open a Google Sheet, choose Extensions then Add-ons then Get add-ons, search for GSTIN Verifier and install it. Google shows you exactly which permissions it asks for before anything is granted.
-
2
Put your GSTINs in one column
Any column will do. Spaces, dashes and lower case are fine — the add-on normalises them before it checks anything.
-
3
Validate for free
Select the column, open Extensions then GSTIN Verifier then Open sidebar, and click Validate. Format, check digit, state and entity type are filled in without a single network call.
-
4
Add an API key to go further
Paste the API key from your gstinapi.com dashboard into the sidebar, then click Verify to pull the registered name, status, constitution, registration date and principal address from the government register.
What the Verify pass writes
Results go into the columns immediately to the right of your selection — where someone reading their own spreadsheet expects the answer to appear. The add-on refuses to run if those cells already hold data, unless you explicitly tick overwrite.
- Format valid
- Format check
- Legal name
- Trade name
- GST status
- Registered on
- Constitution
- Taxpayer type
- State
- Principal address
- Lookup result
The permissions it asks for, and why
Every scope below is one Google classes as non-sensitive. That was a design constraint, not an accident: an add-on that asked for your whole Drive would be easier to build and far harder to trust.
The spreadsheet you have open
To read the column of GST numbers you select and write the results next to it. This scope grants access to the open spreadsheet only — not to your Drive, not to your other files, not to anything you have not opened the add-on in.
https://www.googleapis.com/auth/spreadsheets.currentonly
Show the sidebar and menu
To add the "GSTIN Verifier" item to your Extensions menu and draw the sidebar you run the verification from.
https://www.googleapis.com/auth/script.container.ui
Call gstinapi.com
To look up GST numbers against the government register. The add-on manifest restricts outbound requests to https://gstinapi.com/api/ — it cannot call anywhere else.
https://www.googleapis.com/auth/script.external_request
Full detail is in the add-on privacy policy, including the Limited Use commitments that govern how Google user data is handled, and the add-on terms of use.
Questions about the add-on
Working outside a spreadsheet?
The add-on is one client for the same service. If you need verification inside your own product instead, the REST API is a single endpoint and a single header, and it shares your credit balance with the add-on.