API v1
Flow v1
OTP BASED UDYAM VERIFICATION TO FETCH OWNER DETAILS, COMPANY PARTICULARS AND FINANCIALS SUMMARY
MSME Financials Summary API is an advanced version of MSME Udyam Number Verification API. This API involves Udyam registered Mobile OTP based validation which is primarily used to fetch the following information about the MSME.
- Owner Details (Name, PAN number, gender, email, mobile etc)
- Bank account details
- Company financials summary (Annual turnover, exports, investments)
- ITR filing status
- Number of employees
- Official address and unit locations
- Other company details
Type | URL |
---|
POST | https://api.attestr.com/api/{version} /public/corpx/udyam/otp-gen |
Request Body Parameters
Type | Name | Description | Optional (default) | Min Version | Max Version |
---|
String | reg | UDYAM number to be verified. The allowed format is UDYAM-XX-XX-XXXXXXX | Required | v1 | |
String | mobile | 10 digit mobile number as registered with Udyam | Required | v1 | |
Type | Name | Value / Description | Optional | Min Version | Max Version |
---|
String | Content-Type | application/json | Required | v1 | |
String | Authorization | Basic {authToken} | Required | v1 | |
If you do not have the authentication token, please refer to Register App to generate one.
Sample Request Payload
HTTP status code 200
Key | Description | Type | Min Version | Max Version |
---|
valid | True | false indicating if the provided UDYAM number exists and provided mobile number is mapped to it. | Boolean | v1 | |
status | Status code indicating the outcome. Possible values are SUCCESS, INVALID | String | v1 | |
_id | Unique request Id generated. The same should be used as an input to the Validate OTP API below. | String | v1 | |
number | Unique request number useful for debugging or tracing. | String | v1 | |
OTP generated by Udyam are valid for only 10 minutes.
Sample Output if the provided Udyam and Mobile combination are valid.
Sample Output if the provided Udyam is either invalid or the udyam-mobile combination does not match the records as registered in the Govt. database.
Type | URL |
---|
POST | https://api.attestr.com/api/{version} /public/corpx/udyam/otp-verify |
Request Body Parameters
Type | Name | Description | Optional (default) | Min Version | Max Version |
---|
String | req | Unique request Id generated in Step 1 Generate OTP above. | Required | v1 | |
String | otp | 6 digit OTP as received on the registered mobile | Required | v1 | |
Type | Name | Value / Description | Optional | Min Version | Max Version |
---|
String | Content-Type | application/json | Required | v1 | |
String | Authorization | Basic {authToken} | Required | v1 | |
Sample Request Payload
Http Status 200
Key | Description | Type | Min Version | Max Version |
---|
valid | True | false indicating if the provided UDYAM number exists and is valid | Boolean | v1 | |
status | Status codes indicating the outcome of the operation. Possible values are SUCCESS, INVALID_OTP, ARCHIVED, MAX_ATTEMPTS_EXCEEDED, REQUEST_EXPIRED, INVALID_REQUEST. See status code definitions below for details. | String | v1 | |
reg | Udyam registration number | String | v1 | |
entity | MSME name as registered | String | v1 | |
type | Type of the entity. Proprietary, Partnership, Public Limited, Private Limited etc. | String | v1 | |
majorActivity | Major activity of the unit. Manufacturing or Services | String | v1 | |
gstin | True | false if the entity is GSTIN registered | Boolean | v1 | |
category | Micro, small or medium | String | v1 | |
incorporated | Date of incorporation of MSME | Date | v1 | |
commenced | Date of commencement of operations if commenced | Date | v1 | |
registered | Date of MSME registration | Date | v1 | |
ownerDetails | Owner details as registered. Refer to MSME Owner Object below. | MSME Owner Object | v1 | |
bankDetails | MSME Bank account details. Refer to MSME Bank Account Object below. | MSME Bank Account Object | v1 | |
employmentDetails | Number of employees and gender distribution. Refer to MSME Employment Details Object below. | MSMS Employment Details Object | v1 | |
financialDetails | Company financials. Refer to MSME Financials Object below. | Array<MSME Financials Object> | v1 | |
unitDetails | Plant/unit locations as registered. See MSME Location Object below for details. | Array[MSME Location Object] | v1 | |
officialAddress | The official registered address of the enterprise. See MSME Address Object below for the details. | MSME Address Object | v1 | |
nicCodes | List of National industrial classification (NIC) codes for the activities performed by this enterprise. See MSME NIC Code Object | Array[MSME NIC Code Object] | v1 | |
dic | Name of the district industry centre (DIC) where registered | String | v1 | |
dfo | Development and Facilitation office (DFO) location | String | v1 | |
Status Code Definitions
Status Code | Description |
---|
SUCCESS | OTP verified and data fetched successfully |
INVALID_OTP | Provided OTP is invalid |
MAX_ATTEMPTS_EXCEEDED | Maximum 3 invalid OTP attempts are allowed. |
REQUEST_EXPIRED | OTP generated are valid for 10 minutes only. Verify OTP requests made after 10 minutes return REQUEST_EXPIRED response. |
INVALID_REQUEST | If the OTP was already verified once and a repeat request is made. |
ARCHIVED | If the request Id was already archived. |
MSME Owner Object
Key | Description | Type | Min Version | Max Version |
---|
owner | Name of the MSME owner | String | v1 | |
gender | Gender of the owner | String | v1 | |
pan | Owner personal PAN number | String | v1 | |
mobile | Owner mobile number as registered | String | v1 | |
email | Owner email as registered | String | v1 | |
socialCategory | Social category (General, OBC etc) | String | v1 | |
speciallyAbled | Whether physically disability exists or not | Boolean | v1 | |
MSME Bank Details Object
Key | Description | Type | Min Version | Max Version |
---|
bank | Bank name | String | v1 | |
ifsc | IFSC code of the bank branch | String | v1 | |
accountNumber | Account number | String | v1 | |
MSME Employment Details Object
Key | Description | Type | Min Version | Max Version |
---|
male | Number of male employees employed with the MSME | String | v1 | |
female | Number of female employment | String | v1 | |
other | Other / Unknown gender employees | String | v1 | |
total | Total number of employees | String | v1 | |
MSME Financials Object
Key | Description | Type | Min Version | Max Version |
---|
fy | Financial year | String | v1 | |
classification | Enterprise category (Micro, small or medium) during the financial year | String | v1 | |
wdv | Written down value | String | v1 | |
exclusion | Exclusion of cost of R&D, industrial safety devices and pollution control | String | v1 | |
investment | Net investment in plant and machinery or equipment | String | v1 | |
grossTurnover | Gross annual turnover during the financial year | String | v1 | |
exportTurnover | Turnover from exports | String | v1 | |
netTurnover | Net annual turnover during the financial year | String | v1 | |
itrFiled | Whether ITR was filed for the respective financial year | Boolean | v1 | |
itrType | Type of ITR form submitted | String | v1 | |
MSME Location Object
Key | Description | Type | Min Version | Max Version |
---|
unitName | Name of the plant / unit | String | v1 | |
unitNumber | House, plot or unit number | String | v1 | |
building | Building name of the plan location | String | v1 | |
villageOrTown | Village or town name of the plant location | String | v1 | |
block | Block / area name of the plant location | String | v1 | |
road | Name of the road | String | v1 | |
city | City name of the plant location | String | v1 | |
zip | Pin code of the plant location | String | v1 | |
state | State where plant is located | String | v1 | |
district | District name where plant is located | String | v1 | |
MSME NIC Code Object
Key | Description | Type | Min Version | Max Version |
---|
digit2 | 2 Digit NIC code and description | String | v1 | |
digit4 | 4 Digit NIC code and description | String | v1 | |
digit5 | 5 Digit NIC code and description | String | v1 | |
activity | Type of activity | String | v1 | |
date | Effective date | Date | v1 | |
MSME Address Object
Key | Description | Type | Min Version | Max Version |
---|
unitNumber | House, plot or unit number | String | v1 | |
building | Name of the building | String | v1 | |
villageOrTown | Name of the village or town | String | v1 | |
block | Block or area name | String | v1 | |
road | Name of the road | String | v1 | |
city | Registered official address city | String | v1 | |
state | State name | String | v1 | |
district | Name of the district | String | v1 | |
zip | Pin code of the location | String | v1 | |
email | Email of the enterprise | String | v1 | |
mobile | Mobile of the enterprise | String | v1 | |
Sample Response
Sample response for valid UDYAM number
Sample response for invalid OTP
Sample response for OTP expired
Sample response for maximum 3 invalid OTP attempts exceeded
Parameter | Type | Description |
---|
code | Number | Unique error codes for different errors. Always available. |
message | String | Error message describing the error. Always Available. |
details | String | Detail error message. Available only for certain types of errors. |
HTTP Status | Error Code | Error Message |
---|
400 | 4001 | Malformed data or missing required parameter values |
400 | 4005 | Operation could not be performed due to low credits balance |
401 | 4016 | Invalid client authorization |
403 | 4031 | Unauthorized access |
403 | 4035 | Requested service is not provisioned for your account |
403 | 4039 | Client's IP address is not whitelisted |
403 | 4035 | Requested service is not provisioned for your account |
429 | 4291 | Maximum account rate limit exceeded |
429 | 4292 | Maximum API rate limit exceeded |
429 | 4293 | Maximum account daily limit exceeded |
429 | 4294 | Maximum API daily limit exceeded |
500 | 5001 | Request could not be processed |