PAN to Udyam Details API
This document highlights the PAN to Udyam Details API details.
API Description
Objective
The PAN to Udyam Details API retrieves the Udyam Aadhaar (MSME) registration details associated with a Permanent Account Number (PAN)
| Input | Output |
|---|---|
| The 10-digit PAN of the user and consent | The Udyam Aadhaar registration details corresponding to the PAN including enterprise information, addresses, and classification history. A complete list of details returned by the API is provided under the Success Response Details section |
Udyam Registration is a system for registering Micro, Small, and Medium Enterprises (MSMEs) in India. The "Udyam" or "MSME" registration number is a unique 19-digit identification number given to entities registered under this system.
API URL
https://ind-thomas.hyperverge.co/v1/panToUdyamDetails
API Endpoint
panToUdyamDetails
Overview
The API is RESTful and uses standard HTTP verbs and status codes. The responses are in JSON format and you should upload all images and files as form-data through a POST request.
Authentication
You need a unique pair of application ID ( appId ) and application key (appKey) from HyperVerge to verify your identity for accessing the API.
| Parameter | Mandatory or Optional | Description | Allowed Values |
|---|---|---|---|
| content-type | Mandatory | This parameter defines the media type for the request payload | application/json |
| appId | Mandatory | The application identifier shared by HyperVerge. You can find the details in the dashboard's credentials tab. | This should be a unique value. |
| appKey | Mandatory | The application key shared by HyperVerge. You can find the details in the dashboard's credentials tab. | This should be a unique value. |
| transactionId | Mandatory | A unique identifier for tracking a user journey | This should be both unique and easily associated with the user's journey in your application(s) |
Input
The following table outlines the parameters required in the API's request body:
| Parameter | Description | Mandatory or Optional | Allowed Values | Default Value |
|---|---|---|---|---|
pan | The PAN of the user, which is a unique identifier for taxpayers in India | Mandatory | Format: 'CCCCCDDDDC' format, where 'C' represents a character and 'D' represents a digit | Not Applicable |
consent | The user's consent for accessing Udyam details | Mandatory | yes, no | Not Applicable |
Request
The following code snippet demonstrates a standard curl request for the API:
curl --location --request POST 'https://ind-thomas.hyperverge.co/v1/panToUdyamDetails' \
--header 'Content-Type: application/json' \
--header 'appId: <Enter_the_HyperVerge_appId>' \
--header 'appKey: <Enter_the_HyperVerge_appKey>' \
--header 'transactionId: <Enter_the_HyperVerge_transactionID>' \
--data '{
"pan": "<Enter_the_PAN>",
"consent": "<Enter_yes_or_no>"
}'
Success Response
The following code snippet demonstrates a success response from the API:
{
"status": "success",
"statusCode": 200,
"result": {
"pan": "<Masked_PAN_Number>",
"udyamList": [
{
"udyamNumber": "<Udyam_Registration_Number>",
"enterpriseName": "<Enterprise_Name>",
"udyamDetails": {
"udyamRegNo": "<Udyam_Registration_Number>",
"dateOfReg": "<Registration_Date>",
"districtIndustriesCenter": "<DIC_Name>",
"msmeDfo": "<MSME_DFO>",
"profile": {
"enterpriseName": "<Enterprise_Name>",
"enterpriseType": "<Enterprise_Type>",
"majorActivity": "<Major_Activity>",
"organizationType": "<Organization_Type>",
"socialCategory": "<Social_Category>",
"dateOfIncorporation": "<Incorporation_Date>",
"dateOfCommencement": "<Commencement_Date>"
},
"branchDetails": [
{
"name": "<Branch_Name>",
"flat": "<Flat_Number>",
"premises": "<Premises_Name>",
"village": "<Village_Name>",
"block": "<Block_Name>",
"road": "<Road_Name>",
"city": "<City_Name>",
"pincode": "<Pincode>",
"state": "<State_Name>",
"district": "<District_Name>"
}
],
"officialAddress": {
"flat": "<Flat_Number>",
"premises": "<Premises_Name>",
"village": "<Village_Name>",
"block": "<Block_Name>",
"road": "<Road_Name>",
"city": "<City_Name>",
"state": "<State_Name>",
"pincode": "<Pincode>",
"district": "<District_Name>",
"email": "<Email_Address>",
"mobile": "<Mobile_Number>"
},
"enterpriseTypeHistory": [
{
"classificationYear": "<Classification_Year>",
"enterpriseType": "<Enterprise_Type>",
"classificationDate": "<Classification_Date>"
}
]
}
}
]
},
"metaData": {
"requestId": "<Unique_Request_Identifier>",
"transactionId": "<Unique_Transaction_Identifier>"
}
}
Success Response Details
| Parameter | Type | Description |
|---|---|---|
| status | string | The status of the request |
| statusCode | integer | The HTTP status code of the response |
| pan | string | The PAN for which Udyam details are fetched |
| udyamNumber | string | The unique Udyam Registration Number |
| enterpriseName | string | The name of the registered MSME enterprise |
| udyamRegNo | string | The registration number of the MSME enterprise |
| dateOfReg | string | The date on which the Udyam was registered |
| districtIndustriesCenter | string | The name of the DIC (District Industries Center) handling the registration |
| msmeDfo | string | The MSME District Facilitation Office jurisdiction |
| enterpriseType | string | The classification of the enterprise |
| majorActivity | string | The major business activity of the enterprise |
| organizationType | string | The legal structure of the enterprise |
| socialCategory | string | The social category of the owner |
| dateOfIncorporation | string | The company incorporation date |
| dateOfCommencement | string | The business commencement date |
| branchDetails | array | The list of branch office addresses |
| officialAddress | object | The registered office address details |
| enterpriseTypeHistory | array | The history of MSME classification with year and type |
| requestId | string | The unique identifier for the request |
| transactionId | string | The transaction ID associated with the request |
Failure Response
The following is a failure response from the API:
{
"status": "failure",
"statusCode": 404,
"error": "No record found",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
Error Responses
The following are the error responses from the API:
- Invalid PAN
- Consent Missing
- PAN Missing
- Missing/Invalid Credentials
- No Record Found
- Inactive PAN
- Internal Server Error
- External Source Downtime
{
"status": "failure",
"statusCode": 400,
"error": "Invalid pan",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "Input Validation Error: consent is not one of enum values: yes,no",
"statusCode": 400,
"status": "failure"
}
{
"status": "failure",
"statusCode": 400,
"error": "pan is missing",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "Missing/Invalid credentials",
"statusCode": 401,
"status": "failure"
}
{
"status": "failure",
"statusCode": 404,
"error": "No record found",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": 422,
"error": "Inactive PAN",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "Internal server error",
"statusCode": 500,
"status": "failure"
}
{
"message": "External source downtime",
"statusCode": 503,
"status": "failure"
}
Failure and Error Response Details
failure status, with a relevant status code and error message. The following table lists all error responses: | Status Code | Error Message | Error Description |
|---|---|---|
| 400 | Invalid PAN | The PAN format is invalid or incorrect |
| 400 | consent is missing | The consent value is not one of the allowed enum values: yes, no |
| 400 | Consent is missing or invalid | The request is missing the required consent parameter or has an invalid value |
| 400 | PAN is missing | The PAN field is empty in the request body |
| 400 | PAN undefined | The PAN field is not defined in the request body |
| 400 | Consent undefined | The consent field is not defined in the request body |
| 401 | Missing/Invalid credentials | The request is either missing the mandatory appId and appKey combination or has invalid values |
| 404 | No record found | No Udyam details found for the given PAN |
| 422 | Inactive PAN | The provided PAN is inactive |
| 500 | Internal server error | Please check the request headers or contact the HyperVerge team for resolution |
| 503 | External source downtime | Please contact the HyperVerge team for resolution |