---
title: "DigiLocker aggregate (one-call convenience)"
method: POST
path: "/v1/kyc/digilocker/result/{session_id}"
tags: ["KYC"]
---

# DigiLocker aggregate (one-call convenience)

`POST /v1/kyc/digilocker/result/{session_id}`

Return everything available for a DigiLocker session in a single call.
Each section is independent: if one is unavailable (e.g. the investor
didn't consent to it), it's reported under `errors` and the rest of the
response still succeeds.

- `identity` — verified identity, when requested via `documents` (free).
- `documents` — list of the investor's documents (free). Set
  `include_documents: false` to skip.
- `fetched` — for each document in `fetch_documents`, the parsed document data.

**Credits:** 0.25 per call, regardless of how many documents are
fetched or whether identity is returned.

## Path parameters

- `session_id` string, required

## Request body

- object
  - `fetch_documents` string[] — Documents to additionally fetch + parse from the locker. Default: [] (no document fetch, no fetch billing).
  - `include_documents` boolean — Include the issued-documents list.

## Response `200`

Aggregate result (sections present per availability)

- object
  - `consent` DigilockerConsent — Consent receipt captured at session start. Carried through the flow for audit (DPDP / RBI compliance).
    - `consented_at` string, date-time, nullable — ISO 8601 timestamp (UTC) when consent was captured.
    - `purpose` string, nullable — The consent_purpose provided at /session.
  - `consented_documents` string[] — Friendly names of documents the user consented to share.
  - `documents` DigilockerDocument[]
    - `date` string, date, nullable — Last modified date in DigiLocker, normalized to ISO 8601.
    - `doctype` string — 5-character DigiLocker document type code
    - `issuer` string
    - `issuerid` string
    - `mime` string[]
    - `name` string — Document name
    - `type` string
    - `uri` string — Unique DigiLocker identifier for the document
  - `errors` object — Per-section error codes (omitted when there are none).
  - `fetched` object — Parsed documents keyed by the `fetch_documents` value (pan/aadhaar/driving_licence). Value is null if the document was requested but unavailable. Each parsed object also includes a `signature` block.
    - `aadhaar` DigilockerAadhaar — e-Aadhaar (Aadhaar Paperless Offline eKYC) data parsed from DigiLocker XML. Any field may be null if not present in the source XML.
      - `address` string, nullable — Full address assembled from the Aadhaar address fields
      - `care_of` string, nullable — Care-of / guardian field
      - `dob` string, nullable — Date of birth (as returned by DigiLocker, typically DD-MM-YYYY)
      - `gender` string, nullable — Gender (M, F, or T)
      - `masked_aadhaar` string, nullable — Masked Aadhaar number (only last 4 digits visible)
      - `name` string, nullable — Full name as on Aadhaar
      - `photo_base64` string, nullable — Base64-encoded photograph from the Aadhaar XML
      - `session_id` string, nullable — DigiLocker/UIDAI reference id for this eKYC document
    - `driving_licence` DigilockerDrivingLicence — Driving licence data parsed from DigiLocker XML (returned under `fetched.driving_licence`). Any field may be null if absent in the source XML.
      - `categories` object[] — Vehicle classes the holder is licensed for.
        - `abbreviation` string
        - `code` string
        - `description` string
        - `issue_date` string, date
      - `dl_number` string, nullable
      - `dob` string, nullable — Date of birth, normalized to ISO 8601.
      - `expiry_date` string, date, nullable
      - `father_name` string, nullable
      - `gender` string, nullable
      - `issue_date` string, date, nullable
      - `issued_at` string, nullable
      - `name` string, nullable
      - `permanent_address` string, nullable
      - `present_address` string, nullable
      - `signature` DigilockerSignature — Signature provenance for a fetched document. Reports whether a signed XML block with an X.509 certificate is present, plus the signing certificate's details. Note: this is provenance reporting, not full XML-DSIG cryptographic verification (the trust model is direct-from-source retrieval, consistent with the industry).
        - `certificate` object, nullable
          - `issuer` string
          - `serial_number` string
          - `subject` string
          - `valid_from` string, date-time
          - `valid_until` string, date-time
        - `signature_present` boolean
      - `status` string, nullable
      - `valid_from` string, date, nullable
    - `pan` DigilockerPan — PAN certificate data parsed from DigiLocker XML (returned as `parsed` when `parse=pan`). Any field may be null if absent in the source XML.
      - `dob` string, nullable — Date of birth (DD-MM-YYYY as returned)
      - `father_name` string, nullable — Father/spouse name (the `swd` field; often empty)
      - `gender` string, nullable
      - `name` string, nullable — PAN holder name
      - `pan` string, nullable — PAN number
      - `signature` DigilockerSignature — Signature provenance for a fetched document. Reports whether a signed XML block with an X.509 certificate is present, plus the signing certificate's details. Note: this is provenance reporting, not full XML-DSIG cryptographic verification (the trust model is direct-from-source retrieval, consistent with the industry).
        - `certificate` object, nullable
          - `issuer` string
          - `serial_number` string
          - `subject` string
          - `valid_from` string, date-time
          - `valid_until` string, date-time
        - `signature_present` boolean
      - `status` string, nullable — Certificate status (e.g. "A" = Active)
      - `verified_on` string, nullable — Timestamp DigiLocker verified the record
  - `identity` DigilockerVerifiedIdentity — The investor's verified identity. Only fields the investor shared are populated. `verified` contains the authenticated document identifiers (e.g. PAN, Aadhaar number).
    - `address` string, nullable
    - `care_of` string, nullable
    - `digilocker_id` string, nullable
    - `dob` string, nullable
    - `email` string, nullable
    - `gender` string, nullable
    - `mobile` string, nullable
    - `name` string, nullable
    - `username` string, nullable — DigiLocker preferred username
    - `verified` object — Authenticated document identifiers (keys present only when verified).
      - `aadhaar` string — Usually masked
      - `driving_licence` string
      - `pan` string
  - `status` string

## Other responses

- `401` — Unauthorized. This can happen if the `x-api-key` header is missing.

---

[API](https://skmtc.net/casparser/apis/cas-parser-track-portfolios-from-cdsl-nsdl-cams-kfintech.md) · [All operations](https://skmtc.net/casparser/apis/cas-parser-track-portfolios-from-cdsl-nsdl-cams-kfintech/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/casparser/cas-parser-track-portfolios-from-cdsl-nsdl-cams-kfintech/revisions/fa7d3aae2ab9/schema)
