محتويات الوثائق
سريع إكسبريس
SARIE Express
ناقل إكسبريس للطرود داخل المملكة العربية السعودية ودول مجلس التعاون الخليجي. مواعيد تسليم دقيقة، تتبع لحظي، وبوليصة شحن إلكترونية فورية. يناسب الشحنات الخفيفة والمتوسطة التي تتطلب سرعة وموثوقية.
نوع التكامل
REST — JSON
الوحدات
كيلوغرام / سنتيمتر
التواريخ
ISO 8601 (YYYY-MM-DD)
التغطية
السعودية + 5 دول خليجية
التغطية
يغطي سريع إكسبريس المملكة العربية السعودية ودول مجلس التعاون الخليجي التالية:
| الدولة | Country | الرمز | النطاق |
|---|---|---|---|
| المملكة العربية السعودية | Saudi Arabia | SA | محلي — جميع المناطق |
| الإمارات العربية المتحدة | United Arab Emirates | AE | خليجي |
| الكويت | Kuwait | KW | خليجي |
| البحرين | Bahrain | BH | خليجي |
| قطر | Qatar | QA | خليجي |
| سلطنة عُمان | Oman | OM | خليجي |
الخدمات
| رمز الخدمة | الاسم | الوسيلة | مدة النقل | النطاق |
|---|---|---|---|---|
| EXP_DOM | إكسبريس محلي | إكسبريس | 1–3 أيام عمل | داخل المملكة |
| EXP_GCC | إكسبريس خليجي | إكسبريس | 2–5 أيام عمل | دول مجلس التعاون الخليجي |
نقطة النهاية — الوصول المباشر (Passthrough)
يمكن الوصول إلى سريع إكسبريس مباشرة عبر نقطة نهاية واحدة، ويحدد الحقل action نوع العملية. تستخدم المصادقة نفسها المعتمدة في منصة منفذ (مفتاح API في ترويسة Authorization).
POST /api/v1/carriers/SARIE/passthroughحقول الطلب
| الحقل | النوع | إلزامي | الوحدة | الوصف |
|---|---|---|---|---|
| action | string | نعم | — | نوع العملية: «rate» لطلب تسعيرة أو «ship» لإنشاء شحنة. |
| service | string | نعم | — | رمز الخدمة: EXP_DOM أو EXP_GCC. |
| origin | object | نعم | — | عنوان الالتقاط: country وcity، ويفضل إضافة short_address أو postal_code. |
| destination | object | نعم | — | عنوان التسليم بالبنية نفسها. للوجهات السعودية يلزم عنوان وطني: short_address بصيغة 4 أحرف و4 أرقام، أو postal_code من 5 أرقام مع additional_number من 4 أرقام. |
| parcels | array<object> | نعم | — | قائمة الطرود؛ لكل طرد الحقول الأربعة التالية. |
| parcels[].weight_kg | number | نعم | كيلوغرام (كجم) | الوزن الفعلي للطرد. |
| parcels[].length_cm | number | نعم | سنتيمتر (سم) | طول الطرد. |
| parcels[].width_cm | number | نعم | سنتيمتر (سم) | عرض الطرد. |
| parcels[].height_cm | number | نعم | سنتيمتر (سم) | ارتفاع الطرد. |
| declared_value | number | لا | ريال سعودي | القيمة المصرح بها لأغراض الجمارك والتأمين. |
| hs_codes | array<string> | لا (موصى به للشحنات الخليجية) | — | رموز النظام المنسق (HS) لمحتويات الشحنة؛ تسرع التخليص الجمركي. |
| incoterm | string | لا | — | شرط التسليم التجاري، مثل DDP أو DAP. |
| cod_amount | number | لا | ريال سعودي | مبلغ الدفع عند الاستلام؛ اتركه 0 إن لم يوجد. |
| ship_date | string | لا | — | تاريخ الالتقاط المطلوب بصيغة ISO 8601 (YYYY-MM-DD). الافتراضي: أقرب نافذة التقاط. |
مثال عملي — إنشاء شحنة خليجية
المثال التالي ينشئ شحنة إكسبريس من الرياض إلى دبي بطرد واحد وزنه 2.5 كجم. استبدل mnf_live_YOUR_KEY بمفتاح فريقك.
curl -X POST "https://manfath.example/api/v1/carriers/SARIE/passthrough" \
-H "Authorization: Bearer mnf_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "ship",
"service": "EXP_GCC",
"origin": {
"country": "SA",
"city": "Riyadh",
"short_address": "RRDA2929"
},
"destination": {
"country": "AE",
"city": "Dubai"
},
"parcels": [
{ "weight_kg": 2.5, "length_cm": 30, "width_cm": 20, "height_cm": 15 }
],
"declared_value": 450,
"hs_codes": ["330499"],
"incoterm": "DDP",
"cod_amount": 0,
"ship_date": "2026-07-27"
}'الاستجابة
HTTP/1.1 201 Created
Content-Type: application/json
X-Manfath-Request-Id: req_a1b2c3d4
{
"tracking_number": "SRE4021183740",
"manfath_reference": "MNF-2026-8KTQ2N",
"status": "CREATED",
"carrier": "SARIE",
"service": "EXP_GCC",
"estimated_delivery_at": "2026-07-31T18:00:00+03:00",
"label_url": "/api/v1/shipments/SRE4021183740/label"
}رموز الأخطاء
تعيد جميع الأخطاء رمز حالة HTTP دلاليًا مع مغلف خطأ موحد يتضمن الرمز والرسالة بالعربية والإنجليزية وتفاصيل اختيارية:
{
"error": {
"code": "E_VALIDATION",
"message_en": "Request validation failed.",
"message_ar": "فشل التحقق من صحة الطلب.",
"details": { "field": "parcels[0].weight_kg", "issue": "must be a positive number" }
}
}| الرمز | حالة HTTP | الوصف |
|---|---|---|
| E_UNAUTHENTICATED | 401 | مفتاح API مفقود أو غير صالح. أرسل الترويسة Authorization: Bearer mnf_live_... |
| E_VALIDATION | 422 | فشل التحقق من صحة الطلب؛ راجع الحقل details لمعرفة الحقول المتأثرة. |
| E_ADDRESS_NOT_NORMALISED | 422 | عنوان الوجهة السعودي غير مطابق لمعيار العنوان الوطني؛ يعيد details.missing قائمة المكونات الناقصة. |
| E_NOT_FOUND | 404 | المورد غير موجود. |
| E_QUOTE_EXPIRED | 409 | انتهت صلاحية التسعيرة. التسعيرات صالحة لمدة 15 دقيقة؛ اطلب تسعيرة جديدة. |
| E_CANCEL_NOT_ALLOWED | 409 | لا يمكن إلغاء الشحنة بعد الاستلام من المرسل. |
| E_RATE_LIMITED | 429 | تم تجاوز حد الطلبات (60 طلبًا في الدقيقة لكل مفتاح)؛ راجع الترويسة Retry-After. |
| E_CARRIER_UNAVAILABLE | 503 | الناقل غير متاح مؤقتًا؛ أعد المحاولة بتراجع تدريجي. |
| E_INTERNAL | 500 | خطأ داخلي؛ أرفق قيمة الترويسة X-Manfath-Request-Id عند التواصل مع الدعم. |
الإشعارات الفورية (Webhooks)
تصلك تحديثات حالة شحنات سريع إكسبريس تلقائيًا عبر إشعارات منفذ عند ضبط عنوان الويبهوك في وحدة التحكم. الأحداث المدعومة: shipment.created وshipment.status_updated وshipment.delivered وshipment.exception. يحمل كل تسليم الترويستين X-Manfath-Event وX-Manfath-Signature؛ تحقق من التوقيع باستخدام سر الويبهوك الخاص بفريقك، ويساعدك فاحص الإشعارات في وحدة التحكم على ذلك.
حجز الالتقاط
يجدول الالتقاط تلقائيًا عند إنشاء الشحنة — لا يلزم حجز منفصل. الشحنات المنشأة قبل الساعة 14:00 بتوقيت الرياض تلتقط في يوم العمل نفسه، وما بعد ذلك في يوم العمل التالي. حدد ship_date إذا رغبت في تاريخ التقاط لاحق.