> ## Documentation Index
> Fetch the complete documentation index at: https://docs.privue.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# PAN to Udyam

> Read the enterprise registered under a PAN from the MSME registry.



## OpenAPI

````yaml /suite/api-reference/openapi.json post /pan/v1/to-udyam.4
openapi: 3.1.0
info:
  title: Privue API Suite
  version: 1.0.0
  description: >-
    Business, tax, registry, employment and identity verification against
    official Indian sources, a person's own documents read through DigiLocker
    with their consent, and an EPF member's passbook read with the OTP they
    receive.


    **Authentication.** Every request takes your API key as a bearer token:
    `Authorization: Bearer <your-key>`.


    **One envelope.** Every check returns the reasons behind a refusal and the
    record the source held, and an empty `reasons` means the check passed.
    Branch on `reasons` rather than on the status code, because a call the
    source answered returns `200` whatever it concluded.


    **DigiLocker and EPFO passbook.** A DigiLocker endpoint returns `details`
    alone: what it read, as the source holds it. So do submitting an EPFO
    passbook OTP and reading the passbook; sending the OTP answers like a check.


    **Versioning.** Each endpoint is versioned on its own, directly in its path.
    A new version of one endpoint never moves another, so no release requires
    migrating every integration at once.
servers:
  - url: https://api.privue.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Checks
    description: One check on one subject, answered in the envelope every check shares.
  - name: DigiLocker
    description: >-
      A person's own documents, read through the consent they give at
      DigiLocker.
  - name: EPFO passbook
    description: >-
      A member's EPF passbook, read with the OTP sent to the mobile number on
      their account.
  - name: Orchestrated flows
    description: Every check on one business, asked and answered together in a single call.
  - name: Usage
    description: What you have called, and when.
paths:
  /pan/v1/to-udyam.4:
    post:
      tags:
        - Checks
      summary: PAN to Udyam
      description: Read the enterprise registered under a PAN from the MSME registry.
      operationId: pan.to-udyam.4
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PanRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PanUdyamResponse'
              examples:
                verified:
                  summary: An enterprise registered under the PAN
                  value:
                    reasons: []
                    details:
                      pan: AAACE1234F
                      enterprise_data:
                        udyam_reg_no: UDYAM-MH-19-0012345
                        major_activity: Services
                        enterprise_type: Small
                        organization_type: Private Limited Company
                        official_name: EXAMPLE TECHNOLOGIES PRIVATE LIMITED
                        official_mobile: 98*****210
                        official_email: compliance@example.com
                        official_address:
                          door_no: UNIT 402
                          building: TECH PARK
                          area: ANDHERI EAST
                          block: ANDHERI
                          street: ANDHERI KURLA ROAD
                          city: MUMBAI
                          district: MUMBAI SUBURBAN
                          state: MAHARASHTRA
                          pincode: '400093'
                        date_of_incorporation: '2015-04-01'
                        date_of_commencement: '2015-04-01'
                        date_of_udyam_registration: '2021-02-08'
                        district_industries_center: MUMBAI SUBURBAN
                        dfo: MUMBAI
                        social_category: General
                      industry:
                        - industry_code: >-
                            62 - Computer programming, consultancy and related
                            activities
                          sub_sector_code: 6201 - Computer programming activities
                          branch_sub_sector_code: >-
                            62011 - Writing, modifying, testing of computer
                            program to meet the needs of a particular client
                          activity_type: Services
                          date: '2021-02-08'
                      branch_address:
                        - name: EXAMPLE TECHNOLOGIES PRIVATE LIMITED
                          address:
                            door_no: UNIT 402
                            building: TECH PARK
                            area: ANDHERI EAST
                            block: ANDHERI
                            street: ANDHERI KURLA ROAD
                            city: MUMBAI
                            district: MUMBAI SUBURBAN
                            state: MAHARASHTRA
                            pincode: '400093'
                      pdf_url: null
                cancelled:
                  summary: A cancelled registration
                  value:
                    reasons:
                      - code: udyam-cancelled
                        message: This Udyam registration has been cancelled.
                    details: null
                not_registered:
                  summary: No enterprise registered under the PAN
                  value:
                    reasons:
                      - code: udyam-not-registered-for-pan
                        message: No Udyam registration is held under this PAN.
                    details: null
        '401':
          description: The API key is missing, malformed or not valid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        '403':
          description: The key is valid but is not entitled to this feature.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        '422':
          description: >-
            The request failed validation, or the source would not accept the
            details in it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        '429':
          description: >-
            The key is not cleared for this feature, or is sending too many
            requests. Nothing was called.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        '503':
          description: >-
            The source could not be reached, or authentication is temporarily
            unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        default:
          description: The request failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
