Skip to content

Fulfillments

Fulfillment orders, fulfillments, shipping labels and tracking. Every example sets SOOQUNA_TOKEN from the environment; see authentication. Responses are from a test store, cut to two items per list.

Endpoint Method Path
Fulfil items of an order POST /orders/{id}/fulfillments
Update a shipment’s tracking or status PATCH /orders/{id}/fulfillments/{fulfillment_id}
Cancel a fulfillment POST /orders/{id}/fulfillments/{fulfillment_id}/cancel
List an order’s shipments GET /orders/{id}/shipments
Put fulfilment on hold POST /orders/{id}/fulfillment-orders/{fo_id}/hold
Release a fulfilment hold POST /orders/{id}/fulfillment-orders/{fo_id}/release-hold
Mark items ready for pickup POST /orders/{id}/fulfillment-orders/{fo_id}/ready-for-pickup
Get courier quotes for a label POST /orders/{id}/shipping-labels/quotes
Buy a shipping label POST /orders/{id}/shipping-labels
Refresh a shipment’s tracking POST /shipments/{id}/track
Cancel a courier shipment POST /shipments/{id}/cancel

POST /orders/{id}/fulfillments · Scope: write_fulfillments · Needs an Idempotency-Key header

Parameter In Description
id path The resource’s ID.
Terminal window
curl -X POST "https://api.sooquna.com/admin/api/2026-10/orders/0193a1b2-c3d4-7e5f-8a6b-000000000035/fulfillments" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"fulfillment_order_id": "0193a1b2-c3d4-7e5f-8a6b-000000000036",
"lines": [{"line_id": "0193a1b2-c3d4-7e5f-8a6b-000000000037", "quantity": 1}],
"tracking_company": "Aramex",
"tracking_number": "47012233441",
"notify_customer": true
}'
Response 201
{
"attributes": {},
"billing_address": null,
"buyer_accepts_marketing": false,
"cancel_reason": "",
"cancelled_at": null,
"checkout_id": null,
"closed_at": null,
"cod_status": "",
"created_at": "2026-10-18T09:30:00Z",
"currency": "QAR",
"customer": {
"email": "[email protected]",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000007",
"name": "Noora Al-Kuwari",
"orders_count": 1,
"phone": "+97455123456"
},
"delivery_method": "shipping",
"delivery_title": "Doha delivery",
"discount_applications": [],
"discount_codes": [],
"draft_order_id": "0193a1b2-c3d4-7e5f-8a6b-000000000013",
"email": "[email protected]",
"financial_status": "paid",
"fulfillment_orders": [
{
"delivery_method": "shipping",
"hold_reason": "",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000036",
"lines": [
{
"line_id": "0193a1b2-c3d4-7e5f-8a6b-000000000037",
"quantity": 1,
"remaining": 0
}
],
"location": {
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000023",
"name": "West Bay shop"
},
"status": "closed"
}
],
"fulfillment_status": "fulfilled",
"fulfillments": [
{
"created_at": "2026-10-18T09:30:00Z",
"fulfillment_order_id": "0193a1b2-c3d4-7e5f-8a6b-000000000036",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000050",
"lines": [
{
"line_id": "0193a1b2-c3d4-7e5f-8a6b-000000000037",
"quantity": 1
}
],
"location": {
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000023",
"name": "West Bay shop"
},
"name": "#1001-F1",
"shipment_status": "",
"status": "success",
"tracking_company": "Aramex",
"tracking_number": "47012233441",
"tracking_url": "https://www.aramex.com/track/results?ShipmentNumber=47012233441"
}
],
"gift": false,
"gift_message": "",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000035",
"item_count": 1,
"lines": [
{
"discount_allocations": [{"amount": 4500, "class": "order", "title": "Loyal customer"}],
"fulfilled_quantity": 1,
"gift_card": false,
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000037",
"image": "",
"location_id": "0193a1b2-c3d4-7e5f-8a6b-000000000023",
"original_price": "520.00",
"price": "450.00",
"product_id": "0193a1b2-c3d4-7e5f-8a6b-000000000005",
"properties": {},
"quantity": 1,
"refunded_quantity": 0,
"requires_shipping": true,
"sku": "ABY-LIN-M",
"tax": "0.00",
"tax_lines": [],
"taxable": true,
"title": "Embroidered linen abaya",
"total": "405.00",
"total_discount": "45.00",
"variant_id": "0193a1b2-c3d4-7e5f-8a6b-000000000014",
"variant_title": "M",
"vendor": "Layla",
"weight_grams": 0
}
],
"locale": "en",
"name": "#1001",
"net_payment": "420.00",
"note": "Call before delivery",
"number": 1001,
"order_discount": "45.00",
"payment_fee": "0.00",
"payment_method": "manual",
"phone": "+97455123456",
"processed_at": "2026-10-18T09:30:00Z",
"refunds": [],
"sample": false,
"shipping_address": null,
"shipping_line": {
"final": 1500,
"kind": "shipping",
"price": 1500,
"title": "Doha delivery"
},
"source": "draft",
"state": "open",
"status_url": "https://shop.sooquna.test/orders/01a14f9f314a7de682d35010a325f162",
"subtotal": "450.00",
"tags": ["phone", "priority"],
"tax_lines": [],
"taxes_included": true,
"tip": "0.00",
"token": "01a14f9f314a7de682d35010a325f162",
"total": "420.00",
"total_discounts": "45.00",
"total_outstanding": "0.00",
"total_received": "420.00",
"total_refunded": "0.00",
"total_shipping": "15.00",
"total_tax": "0.00",
"transactions": [
{
"actor": "Docs",
"amount": "420.00",
"created_at": "2026-10-18T09:30:00Z",
"error_code": "",
"gateway_ref": "",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000051",
"kind": "sale",
"method": "manual",
"provider": "manual",
"status": "success",
"test": false
}
],
"updated_at": "2026-10-18T09:30:00Z",
"version": 5
}

