GST Verification API
Verify a GSTIN and get the business's legal and trade name, status, address, recent return filings and registered goods and services.
What it verifies
Verifies a GSTIN with the GST network. A valid GSTIN comes back with the legal and trade name, constitution, status (a cancelled registration is still returned, marked Cancelled), registration and cancellation dates, nature of business, principal address, recent return filings and the goods and services registered. An invalid GSTIN or one that is not found is reported as no data.
Who uses it
- Lenders and NBFCs onboarding a business borrower
- Marketplaces and B2B platforms verifying a seller or a supplier before onboarding
- Finance teams checking a vendor's GST registration before paying an invoice
Request and response
https://verification.techinnoverz.com/api/v1/business-gst/gstVerify a GSTIN and get the business's registration, filing and goods and services details. This call is billed when it returns a successful result.
Request body
gstinstringrequiredThe 15-character GSTIN to verify.
consentstringrequiredMust be "Y". Records that the end customer consented to this check; logged against the transaction.
referenceIdstringoptionalYour own id, echoed back in the response for reconciliation.
Example requests
curl -X POST "https://verification.techinnoverz.com/api/v1/business-gst/gst" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"gstin": "29ABCPE1234F1Z5",
"consent": "Y",
"referenceId": "app_20915"
}'const res = await fetch("https://verification.techinnoverz.com/api/v1/business-gst/gst", {
method: "POST",
headers: {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
"gstin": "29ABCPE1234F1Z5",
"consent": "Y",
"referenceId": "app_20915"
}),
});
const result = await res.json();import requests
res = requests.post(
"https://verification.techinnoverz.com/api/v1/business-gst/gst",
headers={"x-api-key": "YOUR_API_KEY"},
json={
"gstin": "29ABCPE1234F1Z5",
"consent": "Y",
"referenceId": "app_20915",
},
timeout=15,
)
result = res.json()200 response — status "found"
{
"status": "found",
"data": {
"gstin": "29ABCPE1234F1Z5",
"tradeName": "Sample Traders",
"legalName": "Asha Sample",
"constitutionOfBusiness": "Proprietorship",
"status": "Active",
"taxpayerType": "Regular",
"natureOfCoreBusiness": "MFT",
"registrationDate": "14/12/2018",
"cancellationDate": null,
"natureOfBusinessActivities": [
"Factory / Manufacturing",
"Retail Business"
],
"principalPlaceAddress": "1-28, Main Road, Vijayawada, Andhra Pradesh, 521111",
"ekycVerified": "No",
"aadhaarVerified": "No",
"complianceRating": "NA",
"fieldVisitConducted": "No",
"stateJurisdiction": "State - Andhra Pradesh,Division - Vijayawada I,Circle - NUZIVEEDU",
"centralJurisdiction": "Commissionerate - GUNTUR,Division - VIJAYAWADA,Range - HANUMAN E",
"eInvoiceStatus": "Yes",
"returns": [
{
"financialYear": "2020-2021",
"taxPeriod": "February",
"modeOfFiling": "ONLINE",
"dateOfFiling": "11/03/2021",
"returnType": "GSTR1",
"arn": "NA",
"status": "Filed"
}
],
"goods": [
{
"description": "Cotton fabric",
"hsnCode": "55151190"
}
],
"services": [
{
"description": "BUSINESS SUPPORT SERVICES",
"sacCode": "00440366"
}
]
},
"source": "provider",
"dataAsOf": "2026-11-03T09:30:00.000Z",
"referenceId": "app_20915",
"billing": {
"charged": true,
"walletBalance": "12450.00"
},
"txnId": "txn_8c31ba90",
"livemode": true
}Fields returned in data
gstinstringoptionalThe GSTIN that was verified.
tradeNamestringoptionalTrade name of the business. null when not held.
legalNamestringoptionalLegal name of the business or individual the GSTIN belongs to.
constitutionOfBusinessstringoptionalConstitution of the business: proprietorship, partnership, private limited company and so on.
statusstringoptionalCurrent status of the registration under GST, for example Active or Cancelled. A cancelled GSTIN is still returned, with this status.
taxpayerTypestringoptionalTaxpayer type, for example Regular or Composition.
natureOfCoreBusinessstringoptionalNature of core business in short form: MFT manufacturer, SPO service provider and others, TRD:TRR trader (retailer), TRD:TWD trader (wholesale distributor).
registrationDatestringoptionalRegistration date under GST, as the source gives it (DD/MM/YYYY).
cancellationDatestringoptionalDate the registration was cancelled, as the source gives it. null when it has not been.
natureOfBusinessActivitiesarrayoptionalNature of business activities registered under GST.
principalPlaceAddressstringoptionalComplete address of the principal place of business.
ekycVerifiedstringoptionale-KYC verification status: Yes, No or NA.
aadhaarVerifiedstringoptionalAadhaar verification status: Yes, No or NA.
complianceRatingstringoptionalCompliance rating, when the GST network provides one: Yes, No or NA.
fieldVisitConductedstringoptionalWhether a field visit was conducted: Yes, No or NA.
stateJurisdictionstringoptionalState jurisdiction of the registration.
centralJurisdictionstringoptionalCentral jurisdiction of the registration.
eInvoiceStatusstringoptionalWhether e-invoicing is enabled for the business: Yes or No.
returnsarrayoptionalRecent return filings: financial year, tax period, mode and date of filing, return type, ARN and filing status.
goodsarrayoptionalGoods the business has registered, each with a description and an HSN code.
servicesarrayoptionalServices the business has registered, each with a description and a SAC code.
Error codes
Errors return a non-200 HTTP status and the same envelope, so your retry logic and your reconciliation agree.
400 INVALID_INPUTA field is missing or malformed. The details list each problem. Not charged.
401 INVALID_KEYThe key is missing, revoked, or not a key we issued.
402 WALLET_EMPTYYour available balance is below the price of this call. Top up and retry. Not charged.
403 PRODUCTION_NOT_ENABLEDA live key was used before live access was enabled for your account. Use a test key, or ask us to enable live access.
403 TEST_NOT_ENABLEDA test key was used before test (UAT) access was enabled for your account. Ask us to enable it.
403 API_NOT_ENABLEDThis check is switched off for your account, or is not available for live use yet.
403 IP_NOT_ALLOWEDThe key is restricted to certain IP addresses and this call came from another.
403 ACCOUNT_SUSPENDEDThe account is suspended. Contact support.
404 NO_DATAA valid request, but no record was found. Not charged.
404 ROUTE_NOT_FOUNDThere is no endpoint at that path.
405 METHOD_NOT_ALLOWEDUse the method shown in the Allow header.
409 IDEMPOTENCY_IN_PROGRESSA call with the same Idempotency-Key is still being processed. Retry after the delay in Retry-After.
413 PAYLOAD_TOO_LARGEThe request body is too large. Not charged.
415 UNSUPPORTED_MEDIA_TYPESend the request with Content-Type: application/json.
422 IDEMPOTENCY_KEY_REUSEDThis Idempotency-Key was already used with a different request body. Use a new key for a new request.
429 RATE_LIMITEDToo many requests or too many at once. Wait for the Retry-After delay.
500 INTERNAL_ERRORSomething went wrong on our side. Not charged. Quote the txnId if you contact support.
502 SOURCE_ERRORThe data source returned an error. Not charged.
503 SOURCE_DOWNThe data source is unavailable right now. Not charged. Retry after the delay in Retry-After.
504 SOURCE_TIMEOUTThe data source did not answer in time. Not charged.
{
"status": "error",
"error": {
"code": "NO_DATA",
"message": "No record found for the given input. Not charged."
},
"billing": {
"charged": false
},
"txnId": "txn_8c31ba91",
"livemode": true
}Billing
You are charged only on successful hits. Failed, no-data and error calls are free.
Every response carries billing.charged and your remaining billing.walletBalance. Per-hit pricing is set on your rate card; book a demo to get yours.
Related checks
- GST Advanced Verification API — Everything in GST Verification plus the aggregate turnover slab, gross total income, e-invoice mandate, members or directors and every business place.
- Udyam Verification API — Verify a Udyam registration number and return enterprise profile, address, industries and classification history.
- PAN to Udyam API — Look up the Udyam registration linked to a business PAN, with enterprise details and certificate PDF when held.
- Mobile to Udyam API — List Udyam registration numbers linked to a mobile number, without an OTP step.
All API documentation · OpenAPI specification · Docs as plain text
