GSTIN Advanced
GSTIN Verification, Details and E-Invoice Applicability
This API Documentation is now available in Clear Identity Demo hub here
GST Advanced API is used to get extensive details for a particular GSTIN.
When requesting data for a given GSTIN, basic data points are given always and some other data points are optional i.e., the user can choose to request the data points related to those fields by passing a "true" or "false" flag against these fields in the request.
Basic data points include legal name, trade name, constitution name, jurisdiction, aggregative turnover, ekyc status, einvoice mandatory status etc.
Optional Details include:
HSN details: All HSN codes associated with the GSTIN
Branch details: Address and other details of all branches
Filing details: All GST filing details - monthly for the current year and yearly for the previous years
Liability paid details: %liability paid by month in current year and yearly for the previous years.
If the users want any of the details of the above 4 options fields, they have to pass flag as "true" against needed fields and "false" against not needed fields. For more details, refer to sample request below.
Users should test this API with the auth token provided, however if running on a sandbox environment replace the api.clear.in in the URL with api-sandbox.clear.in
🚧 This API includes 5 flags, as per details in the documentation below. When running the API, Standard details flag is set to "true" by default and the other flags can be set to "true" or "false" as per need. One credit is deducted for every flag that is set to "true". E-Invoice applicability and Turnover Range is part of Standard Details flag (True by default).
🚧 Every flag set as true consumes one extra credit. So if you require fields from basic details section only, then rest of the flags need to be set to false. If you require Basic details and HSN details, the rest of the 3 flags need to be set to false.
Request Method
Post
Request URL
{baseUrl}/clearIdentity/v2/gstins/advanced-details
Sandbox: https://api-sandbox.clear.in/clearIdentity/v2/gstins/advanced-details
Production: https://api.clear.in/clearIdentity/v2/gstins/advanced-details
Request Headers
Parameter | Data Type | Field Validations | Description |
x-cleartax-auth-token | String | NA | Mandatory. User auth token |
Content-Type | String | Value should always be "application/json" | Mandatory. Content type of the request body. |
x-clear-is-response-status-200 | Boolean | true, false | Optional. Flag for legacy ERPs to receive response with HTTP Status as 200 always. By default this will be set as false. |
Request Path Params
There are no path parameters for this API.
Request Query Params
There are no query parameters for this API.
Request Body
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
gstin | String | MaxLength: 15
Regex: Valid GSTIN as per government. | Mandatory. The GSTIN for which details are requested. |
hsnDetails | boolean | true or false | Optional. To be passed as “true” if the details of all hsn codes linked to the GSTIN are needed. Default value is false. |
branchDetails | boolean | true or false | Optional. To be passed as “true” if the details of all branches linked to the GSTIN are needed. Default value is false. |
filingDetails | boolean | true or false | Optional. To be passed as “true” if the filing details if the GSTIN are needed. Default value is false. |
liabilityPaidDetails | boolean | true or false | Optional. To be passed as “true” if the details of all hsn codes linked to the GSTIN are needed.Default value is false. |
Sample Request
Response Status Codes
HTTP Status Code | Description |
---|---|
200 | "OK" Details for the requested GSTIN are found in the government records. Response data is passed for every field as available. Note: Some data points may not exist in the records, in which case, the field responses will be blank but the HTTP status code will still be 200. |
400 | "Bad Request" Input data is incorrect. Example: Provided GSTIN is not a valid 15 character GSTIN. |
401 | Authorisation Failed |
404 | "Not Found" GSTIN is not valid or not found in the government records. |
402 | Payment Required |
429 | Too many requests |
500 | "Internal Server Error" There is a server error either from the government side or our side. Need to try it after some time.
|
Response Schema
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
requestId | String | Max Length: 32 | Mandatory. Unique identifier generated by Clear to trace any request. Users can share this while raising support cases. If there is no value, this will be an empty string. |
basicDetails | Object | N/A | Mandatory. Basic details object. |
hsnDetails | Object<HsnDetails> | N/A | Optional. HSN details object. If the hsnDetails flag was false in the request, this will be null. |
branchDetails | Object<BranchDetails> | N/A | Optional. Branch details object. If the branchDetails flag was false in the request, this will be null. |
filingDetails | Object<FilingDetails> | N/A | Optional. Filing details object. If the filingDetails flag was false in the request, this will be null. |
liabilityPaidDetails | Object<LiabilityPaidDetails> | N/A | Optional. Liability paid details object. If the liabilityPaidDetails flag was false in the request, this will be null. |
Basic Details Object
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
natureOfCoreBusinessActivity | String | N/A | Nature of core business activity. It can have values such as: "SPO": Service provider and Others "TRD:TRR": Trader-Retailer "MFT": Manufacturer "TRD:TWD": Trader-Wholesaler/Distributor |
aadhaarVerified | String | Yes or No | Indicates if Aadhaar is verified: Yes if verified, No if not verified |
legalBusinessName
| String | MaxLength: 255 | The legal name of the entity that is registered at the time of incorporation of the business |
gstin | String | MaxLength: 255 | The Goods and Services Tax Identification Number |
ekycFlag | String | Yes/No/Not Applicable | This field for the applicability of ekyc. Its responses are in “No”,“Yes”, and “Not Applicable”. - If the response is “No," then ekyc is applicable but not done. - If the response is “Yes” then ekyc is applicable and done. - If the response is “Not Applicable” then ekyc is not applicable for the provided GST
|
compositionRate | String | MaxLength: 255 | composition rate is applicable to any taxpayer whose turnover is less than 1.5cr. And the rate is 1% to 6% depending on their type of business. (Turnover Can be Revised by GST Dept time to time) When value is NA, it is not applicable |
constitutionOfBusiness | String | MaxLength: 255 | Types of company/business. Some possible values include: Hindu Undivided Family Any other body notified by committee AOP C and F Artificial Juridical Person CENTRAL AUTONOMOUS BODY Foreign Company Local Authority Statutory Body Co. U/Sec 25 of companies Act,1956 Limited by shares not for profit Branch of Foreign Company Branch Office of Foreign Company ASSOCIATION OF PERSONS Body of Individuals Proprietorship Limited Liability Partnership Partnership Private Limited Company Public Limited Company |
tradeName | String | MaxLength: 255 | The trade name of the entity: A trade name is also called a fictitious or a business name and is different from the legal and registered name of the business. |
centralJurisdiction | String | MaxLength: 255 | Central Jurisdiction |
percentTaxInCash | String | MaxLength: 255 | Composition taxpayers pays the tax in cash: It’s the amount of tax paid in cash out of the total outward liability collected |
aggreTurnOverFY | String | MaxLength: 255 | Fiscal Year of Aggregate Turnover reported |
stateJurisdiction | String | MaxLength: 255 | State Jurisdiction |
registrationType | String | MaxLength: 255 | Types of Taxpayers. Possible values include Regular, Exempted, Composition |
aggreTurnOver | String | MaxLength: 255 | Aggregate Turnover Slab |
cancellationDate | String | DD/MM/YYYY | The cancellation date (if applicable) |
businessNature | Array | MaxLength: 255 | The nature of the business (Office/Sale Office, Others, Warehouse/Depot, Supplier of Services etc) |
registrationDate | String | DD/MM/YYYY | Registration date of business in GST |
registrationStatus | String | Active, Inactive, Cancelled on application of Taxpayer | Status of Registration |
percentTaxInCashFY | String | N/A | Fiscal Year in which the amount of tax paid was in cash out of the total outward liability collected. |
isEInvoiceOpted | String | Yes, No | Whether the GSTIN has opted for einvoice. Yes - GSTIN has opted for e-invoice No- GSTIN has not opted for e-invoice |
memberDetails | Array<String> | N/A | Names of the Directors/Proprietors/Promoters. If the value is null, then this will return an empty list. |
isEInvoiceMandated | String | Yes, No | Is einvoice mandatory? Yes for Taxpayers with annual turnover greater than the amount announced by government (>10Cr before August 1st 2023, > 5Cr from 1st August 2023) No for Taxpayers with annual turnover less than the amount announced by government |
HsnDetails Object
Parameter | Data Type | Field Constraints | Description |
---|---|---|---|
goods | Array <HsnType> | NA | List of all the HSN codes of goods the company deals in. |
services | Array <HsnType> | NA | List of all the HSN codes of services the company deals in. |
HsnDescription Object
Parameter | Data Type | Field Constraints | Description |
---|---|---|---|
hsnCode | String | MaxLength: 8 | The HSN code for a service or product |
hsnDescription | String | Max length: 255 | The description of the corresponding HSN code |
BranchDetails Object
Parameter | Data Type | Field Constraints | Description |
---|---|---|---|
principalAddress | Object <Address> | N/A | The permanent address details |
additionalAddresses | Array <Address> | N/A | Addresses of additional branches or locations |
Address Object
Parameter | Data Type | Field Constraints | Description |
---|---|---|---|
address | String | Max length: 255 | The address of a branch or additional location |
natureOfBusiness | String | Max length: 255 | The type of business deals conducted at the address |
FilingDetails Object
Parameter | Data Type | Field Constraints | Description |
---|---|---|---|
filingStatus | List<List<FilingStatus>> | N/A | List of list of filing status details |
FilingStatus Object
Parameter | Data Type | Field Constraints | Description |
---|---|---|---|
finYear | String | YYYY-YYYY | Financial year |
returnPeriod | String | “Month Name” in case of monthly filing, “Annual” in case of annual filing, -“Month Name - Month Name” in case of quarterly filing | The filing period . Eg: January, Annual, Jan-Mar |
modeOfFiling | String | Max length: 255 | Mode of filing. Example: ONLINE,OFFLINE |
dateOfFiling | String | DD/MM/YYYY | Date of filing |
returnType | string | GSTR1, GSTR3B, GSTR9 etc. | The type of return (e.g., GSTR1, GSTR3B, GSTR9) |
LiabilityPaidDetails Object
Parameter | Data Type | Field Constraints | Description |
---|---|---|---|
currFinYear | String | YYYY | The current financial year. If the current financial year is April 2023 - March 2024, then the value passed here would be 2023. |
prevFinYear | String | YYYY | The previous financial year. If the previous financial year was April 2022 - March 2023, then the value passed here would be 2022. |
prevTotalPct | Integer | N/A | The total percentage for the previous financial year. |
currDetails | Array<PeriodDetails> | N/A | An array of objects containing details for the current year in two fields: “period” and “liabPaidPct” |
prevDetails | Array<PeriodDetails> | N/A | An array of objects containing details for the previous year in two fields: “period” and “liabPaidPct” |
PeriodDetails Object
Parameter | Data Type | Field Constraints | Description |
---|---|---|---|
period | String | Max Length: 255 | The period associated with the liability payment percentage. Eg: Jun-22 |
liabPaidPct | Number | N/A | The liability payment percentage for the specified period. |
Sample Responses (Success)
Valid GSTIN and all 4 flags passed as true
Request Body
Metered (Charged or Credits Consumed for the API call) : Yes.
HTTP Status Code: 200
Response Body:
Valid GSTIN and all 4 flags passed as false
Request Body
Metered(Charged or Credits Consumed for the API call) : Yes.
HTTP Status Code: 200
Response Body:
Valid GSTIN and all 1 flag passed as true
Request Body:
Metered (Charged or Credits Consumed for the API call) : Yes.
HTTP Status Code: 200
Response Body:
Sample Response (Error)
Based on the value set for the request parameter x-clear-is-response-status-200 the HTTP Status Code and response schema will defer. For more information, refer to legacy support.
Invalid GSTIN - All flags false
Request Body:
Metered(Charged or Credits Consumed for the API call) : Yes.
HTTP Status Code: 404
Response Body:
Invalid GSTIN - 1 flag true
Request Body:
Metered: Yes.
HTTP Status Code: 404
Response Body:
Invalid GSTIN - 1 flag syntax incorrect
Request Body:
Metered(Charged or Credits Consumed for the API call) : No.
HTTP Status Code: 400
Response Body:
Incorrect GSTIN format - All flags false
Request Body:
Metered: No.
HTTP Status Code: 400
Response Body:
Incorrect Authtoken
Request Body:
Metered: No
HTTP Status Code: 401
Response Body:
Verification service is down
Metered: No
HTTP Status Code: 500
Response Body:
Usage increased
Metered: No
HTTP Status Code: 402
Response Body:
Too many requests
Metered: No
HTTP Status Code: 429
Response Body:
API Validations
If the syntax of any of the 4 input flags (HSN details, Branch details, filing details and liability details) is incorrect (different from "true" or "false") the api will not be called.
API Constraints
The constraints for this API are -
Licensing and metering against resource : GSTIN_ADVANCED - If the licensed threshold is exceeded, then the API will return error 406.
Authentication: The request needs to have a valid access token.
Credit limit: As per the plan purchased
Last updated