For product types Intraday and Delivery, order types allowed are Limit(price), Market, SL LMT(price and trigger_price) and SL MKT(trigger_price). Trigger price needs to be sent when you place orders with SL LMT and SL MKT.
For product type CO, order type allowed is Market. But you also need to send counter order as SL MKT(trigger_price)
For product type OCO, order type allowed is Limit(price). But you also need to send counter orders as SL MKT(Stop_loss) and target(square_off).