Skip to main content

dhan_rs/api/
funds.rs

1//! Funds & Margin endpoints — Margin Calculator, Fund Limit.
2
3use crate::client::DhanClient;
4use crate::error::Result;
5use crate::types::funds::*;
6
7impl DhanClient {
8    /// Calculate margin requirement for a single order.
9    ///
10    /// **Endpoint:** `POST /v2/margincalculator`
11    pub async fn calculate_margin(
12        &self,
13        req: &MarginCalculatorRequest,
14    ) -> Result<MarginCalculatorResponse> {
15        self.post("/v2/margincalculator", req).await
16    }
17
18    /// Calculate margin requirements for multiple scripts in a single request.
19    ///
20    /// **Endpoint:** `POST /v2/margincalculator/multi`
21    pub async fn calculate_multi_margin(
22        &self,
23        req: &MultiMarginRequest,
24    ) -> Result<MultiMarginResponse> {
25        self.post("/v2/margincalculator/multi", req).await
26    }
27
28    /// Retrieve fund limits for the trading account.
29    ///
30    /// Returns balance, margin utilised, collateral, and other fund details.
31    ///
32    /// **Endpoint:** `GET /v2/fundlimit`
33    pub async fn get_fund_limit(&self) -> Result<FundLimit> {
34        self.get("/v2/fundlimit").await
35    }
36}