Indian GSTIN check
The Indian GSTIN check validates a Goods and Services Tax Identification Number (GSTIN) against the IRP database and returns the registration status and e-waybill eligibility of the taxpayer.
Overview
The Indian GST framework requires taxpayers to send invoice data to the Invoice Registry Portal (IRP) in JSON format. Invoice data is rejected by the IRP if it contains an invalid GSTIN. Performing a GSTIN check before invoice submission helps detect invalid or inactive GSTINs before the IRP processes the document, reducing failed submissions.
GSTINs are 15-digit codes with a defined structure: the first two digits are the state code (Indian Census 2011), the next 10 digits are the taxpayer's Permanent Account Number (PAN), the thirteenth digit is the registration sequence number within the state, the fourteenth digit is always Z, and the fifteenth digit is a check digit. Because GSTIN is state-based, a company active in multiple states holds multiple GSTINs.
Only Indian entities authenticated by the GST portal can consume the GSTIN check service.
Onboarding
The onboarding process for the Indian GSTIN check shares the same steps as onboarding for the Indian invoice clearance flow. If the hub has already integrated with TrustWeaver for Indian invoice clearance, these steps can be skipped.
The onboarding process consists of the following steps:
-
Exchange TLS credentials. Exchange client TLS credentials with Sovos so the hub can authenticate to TrustWeaver over HTTPS.
-
Create a hub area. Request a hub archive area. Contact Sovos Support to initiate this.
-
Register with the GST portal. The supplier registers with the GST portal at the Indian tax authority, receives a GSTIN, and obtains API credentials (username and password).
-
Register section. Register the company name by calling
RegisterSectionwith the company name inRegisterSectionRequest.Name. -
Register branch. Register one or more GSTIN branches under the section by calling
RegisterBranchwith the following required parameters:-
SectionName: The registered section name. -
CountryCode: Set toIN. -
TaxId: The GSTIN. -
RegistrationMode: Set toCreateNew. -
BranchInfo.BackendCredential.UsernameTokenCredential.UserName: The username issued by the GST portal. -
BranchInfo.BackendCredential.UsernameTokenCredential.Password: The password issued by the GST portal.
-
Process flow
The Indian GSTIN check process follows five steps:
-
Taxable person transmits GSTIN. The taxable person sends the GSTIN to be validated to the hub.
-
TaxIdCheck call. The hub sends a
TaxIdCheckrequest to the Storage Service with the following required parameters:-
TransactionId: A unique identifier for the transaction. -
RequestTarget.CountryCode: Set toIN. -
RequestTarget.TaxId: The GSTIN to validate. -
Requester.Name: The section name registered during onboarding. -
Requester.CountryCode: Set toIN. -
Requester.TaxId: The GSTIN of the registered branch making the request. -
TaxIdCheckTargetSystem: Set toIndiaGSTIN.
Example request:
CODE<TaxIdCheckRequest xmlns:tac="http://www.trustweaver.com/trustarchive/common/v1" xmlns="http://www.trustweaver.com/trustarchive/storage/v1"> <RequestTarget> <CountryCode>IN</CountryCode> <TaxId>08ACQPN4602B0Z2</TaxId> </RequestTarget> <Requester> <Name>SectionIN</Name> <CountryCode>IN</CountryCode> <TaxId>123456</TaxId> </Requester> <TaxIdCheckTargetSystem>IndiaGSTIN</TaxIdCheckTargetSystem> </TaxIdCheckRequest> -
-
Sovos transmits request. Sovos forwards the request to the GST Suvidha Provider (GSP), which forwards it to the IRP.
-
IRP verifies GSTIN. The IRP verifies the GSTIN against the GST database.
-
IRP returns result. The IRP returns the result to the GSP, which routes it back through Sovos to the hub. The
Statuselement returnsValidonly whenCompanyInfo.TraderValidityisACT(Active). Any other value returnsInvalid.The
CompanyInfo.TraderValidityelement returns one of the following values:-
ACT -
Active: The GSTIN is valid and the taxpayer is active.
-
CNL -
Cancelled: The GSTIN registration has been cancelled.
-
INA -
Inactive: The GSTIN is not currently active.
-
PRO -
Provisional: The registration is provisional.
The
CompanyInfo.TraderEWBStatuselement indicates e-waybill eligibility:-
U -
Unblocked: The taxpayer can generate e-waybills.
-
B -
Blocked: The taxpayer cannot generate e-waybills because tax returns have not been filed for the last two months.
Example response:
CODE<TaxIdCheckResult xmlns="http://www.trustweaver.com/trustarchive/storage/v1"> <Status>Valid</Status> <CompanyInfo> <TraderTaxID>08ACQPN4602B0Z2</TraderTaxID> <TraderValidity>ACT</TraderValidity> <TraderName>TradeNameFromResponseDefinition</TraderName> <TraderLegalName>LegalNameFromResponseDefinition</TraderLegalName> <TraderEWBStatus>U</TraderEWBStatus> </CompanyInfo> </TaxIdCheckResult> -
Archiving check evidence
Sovos recommends archiving the evidence of GSTIN checks. You can store the response payload as an attachment to the corresponding invoice, or store the response payload as the main document in TrustWeaver. Archiving evidence with TrustWeaver must be contracted separately.
