Skip to main content
Use this endpoint to create a new shipping order for a customer. You can create three types of orders — Deliver to ship a package, Return to retrieve a package back from a customer, or Exchange to swap one product for another in a single trip. Before you create an order, call GET /delivery-zones and cache the zone catalog. Zone values must match the catalog exactly — free-text input is rejected.
Fees are always computed server-side. Do not send orderFees, fee, shippingFee, or amountOfFees in the request body — they are silently ignored, and the authoritative fee is returned in the response.

Authentication

Common request fields

These fields apply to all three order types.
string
required
Customer’s full name.
string
required
Customer’s primary phone number.
string
Secondary / alternative phone number.
string
required
Customer’s street address.
string
Building number.
string
Apartment number.
string
required
Destination governorate. Accepted values: Cairo, Giza, or Qalyubia.
string
required
Exact zone string from GET /delivery-zones. For example: "Nasr City - ElHay 06 (Nasr City)". Free-text values are rejected.
string
required
Type of shipment: Deliver, Return, or Exchange.
boolean
Set to true if the delivery address is a workplace rather than a residence.
boolean
When true, the customer is allowed to inspect the package contents before accepting delivery.
string
Your platform’s internal order ID. Store this to cross-reference Now Shipping orders with your own records.
string
Free-text notes for the courier (e.g. landmark, floor access instructions).
string
Merchant pickup address ID. Defaults to the merchant’s main pickup address when omitted.

Order-type fields

Use orderType: "Deliver" to ship a package to a customer.
string
required
Description of the product(s) being delivered.
number
required
Total number of items in the shipment (positive integer).
boolean
Set to true to request express (faster) delivery. Incurs an additional fee. Default: false.
boolean
Set to true to collect cash from the customer on delivery.
number
Amount to collect in EGP when COD is true.

Response

201 — Order created

Save both orderId and orderNumber from this response. You need orderId for mutations (update, cancel, delete) and orderNumber for read operations (get details, download AWB).

Error responses