OTP Based MSME Verification API

API v1 Flow v1

OTP BASED UDYAM VERIFICATION TO FETCH OWNER DETAILS, COMPANY PARTICULARS AND FINANCIALS SUMMARY

Description

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.

  1. Owner Details (Name, PAN number, gender, email, mobile etc)
  2. Bank account details
  3. Company financials summary (Annual turnover, exports, investments)
  4. ITR filing status
  5. Number of employees
  6. Official address and unit locations
  7. Other company details

API Details

Step 1 Generate OTP

Request

TypeURL
POSThttps://api.attestr.com/api/{version}/public/corpx/udyam/otp-gen

Request Body Parameters

TypeNameDescriptionOptional (default)Min VersionMax Version
StringregUDYAM number to be verified. The allowed format is UDYAM-XX-XX-XXXXXXXRequiredv1
Stringmobile10 digit mobile number as registered with UdyamRequiredv1

Request Header Parameters

TypeNameValue / DescriptionOptionalMin VersionMax Version
StringContent-Typeapplication/jsonRequiredv1
StringAuthorizationBasic {authToken}Requiredv1

If you do not have the authentication token, please refer to Register App to generate one.

Sample Request Payload

JSON
Copy

Response

HTTP status code 200

KeyDescriptionTypeMin VersionMax Version
validTrue | false indicating if the provided UDYAM number exists and provided mobile number is mapped to it.Booleanv1
statusStatus code indicating the outcome. Possible values are SUCCESS, INVALIDStringv1
_idUnique request Id generated. The same should be used as an input to the Validate OTP API below.Stringv1
numberUnique request number useful for debugging or tracing.Stringv1

OTP generated by Udyam are valid for only 10 minutes.

Sample Output if the provided Udyam and Mobile combination are valid.

Javascript
Copy

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.

Javascript
Copy

Step 2 Validate OTP

Request

TypeURL
POSThttps://api.attestr.com/api/{version}/public/corpx/udyam/otp-verify

Request Body Parameters

TypeNameDescriptionOptional (default)Min VersionMax Version
StringreqUnique request Id generated in Step 1 Generate OTP above.Requiredv1
Stringotp6 digit OTP as received on the registered mobileRequiredv1

Request Header Parameters

TypeNameValue / DescriptionOptionalMin VersionMax Version
StringContent-Typeapplication/jsonRequiredv1
StringAuthorizationBasic {authToken}Requiredv1

Sample Request Payload

JSON
Copy

Response

Http Status 200

KeyDescriptionTypeMin VersionMax Version
validTrue | false indicating if the provided UDYAM number exists and is validBooleanv1
statusStatus 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.Stringv1
regUdyam registration numberStringv1
entityMSME name as registeredStringv1
typeType of the entity. Proprietary, Partnership, Public Limited, Private Limited etc.Stringv1
majorActivityMajor activity of the unit. Manufacturing or ServicesStringv1
gstinTrue | false if the entity is GSTIN registeredBooleanv1
categoryMicro, small or mediumStringv1
incorporatedDate of incorporation of MSMEDatev1
commencedDate of commencement of operations if commencedDatev1
registeredDate of MSME registrationDatev1
ownerDetailsOwner details as registered. Refer to MSME Owner Object below.MSME Owner Objectv1
bankDetailsMSME Bank account details. Refer to MSME Bank Account Object below.MSME Bank Account Objectv1
employmentDetailsNumber of employees and gender distribution. Refer to MSME Employment Details Object below.MSMS Employment Details Objectv1
financialDetailsCompany financials. Refer to MSME Financials Object below.Array<MSME Financials Object>v1
unitDetailsPlant/unit locations as registered. See MSME Location Object below for details.Array[MSME Location Object]v1
officialAddressThe official registered address of the enterprise. See MSME Address Object below for the details.MSME Address Objectv1
nicCodesList of National industrial classification (NIC) codes for the activities performed by this enterprise. See MSME NIC Code ObjectArray[MSME NIC Code Object]v1
dicName of the district industry centre (DIC) where registeredStringv1
dfoDevelopment and Facilitation office (DFO) locationStringv1

Status Code Definitions

