Riverdesk
المحتويات

دليل واجهة القنوات

نظرة عامة على واجهة Channel API

تتيح واجهة Channel API لأي منصة إلكترونية أو وكالة كبيرة بيع كبائن شركة الرحلات مباشرةً من نظامها الخاص، وبشكل لحظي. ولا تبيع إلا ما يسمح به عقد تلك الشركة معك. هذا الدليل موجَّه إلى المطورين الذين يبنون هذا الربط.

  • REST عبر HTTPS، وJSON في الطلبات والاستجابات.
  • OAuth 2.0 بأسلوب client credentials (بيانات اعتماد العميل): يحصل خادمك على token (رمز وصول) قصير الصلاحية. راجع المصادقة.
  • العقد التقني وثيقة OpenAPI 3.1، تُقدَّم على المسار /openapi.yaml مع مرجع تفاعلي على /docs في كل خادم API.
  • المبالغ المالية تكون دائمًا عددًا صحيحًا بأصغر وحدة للعملة مع رمز العملة: {"amount": 117000, "currency": "USD"} تعني USD 1,170.00.
  • التواريخ هي تواريخ الرحلة بتوقيت القاهرة (YYYY-MM-DD). أما الأوقات فبصيغة ISO 8601 مع المنطقة الزمنية.

عميل واحد لكل شركة

أنت قناة لكل شركة رحلات تبيع لحسابها، ولديك عميل API واحد لكل شركة. والـ token الصادر من عميل شركة ما لا يرى إلا تلك الشركة، ولا يرى منها إلا البواخر والفئات وخطط الأسعار والشروط الواردة في عقدها معك.

المسار

GET  /v1/vessels                         what may I sell?
GET  /v1/availability                    free cabins per sailing and category
POST /v1/quotes                          price a sailing for these cabins and guests
POST /v1/holds                           hold the cabins while your customer checks out
POST /v1/holds/{id}/confirm              confirm with the guests → a booking
GET  /v1/bookings/{ref}                  read it; change it; cancel it

في العقود التي تعمل عند الطلب يُرسَل طلب بدلًا من الحجز المؤقت (hold) (الطلبات والعروض). ويُبلغك ريفرديسك بكل تغيير عبر إشعارات (webhooks) موقَّعة.

الضمانات

  • لا بيع يتجاوز المتاح. يحجز الحجز المؤقت الكبائن على كل مرحلة من مراحل الرحلة. وبمجرد أن تحجزها تبقى لك حتى تنتهي صلاحية الحجز المؤقت أو يُحرَّر.
  • إعادة محاولة آمنة. تقبل كل عملية كتابة مفتاح منع التكرار Idempotency-Key. وتُعيد إعادةُ المحاولة النتيجةَ الأصلية. راجع الأخطاء وإعادة المحاولة.
  • البيانات الشخصية تبقى في مكانها. تُقبَل أرقام جوازات السفر وتواريخ الميلاد، لكنها لا تُعاد أبدًا في أي استجابة أو حدث أو webhook.