Skip to content

PAN to GSTIN

Look up all GSTINs registered against a PAN number. Returns the list of linked GSTINs with their registration status and state codes — useful for discovering all GST registrations of a business entity across states.

Endpoint

GET /vas-api/v1/pan-to-gstin

Authentication

Requires OAuth2 Bearer token. Get your credentials →

Request

Headers

HeaderTypeRequiredDescription
AuthorizationstringYesBearer YOUR_ACCESS_TOKEN

Query parameters

ParameterTypeRequiredDescriptionExample
panstringYes10-character PAN numberABCDE1234F

Example request

bash
curl -X GET "https://api.api4business.com/vas-api/v1/pan-to-gstin?pan=ABCDE1234F" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
python
import requests

response = requests.get(
  "https://api.api4business.com/vas-api/v1/pan-to-gstin",
  params={"pan": "ABCDE1234F"},
  headers={"Authorization": "Bearer YOUR_ACCESS_TOKEN"}
)
print(response.json())
javascript
const response = await fetch(
  "https://api.api4business.com/vas-api/v1/pan-to-gstin?pan=ABCDE1234F",
  { headers: { "Authorization": "Bearer YOUR_ACCESS_TOKEN" } }
);
console.log(await response.json());
java
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create("https://api.api4business.com/vas-api/v1/pan-to-gstin?pan=ABCDE1234F"))
  .header("Authorization", "Bearer YOUR_ACCESS_TOKEN")
  .GET().build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

Response

Success (200)

FieldTypeDescription
okbooleantrue if successful
responseCodenumberHTTP status code
messagestringStatus message
body.panNumstringThe PAN that was queried
body.gstinResListarrayList of GSTINs registered against this PAN
body.gstinResList[].gstinstring15-character GSTIN
body.gstinResList[].authStatusstringRegistration status (Active, Cancelled, Suspended)
body.gstinResList[].stateCdstringState code (e.g., 27 for Maharashtra, 29 for Karnataka)

Example response

json
{
  "ok": true,
  "responseCode": 200,
  "message": "Transmission OK",
  "body": {
    "panNum": "ABCDE1234F",
    "gstinResList": [
      {
        "gstin": "29ABCDE1234F1Z5",
        "authStatus": "Active",
        "stateCd": "29"
      },
      {
        "gstin": "27ABCDE1234F1Z3",
        "authStatus": "Active",
        "stateCd": "27"
      }
    ]
  }
}

Response headers

HeaderDescription
x-request-idUnique request identifier — log this for debugging and support

Error responses

StatusError CodeMessageResolution
400400Invalid PANCheck PAN is 10 characters (5 alpha + 4 digits + 1 alpha)
400400Invalid RequestVerify the pan query parameter is present
401401Invalid CredentialsAccess token expired — request a new one
429429Quota ViolationRate limit exceeded — retry with backoff
500500Internal Server ErrorRetry after delay
503503Service Not AvailableGSTN service temporarily down — retry

Released under the API4Business Terms of Service