Place, cancel, and update forward delivery orders.
Place forward order
Create a forward delivery order — move an item from a seller or warehouse to a customer doorstep.
Shadowfax validates the order data, checks pincode serviceability, and assigns an AWB number. If all checks pass, the order is created and returned synchronously.
Rejections are returned with HTTP 200 — check message, not the status code. See Reading Responses under Information.
Idempotency: If you send the same client_order_id twice, the second call returns the existing order instead of creating a duplicate.
AWB: Pre-generate an AWB number via the AWB Generation API and pass it in order_details.awb_number, or leave it blank and Shadowfax will auto-assign one.
E-Way Bill: Required when product value is Rs. 50,000 or above.
Product Value >= ₹50,000: At least one SKU must include a seller_details.gstin_number.
Return leg: send return_details with return_type set to seller (return to the seller on delivery failure) or origin (return to your origin warehouse). Required on every order. See the Order Types guide for how this and other fields vary by order_type.
Place forward order › Request Body
Customer delivery address and contact information.
Order-level details. payment_mode and cod_amount are not required for order_type: d2d.
Pickup address (seller, origin, or warehouse).
- Required unconditionally:
pincode,address_line_1 name/contactare additionally required whenorder_typeismarketplace
Where a failed delivery is returned.
return_type: "seller"— returns to the seller/pickup addressreturn_type: "origin"— returns to your warehouse
For order_type: d2d, return_type is always forced to origin, and its pincode must match pickup_details.pincode.
List of SKUs in the order. At least one required.
order_typeSelects how the order is fulfilled. Defaults to marketplace if omitted. hyperlocal is restricted to onboarded clients only — see the Order Types guide for how required fields shift per type.
Place forward order › Responses
Order created — or rejected. Check message: Success means created, Failure means rejected (still HTTP 200).
Cancel forward order
Cancel a forward order before it has been delivered. Accepts either an AWB number or a client_order_id.
Once cancelled, the order cannot be reactivated.
Cancel forward order › Request Body
request_idAWB number or client_order_id of the order to cancel.
cancel_remarksOptional reason for cancellation.
Cancel forward order › Responses
Order cancelled or cancellation queued
responseMsgresponseCodeUpdate forward order details
Update customer, pickup, return, or order details on a forward order before dispatch.
Send only the fields you want to update — all top-level fields are optional except awb_number. The order must not be in a terminal state (delivered, RTO-D, RTS-D).
What you can update:
delivery_details: customer contact, address, pincodepickup_details: seller contact, address, pickup slotreturn_details: return address, contact, emailorder_details: COD amount, e-way bill, weight, product value, GST detailsstatus_update: trigger RTO, RTS, or reopen NDR
Update forward order details › Request Body
awb_numberAWB number of the order to update.
Customer delivery details to update.
Pickup details to update.
Return address details to update.
Order-level details to update.
Trigger a status change (RTO, RTS, or reopen NDR).
Update forward order details › Responses
Update accepted
message