GSTIN Verification API
A GSTIN Verification API is used to validate GST numbers and retrieve registered business details such as business name, GST status, taxpayer type, and address. It helps businesses verify GST compliance and reduce errors during invoicing, onboarding, and financial transactions.
API Details
Request URL
Request Body Parameters
| Type | Name | Optional | Description |
|---|---|---|---|
| String | gstin | Required | The Goods and Services Tax Identification Number assigned to a registered business under GST. |
| String | fyear | Required | The financial year associated with the GST filing, return, or verification data. |
Sample Request Payload
{
"gstin": "27ABCDE1234F2Z5",
"fyear": "2025-2026"
}
Request Header Parameters
| Type | Name | Value / Description | Optional |
|---|---|---|---|
| String | Content-Type | application/json | Required |
Sample Code
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://g99.in/api/public/gstin/search',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"gstin": "27ABCDE1234F2Z5",
"fyear": "2025-2026"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
import json
url = "https://g99.in/api/public/gstin/search"
payload = json.dumps({
"gstin": "27ABCDE1234F2Z5",
"fyear": "2025-2026"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://g99.in/api/public/gstin/search");
var content = new StringContent("{\r\n \"gstin\": \"27ABCDE1234F2Z5\",\r\n \"fyear\": \"2025-2026\"\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response
HTTP status code 200
| Key | Type | Description |
|---|---|---|
| valid | Boolean | Indicates whether the GSTIN is valid and successfully verified. |
| active | Boolean | Shows whether the GST registration is currently active. |
| legalName | String | Registered legal name of the business or entity under GST. |
| tradeName | String | Business or trade name used commercially by the GST holder. |
| pan | String | Permanent Account Number (PAN) linked with the GSTIN. |
| constitution | String | Type of business constitution such as Proprietorship, Partnership, LLP, or Company. |
| nature | Array | Nature of business activities registered under GST. |
| type | String | Type or category of GST taxpayer registration. |
| registered | String | Date on which the GST registration was issued. |
| updated | String | Last updated date of the GST registration details. |
| expiry | String | Expiry or cancellation effective date of the GST registration, if applicable. |
| state | String | State in which the GST registration is registered. |
| stateCode | String | Official GST state code associated with the registration state. |
| center | String | Central GST jurisdiction name assigned to the taxpayer. |
| centerCode | String | Code of the assigned central GST jurisdiction. |
| jurisdictionCenter | Array | Central authority jurisdiction responsible for the GST registration. |
| jurisdictionState | Array | State authority jurisdiction responsible for the GST registration. |
| address | String | Registered business address associated with the GSTIN. |
| filings | Array | GST return filing status and filing-related information. |
| einvoiceEnabled | Boolean | Indicates whether e-Invoice generation is enabled for the GSTIN. |
Sample Response
Sample response for valid document
{
"valid": true,
"active": true,
"legalName": "SOFTNET PRIVATE LIMITED",
"tradeName": "SOFTNET PRIVATE LIMITED",
"pan": "AAGCG9742E",
"constitution": "Private Limited Company",
"nature": [
"Retail Business",
"Supplier of Services",
"Wholesale Business"
],
"type": "Regular",
"registered": "28/09/2017",
"updated": null,
"expiry": null,
"jurisdictionCenter": {
"commissionerate": "DELHI-NORTH",
"division": "Delhi",
"range": "RANGE III",
"state": "CBIC",
"zone": "DELHI"
},
"jurisdictionState": {
"circle": "Delhi",
"division": "DELHI CENTRAL",
"range": null,
"state": "Delhi",
"sector": null,
"zone": "Central-III"
},
"address": "113, 1st cross street , Delhi 600034",
"filings": [
{
"mode": "ONLINE",
"filed": "15/04/2026",
"type": "GSTR1",
"period": "032026",
"ack": null,
"status": "Filed"
}
],
"einvoiceEnabled": false
}
Error Response
| Parameter | Type | Description |
|---|---|---|
| status | Number | Unique error codes for different errors. Always available. |
| message | String | Error message describing the error. Always Available. |
| error | Boolean | True / False for different errors. Always available. |
Error Codes
| HTTP Status | Error Code | Error Message |
|---|---|---|
| 400 | 4001 | Malformed data or missing required parameter values. |
| 400 | 4002 | Invalid GSTIN Number. |
| 503 | 5001 | Request could not be processed. Please try again later. |
Sample Error Response
{
"message": "Malformed data or missing required parameter values.",
"status": 4001,
"error": True
}