KYC
Verify GST
Run a real-time GSTIN verification for a customer_use sub-account using a 15-character GSTIN.
POST
/
api
/
v1
/
sub-accounts
/
{sub_auth_id}
/
kyc
/
verify-gst
Verify GST
curl --request POST \
--url https://api.vobiz.ai/api/v1/sub-accounts/{sub_auth_id}/kyc/verify-gst \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"gstin": "29AAJCN5983D1Z0"
}
'import requests
url = "https://api.vobiz.ai/api/v1/sub-accounts/{sub_auth_id}/kyc/verify-gst"
payload = { "gstin": "29AAJCN5983D1Z0" }
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({gstin: '29AAJCN5983D1Z0'})
};
fetch('https://api.vobiz.ai/api/v1/sub-accounts/{sub_auth_id}/kyc/verify-gst', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"verification_type": "gst",
"status": "verified",
"gstin": "29AAJCN5983D1Z0",
"legal_name": "ACME PRIVATE LIMITED"
}{
"api_id": "<string>",
"error": "<string>",
"message": "<string>"
}Runs a real GSTIN verification for the sub-account.
A
gstin must be a 15-character GSTIN. The result is persisted and the aggregated KYC status is recomputed.
Authenticate with your parent main account’s
X-Auth-ID and X-Auth-Token - the same credentials used everywhere else in the API.Request body
| Field | Type | Required | Description |
|---|---|---|---|
gstin | string | Yes | The GSTIN. Must be exactly 15 characters (e.g. 29AAJCN5983D1Z0). |
Response example
200 OK
{
"verification_type": "gst",
"status": "verified",
"gstin": "29AAJCN5983D1Z0",
"legal_name": "ACME PRIVATE LIMITED"
}
400 is returned when gstin is not exactly 15 characters.
Testing? Use the mock endpoint. The
gstin must still be 15 characters - TESTSUCCESS0001 is already 15, so pass it as-is.Authorizations
Your Vobiz account Auth ID
Your Vobiz account Auth Token
Path Parameters
The sub-account's Auth ID.
Example:
"SA_XXXXXX"
Body
application/json
Required string length:
15Example:
"29AAJCN5983D1Z0"
Response
Verification result
Outcome of a single KYC verification step.
Available options:
pan, gst, cin, aadhaar Available options:
verified, failed, pending Recomputed sub-account call-blocking state after this verification.
Present and true on responses from the test-mode endpoints.
Was this page helpful?
⌘I
Verify GST
curl --request POST \
--url https://api.vobiz.ai/api/v1/sub-accounts/{sub_auth_id}/kyc/verify-gst \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"gstin": "29AAJCN5983D1Z0"
}
'import requests
url = "https://api.vobiz.ai/api/v1/sub-accounts/{sub_auth_id}/kyc/verify-gst"
payload = { "gstin": "29AAJCN5983D1Z0" }
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({gstin: '29AAJCN5983D1Z0'})
};
fetch('https://api.vobiz.ai/api/v1/sub-accounts/{sub_auth_id}/kyc/verify-gst', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"verification_type": "gst",
"status": "verified",
"gstin": "29AAJCN5983D1Z0",
"legal_name": "ACME PRIVATE LIMITED"
}{
"api_id": "<string>",
"error": "<string>",
"message": "<string>"
}