---
title: "Parse CDSL CAS PDF"
method: POST
path: "/v4/cdsl/parse"
tags: ["CAS Parser"]
---

# Parse CDSL CAS PDF

`POST /v4/cdsl/parse`

This endpoint specifically parses CDSL CAS (Consolidated Account Statement) PDF files and returns data in a unified format.
Use this endpoint when you know the PDF is from CDSL.

## Request body

- object — Provide either `pdf_file` OR `pdf_url` (one is required)
  - `password` string — Password for the PDF file (if required)
  - `pdf_file` string, base64 — Base64 encoded CAS PDF file (required if pdf_url not provided)
  - `pdf_url` string, uri — URL to the CAS PDF file (required if pdf_file not provided)

## Response `200`

Successful operation

- UnifiedResponse
  - `demat_accounts` DematAccount[]
    - `additional_info` object — Additional information specific to the demat account type
      - `bo_status` string — Beneficiary Owner status (CDSL)
      - `bo_sub_status` string — Beneficiary Owner sub-status (CDSL)
      - `bo_type` string — Beneficiary Owner type (CDSL)
      - `bsda` string — Basic Services Demat Account status (CDSL)
      - `email` string, email — Email associated with the demat account (CDSL)
      - `linked_pans` string[] — List of linked PAN numbers (NSDL)
      - `nominee` string — Nominee details (CDSL)
      - `status` string — Account status (CDSL)
    - `bo_id` string — Beneficiary Owner ID (primarily for CDSL)
    - `client_id` string — Client ID
    - `demat_type` 'NSDL' | 'CDSL' — Type of demat account
    - `dp_id` string — Depository Participant ID
    - `dp_name` string — Depository Participant name
    - `holdings` object
      - `aifs` AIF[]
        - `additional_info` object — Additional information specific to the AIF
          - `close_units` number, float, nullable — Closing balance units for the statement period (beta)
          - `open_units` number, float, nullable — Opening balance units for the statement period (beta)
        - `isin` string — ISIN code of the AIF
        - `name` string — Name of the AIF
        - `transactions` Transaction[] — List of transactions for this holding (beta)
          - `additional_info` object — Additional transaction-specific fields that vary by source
            - `capital_withdrawal` number, float — Capital withdrawal amount (CDSL MF transactions)
            - `credit` number, float — Units credited (demat transactions)
            - `debit` number, float — Units debited (demat transactions)
            - `income_distribution` number, float — Income distribution amount (CDSL MF transactions)
            - `order_no` string — Order/transaction reference number (demat transactions)
            - `price` number, float — Price per unit (NSDL/CDSL MF transactions)
            - `stamp_duty` number, float — Stamp duty charged
          - `amount` number, float, nullable — Transaction amount in currency (computed from units × price/NAV)
          - `balance` number, float — Balance units after transaction
          - `date` string, date — Transaction date (YYYY-MM-DD)
          - `description` string — Transaction description/particulars
          - `dividend_rate` number, float, nullable — Dividend rate (for DIVIDEND_PAYOUT transactions)
          - `nav` number, float, nullable — NAV/price per unit on transaction date
          - `type` 'PURCHASE' | 'PURCHASE_SIP' | 'REDEMPTION' | 'SWITCH_IN' | 'SWITCH_IN_MERGER' | 'SWITCH_OUT' | 'SWITCH_OUT_MERGER' | 'DIVIDEND_PAYOUT' | 'DIVIDEND_REINVEST' | 'SEGREGATION' | 'STAMP_DUTY_TAX' | 'TDS_TAX' | 'STT_TAX' | 'MISC' | 'REVERSAL' | 'UNKNOWN' — Transaction type. Possible values are PURCHASE, PURCHASE_SIP, REDEMPTION, SWITCH_IN, SWITCH_IN_MERGER, SWITCH_OUT, SWITCH_OUT_MERGER, DIVIDEND_PAYOUT, DIVIDEND_REINVEST, SEGREGATION, STAMP_DUTY_TAX, TDS_TAX, STT_TAX, MISC, REVERSAL, UNKNOWN.
          - `units` number, float — Number of units involved in transaction
        - `units` number, float — Number of units held
        - `value` number, float — Current market value of the holding
      - `corporate_bonds` CorporateBond[]
        - `additional_info` object — Additional information specific to the corporate bond
          - `close_units` number, float, nullable — Closing balance units for the statement period (beta)
          - `open_units` number, float, nullable — Opening balance units for the statement period (beta)
        - `isin` string — ISIN code of the corporate bond
        - `name` string — Name of the corporate bond
        - `transactions` Transaction[] — List of transactions for this holding (beta)
          - `additional_info` object — Additional transaction-specific fields that vary by source
            - `capital_withdrawal` number, float — Capital withdrawal amount (CDSL MF transactions)
            - `credit` number, float — Units credited (demat transactions)
            - `debit` number, float — Units debited (demat transactions)
            - `income_distribution` number, float — Income distribution amount (CDSL MF transactions)
            - `order_no` string — Order/transaction reference number (demat transactions)
            - `price` number, float — Price per unit (NSDL/CDSL MF transactions)
            - `stamp_duty` number, float — Stamp duty charged
          - `amount` number, float, nullable — Transaction amount in currency (computed from units × price/NAV)
          - `balance` number, float — Balance units after transaction
          - `date` string, date — Transaction date (YYYY-MM-DD)
          - `description` string — Transaction description/particulars
          - `dividend_rate` number, float, nullable — Dividend rate (for DIVIDEND_PAYOUT transactions)
          - `nav` number, float, nullable — NAV/price per unit on transaction date
          - `type` 'PURCHASE' | 'PURCHASE_SIP' | 'REDEMPTION' | 'SWITCH_IN' | 'SWITCH_IN_MERGER' | 'SWITCH_OUT' | 'SWITCH_OUT_MERGER' | 'DIVIDEND_PAYOUT' | 'DIVIDEND_REINVEST' | 'SEGREGATION' | 'STAMP_DUTY_TAX' | 'TDS_TAX' | 'STT_TAX' | 'MISC' | 'REVERSAL' | 'UNKNOWN' — Transaction type. Possible values are PURCHASE, PURCHASE_SIP, REDEMPTION, SWITCH_IN, SWITCH_IN_MERGER, SWITCH_OUT, SWITCH_OUT_MERGER, DIVIDEND_PAYOUT, DIVIDEND_REINVEST, SEGREGATION, STAMP_DUTY_TAX, TDS_TAX, STT_TAX, MISC, REVERSAL, UNKNOWN.
          - `units` number, float — Number of units involved in transaction
        - `units` number, float — Number of units held
        - `value` number, float — Current market value of the holding
      - `demat_mutual_funds` DematMutualFund[]
        - `additional_info` object — Additional information specific to the mutual fund
          - `close_units` number, float, nullable — Closing balance units for the statement period (beta)
          - `open_units` number, float, nullable — Opening balance units for the statement period (beta)
        - `isin` string — ISIN code of the mutual fund
        - `name` string — Name of the mutual fund
        - `transactions` Transaction[] — List of transactions for this holding (beta)
          - `additional_info` object — Additional transaction-specific fields that vary by source
            - `capital_withdrawal` number, float — Capital withdrawal amount (CDSL MF transactions)
            - `credit` number, float — Units credited (demat transactions)
            - `debit` number, float — Units debited (demat transactions)
            - `income_distribution` number, float — Income distribution amount (CDSL MF transactions)
            - `order_no` string — Order/transaction reference number (demat transactions)
            - `price` number, float — Price per unit (NSDL/CDSL MF transactions)
            - `stamp_duty` number, float — Stamp duty charged
          - `amount` number, float, nullable — Transaction amount in currency (computed from units × price/NAV)
          - `balance` number, float — Balance units after transaction
          - `date` string, date — Transaction date (YYYY-MM-DD)
          - `description` string — Transaction description/particulars
          - `dividend_rate` number, float, nullable — Dividend rate (for DIVIDEND_PAYOUT transactions)
          - `nav` number, float, nullable — NAV/price per unit on transaction date
          - `type` 'PURCHASE' | 'PURCHASE_SIP' | 'REDEMPTION' | 'SWITCH_IN' | 'SWITCH_IN_MERGER' | 'SWITCH_OUT' | 'SWITCH_OUT_MERGER' | 'DIVIDEND_PAYOUT' | 'DIVIDEND_REINVEST' | 'SEGREGATION' | 'STAMP_DUTY_TAX' | 'TDS_TAX' | 'STT_TAX' | 'MISC' | 'REVERSAL' | 'UNKNOWN' — Transaction type. Possible values are PURCHASE, PURCHASE_SIP, REDEMPTION, SWITCH_IN, SWITCH_IN_MERGER, SWITCH_OUT, SWITCH_OUT_MERGER, DIVIDEND_PAYOUT, DIVIDEND_REINVEST, SEGREGATION, STAMP_DUTY_TAX, TDS_TAX, STT_TAX, MISC, REVERSAL, UNKNOWN.
          - `units` number, float — Number of units involved in transaction
        - `units` number, float — Number of units held
        - `value` number, float — Current market value of the holding
      - `equities` Equity[]
        - `additional_info` object — Additional information specific to the equity
          - `close_units` number, float, nullable — Closing balance units for the statement period (beta)
          - `open_units` number, float, nullable — Opening balance units for the statement period (beta)
        - `isin` string — ISIN code of the equity
        - `name` string — Name of the equity
        - `transactions` Transaction[] — List of transactions for this holding (beta)
          - `additional_info` object — Additional transaction-specific fields that vary by source
            - `capital_withdrawal` number, float — Capital withdrawal amount (CDSL MF transactions)
            - `credit` number, float — Units credited (demat transactions)
            - `debit` number, float — Units debited (demat transactions)
            - `income_distribution` number, float — Income distribution amount (CDSL MF transactions)
            - `order_no` string — Order/transaction reference number (demat transactions)
            - `price` number, float — Price per unit (NSDL/CDSL MF transactions)
            - `stamp_duty` number, float — Stamp duty charged
          - `amount` number, float, nullable — Transaction amount in currency (computed from units × price/NAV)
          - `balance` number, float — Balance units after transaction
          - `date` string, date — Transaction date (YYYY-MM-DD)
          - `description` string — Transaction description/particulars
          - `dividend_rate` number, float, nullable — Dividend rate (for DIVIDEND_PAYOUT transactions)
          - `nav` number, float, nullable — NAV/price per unit on transaction date
          - `type` 'PURCHASE' | 'PURCHASE_SIP' | 'REDEMPTION' | 'SWITCH_IN' | 'SWITCH_IN_MERGER' | 'SWITCH_OUT' | 'SWITCH_OUT_MERGER' | 'DIVIDEND_PAYOUT' | 'DIVIDEND_REINVEST' | 'SEGREGATION' | 'STAMP_DUTY_TAX' | 'TDS_TAX' | 'STT_TAX' | 'MISC' | 'REVERSAL' | 'UNKNOWN' — Transaction type. Possible values are PURCHASE, PURCHASE_SIP, REDEMPTION, SWITCH_IN, SWITCH_IN_MERGER, SWITCH_OUT, SWITCH_OUT_MERGER, DIVIDEND_PAYOUT, DIVIDEND_REINVEST, SEGREGATION, STAMP_DUTY_TAX, TDS_TAX, STT_TAX, MISC, REVERSAL, UNKNOWN.
          - `units` number, float — Number of units involved in transaction
        - `units` number, float — Number of units held
        - `value` number, float — Current market value of the holding
      - `government_securities` GovernmentSecurity[]
        - `additional_info` object — Additional information specific to the government security
          - `close_units` number, float, nullable — Closing balance units for the statement period (beta)
          - `open_units` number, float, nullable — Opening balance units for the statement period (beta)
        - `isin` string — ISIN code of the government security
        - `name` string — Name of the government security
        - `transactions` Transaction[] — List of transactions for this holding (beta)
          - `additional_info` object — Additional transaction-specific fields that vary by source
            - `capital_withdrawal` number, float — Capital withdrawal amount (CDSL MF transactions)
            - `credit` number, float — Units credited (demat transactions)
            - `debit` number, float — Units debited (demat transactions)
            - `income_distribution` number, float — Income distribution amount (CDSL MF transactions)
            - `order_no` string — Order/transaction reference number (demat transactions)
            - `price` number, float — Price per unit (NSDL/CDSL MF transactions)
            - `stamp_duty` number, float — Stamp duty charged
          - `amount` number, float, nullable — Transaction amount in currency (computed from units × price/NAV)
          - `balance` number, float — Balance units after transaction
          - `date` string, date — Transaction date (YYYY-MM-DD)
          - `description` string — Transaction description/particulars
          - `dividend_rate` number, float, nullable — Dividend rate (for DIVIDEND_PAYOUT transactions)
          - `nav` number, float, nullable — NAV/price per unit on transaction date
          - `type` 'PURCHASE' | 'PURCHASE_SIP' | 'REDEMPTION' | 'SWITCH_IN' | 'SWITCH_IN_MERGER' | 'SWITCH_OUT' | 'SWITCH_OUT_MERGER' | 'DIVIDEND_PAYOUT' | 'DIVIDEND_REINVEST' | 'SEGREGATION' | 'STAMP_DUTY_TAX' | 'TDS_TAX' | 'STT_TAX' | 'MISC' | 'REVERSAL' | 'UNKNOWN' — Transaction type. Possible values are PURCHASE, PURCHASE_SIP, REDEMPTION, SWITCH_IN, SWITCH_IN_MERGER, SWITCH_OUT, SWITCH_OUT_MERGER, DIVIDEND_PAYOUT, DIVIDEND_REINVEST, SEGREGATION, STAMP_DUTY_TAX, TDS_TAX, STT_TAX, MISC, REVERSAL, UNKNOWN.
          - `units` number, float — Number of units involved in transaction
        - `units` number, float — Number of units held
        - `value` number, float — Current market value of the holding
    - `linked_holders` LinkedHolder[] — List of account holders linked to this demat account
      - `name` string — Name of the account holder
      - `pan` string — PAN of the account holder
    - `value` number, float — Total value of the demat account
  - `insurance` object
    - `life_insurance_policies` LifeInsurancePolicy[]
      - `additional_info` object — Additional information specific to the policy
      - `life_assured` string — Name of the life assured
      - `policy_name` string — Name of the insurance policy
      - `policy_number` string — Insurance policy number
      - `premium_amount` number, float — Premium amount
      - `premium_frequency` string — Frequency of premium payment (e.g., Annual, Monthly)
      - `provider` string — Insurance company name
      - `status` string — Status of the policy (e.g., Active, Lapsed)
      - `sum_assured` number, float — Sum assured amount
  - `investor` object
    - `address` string — Address of the investor
    - `cas_id` string — CAS ID of the investor (only for NSDL and CDSL)
    - `email` string, email — Email address of the investor
    - `mobile` string — Mobile number of the investor
    - `name` string — Name of the investor
    - `pan` string — PAN (Permanent Account Number) of the investor
    - `pincode` string — Postal code of the investor's address
  - `meta` object
    - `cas_type` 'NSDL' | 'CDSL' | 'CAMS_KFINTECH' — Type of CAS detected and processed
    - `generated_at` string, date-time — Timestamp when the response was generated
    - `statement_period` object
      - `from` string, date — Start date of the statement period
      - `to` string, date — End date of the statement period
  - `mutual_funds` MutualFundFolio[]
    - `additional_info` object — Additional folio information
      - `kyc` string — KYC status of the folio
      - `pan` string — PAN associated with the folio
      - `pankyc` string — PAN KYC status
    - `amc` string — Asset Management Company name
    - `folio_number` string — Folio number
    - `linked_holders` LinkedHolder[] — List of account holders linked to this mutual fund folio
      - `name` string — Name of the account holder
      - `pan` string — PAN of the account holder
    - `registrar` string — Registrar and Transfer Agent name
    - `schemes` MutualFundScheme[]
      - `additional_info` object — Additional information specific to the scheme
        - `advisor` string — Financial advisor name (CAMS/KFintech)
        - `amfi` string — AMFI code for the scheme (CAMS/KFintech)
        - `close_units` number, float, nullable — Closing balance units for the statement period
        - `is_demat` boolean, nullable — Whether the scheme is held in demat form (CAMS/KFintech). true = Demat, false = Non-Demat, null = not specified.
        - `open_units` number, float, nullable — Opening balance units for the statement period
        - `rta_code` string — RTA code for the scheme (CAMS/KFintech)
      - `cost` number, float — Cost of investment
      - `gain` object
        - `absolute` number, float — Absolute gain or loss
        - `percentage` number, float — Percentage gain or loss
      - `isin` string — ISIN code of the scheme
      - `name` string — Scheme name
      - `nav` number, float — Net Asset Value per unit
      - `nominees` string[] — List of nominees
      - `transactions` Transaction[]
        - `additional_info` object — Additional transaction-specific fields that vary by source
          - `capital_withdrawal` number, float — Capital withdrawal amount (CDSL MF transactions)
          - `credit` number, float — Units credited (demat transactions)
          - `debit` number, float — Units debited (demat transactions)
          - `income_distribution` number, float — Income distribution amount (CDSL MF transactions)
          - `order_no` string — Order/transaction reference number (demat transactions)
          - `price` number, float — Price per unit (NSDL/CDSL MF transactions)
          - `stamp_duty` number, float — Stamp duty charged
        - `amount` number, float, nullable — Transaction amount in currency (computed from units × price/NAV)
        - `balance` number, float — Balance units after transaction
        - `date` string, date — Transaction date (YYYY-MM-DD)
        - `description` string — Transaction description/particulars
        - `dividend_rate` number, float, nullable — Dividend rate (for DIVIDEND_PAYOUT transactions)
        - `nav` number, float, nullable — NAV/price per unit on transaction date
        - `type` 'PURCHASE' | 'PURCHASE_SIP' | 'REDEMPTION' | 'SWITCH_IN' | 'SWITCH_IN_MERGER' | 'SWITCH_OUT' | 'SWITCH_OUT_MERGER' | 'DIVIDEND_PAYOUT' | 'DIVIDEND_REINVEST' | 'SEGREGATION' | 'STAMP_DUTY_TAX' | 'TDS_TAX' | 'STT_TAX' | 'MISC' | 'REVERSAL' | 'UNKNOWN' — Transaction type. Possible values are PURCHASE, PURCHASE_SIP, REDEMPTION, SWITCH_IN, SWITCH_IN_MERGER, SWITCH_OUT, SWITCH_OUT_MERGER, DIVIDEND_PAYOUT, DIVIDEND_REINVEST, SEGREGATION, STAMP_DUTY_TAX, TDS_TAX, STT_TAX, MISC, REVERSAL, UNKNOWN.
        - `units` number, float — Number of units involved in transaction
      - `type` 'Equity' | 'Debt' | 'Hybrid' | 'Other' — Type of mutual fund scheme
      - `units` number, float — Number of units held
      - `value` number, float — Current market value of the holding
    - `value` number, float — Total value of the folio
  - `nps` NPSAccount[] — List of NPS accounts
    - `additional_info` object — Additional information specific to the NPS account
    - `cra` string — Central Record Keeping Agency name
    - `funds` NPSFund[]
      - `additional_info` object — Additional information specific to the NPS fund
        - `manager` string — Fund manager name
        - `tier` number — NPS tier (Tier I or Tier II)
      - `cost` number, float — Cost of investment
      - `name` string — Name of the NPS fund
      - `nav` number, float — Net Asset Value per unit
      - `units` number, float — Number of units held
      - `value` number, float — Current market value of the holding
    - `linked_holders` LinkedHolder[] — List of account holders linked to this NPS account
      - `name` string — Name of the account holder
      - `pan` string — PAN of the account holder
    - `pran` string — Permanent Retirement Account Number (PRAN)
    - `value` number, float — Total value of the NPS account
  - `summary` object
    - `accounts` object
      - `demat` object
        - `count` integer — Number of demat accounts
        - `total_value` number, float — Total value of demat accounts
      - `insurance` object
        - `count` integer — Number of insurance policies
        - `total_value` number, float — Total value of insurance policies
      - `mutual_funds` object
        - `count` integer — Number of mutual fund folios
        - `total_value` number, float — Total value of mutual funds
      - `nps` object
        - `count` integer — Number of NPS accounts
        - `total_value` number, float — Total value of NPS accounts
    - `total_value` number, float — Total portfolio value across all accounts

## Other responses

- `400` — Bad request (Invalid PDF file, missing parameters, invalid password, or incorrect CAS type)
- `401` — Unauthorized. This can happen if the `x-api-key` header is missing.
- `403` — Forbidden. This can happen if the API key is invalid or the quota has been exceeded.
- `500` — Internal server error

---

[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)
