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

# DigiLocker e-Aadhaar

> Read a person's e-Aadhaar through the DigiLocker consent they gave.

The e-Aadhaar is read fresh on every call, and each call is charged.



## OpenAPI

````yaml /suite/api-reference/openapi.json post /digilocker/v1/e-aadhaar.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:
  /digilocker/v1/e-aadhaar.1:
    post:
      tags:
        - DigiLocker
      summary: DigiLocker e-Aadhaar
      description: |-
        Read a person's e-Aadhaar through the DigiLocker consent they gave.

        The e-Aadhaar is read fresh on every call, and each call is charged.
      operationId: digilocker.e-aadhaar.1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EAadhaarRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EAadhaarResponse'
              examples:
                e_aadhaar:
                  summary: An e-Aadhaar, with its PDF
                  value:
                    details:
                      name: ASHA RAO
                      uid: xxxxxxxx1234
                      dob: 12/03/1990
                      gender: FEMALE
                      x509_data:
                        subject_name: DS NATIONAL E-GOVERNANCE DIVISION 1
                        certificate: >-
                          MIIFUjCCBDqgAwIBAgIHAJnuuyguVTANBgkqhkiG9w0BAQsFADB3...
                        details:
                          version: 2
                          subject:
                            country_name: IN
                            organization_name: NATIONAL E-GOVERNANCE DIVISION
                            organizational_unit_name: NATIONAL E-GOVERNANCE DIVISION
                            postal_code: '110003'
                            state_or_province_name: DELHI
                            common_name: DS NATIONAL E-GOVERNANCE DIVISION 1
                          issuer:
                            country_name: IN
                            organization_name: Sify Technologies Limited
                            organizational_unit_name: Sub-CA
                            postal_code: null
                            state_or_province_name: null
                            common_name: SafeScrypt sub-CA for Document Signer 2022
                          serial: 99EEBB282E55
                          not_before: '2025-08-22T08:21:46.000Z'
                          not_after: '2028-02-11T07:57:28.000Z'
                          subject_hash: 9c1af880
                          signature_algorithm: sha256WithRSAEncryption
                          finger_print: >-
                            06:78:03:C2:09:4C:18:79:92:82:31:14:65:35:86:04:FF:31:2A:FC
                          public_key:
                            algorithm: sha256WithRSAEncryption
                          alt_names: []
                          extensions:
                            authority_key_identifier: null
                            subject_key_identifier: null
                            authority_information_access: null
                            crl_distribution_points: null
                            certificate_policies: null
                            basic_constraints: CA:FALSE
                            extended_key_usage: null
                            subject_alternative_name: null
                            key_usage: Digital Signature, Non Repudiation
                        valid_aadhaar_dsc: 'yes'
                      address: >-
                        FLAT 12, LAKE VIEW APARTMENTS, 100 FEET ROAD,
                        INDIRANAGAR, BENGALURU, KARNATAKA, 560038
                      photo: https://files.example.com/digilocker/7f3c9a51e2.jpeg
                      split_address:
                        district:
                          - BENGALURU URBAN
                        state:
                          - - KARNATAKA
                            - KA
                        city:
                          - BENGALURU
                        pincode: '560038'
                        country:
                          - IN
                          - IND
                          - INDIA
                        address_line: FLAT 12, LAKE VIEW APARTMENTS, 100 FEET ROAD
                        land_mark: INDIRANAGAR
                      signature_data: null
                      xml_file_link: https://files.example.com/digilocker/7f3c9a51e3.xml
                      aadhaar_jpeg: null
                      aadhaar_pdf: https://files.example.com/digilocker/7f3c9a51e4.pdf
        '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'
        '404':
          description: >-
            No consent link you created in the last 30 days carries this
            `request_id`.
          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:
    EAadhaarRequest:
      properties:
        request_id:
          type: string
          minLength: 1
          title: Request Id
          description: The `request_id` the consent link was created with
          examples:
            - 652523835a9f9000112b1ee6
        extra_digital_certificate_params:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Extra Digital Certificate Params
          description: >-
            Whether the XML signature over the e-Aadhaar comes back as
            `signature_data`
        get_base64_files:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Get Base64 Files
          description: Whether files come back as base64 in place of a download link
        get_e_aadhaar_pdf:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Get E Aadhaar Pdf
          description: Whether the e-Aadhaar PDF comes back
        get_e_aadhaar_jpeg:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Get E Aadhaar Jpeg
          description: Whether the e-Aadhaar JPEG comes back
      additionalProperties: false
      type: object
      required:
        - request_id
      title: EAadhaarRequest
      description: >-
        The consent to read the e-Aadhaar through, and what to read along with
        it.
    EAadhaarResponse:
      properties:
        details:
          $ref: '#/components/schemas/EAadhaar'
          description: The e-Aadhaar as DigiLocker holds it
      type: object
      required:
        - details
      title: EAadhaarResponse
      description: The person's e-Aadhaar, read through the consent they gave.
    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.
    EAadhaar:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        uid:
          anyOf:
            - type: string
            - type: 'null'
          title: Uid
          description: The Aadhaar number, with all but its last four digits masked
        dob:
          anyOf:
            - type: string
            - type: 'null'
          title: Dob
          description: Date of birth, as DD/MM/YYYY
        gender:
          anyOf:
            - type: string
            - type: 'null'
          title: Gender
        x509_data:
          anyOf:
            - $ref: '#/components/schemas/X509Data'
            - type: 'null'
        address:
          anyOf:
            - type: string
            - type: 'null'
          title: Address
        photo:
          anyOf:
            - type: string
            - type: 'null'
          title: Photo
          description: The photograph on the e-Aadhaar
        split_address:
          anyOf:
            - $ref: '#/components/schemas/SplitAddress'
            - type: 'null'
        signature_data:
          anyOf:
            - $ref: '#/components/schemas/SignatureData'
            - type: 'null'
          description: Present where `extra_digital_certificate_params` was asked for
        xml_file_link:
          anyOf:
            - type: string
            - type: 'null'
          title: Xml File Link
          description: The signed e-Aadhaar XML
        aadhaar_jpeg:
          anyOf:
            - type: string
            - type: 'null'
          title: Aadhaar Jpeg
          description: Present where `get_e_aadhaar_jpeg` was asked for
        aadhaar_pdf:
          anyOf:
            - type: string
            - type: 'null'
          title: Aadhaar Pdf
          description: Present where `get_e_aadhaar_pdf` was asked for
      type: object
      title: EAadhaar
      description: >-
        The person's e-Aadhaar, as DigiLocker holds it.


        Files come back as download links, or as base64 where `get_base64_files`
        was asked for.
    X509Data:
      properties:
        subject_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Subject Name
        certificate:
          anyOf:
            - type: string
            - type: 'null'
          title: Certificate
          description: The certificate, base64-encoded DER
        details:
          anyOf:
            - $ref: '#/components/schemas/CertificateDetails'
            - type: 'null'
        valid_aadhaar_dsc:
          anyOf:
            - type: string
            - type: 'null'
          title: Valid Aadhaar Dsc
          description: >-
            "yes" when the signing certificate is valid for Aadhaar, and "no"
            otherwise
      type: object
      title: X509Data
      description: >-
        The certificate the e-Aadhaar is signed with, and whether it is one
        Aadhaar is signed with.
    SplitAddress:
      properties:
        district:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: District
        state:
          anyOf:
            - items:
                anyOf:
                  - type: string
                  - items:
                      type: string
                    type: array
              type: array
            - type: 'null'
          title: State
        city:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: City
        pincode:
          anyOf:
            - type: string
            - type: 'null'
          title: Pincode
        country:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Country
        address_line:
          anyOf:
            - type: string
            - type: 'null'
          title: Address Line
        land_mark:
          anyOf:
            - type: string
            - type: 'null'
          title: Land Mark
      type: object
      title: SplitAddress
      description: >-
        The address in parts. Each list holds the ways one part is written, such
        as a name and its code.
    SignatureData:
      properties:
        xmlns:
          anyOf:
            - type: string
            - type: 'null'
          title: Xmlns
        signed_info:
          anyOf:
            - $ref: '#/components/schemas/SignedInfo'
            - type: 'null'
        signature_value:
          anyOf:
            - type: string
            - type: 'null'
          title: Signature Value
          description: The signature, base64-encoded
        key_info:
          anyOf:
            - $ref: '#/components/schemas/KeyInfo'
            - type: 'null'
      type: object
      title: SignatureData
      description: The XML signature over the e-Aadhaar.
    CertificateDetails:
      properties:
        version:
          anyOf:
            - type: integer
            - type: 'null'
          title: Version
        subject:
          anyOf:
            - $ref: '#/components/schemas/CertificateName'
            - type: 'null'
        issuer:
          anyOf:
            - $ref: '#/components/schemas/CertificateName'
            - type: 'null'
        serial:
          anyOf:
            - type: string
            - type: 'null'
          title: Serial
        not_before:
          anyOf:
            - type: string
            - type: 'null'
          title: Not Before
          description: Start of the certificate's validity, in ISO 8601
        not_after:
          anyOf:
            - type: string
            - type: 'null'
          title: Not After
          description: End of the certificate's validity, in ISO 8601
        subject_hash:
          anyOf:
            - type: string
            - type: 'null'
          title: Subject Hash
        signature_algorithm:
          anyOf:
            - type: string
            - type: 'null'
          title: Signature Algorithm
        finger_print:
          anyOf:
            - type: string
            - type: 'null'
          title: Finger Print
        public_key:
          anyOf:
            - $ref: '#/components/schemas/PublicKey'
            - type: 'null'
        alt_names:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Alt Names
        extensions:
          anyOf:
            - $ref: '#/components/schemas/CertificateExtensions'
            - type: 'null'
      type: object
      title: CertificateDetails
      description: The certificate the e-Aadhaar is signed with, decoded.
    SignedInfo:
      properties:
        canonicalization_method:
          anyOf:
            - $ref: '#/components/schemas/Algorithm'
            - type: 'null'
        signature_method:
          anyOf:
            - $ref: '#/components/schemas/Algorithm'
            - type: 'null'
        reference:
          anyOf:
            - $ref: '#/components/schemas/SignatureReference'
            - type: 'null'
      type: object
      title: SignedInfo
      description: What was signed, and how.
    KeyInfo:
      properties:
        x509_data:
          anyOf:
            - $ref: '#/components/schemas/KeyX509Data'
            - type: 'null'
      type: object
      title: KeyInfo
      description: The key the signature was made with.
    CertificateName:
      properties:
        country_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Country Name
        organization_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Organization Name
        organizational_unit_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Organizational Unit Name
        postal_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Postal Code
        state_or_province_name:
          anyOf:
            - type: string
            - type: 'null'
          title: State Or Province Name
        common_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Common Name
      type: object
      title: CertificateName
      description: The distinguished name of a certificate's subject or issuer.
    PublicKey:
      properties:
        algorithm:
          anyOf:
            - type: string
            - type: 'null'
          title: Algorithm
      type: object
      title: PublicKey
      description: The algorithm of a certificate's public key.
    CertificateExtensions:
      properties:
        authority_key_identifier:
          anyOf:
            - type: string
            - type: 'null'
          title: Authority Key Identifier
        subject_key_identifier:
          anyOf:
            - type: string
            - type: 'null'
          title: Subject Key Identifier
        authority_information_access:
          anyOf:
            - type: string
            - type: 'null'
          title: Authority Information Access
        crl_distribution_points:
          anyOf:
            - type: string
            - type: 'null'
          title: Crl Distribution Points
        certificate_policies:
          anyOf:
            - type: string
            - type: 'null'
          title: Certificate Policies
        basic_constraints:
          anyOf:
            - type: string
            - type: 'null'
          title: Basic Constraints
        extended_key_usage:
          anyOf:
            - type: string
            - type: 'null'
          title: Extended Key Usage
        subject_alternative_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Subject Alternative Name
        key_usage:
          anyOf:
            - type: string
            - type: 'null'
          title: Key Usage
      type: object
      title: CertificateExtensions
      description: A certificate's X.509 extensions, each as the text it is printed as.
    Algorithm:
      properties:
        algorithm:
          anyOf:
            - type: string
            - type: 'null'
          title: Algorithm
      type: object
      title: Algorithm
      description: An algorithm the signature names.
    SignatureReference:
      properties:
        uri:
          anyOf:
            - type: string
            - type: 'null'
          title: Uri
        transforms:
          anyOf:
            - $ref: '#/components/schemas/Transforms'
            - type: 'null'
        digest_method:
          anyOf:
            - $ref: '#/components/schemas/Algorithm'
            - type: 'null'
        digest_value:
          anyOf:
            - type: string
            - type: 'null'
          title: Digest Value
      type: object
      title: SignatureReference
      description: The data the signature covers, and its digest.
    KeyX509Data:
      properties:
        x509_subject_name:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: X509 Subject Name
        x509_certificate:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: X509 Certificate
          description: The chain, each base64-encoded
      type: object
      title: KeyX509Data
      description: The certificate chain the signature was made with.
    Transforms:
      properties:
        transform:
          anyOf:
            - $ref: '#/components/schemas/Algorithm'
            - type: 'null'
      type: object
      title: Transforms
      description: The transforms applied to the signed data.
  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.