Bulk PAN to GSTIN Search
Search GSTINs for multiple PANs in one batch. Discover the GST footprint of businesses at scale for vendor compliance.
curl -X POST "https://production.deepvue.tech/v1/verification/gstin/gstin-by-pan/batch?webhook_url=example_string" \
-H "Authorization: Bearer YOUR_API_TOKEN (JWT)" \
-H "x-api-key: YOUR_API_KEY" \
--form batch_file=example_string
import requests
import json
url = "https://production.deepvue.tech/v1/verification/gstin/gstin-by-pan/batch?webhook_url=example_string"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN (JWT)",
"x-api-key": "YOUR_API_KEY"
}
data = {
"batch_file": "example_string"
}
response = requests.post(url, headers=headers, data=data)
print(response.json())
const formData = new FormData();
formData.append("batch_file", "example_string");
const response = await fetch("https://production.deepvue.tech/v1/verification/gstin/gstin-by-pan/batch?webhook_url=example_string", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_TOKEN (JWT)",
"x-api-key": "YOUR_API_KEY"
},
body: formData
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"mime/multipart"
)
func main() {
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
writer.WriteField("batch_file", "example_string")
writer.Close()
req, err := http.NewRequest("POST", "https://production.deepvue.tech/v1/verification/gstin/gstin-by-pan/batch?webhook_url=example_string", body)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN (JWT)")
req.Header.Set("x-api-key", "YOUR_API_KEY")
req.Header.Set("Content-Type", writer.FormDataContentType())
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://production.deepvue.tech/v1/verification/gstin/gstin-by-pan/batch?webhook_url=example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer YOUR_API_TOKEN (JWT)'
request['x-api-key'] = 'YOUR_API_KEY'
request.set_form([
["batch_file", "example_string"]
], 'multipart/form-data')
response = http.request(request)
puts response.body
{
"code": 201,
"timestamp": 1948475859595,
"transaction_id": "string",
"request_id": "string",
"message": "batch processing in progress",
"sub_code": "SUCCESS",
"output_batch_file": ""
}
{
"detail": "Inactive client_id"
}
{
"detail": "Bad Request"
}
{
"detail": "Not authenticated"
}
{
"detail": "Invalid client_id, access Denied"
}
{
"detail": "Could not validate credentials"
}
{
"detail": "Incorrect client_id or client_secret"
}
{
"detail": "Not a valid token"
}
{
"detail": "Access forbidden"
}
{
"code": 422,
"timestamp": 1731652271522,
"transaction_id": "string",
"sub_code": "INVALID_BATCH_FILE_FORMAT",
"message": "File format not supported"
}
{
"code": 422,
"timestamp": 1731652271509,
"transaction_id": "string",
"sub_code": "INVALID_BATCH_SIZE",
"message": "Input File must have less than 1000 records"
}
{
"code": 422,
"timestamp": 1731652271518,
"transaction_id": "string",
"sub_code": "INVALID_INPUT_FILE_FORMAT",
"message": "Input File must have 'pan_number' only as headers"
}
{
"detail": "Internal Server Error"
}
/v1/verification/gstin/gstin-by-pan/batch
ACCESS_TOKEN generated from the authorize endpoint. Should be included in the header as Bearer .
The CLIENT_SECRET provided to you. This header parameter is required for authentication purposes.
The media type of the request body
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token (JWT). ACCESS_TOKEN generated from the authorize endpoint. Should be included in the header as Bearer .
API Key for authentication. The CLIENT_SECRET provided to you. This header parameter is required for authentication purposes.
Query Parameters
Body
Responses
Overview
This API enables bulk GSTIN (Goods and Services Tax Identification Number) searches using PAN (Permanent Account Number) as the lookup parameter. The service operates asynchronously -- you submit a batch file containing PAN numbers and receive a request ID. Once processing completes, results are delivered to your specified webhook URL.
Input files must contain fewer than 1,000 records and use pan_number as the sole column header.
Last updated 4 weeks ago
Built with Documentation.AI