Returns (reverse) workflow
A return (reverse shipment) moves a package from the buyer to the seller. Use POST /v1/external/orders/create/return with the same schema as forward creation, but the pickup is the buyer's address and the drop is the seller's.
Payload essentials:
order_id— your seller-side return order id.pickup_customer_name,pickup_address,pickup_city,pickup_pincode,pickup_state,pickup_country,pickup_email,pickup_phone— buyer's address (the pickup for a return).shipping_customer_name,shipping_address,shipping_city,shipping_pincode— seller's address (the drop).order_items[]— same shape as forward; the items being returned.order_id_original(optional) — the forward order id this is linked to.weight,length,breadth,height,sub_total,payment_method— required for courier assignment.
After creation, the same courier assignment / AWB / pickup flow applies: POST /courier/assign/awb, POST /courier/generate/pickup, and GET /courier/track/awb/{awb} to follow the return.
Return label
POST /v1/external/courier/generate/label with the return shipment_id produces a return label PDF. Some sellers email this to buyers; others print it and courier it physically to the pickup address.
Tracking a return
Returns share the tracking surface with forward shipments. The shipment_track_activities[] array on GET /courier/track/awb/{awb} shows each scan. Terminal statuses: Delivered (i.e. seller received the return), Lost, or Cancelled.