Status CodeDescription
SUCCESSOTP verified and data fetched successfully
INVALID_OTPProvided OTP is invalid
MAX_ATTEMPTS_EXCEEDEDMaximum 3 invalid OTP attempts are allowed.
REQUEST_EXPIREDOTP generated are valid for 10 minutes only. Verify OTP requests made after 10 minutes return REQUEST_EXPIRED response.
INVALID_REQUESTIf the OTP was already verified once and a repeat request is made.
ARCHIVEDIf the request Id was already archived.

MSME Owner Object

KeyDescriptionTypeMin VersionMax Version
ownerName of the MSME ownerStringv1
genderGender of the ownerStringv1
panOwner personal PAN numberStringv1
mobileOwner mobile number as registeredStringv1
emailOwner email as registeredStringv1
socialCategorySocial category (General, OBC etc)Stringv1
speciallyAbledWhether physically disability exists or notBooleanv1

MSME Bank Details Object

KeyDescriptionTypeMin VersionMax Version
bankBank nameStringv1
ifscIFSC code of the bank branchStringv1
accountNumberAccount numberStringv1

MSME Employment Details Object

KeyDescriptionTypeMin VersionMax Version
maleNumber of male employees employed with the MSMEStringv1
femaleNumber of female employmentStringv1
otherOther / Unknown gender employeesStringv1
totalTotal number of employeesStringv1

MSME Financials Object

KeyDescriptionTypeMin VersionMax Version
fyFinancial yearStringv1
classificationEnterprise category (Micro, small or medium) during the financial yearStringv1
wdvWritten down valueStringv1
exclusionExclusion of cost of R&D, industrial safety devices and pollution controlStringv1
investmentNet investment in plant and machinery or equipmentStringv1
grossTurnoverGross annual turnover during the financial yearStringv1
exportTurnoverTurnover from exportsStringv1
netTurnoverNet annual turnover during the financial yearStringv1
itrFiledWhether ITR was filed for the respective financial yearBooleanv1
itrTypeType of ITR form submittedStringv1

MSME Location Object

KeyDescriptionTypeMin VersionMax Version
unitNameName of the plant / unitStringv1
unitNumberHouse, plot or unit numberStringv1
buildingBuilding name of the plan locationStringv1
villageOrTownVillage or town name of the plant locationStringv1
blockBlock / area name of the plant locationStringv1
roadName of the roadStringv1
cityCity name of the plant locationStringv1
zipPin code of the plant locationStringv1
stateState where plant is locatedStringv1
districtDistrict name where plant is locatedStringv1

MSME NIC Code Object

KeyDescriptionTypeMin VersionMax Version
digit22 Digit NIC code and descriptionStringv1
digit44 Digit NIC code and descriptionStringv1
digit55 Digit NIC code and descriptionStringv1
activityType of activityStringv1
dateEffective dateDatev1

MSME Address Object

KeyDescriptionTypeMin VersionMax Version
unitNumberHouse, plot or unit numberStringv1
buildingName of the buildingStringv1
villageOrTownName of the village or townStringv1
blockBlock or area nameStringv1
roadName of the roadStringv1
cityRegistered official address cityStringv1
stateState nameStringv1
districtName of the districtStringv1
zipPin code of the locationStringv1
emailEmail of the enterpriseStringv1
mobileMobile of the enterpriseStringv1

Sample Response

Sample response for valid UDYAM number

JSON
Copy

Sample response for invalid OTP

JSON
Copy

Sample response for OTP expired

JSON
Copy

Sample response for maximum 3 invalid OTP attempts exceeded

JSON
Copy

Error Response

ParameterTypeDescription
codeNumberUnique error codes for different errors. Always available.
messageStringError message describing the error. Always Available.
detailsStringDetail error message. Available only for certain types of errors.

Error Codes

HTTP StatusError CodeError Message
4004001Malformed data or missing required parameter values
4004005Operation could not be performed due to low credits balance
4014016Invalid client authorization
4034031Unauthorized access
4034035Requested service is not provisioned for your account
4034039Client's IP address is not whitelisted
4034035Requested service is not provisioned for your account
4294291Maximum account rate limit exceeded
4294292Maximum API rate limit exceeded
4294293Maximum account daily limit exceeded
4294294Maximum API daily limit exceeded
5005001Request could not be processed

Sample Error Response

JSON
Copy
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard