# Create Order ## Create a Fulfilment Order ### 📌 Description This endpoint allows you to create a fulfilment order. The service_kind field determines the picking & packing SLA based on your account's cut-off times and automatically selects the appropriate delivery service with the carrier. ### Available Service Kinds: - partner_next_day → Next-day delivery (standard service), available in UAE & KSA. - partner_same_day → Same-day delivery, currently only available in the UAE. - partner_4hr → 4-hour deliveries, only available in Dubai. - partner_export → International shipments, carrier allocation is rule-based. Additionally, return orders can be created by setting is_return to true. ### 🔹 Use Cases - Creating a new customer order for fulfilment. - Processing a return order by setting is_return: true. - Handling multi-item orders with various delivery options. - Managing payment-on-delivery orders (payment_mode: paid_on_delivery). Endpoint: POST /api/fulfilment/orders Version: 1.0.0 Security: OAuth2 ## Request fields (application/json): - `billing_address` (object) - `billing_address.address1` (string, required) - `billing_address.address2` (string) - `billing_address.city` (string, required) - `billing_address.coordinate` (object) - `billing_address.coordinate.latitude` (number, required) - `billing_address.coordinate.longitude` (number, required) - `billing_address.country` (string) - `billing_address.country_code` (string, required) - `billing_address.email` (string, required) - `billing_address.first_name` (string, required) - `billing_address.ksa_national_address` (string) - `billing_address.last_name` (string) - `billing_address.name` (string) - `billing_address.phone` (string, required) - `billing_address.postcode` (string) - `billing_address.state` (string) - `billing_identifier` (string) Optional: Used for internal billing reference - `carrier` (string) Optional: Used to specify which carrier should handle the delivery - `currency` (string, required) - `delivery_options` (array) Optional: Array of special delivery requirements Enum: "customer_identification_photo" - `incoterm` (string) Optional: Used for international shipments to define delivery terms - `initial_order_id` (string) Required only for return orders, references the original order - `is_return` (boolean) Optional: Set to true for return deliveries - `notes` (string) Optional: Maximum 255 characters - `origin_address` (object, required) - `partner_order_id` (string, required) Required: Must be unique across all orders - `payment_amount` (number, required) - `payment_mode` (string, required) Enum: "pre_paid", "paid_on_delivery" - `products` (array) - `products.quantity` (integer, required) Required: Must be at least 1 Minimum value: 1 - `products.sku` (string, required) Required: Must be a valid SKU from your product catalog Maximum length: 100 characters - `service_kind` (string, required) Enum: "partner_next_day", "partner_same_day", "partner_4hr", "partner_export", "partner_store" - `shipping_address` (object, required) ## Response 200 fields (application/json): - `billing_address` (object) - `billing_address.address1` (string) - `billing_address.address2` (string) - `billing_address.city` (string) - `billing_address.coordinate` (object) - `billing_address.coordinate.latitude` (number, required) - `billing_address.coordinate.longitude` (number, required) - `billing_address.country` (string) - `billing_address.country_code` (string) - `billing_address.created_at` (string) - `billing_address.email` (string) - `billing_address.first_name` (string) - `billing_address.ksa_national_address` (string) - `billing_address.last_name` (string) Optional: Contact person's last name - `billing_address.name` (string) - `billing_address.phone` (string) - `billing_address.postcode` (string) - `billing_address.state` (string) - `billing_address.updated_at` (string) - `carrier` (string) - `currency` (string) - `delivery_options` (array) Possible values: leave\_at\_door, customer\_identification\_photo Enum: "customer_identification_photo" - `errors` (array) - `id` (string) - `incoterm` (string) - `initial_order_id` (string) - `is_return` (boolean) - `notes` (string) - `origin_address` (object) - `parcels` (array) - `parcels.dimensions` (object) - `parcels.dimensions.height` (number, required) - `parcels.dimensions.length` (number, required) - `parcels.dimensions.unit` (string, required) - `parcels.dimensions.width` (number, required) - `parcels.parcel_barcode` (string) - `parcels.quantity` (integer) - `parcels.weight` (number) - `partner_order_id` (string) - `payment_amount` (number) - `payment_mode` (string) Enum: "pre_paid", "paid_on_delivery" - `picking_order_created` (boolean) - `products` (array) - `products.country_of_origin` (string) - `products.description` (string) - `products.hs_code` (string) - `products.selling_price` (number) - `products.sku` (string) - `products.weight_unit` (string) - `service_kind` (string) Possible values: partner\_next\_day, partner\_same\_day, partner\_4hr, partner\_export, partner\_store - `shipping_address` (object) - `status` (string) Enum: "pending", "ready_for_collection", "picking_started", "out_for_collection", "out_for_return", "at_depot", "received_at_depot", "in_transit", "out_for_delivery", "collection_failed", "on_hold", "scheduled", "wms_on_hold", "return_to_origin", "returned_to_origin", "cancelled", "collected", "delivery_complete", "delivery_failed", "problematic" - `status_reason` (string) - `tracking_url` (string) - `tracking_url_advance` (string) - `uuid` (string) ## Response default fields (application/json): - `code` (string) Error code Example: "not_found" - `details` (object) Error details - `message` (string) Error message