> ## 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 GST

> Read the GST registration held under a PAN, in full.



## OpenAPI

````yaml /suite/api-reference/openapi.json post /pan/v1/to-gst.1
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-gst.1:
    post:
      tags:
        - Checks
      summary: PAN to GST
      description: Read the GST registration held under a PAN, in full.
      operationId: pan.to-gst.1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PanRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PanGstResponse'
              examples:
                verified:
                  summary: A registration under the PAN
                  value:
                    reasons: []
                    details:
                      gstin: 27AAACE1234F1Z6
                      legal_name: EXAMPLE TECHNOLOGIES PRIVATE LIMITED
                      trade_name: EXAMPLE TECH
                      registration_date: '2017-07-01'
                      cancellation_date: null
                      registration_status: Active
                      jurisdiction:
                        state: >-
                          STATE - MAHARASHTRA,ZONE - MUMBAI,DIVISION -
                          EAST,CHARGE - ANDHERI_EAST_701
                        central: >-
                          STATE - CBIC,ZONE - MUMBAI,COMMISSIONERATE - MUMBAI
                          EAST,DIVISION - DIVISION IV
                      primary_business_address:
                        street: >-
                          UNIT 402, 4TH FLOOR, TECH PARK, ANDHERI KURLA ROAD,
                          ANDHERI EAST
                        city: MUMBAI
                        state: Maharashtra
                        country: India
                        postal_code: '400093'
                      other_business_address: null
                      business_constitution: Private Limited Company
                      business_nature:
                        - Supplier of Services
                        - Office / Sale Office
                      taxpayer_type: Regular
                      e_invoice_mandated: true
                not_registered:
                  summary: No registration under the PAN
                  value:
                    reasons:
                      - code: gst-not-registered-for-pan
                        message: No GST 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.
    PanGstResponse:
      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/GstRegistrationDetail'
            - type: 'null'
          description: The registry's record of the business
      type: object
      title: PanGstResponse
      description: >-
        The GST registration held under a PAN; `details` is null when the
        registry holds none.


        A holder registered in more than one state holds one registration per
        state, and the one reported is the first the registry lists.
    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.
    GstRegistrationDetail:
      properties:
        gstin:
          type: string
          pattern: ^\d{2}[A-Z]{5}\d{4}[A-Z]{1}[A-Z\d]{1}Z[A-Z\d]{1}$
          title: Gstin
        legal_name:
          type: string
          title: Legal Name
        trade_name:
          type: string
          title: Trade Name
        registration_date:
          type: string
          format: date
          title: Registration Date
        cancellation_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Cancellation Date
        registration_status:
          $ref: '#/components/schemas/GstinStatus'
        jurisdiction:
          $ref: '#/components/schemas/Jurisdiction'
        primary_business_address:
          anyOf:
            - $ref: '#/components/schemas/Address'
            - type: 'null'
        other_business_address:
          anyOf:
            - $ref: '#/components/schemas/Address'
            - type: 'null'
        business_constitution:
          $ref: '#/components/schemas/BusinessConstitution'
        business_nature:
          items:
            $ref: '#/components/schemas/NatureOfBusinessActivities'
          type: array
          title: Business Nature
        taxpayer_type:
          $ref: '#/components/schemas/TaxpayerType'
        e_invoice_mandated:
          type: boolean
          title: E Invoice Mandated
      type: object
      required:
        - gstin
        - legal_name
        - trade_name
        - registration_date
        - cancellation_date
        - registration_status
        - jurisdiction
        - primary_business_address
        - other_business_address
        - business_constitution
        - business_nature
        - taxpayer_type
        - e_invoice_mandated
      title: GstRegistrationDetail
      description: >-
        Who holds a registration, where, under what form, and whether it still
        stands.


        What a source states about a registration in full, whether it was
        reached by its own GSTIN or listed among the ones a PAN holds. A search
        that answers with the GSTIN and its standing alone states
        ``GstRegistration`` instead, which is a different question and a
        different row.
    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.
    GstinStatus:
      type: string
      enum:
        - Active
        - Inactive
        - Cancelled
        - Active pending Verification
        - Suspended
        - Cancelled due to expiry of registration period
        - Cancelled on Request of Taxpayer
        - Cancelled on application of Taxpayer
        - Cancelled suo-moto
        - Not Migrated
        - Unknown
      title: GstinStatus
      description: The standing of a GST registration.
    Jurisdiction:
      properties:
        state:
          type: string
          title: State
        central:
          type: string
          title: Central
      type: object
      required:
        - state
        - central
      title: Jurisdiction
      description: GST jurisdiction information.
    Address:
      properties:
        street:
          type: string
          title: Street
        city:
          type: string
          title: City
        state:
          $ref: '#/components/schemas/State'
        country:
          $ref: '#/components/schemas/Country'
          default: India
        postal_code:
          type: string
          title: Postal Code
      type: object
      required:
        - street
        - city
        - state
        - postal_code
      title: Address
      description: A postal address.
    BusinessConstitution:
      type: string
      enum:
        - Sole Proprietorship
        - Partnership
        - Hindu Undivided Family
        - Private Limited Company
        - Public Limited Company
        - One Person Company
        - Limited Liability Partnership
        - Foreign Limited Liability Partnership
        - Foreign Company
        - Unlimited Company
        - Public Sector Undertaking
        - Society/ Club/ Trust/ AOP
        - Government Department
        - Local Authority
        - Statutory Body
        - Trust
        - Others
      title: BusinessConstitution
      description: >-
        The legal form a business is registered under, named as the registry
        names it.


        OTHERS carries a constitution the registry states and this list does not
        name, so a form outside it is still recorded as a registration rather
        than refused.
    NatureOfBusinessActivities:
      type: string
      enum:
        - Input Service Distributor (ISD)
        - Bonded Warehouse
        - SEZ
        - Leasing Business
        - Service Provision
        - Import
        - Works Contract
        - Others
        - Office / Sale Office
        - EOU / STP / EHTP
        - Factory / Manufacturing
        - Recipient of Goods or Services
        - Retail Business
        - Supplier of Services
        - Wholesale Business
        - Warehouse / Depot
        - Export
      title: NatureOfBusinessActivities
      description: >-
        A way a registration is registered to operate. Most registrations name
        more than one.
    TaxpayerType:
      type: string
      enum:
        - Regular
        - Tax Deductor
        - Tax Collector (Electronic Commerce Operator)
        - Composition
        - Exempted
        - SEZ Unit
        - Casual Taxable Person
        - Input Service Distributor (ISD)
        - Unregistered Applicant
        - SEZ Developer
        - Consulate or Embassy of Foreign Country
        - United Nation Body
        - Other Notified Person
        - Non-Resident Online Services Provider
        - Unknown
      title: TaxpayerType
      description: >-
        How a registration taxes the business it belongs to.


        UNKNOWN carries a type the registry states and this list does not name,
        so a registration under one is still recorded rather than refused.
    State:
      type: string
      enum:
        - Andaman and Nicobar Islands
        - Andhra Pradesh
        - Arunachal Pradesh
        - Assam
        - Bihar
        - Chandigarh
        - Chhattisgarh
        - Dadra and Nagar Haveli and Daman and Diu
        - Delhi
        - Goa
        - Gujarat
        - Haryana
        - Himachal Pradesh
        - Jammu and Kashmir
        - Jharkhand
        - Karnataka
        - Kerala
        - Lakshadweep
        - Ladakh
        - Madhya Pradesh
        - Maharashtra
        - Manipur
        - Meghalaya
        - Mizoram
        - Nagaland
        - Odisha
        - Puducherry
        - Punjab
        - Rajasthan
        - Sikkim
        - Tamil Nadu
        - Telangana
        - Tripura
        - Uttar Pradesh
        - Uttarakhand
        - West Bengal
      title: State
      description: A state.
    Country:
      type: string
      enum:
        - India
      title: Country
      description: A country.
  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.