Skip to content

PAN to MSME

Find the MSME (Udyam) registration linked to a PAN. Returns the Udyam Registration Number and enterprise name.

Endpoint

POST /vas-api/v1/pan-to-msme

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/v1/pan-to-msme \
  -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/v1/pan-to-msme",
  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/v1/pan-to-msme",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer YOUR_ACCESS_TOKEN",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ pan: "ABCDE1234F" })
  }
);
console.log(await response.json());
java
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create("https://api.api4business.com/vas-api/v1/pan-to-msme"))
  .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 queried
body.udyamNumberstringUdyam Registration Number (e.g., UDYAM-MH-18-0089888)
body.enterpriseNamestringRegistered enterprise name

Example response

json
{
  "ok": true,
  "responseCode": 200,
  "message": "Transmission OK",
  "body": {
    "pan": "ABCDE1234F",
    "udyamNumber": "UDYAM-MH-18-0089888",
    "enterpriseName": "M/S SAMPLE SOLUTIONS PRIVATE LIMITED"
  }
}

Response headers

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

Error responses

StatusError CodeMessageResolution
400400Invalid PANCheck PAN is 10 characters (5 alpha + 4 digits + 1 alpha)
400400Invalid RequestVerify JSON body contains pan field
401401Invalid CredentialsAccess token expired — request a new one
429429Quota ViolationRate limit exceeded — retry with backoff
500500Internal Server ErrorRetry after delay
503503Service Not AvailableUdyam portal temporarily down — retry

No MSME found?

If the PAN is not linked to an MSME registration, the body may be empty. This doesn't mean the PAN is invalid — it means no Udyam registration exists for it. Use PAN Verification to validate the PAN itself.

Released under the API4Business Terms of Service