Create orders
POST
/v1/intake/orderCreate an order
Creates a forward order. It does not book — call POST /v1/shipping/book next.
Idempotent on customer_order_no: re-sending the same reference answers 200 {order_id, deduped:true} instead of creating a second order. order.pickup_address_id must be one of your own warehouses; an id that is not yours is 400 invalid_pickup_address, never a 403 that would confirm it exists.
Refused for
merchant_finance · merchant_support · merchant_staff — these are read-only roles, and the refusal happens before the handler runs.Request body
| Field | Type | Description |
|---|---|---|
| customer_order_norequired | string | Your reference. The idempotency key. |
| channel | string | Where the order came from. |
| receiverrequired | object | {name, address_1, address_2?, landmark?, city?, state?, pincode, mobile_no}. |
| productrequired | object | {product_name, product_sku?, physical_weight, declared_order_total, cod_amount?, length?, width?, height?}. |
| orderrequired | object | {pickup_address_id (required), rto_address_id?, order_date?, order_type ("0" prepaid | "1" COD), order_from_source?}. |
Responses
| Status | Meaning |
|---|---|
| 201 | {order_id}. A duplicate answers 200 {order_id, deduped:true}. |
400validation_failed | details lists every field that failed. |
400invalid_pickup_address | pickup_address_id is not one of your warehouses. |
403cannot create order for another sender | The body named a sender that is not yours. |