Skip to content

Compliance Status (206AB)

Check whether a PAN holder falls under Section 206AB of the Income Tax Act, which mandates higher TDS rates for non-filers.

Endpoint

POST /vas-api/compliance-status-v1

Authentication

Requires OAuth2 Bearer token. Get your credentials →

Request

Headers

HeaderTypeRequiredDescription
AuthorizationstringYesBearer YOUR_ACCESS_TOKEN
Content-TypestringYesapplication/json

Body parameters

FieldTypeRequiredDescriptionExample
panstringYes10-character PAN numberABCDE1234F

Example request

bash
curl -X POST https://api.api4business.com/vas-api/compliance-status-v1 \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"pan": "ABCDE1234F"}'
python
import requests

response = requests.post(
  "https://api.api4business.com/vas-api/compliance-status-v1",
  headers={
    "Authorization": "Bearer YOUR_ACCESS_TOKEN",
    "Content-Type": "application/json"
  },
  json={"pan": "ABCDE1234F"}
)
print(response.json())
javascript
const response = await fetch(
  "https://api.api4business.com/vas-api/compliance-status-v1",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer YOUR_ACCESS_TOKEN",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ pan: "ABCDE1234F" })
  }
);
console.log(await response.json());
java
HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create("https://api.api4business.com/vas-api/compliance-status-v1"))
  .header("Authorization", "Bearer YOUR_ACCESS_TOKEN")
  .header("Content-Type", "application/json")
  .POST(HttpRequest.BodyPublishers.ofString("{\"pan\": \"ABCDE1234F\"}"))
  .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

Response

Success (200)

FieldTypeDescription
okbooleantrue if successful
responseCodeintegerHTTP status code
messagestringStatus message
body.panstringThe PAN that was checked
body.panNamestringMasked name on PAN
body.panStatusstringPAN operative status (Operative, Inoperative)
body.finYearstringFinancial year of the check
body.applicableFlagstringY if 206AB applies (higher TDS), N if compliant
body.panAadhaarLinkStatusstringPAN-Aadhaar link status (Linked, NA)
body.panAllotmentDateStringstringDate PAN was allotted

Example response

json
{
  "ok": true,
  "responseCode": 200,
  "message": "Transmission OK",
  "body": {
    "srNo": 4620,
    "pan": "ABCDE1234F",
    "panName": "SXXXXX EXXXXXXXXE PXXXXXE LXXXXXD",
    "finYear": "2024-25",
    "panAadhaarLinkStatus": "NA",
    "panStatus": "Operative",
    "applicableFlag": "N",
    "panAllotmentDateString": "22-05-2017",
    "panAllotmentDate": null,
    "lastSynced": null
  }
}

Response headers

HeaderDescription
x-request-idUnique request identifier — log this for debugging and support

Error responses

StatusError CodeMessageResolution
400400Invalid PANCheck PAN format (AAAAA9999A)
400400Invalid RequestVerify request body format
401401Invalid CredentialsRefresh your access token
429429Quota ViolationRate limit exceeded — retry with backoff
500500Internal Server ErrorRetry after delay
503503Service Not AvailableUpstream unavailable — retry

Released under the API4Business Terms of Service