Api reference
E-DIS API
Electronic Delivery Instruction Slip for selling holdings
E-DIS API
E-DIS (Electronic Delivery Instruction Slip) is required to sell holdings from your demat account. This API helps you generate TPIN, create E-DIS forms, and check authorization status.
Accessing the E-DIS API
import { DhanHqClient, DhanEnv } from 'dhan-ts';
const client = new DhanHqClient({
accessToken: process.env.DHAN_ACCESS_TOKEN!,
clientId: process.env.DHAN_CLIENT_ID!,
env: DhanEnv.PROD,
});
const edis = client.edis;Methods
Generate TPIN
Generate a TPIN (Transaction PIN) for E-DIS authorization.
async generateTpin(): Promise<void>Example
async function generateTPIN() {
await client.edis.generateTpin();
console.log('TPIN generated and sent to registered mobile/email');
}Generate E-DIS Form
Create an E-DIS form for selling holdings.
async generateEdisForm(
request: EdisFormRequest
): Promise<EdisFormResponse>Example
async function createEdisForm() {
const request = {
isin: 'INE002A01018', // Reliance ISIN
qty: 10,
exchange: 'NSE',
segment: 'EQ',
bulk: false,
};
const response = await client.edis.generateEdisForm(request);
console.log('Client ID:', response.dhanClientId);
console.log('E-DIS Form HTML:', response.edisFormHtml);
// Render the HTML form for user to complete CDSL authorization
}Inquire E-DIS Status
Check the status of E-DIS authorization.
async inquireEdisStatus(isin: string): Promise<EdisInquiryResponse>Example
async function checkEdisStatus() {
const isin = 'INE002A01018';
const status = await client.edis.inquireEdisStatus(isin);
console.log('Client ID:', status.clientId);
console.log('ISIN:', status.isin);
console.log('Total Quantity:', status.totalQty);
console.log('Approved Quantity:', status.aprvdQty);
console.log('Status:', status.status);
console.log('Remarks:', status.remarks);
}E-DIS Workflow
- Generate TPIN: Get OTP on registered mobile/email
- Generate E-DIS Form: Create authorization form
- User Authorization: User completes CDSL authorization with TPIN
- Inquire Status: Check if authorization is successful
- Place Sell Order: Once approved, place sell order
E-DIS authorization is required for CDSL accounts. POA (Power of Attorney) users don't need E-DIS.
Best Practices
- Check authorization status before placing sell orders
- Generate TPIN only when needed
- Handle authorization UI properly for user experience
- Store authorization status to avoid repeated requests
- Handle bulk authorization for multiple holdings
Related APIs
- Portfolio API - View holdings
- Orders API - Place sell orders after authorization