components:
  schemas:
    PanRequest:
      properties:
        pan:
          type: string
          pattern: ^[A-Z]{3}[ABCFGHJLPT][A-Z][0-9]{4}[A-Z]$
          title: Pan
          description: Permanent Account Number to search under
      type: object
      required:
        - pan
      title: PanRequest
      description: The PAN to search the registries under.
    PanUdyamResponse:
      properties:
        reasons:
          items:
            $ref: '#/components/schemas/Reason'
          type: array
          title: Reasons
          description: >-
            Why the check did not pass, worst first, each a stable code with the
            text for it. Empty when it passed
        details:
          anyOf:
            - $ref: '#/components/schemas/MsmeInfo'
            - type: 'null'
          description: The registry's record of the enterprise
      type: object
      title: PanUdyamResponse
      description: >-
        The enterprise registered under a PAN in the MSME registry; `details` is
        null when it holds none.
    SuiteError:
      properties:
        code:
          type: integer
          title: Code
          description: HTTP status code of the response
        timestamp:
          type: integer
          title: Timestamp
          description: Unix millisecond timestamp of when the response was produced
        message:
          type: string
          title: Message
          description: What went wrong, in one sentence
      type: object
      required:
        - code
        - timestamp
        - message
      title: SuiteError
      description: Why a request failed.
    Reason:
      properties:
        code:
          $ref: '#/components/schemas/ReasonCode'
          description: Stable code to branch on
        message:
          type: string
          title: Message
          description: What the code means, in one sentence
      type: object
      required:
        - code
        - message
      title: Reason
      description: One machine-readable reason a check did not pass.
    MsmeInfo:
      properties:
        pan:
          anyOf:
            - type: string
              pattern: ^[A-Z]{3}[ABCFGHJLPT][A-Z][0-9]{4}[A-Z]$
            - type: 'null'
          title: Pan
        enterprise_data:
          $ref: '#/components/schemas/UdyamEnterpriseData'
        industry:
          items:
            $ref: '#/components/schemas/UdyamIndustry'
          type: array
          title: Industry
        branch_address:
          items:
            $ref: '#/components/schemas/UdyamBranch'
          type: array
          title: Branch Address
        pdf_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Pdf Url
      type: object
      required:
        - enterprise_data
        - industry
        - branch_address
      title: MsmeInfo
      description: MSME (Udyam) registration info, as a registry states it.
    ReasonCode:
      type: string
      enum:
        - cin-not-registered
        - gstin-not-registered
        - gstin-inactive
        - pan-inactive
        - pan-name-mismatch
        - pan-date-of-birth-mismatch
        - udyam-not-registered
        - udyam-not-registered-for-pan
        - udyam-cancelled
        - gst-not-registered-for-pan
        - company-not-registered-for-pan
        - epfo-member-not-found
        - uan-not-registered-for-pan
        - driving-licence-not-registered
        - driving-licence-details-mismatch
        - driving-licence-expired
        - uan-not-registered-for-mobile
        - passport-not-registered
        - passport-name-mismatch
        - source-unavailable
        - details-refused
        - bank-account-unverified
        - bank-account-unsettled
      title: ReasonCode
      description: >-
        Why a check did not pass, as the stable code a client branches on.


        Declared rather than written as strings so that every code a check can
        answer with reaches the published schema, and a client reads the whole
        set from the API reference.
    UdyamEnterpriseData:
      properties:
        udyam_reg_no:
          type: string
          title: Udyam Reg No
        major_activity:
          $ref: '#/components/schemas/UdyamActivity'
        enterprise_type:
          $ref: '#/components/schemas/EmptyToNone_UdyamEnterpriseType_'
        organization_type:
          $ref: '#/components/schemas/UdyamOrganizationType'
        official_name:
          type: string
          title: Official Name
        official_mobile:
          type: string
          title: Official Mobile
        official_email:
          type: string
          title: Official Email
        official_address:
          $ref: '#/components/schemas/UdyamAddress'
        date_of_incorporation:
          type: string
          format: date
          title: Date Of Incorporation
        date_of_commencement:
          $ref: '#/components/schemas/EmptyToNone_date_'
        date_of_udyam_registration:
          type: string
          format: date
          title: Date Of Udyam Registration
        district_industries_center:
          type: string
          title: District Industries Center
        dfo:
          type: string
          title: Dfo
        social_category:
          $ref: '#/components/schemas/UdyamSocialCategory'
      type: object
      required:
        - udyam_reg_no
        - major_activity
        - organization_type
        - official_name
        - official_mobile
        - official_email
        - official_address
        - date_of_incorporation
        - date_of_udyam_registration
        - district_industries_center
        - dfo
        - social_category
      title: UdyamEnterpriseData
      description: Core enterprise data for an Udyam registration.
    UdyamIndustry:
      properties:
        industry_code:
          type: string
          title: Industry Code
        sub_sector_code:
          type: string
          title: Sub Sector Code
        branch_sub_sector_code:
          type: string
          title: Branch Sub Sector Code
        activity_type:
          $ref: '#/components/schemas/UdyamActivity'
        date:
          $ref: '#/components/schemas/EmptyToNone_date_'
      type: object
      required:
        - industry_code
        - sub_sector_code
        - branch_sub_sector_code
        - activity_type
      title: UdyamIndustry
      description: Industry classification entry for an Udyam enterprise.
    UdyamBranch:
      properties:
        name:
          type: string
          title: Name
        address:
          $ref: '#/components/schemas/UdyamAddress'
      type: object
      required:
        - name
        - address
      title: UdyamBranch
      description: Udyam branch entry.
    UdyamActivity:
      type: string
      enum:
        - Manufacturing
        - Services
        - Trading
      title: UdyamActivity
      description: >-
        What an enterprise does, which the registry states for the enterprise
        and for each industry.
    EmptyToNone_UdyamEnterpriseType_:
      anyOf:
        - $ref: '#/components/schemas/UdyamEnterpriseType'
        - type: 'null'
    UdyamOrganizationType:
      type: string
      enum:
        - Proprietary
        - Hindu Undivided Family
        - Partnership
        - Co-Operative
        - Private Limited Company
        - Public Limited Company
        - Self Help Group
        - Limited Liability Partnership
        - Society
        - Trust
        - Others
      title: UdyamOrganizationType
      description: >-
        The legal form an enterprise is registered under.


        Udyam spells these its own way: a sole proprietorship registers as
        PROPRIETARY, and a form the registry does not name registers as OTHERS.
    UdyamAddress:
      properties:
        door_no:
          type: string
          title: Door No
        building:
          type: string
          title: Building
        area:
          type: string
          title: Area
        block:
          type: string
          title: Block
        street:
          type: string
          title: Street
        city:
          type: string
          title: City
        district:
          type: string
          title: District
        state:
          type: string
          title: State
        pincode:
          type: string
          title: Pincode
      type: object
      required:
        - door_no
        - building
        - area
        - block
        - street
        - city
        - district
        - state
        - pincode
      title: UdyamAddress
      description: Udyam registered address.
    EmptyToNone_date_:
      anyOf:
        - type: string
          format: date
        - type: 'null'
    UdyamSocialCategory:
      type: string
      enum:
        - General
        - SC
        - ST
        - OBC
      title: UdyamSocialCategory
      description: The social category the enterprise's proprietor is registered under.
    UdyamEnterpriseType:
      type: string
      enum:
        - Micro
        - Small
        - Medium
      title: UdyamEnterpriseType
      description: The size class an enterprise is registered as.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key, sent as `Authorization: Bearer <your-key>`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.