Skip to main content

Save Order (create a draft shipment)

POST /api/external/v1/order/saveOrder

Creates an order record in DRAFTORDER status against one or more Purchase Orders. This does not talk to any carrier yet — it just persists the shipment's shipping/customer/SKU/carton details so Create Draft Order can book it.

Request body (SaveOrderRequest)

FieldTypeRequiredDescription
purchase_order_idstring[] (UUID)YesPO ID(s) this shipment fulfils
po_numberstring[]NoHuman-readable PO number(s)
warehouse_idUUIDNoDispatching (pickup) warehouse
customer_warehouse_idUUIDNoDestination customer warehouse
customer_namestringNoConsignee name
customer_addressstringNoConsignee address
customer_phonestringNoConsignee phone
customer_pincodestringNoConsignee pincode
customer_citystringNoConsignee city
customer_statestringNoConsignee state
customer_emailstringNoConsignee email
customer_gstinstringNoConsignee GSTIN
customer_panstringNoConsignee PAN
customer_billing_*stringNoBilling counterparts of the customer_* fields above
truck_load_typestringNoe.g. PTL, FTL
order_typestringNoe.g. COD, PREPAID
order_modestringNoe.g. SURFACE, AIR
order_methodstringNoClient-defined dispatch method
carton_detailsarray of Carton objectsNoSee Carton object
sku_detailsarray of SKU objectsNoSee SKU object (order)
total_invoice_valuenumberNo
total_cartonsintegerNo
total_dead_weightnumberNo
total_volumetric_weightnumberNo
invoice_numberstringNo
invoice_datestringNo
ewaybill_numberstringNo
shipping_chargesnumberNoPre-computed shipping charge, if known
channelstringNoSales channel
batch_numberstringNo
order_notestringNo
is_local_transporterbooleanNo
Request Example
{
"purchase_order_id": ["b6b2a3e1-0c61-4fd2-9a07-3bf2035888f1"],
"customer_warehouse_id": "d2f5a1a2-....",
"customer_name": "Acme Retail Pvt Ltd",
"customer_address": "Plot 12, Industrial Area",
"customer_phone": "9999999999",
"customer_pincode": "400001",
"customer_city": "Mumbai",
"customer_state": "Maharashtra",
"order_type": "PREPAID",
"order_mode": "SURFACE",
"order_method": "B2B",
"total_cartons": 5,
"total_dead_weight": 120.5,
"total_volumetric_weight": 95.0,
"total_invoice_value": 45000,
"carton_details": [
{ "type": "BOX", "length": 40, "breadth": 30, "height": 25, "weight": 24.1, "quantity": 5, "volumetric_weight": 19 }
],
"sku_details": [
{ "code": "SKU-001", "name": "Widget", "channel_code": "SKU-001", "quantity": 100, "cost_price": 90, "price": 120, "mrp": 150 }
]
}

Response 200 OK

{
"success": true,
"status_code": 200,
"message": "Successfully saved order",
"data": { "order_id": "8b1e2c3d-....." }
}

Keep order_id — it is required for every subsequent call in the flow (rates, create draft order, get/update/cancel order).