PATCH /orders/{id}/fulfillments/{fulfillment_id} · Scope: write_fulfillments

Parameter In Description
id path The resource’s ID.
fulfillment_id path The fulfillment ID.
Terminal window
curl -X PATCH "https://api.sooquna.com/admin/api/2026-10/orders/0193a1b2-c3d4-7e5f-8a6b-000000000035/fulfillments/0193a1b2-c3d4-7e5f-8a6b-000000000050" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"shipment_status": "in_transit",
"tracking_number": "47012233442",
"notify_customer": false
}'
Response 200
{
"attributes": {},
"billing_address": null,
"buyer_accepts_marketing": false,
"cancel_reason": "",
"cancelled_at": null,
"checkout_id": null,
"closed_at": null,
"cod_status": "",
"created_at": "2026-10-18T09:30:00Z",
"currency": "QAR",
"customer": {
"email": "[email protected]",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000007",
"name": "Noora Al-Kuwari",
"orders_count": 1,
"phone": "+97455123456"
},
"delivery_method": "shipping",
"delivery_title": "Doha delivery",
"discount_applications": [],
"discount_codes": [],
"draft_order_id": "0193a1b2-c3d4-7e5f-8a6b-000000000013",
"email": "[email protected]",
"financial_status": "paid",
"fulfillment_orders": [
{
"delivery_method": "shipping",
"hold_reason": "",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000036",
"lines": [
{
"line_id": "0193a1b2-c3d4-7e5f-8a6b-000000000037",
"quantity": 1,
"remaining": 0
}
],
"location": {
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000023",
"name": "West Bay shop"
},
"status": "closed"
}
],
"fulfillment_status": "fulfilled",
"fulfillments": [
{
"created_at": "2026-10-18T09:30:00Z",
"fulfillment_order_id": "0193a1b2-c3d4-7e5f-8a6b-000000000036",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000050",
"lines": [
{
"line_id": "0193a1b2-c3d4-7e5f-8a6b-000000000037",
"quantity": 1
}
],
"location": {
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000023",
"name": "West Bay shop"
},
"name": "#1001-F1",
"shipment_status": "in_transit",
"status": "success",
"tracking_company": "Aramex",
"tracking_number": "47012233442",
"tracking_url": "https://www.aramex.com/track/results?ShipmentNumber=47012233442"
}
],
"gift": false,
"gift_message": "",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000035",
"item_count": 1,
"lines": [
{
"discount_allocations": [{"amount": 4500, "class": "order", "title": "Loyal customer"}],
"fulfilled_quantity": 1,
"gift_card": false,
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000037",
"image": "",
"location_id": "0193a1b2-c3d4-7e5f-8a6b-000000000023",
"original_price": "520.00",
"price": "450.00",
"product_id": "0193a1b2-c3d4-7e5f-8a6b-000000000005",
"properties": {},
"quantity": 1,
"refunded_quantity": 0,
"requires_shipping": true,
"sku": "ABY-LIN-M",
"tax": "0.00",
"tax_lines": [],
"taxable": true,
"title": "Embroidered linen abaya",
"total": "405.00",
"total_discount": "45.00",
"variant_id": "0193a1b2-c3d4-7e5f-8a6b-000000000014",
"variant_title": "M",
"vendor": "Layla",
"weight_grams": 0
}
],
"locale": "en",
"name": "#1001",
"net_payment": "420.00",
"note": "Call before delivery",
"number": 1001,
"order_discount": "45.00",
"payment_fee": "0.00",
"payment_method": "manual",
"phone": "+97455123456",
"processed_at": "2026-10-18T09:30:00Z",
"refunds": [],
"sample": false,
"shipping_address": null,
"shipping_line": {
"final": 1500,
"kind": "shipping",
"price": 1500,
"title": "Doha delivery"
},
"source": "draft",
"state": "open",
"status_url": "https://shop.sooquna.test/orders/01a14f9f314a7de682d35010a325f162",
"subtotal": "450.00",
"tags": ["phone", "priority"],
"tax_lines": [],
"taxes_included": true,
"tip": "0.00",
"token": "01a14f9f314a7de682d35010a325f162",
"total": "420.00",
"total_discounts": "45.00",
"total_outstanding": "0.00",
"total_received": "420.00",
"total_refunded": "0.00",
"total_shipping": "15.00",
"total_tax": "0.00",
"transactions": [
{
"actor": "Docs",
"amount": "420.00",
"created_at": "2026-10-18T09:30:00Z",
"error_code": "",
"gateway_ref": "",
"id": "0193a1b2-c3d4-7e5f-8a6b-000000000051",
"kind": "sale",
"method": "manual",
"provider": "manual",
"status": "success",
"test": false
}
],
"updated_at": "2026-10-18T09:30:00Z",
"version": 5
}

