Convert an existing position from one product type to another (e.g. Intraday to Delivery) without squaring off and re-entering.
Overview
Product Conversion changes the product tag on a quantity you already hold — moving MIS to CNC before end-of-day auto square-off, or converting a carry-forward F&O position to intraday — without an offsetting trade. It only relabels an existing position; it does not place a new order.
Match against the actual position firstprevious_product_type must match the product the position is currently held under, and quantity can't exceed what's actually held — fetch the position from Positions immediately before converting rather than assuming your local state is current.
Parameters
Field
Type
Required
Description
uid / actid
string
Required
User and account ID of the logged-in account.
exch
string
Required
Exchange segment of the position.
tsym
string
Required
Trading symbol of the position. Must match exactly — URL-encode symbols with special characters like M&M.
qty
integer
Required
Quantity to convert. Can be less than the full position for a partial conversion.
prevprd doesn't match the position's actual current product.
Invalid Quantity
qty exceeds the held position quantity.
Session Expired
Token invalid or expired — re-authenticate.
Best practices
Always re-fetch Positions right before converting — a fill or partial square-off between your last read and the conversion request will cause a mismatch.
For intraday-to-delivery conversions ahead of auto square-off, build in a time buffer — don't run this at the exact square-off cutoff.
Notes
This does not create a new order or trade — it only relabels the product tag on an existing position. It has no effect on average price or realized P&L.
Overview
Product Conversion changes the product tag on a quantity you already hold — moving MIS to CNC before end-of-day auto square-off, or converting a carry-forward F&O position to intraday — without an offsetting trade. It only relabels an existing position; it does not place a new order.
previous_product_typemust match the product the position is currently held under, andquantitycan't exceed what's actually held — fetch the position from Positions immediately before converting rather than assuming your local state is current.Parameters
M&M.BorS.Dayor carry-forward (CF) position.Request example
Response
Error handling
prevprddoesn't match the position's actual current product.qtyexceeds the held position quantity.Best practices
Notes
This does not create a new order or trade — it only relabels the product tag on an existing position. It has no effect on average price or realized P&L.