Use cases · for finance, KYB and onboarding teams

GSTIN to company details: what you can get today

Last updated 11 November 2026 · by Venu Gopal Reddy Muvva, founder

A GSTIN on its own tells you the state it was issued in, the business's PAN, whether that PAN belongs to a company, a firm or LLP, an individual or another kind of holder, and whether the check digit is right. IndianFirmData decodes all of that for free. The legal name, trade name, address and live status registered against a GSTIN come from the GST network, through a licensed GST Suvidha Provider (GSP). Our live GST lookup is built but not switched on yet, so today we link a GSTIN to a company only when that exact GSTIN is already in our index; otherwise use the CIN or name from the invoice and enrich from that.

Steps in IndianFirmData

  1. 1. Decode the GSTIN

    GET /api/v1/identifiers/decode?value=<GSTIN>, 0 credits. You get valid or invalid, the state from the first two digits, the PAN in characters 3 to 12, the PAN holder type and the registration number within the state.

  2. 2. Check the holder type

    If you expect a company, the fourth character of the PAN should be C (holder type company). F means a firm or LLP and P an individual; either means you are dealing with a different kind of business than a company.

  3. 3. Look for a linked company

    If that exact GSTIN is linked to a company in our index, the decode result includes it under company. You can also POST /api/v1/companies/search with {"filters": {"gstin": "<GSTIN>"}}.

  4. 4. Enrich from the CIN or name

    Otherwise take the CIN or legal name from the invoice or contract and call GET /api/v1/companies/enrich?cin=<CIN> or ?name=<name>&state=<state>. 1 credit on a match, 0 otherwise.

What the decode call returns

{
  "data": {
    "value": "<GSTIN>",
    "type": "gstin",
    "valid": true,
    "decoded": { "gstin": "<GSTIN>", "state_code": "29", "state": "Karnataka", "pan": "<PAN>", "holder_type": "company", "registration_number_in_state": 1, "checksum_valid": true },
    "company": null,
    "note": "Format, state and checksum only. Live GST status needs a licensed GSP API (not included)."
  },
  "meta": { "request_id": "...", "credits_charged": 0 }
}

One PAN, many GSTINs

A business gets a separate GSTIN in each state where it is registered, all built on the same PAN. So the GSTIN on an invoice from a Bengaluru company's Pune branch starts with 27 (Maharashtra), not 29 (Karnataka). When the GSTIN's state and the company's registered state differ, that is often a branch, not fraud.

When IndianFirmData is not the right tool

If you need the legal name, address, filing history or active or cancelled status behind a GSTIN today, or all the GSTINs behind a PAN, you need a vendor with live GST data, such as Surepass (GST verification and PAN to GST APIs). IndianFirmData's /api/v1/identifiers/gst-status returns 501 until we sign a licensed GSP.

Questions

Can I get the PAN from a GSTIN?

Yes. Characters 3 to 12 of a GSTIN are the holder's PAN, and the decode call returns it with its holder type, for free.

Can I get a company's GSTINs from its PAN or CIN?

Not from IndianFirmData today. That needs the GST network through a licensed GSP.

Do you scrape the GST portal for names?

No. Its search is behind a CAPTCHA and we never automate it.

Will live GST details cost extra?

When it is switched on, the GSP's fee per lookup will be passed through at cost, with no markup. The offline decode stays free.

Try it on a company you know.

Start free — 3 months on us

Related: GSTIN verification API · Verify a GSTIN number · KYB checks by API · IndianFirmData vs Surepass · Pricing

GSTIN to company details: what you can get today