POST /orders/{id}/fulfillments/{fulfillment_id}/cancel · Scope: write_fulfillments

Parameter In Description
id path The resource’s ID.
fulfillment_id path The fulfillment ID.
Terminal window
curl -X POST "https://api.sooquna.com/admin/api/2026-10/orders/0193a1b2-c3d4-7e5f-8a6b-000000000035/fulfillments/0193a1b2-c3d4-7e5f-8a6b-000000000050/cancel" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN"

GET /orders/{id}/shipments · Scope: read_fulfillments

Parameter In Description
id path The resource’s ID.
Terminal window
curl -X GET "https://api.sooquna.com/admin/api/2026-10/orders/0193a1b2-c3d4-7e5f-8a6b-000000000035/shipments" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN"
Response 200
{"data": []}

POST /orders/{id}/fulfillment-orders/{fo_id}/hold · Scope: write_fulfillments

Parameter In Description
id path The resource’s ID.
fo_id path The fo ID.
Terminal window
curl -X POST "https://api.sooquna.com/admin/api/2026-10/orders/0193a1b2-c3d4-7e5f-8a6b-000000000035/fulfillment-orders/0193a1b2-c3d4-7e5f-8a6b-000000000036/hold" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"reason": "awaiting_payment", "note": "Waiting for the bank transfer"}'

POST /orders/{id}/fulfillment-orders/{fo_id}/release-hold · Scope: write_fulfillments

Parameter In Description
id path The resource’s ID.
fo_id path The fo ID.
Terminal window
curl -X POST "https://api.sooquna.com/admin/api/2026-10/orders/0193a1b2-c3d4-7e5f-8a6b-000000000035/fulfillment-orders/0193a1b2-c3d4-7e5f-8a6b-000000000036/release-hold" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN"

POST /orders/{id}/fulfillment-orders/{fo_id}/ready-for-pickup · Scope: write_fulfillments

Parameter In Description
id path The resource’s ID.
fo_id path The fo ID.
Terminal window
curl -X POST "https://api.sooquna.com/admin/api/2026-10/orders/0193a1b2-c3d4-7e5f-8a6b-000000000035/fulfillment-orders/0193a1b2-c3d4-7e5f-8a6b-000000000036/ready-for-pickup" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"notify_customer": true}'

POST /orders/{id}/shipping-labels/quotes · Scope: write_fulfillments

Parameter In Description
id path The resource’s ID.
Terminal window
curl -X POST "https://api.sooquna.com/admin/api/2026-10/orders/0193a1b2-c3d4-7e5f-8a6b-000000000035/shipping-labels/quotes" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"fulfillment_order_id": "0193a1b2-c3d4-7e5f-8a6b-000000000036",
"carrier": "aramex",
"weight_kg": "1.2",
"collect_cod": true
}'

POST /orders/{id}/shipping-labels · Scope: write_fulfillments

Parameter In Description
id path The resource’s ID.
Terminal window
curl -X POST "https://api.sooquna.com/admin/api/2026-10/orders/0193a1b2-c3d4-7e5f-8a6b-000000000035/shipping-labels" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"fulfillment_order_id": "0193a1b2-c3d4-7e5f-8a6b-000000000036",
"carrier": "aramex",
"service": "domestic_express",
"weight_kg": "1.2",
"collect_cod": true,
"notify_customer": true
}'

POST /shipments/{id}/track · Scope: write_fulfillments

Parameter In Description
id path The resource’s ID.
Terminal window
curl -X POST "https://api.sooquna.com/admin/api/2026-10/shipments/0193a1b2-1d42-7f74-8582-da5d056e14a3/track" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN"

POST /shipments/{id}/cancel · Scope: write_fulfillments

Parameter In Description
id path The resource’s ID.
Terminal window
curl -X POST "https://api.sooquna.com/admin/api/2026-10/shipments/0193a1b2-1bff-7dd8-893c-b1cea75cd4ca/cancel" \
-H "X-Sooquna-Access-Token: $SOOQUNA_TOKEN"

Was this page helpful?