Bulk GST Advanced Verification
Verify multiple GSTINs with detailed taxpayer data in one batch. Get filing history, HSN codes, and compliance status at scale.
curl -X POST "https://production.deepvue.tech/v1/verification/gstin-advanced/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-advanced/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-advanced/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-advanced/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-advanced/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 'gstin_number' only as headers"
}
{
"detail": "Internal Server Error"
}
/v1/verification/gstin-advanced/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 performs GST advanced verification in bulk through an asynchronous processing workflow. You submit a batch file containing GSTIN numbers and receive a transaction ID and request ID for tracking. Once processing completes, results are delivered to a webhook URL registered for your account.
You can optionally specify a webhook URL as a query parameter to override the default registered endpoint for result delivery.
Input files must contain fewer than 1,000 records and use gstin_number as the sole column header.
Last updated 4 weeks ago
Built with Documentation.AI