GST Verification

4 endpoints · Core API

This API enables real-time validation of Goods and Services Tax Identification Numbers (GSTIN) issued by the Government of India. This API fetches GST registration details such as legal name, business address, registration status, and nature of business, helping ensure vendor legitimacy and tax compliance.

Benefits

  • Tax Compliance
    Ensures businesses are properly registered under GST law.
  • Vendor Trust
    Builds credibility by verifying GST numbers of suppliers or clients.
  • Audit Readiness
    Supports statutory audits by validating registration details.
  • Process Automation
    Simplifies GST verification during vendor onboarding or invoicing.

What you can do

Use this API to validate a GSTIN and retrieve details like business name, status, and jurisdiction, aiding in vendor verification, compliance checks, and financial reporting.

POST

/api/v1/GST/verify

#

Get GST details

docs.signcare.io/core/api/gst-tax/gst-verification/#post-api-v1-gst-verify

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • consent
    stringrequired
    Required. The end user's consent to this verification. Send `Y`.
    minLength 1default Y
  • consent_text
    stringrequired
    Required. The consent statement shown to the end user. Send the default text from the sample.
    minLength 1default I hear by declare my consent agreeme…
  • request_id
    stringoptional
    No description.
    nullable
  • gst_no
    stringrequired
    Required. 15-character GSTIN in uppercase: 2-digit state code, 10-character PAN (AAAAA9999A), one entity code (1-9 or A-Z), the letter Z, and one check character (for example 27ABCDE1234F1Z0).
    length 15pattern ^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z…default 27ABCDE1234F1Z0
Sample request body
{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "gst_no": "27ABCDE1234F1Z0" }

Responses

200OK
  • success
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 200
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • data
    objectoptional
    No description.
    4 fields
    • corporate_name
      stringoptional
      No description.
      nullable
    • gstin
      stringoptional
      No description.
      nullable
    • id
      stringoptional
      No description.
      nullable
    • details
      objectoptional
      No description.
      10 fields
      • lgnm
        stringoptional
        No description.
        nullable
      • trade_nam
        stringoptional
        No description.
        nullable
      • sts
        stringoptional
        No description.
        nullable
      • rgdt
        stringoptional
        No description.
        nullable
      • ctb
        stringoptional
        No description.
        nullable
      • dty
        stringoptional
        No description.
        nullable
      • stj_cd
        stringoptional
        No description.
        nullable
      • ctj_cd
        stringoptional
        No description.
        nullable
      • ctj
        stringoptional
        No description.
        nullable
      • pradr
        objectoptional
        No description.
        1 field
        • addr
          objectoptional
          No description.
          8 fields
          • bnm
            stringoptional
            No description.
            nullable
          • bno
            stringoptional
            No description.
            nullable
          • flno
            stringoptional
            No description.
            nullable
          • loc
            stringoptional
            No description.
            nullable
          • st
            stringoptional
            No description.
            nullable
          • dst
            stringoptional
            No description.
            nullable
          • stcd
            stringoptional
            No description.
            nullable
          • pncd
            stringoptional
            No description.
            nullable
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • isBillable
    booleanoptional
    Whether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{ "success": false, "statusCode": 200, "message": "XXXXX", "data": { "corporate_name": "string", "gstin": "string", "id": "string", "details": { "lgnm": "string", "trade_nam": "string", "sts": "string", "rgdt": "string", "ctb": "string", "dty": "string", "stj_cd": "string", "ctj_cd": "string", "ctj": "string", "pradr": { "addr": { "bnm": "string", "bno": "string", "flno": "string", "loc": "string", "st": "string", "dst": "string", "stcd": "string", "pncd": "string" } } } }, "messages": [ "string" ], "request_id": "string", "isBillable": false }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/GST/verify' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "gst_no": "27ABCDE1234F1Z0" }'
POST

/api/v1/GST/auth/otp

#

Request an OTP to start GST authentication.

docs.signcare.io/core/api/gst-tax/gst-verification/#post-api-v1-gst-auth-otp

Sends an OTP to the mobile number registered on the GST portal for the given username. Keep the txn value (in data) and the request_id from the response; you need them on the OTP verify call.

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • gstin
    stringrequired
    Required. 15-character GSTIN in uppercase (for example 27ABCDE1234F1Z0). The first 2 digits are the state code.
    minLength 1pattern ^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z…
  • username
    stringrequired
    Required. Username of the taxpayer's account on the GST portal.
    minLength 1
  • consent
    stringrequired
    Required. Consent flag for fetching the taxpayer's data. Send "Y".
    minLength 1default Y
  • consent_text
    stringrequired
    Required. Consent text shown to the taxpayer. Use the default text unless you have your own approved wording.
    minLength 1default I hear by declare my consent agreeme…
  • request_id
    stringoptional
    Optional. Ignored on this call: a new request id is always generated and returned in the response. On the OTP verify call, send this field only if you are not sending `otp` (see that endpoint).
    nullable
