Skip to main content

EDIS (Approval) Page Redirect – CDSL

This API is used to initiate a browser-based approval request for EDIS (Electronic Delivery Instruction Slip) transactions via CDSL. It opens a pop-up that redirects to the depository interface, where the user approves the delivery of selected securities. Upon success or failure, a response is posted back to the main application.

📝Request Body Schema

FieldTypeDescriptionExample/ENUM
userCodestringUser code received after login"AABVV"
managerIPstringIP address of the manager system"10.0.156.11"
sessionIDstringUnique session identifier0x034567uy789890
ChannelstringSource of the request"MOB", "WEB"
ISINstringISIN of the main security"INE78654389"
isinNamestringName of the main securityBATA India Ltd
exchangeCdstringstock echange code"NSE", "BSE"
productintegerProduct (1 = Cash Segment)"1"
InstrumentstringFinancial instrument type"Equity"
QuantitystringQuantity of the main security"10"
dpIdintegerDepository Participant ID"6523300"
clientIdintegerClient ID under depository"125800000058"
depositorystringTarget depository"NSDL", "CDSL"
productcodestringProduct code / application source"ODINAERO""WAVE"
MarketSegIdintegerMarket segment identifier521
ScripDetailsintegerJSON array of all securities to be approved{"ISIN":"INE176A01028","Quantity":10,"ISINName":"BATA INDIA LTD","SettlmtCycle":"T1"}
userIdstringUnique Cleint code (UCC)"UCC12345"
groupIDstringGroup IdentifierHO
amostringAfter Market Order Flag"N""Y"
SettlmtCyclestringSettlement cycleT1, T2
themestringUI theme for approval screen"L" (default/light)

All the parameters above are combined into a query string, then Base64 encoded, and sent as enct in the final URL.

🔁User Flow

  1. The frontend assembles the full query string using the parameters above.
  2. This string is Base64 encoded.
  3. The encoded string is appended to the URL as ?enct=....
  4. A browser pop-up opens with this URL.
  5. User approves/rejects the delivery via the depository interface (CDSL).
  6. Upon completion, the response is sent back to the parent window and then posted to your configured webhook.

🟢Success Response - 200 Ok

FieldTypeDescriptionExample/ENUM
DespositorystringName of depositoryCDSL
dpIdstringDepository Participant ID"092200"
clientIDstringClient ID"52886666000"
isinstringISIN of the main security"IEN87976500"
OriginalQtystringQuantity requested10
BlkQtystringQuantity blocked10
ChannelstringChannel usedMOB
StatusstringApproval status"success"
RemarkstringAny additional message or reason"Approved"
RefNumstringReference number from depository0
TransRefNumstringTransaction reference number131025258077
StatusCodestringStatus code for error handlingERR035, ""
ScripDetailsstringJSON list of status for each ISIN"[{\"ISIN\":\"INE263A01024\",\"Qty\":2,\"Status\":\"Success\",\"StatusCode\":\"\",\"RefNo\":\"NS301604L66\",\"ISINName\":\"BHARAT+ELECTRONICS+LTD\",\"ErrorDesc\":null}]",
BrokerOrdrNostringInternal broker order number"AABBVVN123545OP"
ReqIDstringRequest IDGER123
UserIdstringUnique Client code (UCC)"UCC12345"
GroupIdstringGroup IDHO

The final JSON response is posted to your webhook URL, which should be configured in web.config