Bulk GSTIN Validation API

Validate up to 500 GSTINs in a single call. Returns format check, GSTN status, and vendor compliance score in one structured response.

Get sandbox keys → View OpenAPI docs Talk to sales

What is the Bulk GSTIN Validation API?

The Bulk GSTIN Validation API is purpose-built for vendor master refresh — accepts an array of up to 500 GSTINs and returns the full verification payload for each in a single async job. Typical use: monthly vendor master cleanup, RFQ onboarding, and supplier risk reviews.

The bulk endpoint runs jobs asynchronously to handle GSTN rate limits gracefully. Subscribe to the `bulk.completed` webhook to receive the consolidated results, or poll the job status endpoint.

Quick spec

Code examples

curl Node.jsPythonJava
curl -X POST 'https://apisandbox.whitebooks.in/gst/api/v1/gstin/verify-bulk' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{ /* payload */ }'
Node.js
const res = await fetch('https://apisandbox.whitebooks.in/gst/api/v1/gstin/verify-bulk', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + accessToken,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload),
});
const data = await res.json();
Python
import requests

resp = requests.post(
    'https://apisandbox.whitebooks.in/gst/api/v1/gstin/verify-bulk',
    headers={'Authorization': f'Bearer {access_token}'},
    json=payload,
)
data = resp.json()
Java
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://apisandbox.whitebooks.in/gst/api/v1/gstin/verify-bulk"))
    .header("Authorization", "Bearer " + accessToken)
    .header("Content-Type", "application/json")
    .post(BodyPublishers.ofString(payload))
    .build();
HttpResponse<String> resp = HttpClient.newHttpClient()
    .send(req, BodyHandlers.ofString());

Integrate in 3 steps

  1. Sign up at accounts.whitebooks.in — sandbox credentials issued instantly, no sales gate.
  2. Make your first call against the sandbox base URL using the code example above. Validate against your local model.
  3. Move to production once your tests pass — switch host to https://api.whitebooks.in/gst. Same payload, same response shape.

Frequently asked questions

What's the max batch size?

500 GSTINs per call. For larger lists, split into multiple jobs — the API auto-tracks them under your tenant.

How long does a 500-GSTIN job take?

Typical: 60-90 seconds for 500 GSTINs. Result returned via webhook.

Can I get results in CSV format?

Yes — pass output_format=csv in the request. Webhook will deliver a presigned S3 URL.

Is there a rate limit on bulk jobs?

10 concurrent bulk jobs per tenant on Starter tier; unlimited on Enterprise.

Explore the full GST API

This is one endpoint inside the WhiteBooks GST API suite. See the full documentation — every endpoint, every parameter, every error code.

Open the GST API page →

Related GST API endpoints

GSTR-1 Filing API → GSTR-2B Fetch API → GSTR-3B Filing API → GSTR-9 Annual Return API →