Sample request body
{ "gstin": "string", "username": "string", "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API" }

Responses

200OK
  • success
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 200
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • data
    objectoptional
    Response model returned after initiating GST authentication.
    1 field
    • txn
      stringoptional
      Transaction identifier for the authentication session.
      nullable
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • isBillable
    booleanoptional
    Whether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{ "success": false, "statusCode": 200, "message": "XXXXX", "data": { "txn": "string" }, "messages": [ "string" ], "request_id": "string", "isBillable": false }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/GST/auth/otp' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "gstin": "string", "username": "string", "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API" }'
POST

/api/v1/GST/otp/verify

#

Verify the GST authentication OTP and get the GST analysis report for a period range.

docs.signcare.io/core/api/gst-tax/gst-verification/#post-api-v1-gst-otp-verify

Call /auth/otp first and keep the txn value from its response.

  • Send transactionId (the txn value), gstin, username, startPeriod and endPeriod (MMYYYY) on every call.
  • Send exactly one of otp or request_id. Send otp the first time. To fetch another period range without a new OTP, send the request_id from the /auth/otp response instead (valid for 6 hours). Sending both, or neither, fails the request.
  • startPeriod must not be later than endPeriod.

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • gstin
    stringrequired
    Required. 15-character GSTIN in uppercase (for example 27ABCDE1234F1Z0). The first 2 digits are the state code.
    minLength 1pattern ^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z…
  • username
    stringrequired
    Required. Username of the taxpayer's account on the GST portal.
    minLength 1
  • consent
    stringrequired
    Required. Consent flag for fetching the taxpayer's data. Send "Y".
    minLength 1default Y
  • consent_text
    stringrequired
    Required. Consent text shown to the taxpayer. Use the default text unless you have your own approved wording.
    minLength 1default I hear by declare my consent agreeme…
  • request_id
    stringoptional
    Optional. Ignored on this call: a new request id is always generated and returned in the response. On the OTP verify call, send this field only if you are not sending `otp` (see that endpoint).
    nullable
  • otp
    stringconditional
    Conditional: required when `request_id` is not sent. OTP received on the mobile number registered on the GST portal. Do not send it together with `request_id`; sending both, or neither, fails the request.
    nullable
  • transactionId
    stringrequired
    Required. The `txn` value from the response of the OTP request call (`/auth/otp`). A missing value returns 400.
    nullable
  • startPeriod
    stringrequired
    Required. First return period to analyse, in MMYYYY format (for example 012025). Must not be later than `endPeriod`.
    minLength 1pattern ^(0[1-9]|1[0-2])[0-9]{4}$
  • endPeriod
    stringrequired
    Required. Last return period to analyse, in MMYYYY format (for example 022025). Must not be earlier than `startPeriod`.
    minLength 1pattern ^(0[1-9]|1[0-2])[0-9]{4}$
