DDPI and unattended delivery authorization
POST /api/v1/ddpistatus
The DDPI status API is available in IMC. Its contract is documented from the current source implementation.
POST /api/v1/ddpistatus is the only public DDPI route. The supplied IMC API key determines the broker and Live/Analyze mode. No broker argument, URL segment or request field is required. Playground shows one DDPI Status action.
{"apikey": "YOUR_BROKER_IMC_KEY"}
from layr0_imc import api
client = api(api_key="YOUR_BROKER_IMC_KEY", host="https://YOUR_IMC_HOST")
evidence = client.ddpistatus()
The data response contains broker, account ID, ddpi_status, poa_status, unattended_delivery_authorization, evidence_source, checked_at and explanation. Unattended authorization is confirmed, required, or unknown. These requests retain their server usage policy; they are not the non-billable protected-book endpoint.
| Broker | API evidence | Interpretation |
|---|---|---|
| Dhan | Profile ddpi | Active enables DDPI, Deactive disables it; missing/unrecognized values remain unknown. POA remains unknown. |
| Upstox | Profile DDPI/POA flags | Confirmed if either authorization is enabled; missing/unrecognized evidence remains unknown. |
| Zerodha | Profile meta.demat_consent | physical confirms no manual depository authorization requirement; consent requires it; this does not distinguish DDPI from POA. Empty/unrecognized evidence is unknown. |
| FYERS | Profile ddpi_enabled | Boolean DDPI evidence; POA remains unknown. |
A failed Live check returns 502 with unknown evidence. Analyze returns unknown with analyze_no_broker_call evidence and makes no broker calls. Login and transaction EDIS are not DDPI activation. Protected CNC/MTF placement obtains a fresh authorization check; an earlier SDK result is not permission to bypass that check. Authorization does not prove holdings availability, settlement, funds or guaranteed fills.
See protected orders for lifecycle and reconciliation.