A fulfilment order tells Quiqup to pick, pack and ship stock it holds for you. See Fulfilment orders.
Creates a fulfilment order: an instruction to pick stock Quiqup already holds for you, pack it and ship it to your customer. The warehouse builds the parcels, so you send products, not parcels.
The order is created as pending and goes to the warehouse for picking straight away. There is no separate release call. Two kinds of order wait first: an export (origin and shipping countries differ) waits until its carrier is settled, and an order that needs a Saudi national address waits until the address is valid.
service_kind sets the picking and packing deadline from your account's cut-off times and selects the carrier:
partner_next_day: next day, the standard service, in the UAE and Saudi Arabia.partner_same_day: same day, in the UAE only.partner_4hr: within four hours, in Dubai only.partner_export: international. The carrier is chosen by rules.partner_store: store replenishment, business to business.partner_return: a return. Useis_returninstead, below.
Ask your account manager which services are enabled on your account.
To create a return, set is_return to true and point initial_order_id at the original order. The order is stored with service_kind partner_return and is not picked from your stock. Only a return can carry mark_as_ready_for_collection.
Send a uuid to make the create safe to retry: a repeat with the same uuid returns the original order. A reference with is_unique set to true cannot be reused by another order on your account.
A free-text label carried on the order for billing, for example to tell apart several brands that share one account. Optional.
Three-letter ISO 4217 code for payment_amount, for example AED or SAR. Required.
Special delivery requirements. The only accepted value is customer_identification_photo. Optional.
For a return, the id of the original order. When you send it, the original order must exist on your account or the create fails. Optional.
Set to true to create a return order. The order is then created with service_kind partner_return, and it is not picked from your stock. Optional.
Return orders only. Send true together with is_return true to create the return as ready_for_collection instead of pending, so it is collected without a further step. Sending true on any other order is rejected. A normal order needs no such flag: it goes to the warehouse for picking as soon as it is created.
What the courier collects from the customer. Required, and must not be 0, when payment_mode is paid_on_delivery. For pre_paid, send 0 or omit it.
pre_paid when you have already taken payment, paid_on_delivery when the courier collects it.
The SKUs to pick and the quantity of each. Required. Every SKU must be a product on your account.
Your own identifiers for the order as label and value pairs, for example a marketplace order number. They are stored on the order and returned when you read it. Optional.
Customs and VAT registration numbers for an export, such as a Mirsal 2 code. Optional.
The delivery service of an order.
Optional idempotency key, a UUID. Retry a create with the same uuid and you get the original order back instead of a second one, which makes a timed-out request safe to resend. Any UUID spelling is accepted (upper or lower case, with or without dashes) and anything else is rejected. A uuid is scoped to your account, and one already used by another account is rejected. Omit it and every request creates a new order.
- Productionhttps://platform-api.quiqup.com/api/fulfilment/orders
- Staginghttps://platform-api.staging.quiqup.com/api/fulfilment/orders
curl -i -X POST \
https://platform-api.quiqup.com/api/fulfilment/orders \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"currency": "AED",
"notes": "Call on arrival",
"origin_address": {
"address1": "Warehouse 7, Example Industrial Area",
"city": "Dubai",
"country_code": "AE",
"first_name": "Example",
"last_name": "Brand",
"name": "Example Brand",
"phone": "+971500000003",
"state": "Dubai"
},
"partner_order_id": "ORD-10045",
"payment_amount": 249.5,
"payment_mode": "paid_on_delivery",
"products": [
{
"quantity": 2,
"sku": "TSHIRT-BLK-M"
},
{
"quantity": 1,
"sku": "MUG-WHT"
}
],
"references": [
{
"is_unique": true,
"label": "marketplace_order_id",
"value": "MP-778812"
}
],
"service_kind": "partner_next_day",
"shipping_address": {
"address1": "Villa 12, Street 4",
"address2": "Al Wasl",
"city": "Dubai",
"country_code": "AE",
"email": "sara.ahmed@example.com",
"first_name": "Sara",
"last_name": "Ahmed",
"phone": "+971500000001",
"state": "Dubai"
},
"uuid": "3f6c1a52-8d2e-4b7a-9c1d-5e8f7a6b4c3d"
}'Success response
Special delivery requirements, for example customer_identification_photo.
The order id, a number sent as a string. It is the id you pass to GET and PATCH, and order.* webhooks carry the same number as payload.id.
pre_paid when you have already taken payment, paid_on_delivery when the courier collects it.
The delivery service: partner_next_day, partner_same_day, partner_4hr, partner_export, partner_store or partner_return. A return order reports partner_return.
Status of an order. pending (created, and waiting for or in the warehouse), problematic (a stock or warehouse problem that needs attention), wms_on_hold (held in the warehouse system) and picking_started occur only on fulfilment orders. From ready_for_collection the order follows the shared order lifecycle.
Why the order is in its current status, for example the warehouse error behind problematic.
{ "created_at": "2026-10-16T08:12:44Z", "currency": "AED", "id": "26000001", "is_return": false, "origin_address": { "address1": "Warehouse 7, Example Industrial Area", "city": "Dubai", "country_code": "AE", "first_name": "Example", "last_name": "Brand", "name": "Example Brand", "phone": "+971500000003", "state": "Dubai" }, "parcels": [], "partner_order_id": "ORD-10045", "payment_amount": 249.5, "payment_mode": "paid_on_delivery", "picking_order_created": false, "products": [ { … }, { … } ], "references": [ { … } ], "service_kind": "partner_next_day", "shipping_address": { "address1": "Villa 12, Street 4", "address2": "Al Wasl", "city": "Dubai", "country_code": "AE", "email": "sara.ahmed@example.com", "first_name": "Sara", "last_name": "Ahmed", "phone": "+971500000001", "state": "Dubai" }, "status": "pending", "tracking_url": "https://track-parcel.quiqup.com/3f6c1a52-8d2e-4b7a-9c1d-5e8f7a6b4c3d", "updated_at": "2026-10-16T08:12:44Z", "uuid": "3f6c1a52-8d2e-4b7a-9c1d-5e8f7a6b4c3d" }