Sample request body
{ "gstin": "string", "username": "string", "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "transactionId": "string", "startPeriod": "string", "endPeriod": "string" }

Responses

200OK
  • success
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 200
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • data
    objectoptional
    Final calculated GST report containing business details, summaries, and analysis.
    7 fields
    • gstBusinessDetails
      objectoptional
      GST-registered business details extracted from the GST portal.
      9 fields
      • gstin
        stringoptional
        GST Identification Number (GSTIN) of the business.
        nullable
      • legalName
        stringoptional
        Legal name of the registered entity.
        nullable
      • tradeName
        stringoptional
        Trade name of the business.
        nullable
      • constitution
        stringoptional
        Constitutional type of the business (e.g., partnership, proprietorship).
        nullable
      • registrationDate
        string (date-time)optional
        Date when the business was registered under GST.
      • status
        stringoptional
        Current registration status (e.g., active, cancelled).
        nullable
      • natureOfBusiness
        stringoptional
        Nature of business activities conducted.
        nullable
      • filingFrequency
        stringoptional
        GST return filing frequency (e.g., monthly, quarterly).
        nullable
      • businessVintageMonths
        integer (int32)optional
        Number of months since the business was registered under GST.
    • monthlySummary
      array<object>optional
      Monthly summary of GST filings and turnover.
      nullable
      Each item: 12 fields
      • month
        stringoptional
        Month identifier for the summary.
        nullable
      • taxableTurnover
        number (double)optional
        Taxable turnover for the month.
      • zeroRatedSupplies
        number (double)optional
        Value of zero-rated supplies for the month.
      • exemptSupplies
        number (double)optional
        Value of exempt supplies for the month.
      • totalTurnover
        number (double)optional
        Total turnover for the month.
      • outputTaxLiability
        number (double)optional
        Output tax liability for the month.
      • itcAvailed
        number (double)optional
        ITC availed for the month.
      • itcUtilized
        number (double)optional
        ITC utilized against output tax for the month.
      • gstPaidInCash
        number (double)optional
        GST paid in cash for the month.
      • lateFee
        number (double)optional
        Late fee charged for the month.
      • returnFilingDate
        stringoptional
        Date when the return was filed for this month.
        nullable
      • filedOnTime
        stringoptional
        Indicates whether the return was filed on time.
        nullable
    • trendAnalysis
      array<object>optional
      Trend analysis of turnover and growth over the reporting period.
      nullable
      Each item: 6 fields
      • period
        stringoptional
        Reporting period identifier.
        nullable
      • avgMonthlyTurnover
        number (double)optional
        Average monthly turnover for the period.
      • growthPercentage
        number (double)optional
        Growth percentage compared to the previous period.
      • turnoverStability
        stringoptional
        Assessment of turnover stability (e.g., stable, volatile).
        nullable
      • seasonalityObserved
        stringoptional
        Indicates whether seasonal patterns were observed.
        nullable
      • remarks
        stringoptional
        Additional remarks on the trend analysis.
        nullable
    • itcAnalysis
      array<object>optional
      Input Tax Credit (ITC) analysis details.
      nullable
      Each item: 6 fields
      • period
        stringoptional
        Reporting period identifier.
        nullable
      • outputTax
        number (double)optional
        Output tax liability for the period.
      • itcUtilized
        number (double)optional
        Amount of ITC utilized for the period.
      • itcDependencyPercent
        number (double)optional
        Percentage of tax liability offset by ITC.
      • cashTaxRatioPercent
        number (double)optional
        Percentage of tax paid in cash versus total tax liability.
      • itcRiskLevel
        stringoptional
        Risk level associated with ITC utilization patterns.
        nullable
    • compliance
      array<object>optional
      GST filing compliance report results.
      nullable
      Each item: 6 fields
      • period
        stringoptional
        Reporting period identifier.
        nullable
      • returnFiled
        stringoptional
        Indicates whether the return was filed for this period.
        nullable
      • delayDays
        integer (int32)optional
        Number of days the filing was delayed beyond the due date.
      • gstr3aIssued
        stringoptional
        Indicates whether a GSTR-3A notice was issued for non-filing.
        nullable
      • outstandingGstDues
        number (double)optional
        Outstanding GST dues amount for the period.
      • complianceRating
        stringoptional
        Overall compliance rating for the period (e.g., good, poor).
        nullable
    • underwriting
      objectoptional
      Underwriting assessment summary derived from GST data analysis.
      8 fields
      • avgMonthlyTurnover
        number (double)optional
        Average monthly turnover across the reporting period.
      • annualizedTurnover
        number (double)optional
        Annualized turnover extrapolated from the reporting data.
      • gstComplianceGrade
        stringoptional
        GST compliance grade assigned to the business.
        nullable
      • businessStability
        stringoptional
        Assessment of overall business stability.
        nullable
      • gstRiskLevel
        stringoptional
        Risk level based on GST compliance and filing behavior.
        nullable
      • eligibleTurnoverCap
        number (double)optional
        Maximum eligible turnover cap for underwriting purposes.
      • keyRiskObservations
        stringoptional
        Key risk observations identified during analysis.
        nullable
      • underwriterRemarks
        stringoptional
        Additional remarks from the underwriting assessment.
        nullable
    • base64
      stringoptional
      Base64-encoded content of the generated report document.
      nullable
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • isBillable
    booleanoptional
    Whether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{ "success": false, "statusCode": 200, "message": "XXXXX", "data": { "gstBusinessDetails": { "gstin": "string", "legalName": "string", "tradeName": "string", "constitution": "string", "registrationDate": "2026-01-01T00:00:00Z", "status": "string", "natureOfBusiness": "string", "filingFrequency": "string", "businessVintageMonths": 0 }, "monthlySummary": [ { "month": "string", "taxableTurnover": 0, "zeroRatedSupplies": 0, "exemptSupplies": 0, "totalTurnover": 0, "outputTaxLiability": 0, "itcAvailed": 0, "itcUtilized": 0, "gstPaidInCash": 0, "lateFee": 0, "returnFilingDate": "string", "filedOnTime": "string" } ], "trendAnalysis": [ { "period": "string", "avgMonthlyTurnover": 0, "growthPercentage": 0, "turnoverStability": "string", "seasonalityObserved": "string", "remarks": "string" } ], "itcAnalysis": [ { "period": "string", "outputTax": 0, "itcUtilized": 0, "itcDependencyPercent": 0, "cashTaxRatioPercent": 0, "itcRiskLevel": "string" } ], "compliance": [ { "period": "string", "returnFiled": "string", "delayDays": 0, "gstr3aIssued": "string", "outstandingGstDues": 0, "complianceRating": "string" } ], "underwriting": { "avgMonthlyTurnover": 0, "annualizedTurnover": 0, "gstComplianceGrade": "string", "businessStability": "string", "gstRiskLevel": "string", "eligibleTurnoverCap": 0, "keyRiskObservations": "string", "underwriterRemarks": "string" }, "base64": "string" }, "messages": [ "string" ], "request_id": "string", "isBillable": false }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/GST/otp/verify' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "gstin": "string", "username": "string", "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "transactionId": "string", "startPeriod": "string", "endPeriod": "string" }'
POST

/api/v1/GST/verify/advance

#

Get GST Advance details

docs.signcare.io/core/api/gst-tax/gst-verification/#post-api-v1-gst-verify-advance

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • consent
    stringrequired
    Required. The end user's consent to this verification. Send `Y`.
    minLength 1default Y
  • consent_text
    stringrequired
    Required. The consent statement shown to the end user. Send the default text from the sample.
    minLength 1default I hear by declare my consent agreeme…
  • request_id
    stringoptional
    No description.
    nullable
  • gst_no
    stringrequired
    Required. 15-character GSTIN in uppercase: 2-digit state code, 10-character PAN (AAAAA9999A), one entity code (1-9 or A-Z), the letter Z, and one check character (for example 27ABCDE1234F1Z0).
    length 15pattern ^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z…default 27ABCDE1234F1Z0
  • financial_year
    stringoptional
    Optional. Financial year to fetch GST filing details for, in the format YYYY-YY (for example 2023-24). Defaults to 2023-24 when omitted.
    nullabledefault 2023-24
Sample request body
{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "gst_no": "27ABCDE1234F1Z0", "financial_year": "2023-24" }

Responses

200OK
  • success
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 200
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • data
    objectoptional
    No description.
    40 fields
    • aggregate_turn_over
      stringoptional
      No description.
      nullable
    • aggregate_turn_over_details
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • pan_filed_to
        stringoptional
        No description.
        nullable
      • pan_est_to
        stringoptional
        No description.
        nullable
      • gstin_est_to
        stringoptional
        No description.
        nullable
      • gstin_filed_to
        stringoptional
        No description.
        nullable
    • authorized_signatory
      array<string>optional
      No description.
      nullable
    • business_constitution
      stringoptional
      No description.
      nullable
    • business_details
      array<object>optional
      No description.
      nullable
      Each item: 2 fields
      • saccd
        stringoptional
        No description.
        nullable
      • sdes
        stringoptional
        No description.
        nullable
    • business_nature
      array<string>optional
      No description.
      nullable
    • can_flag
      stringoptional
      No description.
      nullable
    • central_jurisdiction
      stringoptional
      No description.
      nullable
    • central_jurisdiction_code
      stringoptional
      No description.
      nullable
    • compliance_rating
      stringoptional
      No description.
      nullable
    • contact
      objectoptional
      No description.
      2 fields
      • email
        anyoptional
        No description.
        nullable
      • mobile_no
        anyoptional
        No description.
        nullable
    • current_registration_status
      stringoptional
      No description.
      nullable
    • filing_status
      array<array>optional
      No description.
      nullable
    • gstin
      stringoptional
      No description.
      nullable
    • is_field_visit_conducted
      stringoptional
      No description.
      nullable
    • last_updated_date
      stringoptional
      No description.
      nullable
    • legal_name
      stringoptional
      No description.
      nullable
    • mandate_e_invoice
      stringoptional
      No description.
      nullable
    • other_business_address
      array<object>optional
      No description.
      nullable
      Each item: 6 fields
      • business_nature
        stringoptional
        No description.
        nullable
      • detailed_address
        stringoptional
        No description.
        nullable
      • email
        stringoptional
        No description.
        nullable
      • last_updated_date
        stringoptional
        No description.
        nullable
      • mobile_no
        anyoptional
        No description.
        nullable
      • registered_address
        stringoptional
        No description.
        nullable
    • ppr
      stringoptional
      No description.
      nullable
    • primary_business_address
      objectoptional
      No description.
      6 fields
      • business_nature
        stringoptional
        No description.
        nullable
      • detailed_address
        stringoptional
        No description.
        nullable
      • email
        stringoptional
        No description.
        nullable
      • last_updated_date
        stringoptional
        No description.
        nullable
      • mobile_no
        anyoptional
        No description.
        nullable
      • registered_address
        stringoptional
        No description.
        nullable
    • register_cancellation_date
      stringoptional
      No description.
      nullable
    • register_date
      stringoptional
      No description.
      nullable
    • state_jurisdiction
      stringoptional
      No description.
      nullable
    • state_jurisdiction_code
      stringoptional
      No description.
      nullable
    • tax_payer_type
      stringoptional
      No description.
      nullable
    • trade_name
      stringoptional
      No description.
      nullable
    • gross_total_income
      stringoptional
      No description.
      nullable
    • gross_total_income_financial_year
      stringoptional
      No description.
      nullable
    • percent_tax_payment_in_cash
      stringoptional
      No description.
      nullable
    • compliance_details
      booleanoptional
      No description.
    • ekyc_verified
      stringoptional
      No description.
      nullable
    • percent_tax_payment_in_cash_year
      stringoptional
      No description.
      nullable
    • aggregate_turn_over_year
      stringoptional
      No description.
      nullable
    • einvoice_status
      stringoptional
      No description.
      nullable
    • nature_core_business
      stringoptional
      No description.
      nullable
    • aadhaar_validated_date
      stringoptional
      No description.
      nullable
    • aadhaar_verified
      stringoptional
      No description.
      nullable
    • hsn_details
      array<any>optional
      No description.
      nullable
    • add_trade_name
      array<string>optional
      No description.
      nullable
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • isBillable
    booleanoptional
    Whether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{ "success": false, "statusCode": 200, "message": "XXXXX", "data": { "aggregate_turn_over": "string", "aggregate_turn_over_details": [ { "pan_filed_to": "string", "pan_est_to": "string", "gstin_est_to": "string", "gstin_filed_to": "string" } ], "authorized_signatory": [ "string" ], "business_constitution": "string", "business_details": [ { "saccd": "string", "sdes": "string" } ], "business_nature": [ "string" ], "can_flag": "string", "central_jurisdiction": "string", "central_jurisdiction_code": "string", "compliance_rating": "string", "contact": { "email": null, "mobile_no": null }, "current_registration_status": "string", "filing_status": [ [ { "fy": "string", "taxp": "string", "mof": "string", "dof": "string", "rtntype": "string", "arn": "string", "status": "string" } ] ], "gstin": "string", "is_field_visit_conducted": "string", "last_updated_date": "string", "legal_name": "string", "mandate_e_invoice": "string", "other_business_address": [ { "business_nature": "string", "detailed_address": "string", "email": "string", "last_updated_date": "string", "mobile_no": null, "registered_address": "string" } ], "ppr": "string", "primary_business_address": { "business_nature": "string", "detailed_address": "string", "email": "string", "last_updated_date": "string", "mobile_no": null, "registered_address": "string" }, "register_cancellation_date": "string", "register_date": "string", "state_jurisdiction": "string", "state_jurisdiction_code": "string", "tax_payer_type": "string", "trade_name": "string", "gross_total_income": "string", "gross_total_income_financial_year": "string", "percent_tax_payment_in_cash": "string", "compliance_details": false, "ekyc_verified": "string", "percent_tax_payment_in_cash_year": "string", "aggregate_turn_over_year": "string", "einvoice_status": "string", "nature_core_business": "string", "aadhaar_validated_date": "string", "aadhaar_verified": "string", "hsn_details": [], "add_trade_name": [ "string" ] }, "messages": [ "string" ], "request_id": "string", "isBillable": false }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/GST/verify/advance' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "gst_no": "27ABCDE1234F1Z0", "financial_year": "2023-24" }'