Skip to main content
POST
/
v1
/
orders
/
{orderUuid}
/
status
Update shipping status
curl --request POST \
  --url https://business.papp.sa/api/v1/orders/{orderUuid}/status \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "status": "ready_shipping",
  "name_ar": "خرج للتوصيل",
  "name_en": "Out for delivery"
}
'
{
  "status": true,
  "message": "",
  "appended_data": {},
  "data": {
    "id": 42,
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "reference_number": "REF-2024-001234",
    "order_status": "approved",
    "status_label": "خرج للتوصيل",
    "custom_status": {
      "ar": "خرج للتوصيل",
      "en": "Out for delivery"
    },
    "order_number": "ORD-2024-001234",
    "type": 1,
    "total_price": 150.5,
    "total_points": 1505,
    "metadata": {
      "source": "mobile_app"
    },
    "date": "2024-12-23T00:00:00.000Z",
    "time": "10:00:00",
    "since": "2 hours ago",
    "settlement_status": "settled",
    "status": 1,
    "created_at": "2024-12-23T10:00:00.000Z",
    "updated_at": "2024-12-23T15:30:00.000Z",
    "items": [
      {
        "product_name": "Cappuccino",
        "product_price": 18.5,
        "quantity": 2
      }
    ]
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.papp.sa/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-api-key
string
header
required

Path Parameters

orderUuid
string<uuid>
required

Order UUID.

Body

application/json

Update payload for POST /v1/orders/{uuid}/status. At least ONE of status, name_ar, or name_en is required — a fully blank body returns 422. All three may be sent together; the canonical status enum and the custom bilingual label update atomically.

status
enum<string>

Canonical shipping-status enum value. Drives dashboard badges + the shipping_status_updated webhook. Independent of the financial order_status.

Available options:
new,
license_in_progress,
ready_shipping,
delivery_is_in_progress,
delivered,
cancelled
Example:

"ready_shipping"

name_ar
string

Free-form Arabic label. Stored under custom_status.ar on the order. When name_en is omitted, this value is auto-translated to English via Google Translate (cached 30 days). Lets external fulfilment platforms (Salla, Zid, custom WMS) attach their own status names without extending the canonical enum.

Maximum string length: 120
Example:

"خرج للتوصيل"

name_en
string

Free-form English label. Stored under custom_status.en. Auto-translates from name_ar when omitted. Both fields together skip translation.

Maximum string length: 120
Example:

"Out for delivery"

Response

Shipping status updated successfully.

status
boolean
required
Example:

true

message
string | null
required
Example:

""

appended_data
object
required
Example:
{}
data
object
required