Skip to main content

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.

BrokerAPI evidenceInterpretation
DhanProfile ddpiActive enables DDPI, Deactive disables it; missing/unrecognized values remain unknown. POA remains unknown.
UpstoxProfile DDPI/POA flagsConfirmed if either authorization is enabled; missing/unrecognized evidence remains unknown.
ZerodhaProfile meta.demat_consentphysical confirms no manual depository authorization requirement; consent requires it; this does not distinguish DDPI from POA. Empty/unrecognized evidence is unknown.
FYERSProfile ddpi_enabledBoolean 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.