تخطّي إلى المحتوى
English كل صفحات التوثيق تسجيل الدخول

واجهة الشركاء البرمجية

الواجهة REST لنظام يريد أكثر من الإعلان عن المغادرات: تسجيل المضيفين الذين يديرهم، وإنشاء تنظيف عند الطلب، واشتراك مضيف في باقة، وقراءة ما حدث.

هي إلى جانب الويب هوك لا بديلاً عنه. للتنظيف التلقائي بعد المغادرة الويب هوك هو الأداة الصحيحة؛ والواجهة هي ما تستدعيه حين يكون برنامجك أنت هو من يقرّر.

الرابط الأساسي: https://suitiee.com/api/v1

المرجع الكامل، بكل حقل وبمُنشئ طلبات، في التكاملات ← توثيق API داخل لوحة المشغّل.

مرجع الواجهة داخل لوحة المشغّل

ما تحتاجه

الإعدادات: مفاتيح API ورابط الرجوع ومفتاح التوقيع

الخطوة ١ — المصادقة

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

٦٠ طلباً في الدقيقة لكل مفتاح. فوق ذلك تحصل على 429؛ تراجع وأعد المحاولة.

الخطوة ٢ — اعرف الغلاف

شكل واحد لكل شيء، حتى يُكتب العميل مرة واحدة.

{ "data": { }, "message": "اختياري" }

والقائمة تضيف الترقيم:

{ "data": [ ], "meta": { "current_page": 1, "last_page": 5, "per_page": 15, "total": 73 } }

والخطأ ليس نصاً مجرداً أبداً:

{ "error": { "code": "INSUFFICIENT_BALANCE", "message": "…", "details": { } } }

الرموز التي يجب أن تعالجها بالاسم لا بالنص: UNAUTHENTICATED وFORBIDDEN وNOT_FOUND وVALIDATION_ERROR وINSUFFICIENT_BALANCE وPACKAGE_EXHAUSTED وPACKAGE_EXPIRED وSLOT_UNAVAILABLE.

المبالغ بالريال بمنزلتين عشريتين؛ والتواريخ ISO 8601 بتوقيت UTC؛ والموارد العامة تُعرَّف بـ UUID، ومضيفوك بـ external_id الخاص بك.

الخطوة ٣ — سجّل المضيفين

POST /partner/clients
{ "external_id": "OWNER-118", "client_phone": "+9665…", "client_name_en": "…" }

external_id ملكك. كل نداء لاحق يسمّي المضيف به، فاستخدم ما يسمّيه به نظامك أصلاً ولا تغيّره أبداً.

وGET /partner/clients وGET /partner/clients/{external_id} و PUT /partner/clients/{external_id} تفعل البقية.

الخطوة ٤ — مسار نظام إدارة الوحدات: أعلن ثم غادِر

هذان الاستدعاءان يجعلان التنظيف تلقائياً بلا ويب هوك.

POST /partner/reservations
{
  "external_reservation_id": "BK-99120",
  "client_external_id": "OWNER-118",
  "external_unit_id": "APT-204",
  "checkin_datetime": "2026-09-06T15:00:00Z",
  "expected_checkout_datetime": "2026-09-09T11:00:00Z",
  "next_checkin_datetime": "2026-09-09T16:00:00Z"
}

يصبح الحجز متوقّعاً: لا احتساب ولا إرسال. أرسل next_checkin_datetime فور معرفتك به لتنتهي نافذة التنظيف قبل ذلك الوصول بدل الافتراضي وهو خمس ساعات.

POST /partner/reservations/{external_reservation_id}/checkout

تلك هي اللحظة التي يُحتسب فيها المبلغ ويُنشأ التنظيف ويُرسل منظّف.

وGET /partner/reservations وGET /partner/reservations/{id} لقراءتها.

الخطوة ٥ — مسار المجمّعات: أنشئ العمل بنفسك

المبنى أو المجمّع الذي لا يبيع ليالي ليس لديه مغادرات يتفاعل معها. فهو يحجز العمل مباشرة:

POST /partner/requests
Idempotency-Key: 3f1c-…
{
  "client_external_id": "OWNER-118",
  "service_id": "…",
  "requested_window_start": "2026-09-06T08:00:00Z",
  "requested_window_end": "2026-09-06T12:00:00Z"
}

يُلتقط السعر عند الإنشاء. وتُستهلك زيارات باقة المضيف أولاً، ثم محفظته.

وGET /partner/requests تسردها، وGET /partner/requests/{uuid} تقرأ واحداً، و POST /partner/requests/{uuid}/cancel يلغي واحداً وفق قواعد الإلغاء الخاصة بك.

الخطوة ٦ — أرسل Idempotency-Key دائماً

يقبل POST /partner/requests ترويسة Idempotency-Key. أرسل واحدة جديدة لكل نيّة، وكرّرها في كل إعادة محاولة للنيّة نفسها.

بدونها، الطلب الذي ينقطع عندك ثم يُعاد يحتسب على المضيف مرتين، ولا يعرف أي منكما بذلك حتى تصل الفاتورة.

بقية السطح

النداء لأي شيء
GET /partner/packages الباقات التي تستطيع اشتراك مضيف فيها
POST /partner/clients/{external_id}/subscribe اشتراك مضيف، بتمويل من رصيدك. انظر رصيد الشريك
GET /partner/credits رصيدك وسجل حركاته
GET /partner/webhooks/events كل حدث أرسلته إلينا وما آل إليه

ما لا تفعله الواجهة بعد

نسمّيه لأن التخمين يكلّف يوماً: لا يوجد نداء لكتالوج الخدمات، ولا صيانة عبر الواجهة، ولا نداء لصور الإثبات، ولا نداء للفواتير، ولا طريقة لتغيير تواريخ حجز بعد الإعلان عنه. هذه مخططة. وكل ما سبق هو الموجود اليوم.

حين يحدث خطأ

ما تراه ما يعنيه ما تفعله
401 UNAUTHENTICATED المفتاح خاطئ أو مُبطَل أو غير مرسل كـ Bearer أنشئ مفتاحاً جديداً تحت الإعدادات ← مفاتيح API
422 VALIDATION_ERROR details.errors يسمّي الحقل اقرأ details لا الرسالة
422 INSUFFICIENT_BALANCE المضيف لا يستطيع دفع هذه الزيارة اشحن المحفظة، أو اشترك له في باقة
404 على مضيف أنشأته للتو أنت تناديه بمعرّفنا بدل external_id الخاص بك استخدم معرّفك أنت في كل مكان
تنظيفان لنيّة واحدة إعادة محاولة بلا Idempotency-Key أرسل واحدة وكرّرها في الإعادات
429 ٦٠ في الدقيقة لكل مفتاح تراجع؛ واستخدم مفتاحاً لكل نظام حتى لا يجوّع عميل عميلاً آخر
كل شيء ينجح ولا يحدث شيء في الواقع الحساب في الوضع التجريبي انظر الوضع التجريبي

آخر تحديث 2026-09-04

هل أفادتك هذه الصفحة؟