Overview
All CAS parsing endpoints return a unified JSON structure regardless of source (CDSL, NSDL, CAMS, KFintech).Top-Level Structure
Meta Object
Contains metadata about the CAS document and parsing operation.| Field | Type | Description |
|---|---|---|
cas_type | string | CDSL, NSDL, or CAMS_KFINTECH (uppercase) |
statement_period | object | Period covered by the statement |
statement_period.from | string | Start date of statement (YYYY-MM-DD) |
statement_period.to | string | End date of statement (YYYY-MM-DD) |
generated_at | string | When the response was generated (ISO 8601) |
Investor Object
Contains personal details of the investor extracted from the CAS.| Field | Type | Description |
|---|---|---|
name | string | Full name of investor |
pan | string | PAN (Permanent Account Number) |
email | string | Email address (may be null) |
address | string | Full postal address (may be null) |
pincode | string | Postal/ZIP code (may be null) |
mobile | string | Mobile number (may be null) |
cas_id | string | CAS ID (only for NSDL and CDSL, may be null) |
Summary Object
Provides aggregated portfolio metrics and account counts.| Field | Type | Description |
|---|---|---|
total_value | number | Total portfolio value across all accounts |
accounts | object | Breakdown by account type |
accounts.demat.count | integer | Number of demat accounts |
accounts.demat.total_value | number | Total value of demat holdings |
accounts.mutual_funds.count | integer | Number of mutual fund folios |
accounts.mutual_funds.total_value | number | Total value of MF holdings |
accounts.insurance.count | integer | Number of insurance policies |
accounts.insurance.total_value | number | Total value of insurance |
accounts.nps.count | integer | Number of NPS accounts |
accounts.nps.total_value | number | Total value of NPS holdings |
Demat Accounts Array
Array of demat (dematerialized) accounts holding equities, bonds, ETFs, and other securities.Demat Account Fields
| Field | Type | Description |
|---|---|---|
demat_type | string | NSDL or CDSL |
dp_id | string | Depository Participant ID |
dp_name | string | DP name (e.g., “HDFC Bank”) |
client_id | string | Client ID |
bo_id | string | Beneficiary Owner ID (primarily for CDSL) |
value | number | Total value of this demat account |
linked_holders | array | Account holders linked to this account |
holdings | object | Holdings grouped by asset class |
additional_info | object | Account-specific metadata (varies by type) |
Equity Object
Holdings in equities (stocks).| Field | Type | Description |
|---|---|---|
isin | string | ISIN code (12 characters) |
name | string | Security name |
units | number | Number of shares currently held |
value | number | Current market value |
transactions | array | Transaction history (beta feature) |
additional_info | object | Opening/closing units for statement period |
Corporate Bond Object
Holdings in corporate bonds.| Field | Type | Description |
|---|---|---|
isin | string | ISIN code |
name | string | Bond name/description |
units | number | Number of units held |
value | number | Current market value |
transactions | array | Transaction history (beta feature) |
additional_info | object | Opening/closing units for statement period |
Mutual Funds Array
Array of mutual fund folios with schemes and transactions.Mutual Fund Folio Fields
| Field | Type | Description |
|---|---|---|
folio_number | string | Folio number |
amc | string | Asset Management Company name |
registrar | string | Registrar and Transfer Agent name |
value | number | Total value of the folio |
linked_holders | array | Account holders linked to this folio |
schemes | array | List of schemes in this folio |
additional_info | object | PAN, KYC status, etc. |
Scheme Object
| Field | Type | Description |
|---|---|---|
isin | string | ISIN code |
name | string | Scheme name |
type | string | Equity, Debt, Hybrid, or Other |
units | number | Units held |
nav | number | Net Asset Value per unit |
value | number | Current value (units × NAV) |
cost | number | Cost of investment |
gain | object | Gain/loss metrics |
gain.absolute | number | Absolute gain or loss |
gain.percentage | number | Percentage gain or loss |
transactions | array | Transaction history |
nominees | array | List of nominee names |
additional_info | object | Advisor, RTA code, AMFI code, opening/closing units |
Transaction Object
Unified transaction schema for all holdings (mutual funds, equities, bonds, etc.).| Field | Type | Description |
|---|---|---|
date | string | Transaction date (YYYY-MM-DD) |
description | string | Transaction description/particulars |
type | string | Transaction type (see below) |
amount | number | Transaction amount in currency (may be null) |
units | number | Number of units involved |
nav | number | NAV/price per unit on transaction date (may be null) |
balance | number | Balance units after transaction |
dividend_rate | number | Dividend rate (for DIVIDEND_PAYOUT, may be null) |
additional_info | object | Additional transaction-specific fields |
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
Insurance Object
Contains insurance policies (currently only life insurance).| Field | Type | Description |
|---|---|---|
policy_number | string | Insurance policy number |
provider | string | Insurance company name |
policy_name | string | Name of the insurance policy |
life_assured | string | Name of the life assured |
status | string | Policy status (e.g., Active, Lapsed) |
sum_assured | number | Sum assured amount |
premium_amount | number | Premium amount |
premium_frequency | string | Frequency (Annual, Monthly, etc.) |
additional_info | object | Additional policy-specific information |
NPS Array
National Pension System accounts (only available in NSDL CAS).| Field | Type | Description |
|---|---|---|
pran | string | Permanent Retirement Account Number |
cra | string | Central Record Keeping Agency name |
value | number | Total value of the NPS account |
funds | array | List of NPS funds |
linked_holders | array | Account holders linked to this NPS account |
additional_info | object | Additional NPS account metadata |
NPS Fund Object
| Field | Type | Description |
|---|---|---|
name | string | Name of the NPS fund |
units | number | Number of units held |
nav | number | Net Asset Value per unit |
value | number | Current market value |
cost | number | Cost of investment |
additional_info.tier | number | NPS tier (1, 2, or null) |
additional_info.manager | string | Fund manager name |
Error Response
When parsing fails, the API returns afailed status with a descriptive error message.
| Field | Type | Description |
|---|---|---|
status | string | Always failed for errors (or error for system errors) |
msg | string | Human-readable error message |
X-Request-ID header (format: req_<alphanumeric>) for debugging and support.
Common Error Messages
| Message | Cause | Solution |
|---|---|---|
Invalid password for PDF | Wrong PDF password | Verify password format (often PAN-based) |
Invalid PDF file | Corrupted or scanned PDF | Use original digitally-generated PDF |
Unsupported CAS type | Wrong endpoint for CAS type | Use /v4/smart/parse to auto-detect |
API quota exceeded | Credit limit reached | Upgrade plan or wait for reset |
Authentication failed | Missing/invalid API key | Check x-api-key header |

