Udyam Registration Check (OTP Based)

2 endpoints · Core API

Udyam Verification is a pivotal process for Micro, Small, and Medium Enterprises (MSMEs), involving registration with the Ministry of MSMEs to obtain a unique Udyam Registration Number or Udyam Aadhaar Number.

Advantages of Udyam Verification

Access to loans without requiring collateral: MSMEs can secure financial assistance from banks without the need for collateral. Financial incentives and benefits: This verification offers significant subsidies for patent registration, reduced electricity bills, and reimbursement for ISO certification expenses. Expanded business prospects: MSMEs with Udyam Verification gain preferential access to government tenders, facilitating business expansion.

What you can do

Authenticate Udyam registration via mobile OTP and access details of the registered Udyam entity, ensuring streamlined verification processes and facilitating easy access to essential information.

POST

/api/v1/UdyamRegistration/otp

#

Udyam Registration OTP

docs.signcare.io/core/api/business-registration/udyam-registration-check-otp-based/#post-api-v1-udyamregistration-otp

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • consent
    stringrequired
    Required. The end user's consent to this verification. Send `Y`.
    minLength 1default Y
  • consent_text
    stringrequired
    Required. The consent statement shown to the end user. Send the default text from the sample.
    minLength 1default I hear by declare my consent agreeme…
  • request_id
    stringoptional
    Optional. Your own id to correlate this call in your logs. A unique id is generated if you leave it out.
    nullable
  • udyamRegistrationNo
    stringrequired
    The Udyam registration number in the format UDYAM-XX-00-0000000.
    minLength 1pattern ^UDYAM-[A-Z]{2}-\d{2}-\d{7}$default UDYAM-MP-23-0007772
  • mobile
    stringrequired
    The 10-digit Indian mobile number registered with the Udyam account for OTP delivery.
    length 10pattern ^[6-9]\d{9}$default 9890019894
  • isPDFRequired
    stringrequired
    Indicates whether a PDF copy of the registration is required ('Y' or 'N').
    minLength 1pattern ^[YyNn]{1}$default Y
  • getEnterpriseDetails
    stringrequired
    Indicates whether enterprise details should be fetched ('Y' or 'N').
    minLength 1pattern ^[YyNn]{1}$default Y
Sample request body
{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "udyamRegistrationNo": "UDYAM-MP-23-0007772", "mobile": "9890019894", "isPDFRequired": "Y", "getEnterpriseDetails": "Y" }

Responses

200OK
  • success
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 200
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • data
    objectoptional
    Response model for the Udyam registration OTP request.
    4 fields
    • request_id
      stringoptional
      Unique identifier for the OTP request to be used in subsequent verification.
      nullable
    • result
      anyoptional
      The result payload of the OTP request.
      nullable
    • status
      stringoptional
      Status of the OTP request (e.g., success or failure).
      nullable
    • message
      stringoptional
      Descriptive message about the OTP request outcome.
      nullable
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • isBillable
    booleanoptional
    Whether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{ "success": false, "statusCode": 200, "message": "XXXXX", "data": { "request_id": "string", "result": null, "status": "string", "message": "string" }, "messages": [ "string" ], "request_id": "string", "isBillable": false }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/UdyamRegistration/otp' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "udyamRegistrationNo": "UDYAM-MP-23-0007772", "mobile": "9890019894", "isPDFRequired": "Y", "getEnterpriseDetails": "Y" }'
POST

/api/v1/UdyamRegistration/details

#

Udyam Registration OTP Based Verify

docs.signcare.io/core/api/business-registration/udyam-registration-check-otp-based/#post-api-v1-udyamregistration-details

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • requestId
    stringrequired
    The request ID received from the OTP initiation step.
    minLength 1
  • otp
    stringrequired
    The OTP received on the registered mobile number.
    minLength 1default 1060
Sample request body
{ "requestId": "string", "otp": "1060" }

Responses

200OK
  • success
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 200
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • data
    objectoptional
    Response model containing verified Udyam registration details.
    2 fields
    • result
      anyoptional
      The result payload containing Udyam registration details.
      nullable
    • statusMessage
      stringoptional
      Status message describing the verification outcome.
      nullable
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • isBillable
    booleanoptional
    Whether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{ "success": false, "statusCode": 200, "message": "XXXXX", "data": { "result": null, "statusMessage": "string" }, "messages": [ "string" ], "request_id": "string", "isBillable": false }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/UdyamRegistration/details' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "requestId": "string", "otp": "1060" }'