booking

متد Book

این متد جهت رزرو هتل مورد استفاده قرار میگیرد.


API Endpoint

POST https://{SupplierWebsiteUrl}/api/Partners/Hotel/Booking/V5/Book

Request Parameters


Sample Request

نمونه درخواست شامل دو اتاق، اتاق اول شامل دو بزرگسال و اتاق دوم شامل دو بزرگسال و یک کودک

{
  "Username": "testdev1",
  "Password": "25f9e794323b453885f5181f1b624d0b",
  "LockId": 918,
  "YourLocalInventoryPnr": "3ecf7689-fe00-4bd9-abed-8a420f4b7303",
  "Email": "your-email-address@your-domain.com",
  "MobileNumber": "+989352283333",
  "Remarks": "",
  "RoomList": [
    {
      "AdultGuestList": [
        {
          "Title": "MS",
          "FirstName": "ROZA",
          "LastName": "FETANAT",
          "BirthDate": "1993-10-12",
          "IranianNationalId": "0010632832",
          "Passport": null
        },
        {
          "Title": "MR",
          "FirstName": "ZALI",
          "LastName": "ESFANDIAR",
          "BirthDate": "1993-10-12",
          "IranianNationalId": "0010820140",
          "Passport": null
        }
      ],
      "ChildGuestList": []
    },
    {
      "AdultGuestList": [
        {
          "Title": "MS",
          "FirstName": "PARNIA",
          "LastName": "IGHANI",
          "BirthDate": "1993-10-12",
          "IranianNationalId": "0012293504",
          "Passport": null
        },
        {
          "Title": "MR",
          "FirstName": "SEYED GHASEM",
          "LastName": "AZARKHAHMOGHADAM",
          "BirthDate": "1993-10-12",
          "IranianNationalId": "0011513578",
          "Passport": null
        }
      ],
      "ChildGuestList": [
        {
          "Title": "MS",
          "FirstName": "ZHINA",
          "LastName": "BAHRAMIKIA",
          "BirthDate": "2020-10-12",
          "IranianNationalId": "0011972386",
          "Passport": null
        }
      ]
    }
  ],
  "IncomingTransfer": null,
  "OutgoingTransfer": null,
  "TotalPayable": 25996500
}

نمونه درخواست شامل ترانسفر ورود و ترانسفر خروج

{
  "Username": "testdev1",
  "Password": "25f9e794323b453885f5181f1b624d0b",
  "LockId": 1143,
  "YourLocalInventoryPnr": "60a9db22-7b3d-429b-a08b-24afb1b9da20",
  "Email": "your-email-address@your-domain.com",
  "MobileNumber": "+989352283333",
  "Remarks": "",
  "RoomList": [
    {
      "AdultGuestList": [
        {
          "Title": "MR",
          "FirstName": "MAHSHAD",
          "LastName": "ARJMANDI",
          "BirthDate": "1993-11-29",
          "IranianNationalId": "0011333235",
          "Passport": null
        },
        {
          "Title": "MR",
          "FirstName": "ROJIA",
          "LastName": "NIKKHAH ESHGHI",
          "BirthDate": "1993-11-29",
          "IranianNationalId": "0012081671",
          "Passport": null
        }
      ],
      "ChildGuestList": []
    }
  ],
  "IncomingTransfer": {
    "FlightTransfer": {
      "FlightNumber": "7057",
      "DepartureTime": "18:30",
      "OriginCity": "tehran",
      "AirlineName": "Kish air"
    },
    "TrainTransfer": null,
    "BusTransfer": null
  },
  "OutgoingTransfer": {
    "FlightTransfer": {
      "FlightNumber": "7058",
      "DepartureTime": "12:15"
    },
    "TrainTransfer": null,
    "BusTransfer": null
  },
  "TotalPayable": 9810000
}

Response Parameters

اگر در زمان رزرو با خطای Time out مواجه شدید یا هیچ جوابی از سمت سپهر دریافت نکردید، می بایست حتما وضعیت رزرو را در سایت تامین کننده بررسی نمایید. زیرا که دریافت نکردن جواب الزاما به معنی صادر نشدن رزرو نیست. و ممکن است سیستم سپهر رزرو را صادر کرده باشد ولی هنگام ارسال پاسخ به شما، اینترنت بین دیتاسنتر سپهر تا دیتاسنتر شما دچار اختلال گردیده و جواب به دست شما نرسیده باشد.

وضعیت رزرو را با یکی از دو روش زیر می توان بررسی نمود:

بدیهی است در صورت رعایت نکردن مورد فوق، هیچ گونه مسئولیتی متوجه سپهر نمی باشد.


Sample Response

{
  "Pnr": "V48T47"
}

Response common exceptions

در جدول زیر لیستی از خطاهایی که ممکن است بعد از فراخوانی این متد برگشت داده شود، فهرست شده است.

ExceptionType توضیح خطا
Error1004-NoEnoughCredit باقی مانده اعتبار حساب برای انجام این رزرو کافی نیست.
Error1005-CreditDueDateReached مهلت پرداخت بدهی به اتمام رسیده است و انجام رزرو امکان پذیر نمی باشد
Error1007-DuplicateClientPnr مقداری که به عنوان YourLocalInventoryPnr ارسال شده است تکراری بوده و قبلا در سیستم ثبت شده است.
Error1010-LockReleased قفل رزرو آزاد شده است و رزرو قابل انجام شدن نیست. این اتفاق زمانی به وقوع می پیوندد که یا زمان بین قفل کردن تا فراخوانی متد Book، بیش از اندازه طولانی شده باشد و یا اینکه قفل رزرو توسط مدیر سیستم در سایت تامین کننده آزاد شده باشد.
Error1016-InvalidBirthdate تاریخ تولد مسافر غیر معتبر است. زمانی که تاریخ ارسال شده در بازه زمانی امروز تا 120 سال گذشته نباشد این خطا تولید می شود.
Error1021-PriceMismatch نرخ درخواستی شما با نرخ سیستم مطابقت ندارد.
Error1022-IpIsNotTrusted آی پی شما در سایت تامین کننده تراست نشده است. جهت تراست کردن آی پی با پشتیبانی سپهر تماس حاصل نمایید.
Error1023-InvalidCredential نام کاربری یا رمز عبور اشتباه می باشد.
Error1024-ForbiddenIp آی پی شما توسط تامین کننده مسدود شده است. جهت پیگیری موضوع با تامین کننده تماس بگیرید.
Error1028-HotelExtrabedExceeded تعداد تخت اضافه مورد نیاز برای انجام رزرو، بیش از گنجایش کلی تخت اضافه هتل می باشد. اگر دیتای availability را سمت خود cache می نمایید، برای کاهش احتمال بروز این خطا پیشنهاد می شود availability را در زمان های کوتاه تری دریافت نموده و cache خود را سریعتر بروز رسانی نمایید.
Error1030-PassportExpiryDateMaximumLimit تاریخ انقضای گذرنامه بیش از حد مجاز آن است. معمولا اکثر کشورها گذرنامه هایی با حداکثر تاریخ انقضای 10 سال صادر می کنند. البته این عدد بر اساس هر کشور ممکن است متفاوت باشد. به عنوان مثال اگر برای کشوری که گذرنامه های حداکثر 10 ساله دارد، تاریخ انقضای گذرنامه بیش از 10 سال ارسال شود، سیستم این خطا را تولید خواهد کرد.
Exception خطای نامشخص. جهت دریافت اطلاعات بیشتر باید به ErrorMessage داخل json برگشتی مراجعه نمود.