---
title: "CDSL CAS Fetch - Step 2 (Verify OTP & Get Files)"
method: POST
path: "/v4/cdsl/fetch/{session_id}/verify"
tags: ["CAS Fetch"]
---

# CDSL CAS Fetch - Step 2 (Verify OTP & Get Files)

`POST /v4/cdsl/fetch/{session_id}/verify`

**Step 2 of 2**: Verify OTP and retrieve CDSL CAS files.

After successful verification, CAS PDFs are fetched from CDSL portal,
uploaded to cloud storage, and returned as direct download URLs.

## Path parameters

- `session_id` string, required

## Request body

- object
  - `num_periods` integer — Number of monthly statements to fetch (default 6)
  - `otp` string, required — OTP received on mobile

## Response `200`

CAS files fetched successfully

- object
  - `files` object[]
    - `filename` string
    - `url` string — Direct download URL (cloud storage)
  - `msg` string
  - `status` string

## Other responses

- `400` — Bad request (Invalid PDF file, missing parameters, or invalid password)
- `401` — Unauthorized. This can happen if the `x-api-key` header is missing.
- `404` — Session not found or expired
- `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)
