Retrieve Booking

متد GetStatus

کاربرد این متد برای زمانی است که شما متد Book را فراخوانی نموده اید، ولی به هر دلیلی – مانند مشکلات شبکه و قطعی اینترنتی یا ریست شدن سرور – جوابی از سپهر دریافت نکرده اید، با استفاده از این متد می توانید وضعیت درخواست رزرو و اینکه آیا رزرو صادر شده است یا خیر را بررسی نمایید.

پیشنهاد می گردد اگر بعد از فراخوانی متد Book هیچ جوابی دریافت نکردید، حداقل 15 ثانیه صبر نموده و سپس از متد GetStatus استفاده نمایید. در صورتی که فاصله بین فراخوانی متد Book و متد GetStatus کمتر از 15 ثانیه باشد، احتمال اینکه متد GetStatus جواب اشتباهی را خروجی دهد زیاد است. و ممکن است رزرو شما در حال صادر شدن باشد ولی متد GetStatus در جواب پاسخ دهد که هیچ رزروی صادر نشده است. به بیان فنی تر می توان اینطور گفت که وقتی متد Book را فراخوانی می نمایید یک Timeout به میزان 15 ثانیه برای آن تنظیم نمایید و در صورتی که خطای timeout دریافت کردید آنگاه متد GetStatus را فراخوانی نمایید تا از نتیجه صادر شدن یا نشدن رزرو خود مطلع شوید.

این متد اطلاعات مربوط به رزرو اولیه را نمایش میدهد و در صورتی که بعدا روی رزرو اصلاحیه ای صورت گرفته باشد – مانند استرداد یا تغییر تاریخ – آن اصلاحیه ها را خروجی نمی دهد.

API Endpoint
https://{SupplierWebsiteUrl}/api/Partners/Hotel/RetrieveBooking/V1/GetStatus post
Request Parameters

نمونه کلاس Request به زبان سی شارپ در پروژه Partners.Contracts (دانلود) در پوشه زیر موجود است:

\Hotel\RetrieveBooking\V1\GetStatus\RequestModel

Credential

Complex type

required

اطلاعات مربوط به نام کاربری و رمز عبور

Username

string

required

نام کاربری

Password

string

required

رمز عبور به صورت MD5 شده

YourLocalInventoryPnr

string

required

رفرنس سیستم شما که در زمان رزرو به متد Book ارسال نموده اید.

Sample Request
{
  "Credential": {
    "Username": "testdev1",
    "Password": "25f9e794323b453885f5181f1b624d0b"
  },
  "YourLocalInventoryPnr": "24d3af03-bc90-4d77-bc4d-0a6c9230c36c"
}	
Response Data

نمونه کلاس Response به زبان سی شارپ در پروژه Partners.Contracts (دانلود) در پوشه زیر موجود است:

\Hotel\RetrieveBooking\V1\GetStatus\ResponseModel

StatusId

number

وضعیت رزرو که شامل یکی از موارد زیر می گردد

  • عدد 1 بدین معناست که رزرو صادر شده است و اطلاعات آن در فیلد PassengerList قابل مشاهده می باشد.

  • عدد 2 بدین معناست که رزروی با رفرنس شما (YourLocalInventoryPnr) پیدا و صادر نشده است.

  • عدد 3 بدین معناست که درخواست رزرو شما توسط سپهر دریافت شده است و رزرو در حال پردازش می باشد. ولی وضعیت آن هنوز تایید نهایی نشده است.

  • عدد 4 بدین معناست که رزرو شما به خطا خورده و صادر نشده است. علت خطا در فیلد FailReason خروجی داده می شود.

StatusDesc

string

مقدار این فیلد توضیحی برای فیلد StatusId می باشد. و بنابراین شامل یکی از موارد زیر می گردد:

  • مقدار OK بدین معناست که رزرو صادر شده است و اطلاعات آن در فیلد PassengerList قابل مشاهده می باشد.

  • مقدار NotFound بدین معناست که رزروی با رفرنس شما (YourLocalInventoryPnr) پیدا و صادر نشده است.

  • مقدار IssueInProgress بدین معناست که درخواست رزرو شما توسط سپهر دریافت شده است و رزرو در حال پردازش می باشد. ولی وضعیت آن هنوز تایید نهایی نشده است.

  • مقدار Failed بدین معناست که رزرو شما به خطا خورده و صادر نشده است. علت خطا در فیلد FailReason خروجی داده می شود.

Pnr

string

در صورتی که رزرو شما با موفقیت صادر شده باشد، رفرنس سیستم سپهر در این فیلد خروجی داده می شود

FailReason

string

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

CharterRoomList

List(Room)

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

HotelSepehrGlobalId

number

Id منحصر به فرد هتل در سیستم سپهر

HotelName

string

نام هتل

RoomTypeSepehrGlobalId

number

Id منحصر به فرد نوع اتاق در سیستم سپهر

RoomTypeName

number

نام نوع اتاق

CheckinDate

string

تاریخ ورود با فرمت yyyy-MM-dd و به صورت میلادی

CheckoutDate

string

تاریخ خروج با فرمت yyyy-MM-dd و به صورت میلادی

PassengerList

List(Passenger)

لیست مسافران اسکان داده شده روی این اتاق

FirstName

string

نام مسافر

LastName

string

نام خانوادگی مسافر

AgeType

string

گروه سنی مسافر که شامل یکی از مقادیر ADL یا CHD یا INF می باشد

Gender

string

جنسیت مسافر که شامل یکی از مقادر M به معنی مذکر یا F به معنی مونث می باشد.

Birthdate

string

تاریخ تولد مسافر به صورت میلادی و با فرمت yyyy-MM-dd

NationalityCountry

string

کد دوحرفی کشور مربوط به ملیت مسافر

IranianCartMelli

complex type

کد ملی مسافر برای مسافران ایرانی

CodeMelli

string

کد ملی

Passport

complex type

اطلاعات مربوط به گذرنامه مسافر

Number

string

شماره گذرنامه

ExpiryDate

string

تاریخ انقضا گذرنامه به صورت میلادی و با فرمت yyyy-MM-dd

PlaceOfIssueCountry

string

کد دو حرفی محل صدور گذرنامه

PriceList

List(Price)

جزییات نرخ به ازای هر شب برای این اتاق

Date

string

تاریخ اقامت با فرمت yyyy-MM-dd و به صورت میلادی

Room_PriceBreakdown

complex type

جزییات نرخ اتاق

BoardPrice

decimal

نرخ برد اتاق (قبل از اعمال شدن کمیسیون و مالیات)

CommissionPercent

decimal

درصد کمیسیون

CalculatedAmountOfCommissionPercent

decimal

معادل مبلغی درصد کمیسیون

Discount

decimal

مبلغ تخفیف

Surcharge

decimal

مبلغ اضافه بها

NetPrice_TaxExcluded

decimal

نرخ خالص (بعد از کسر کمیسیون و قبل از اضافه شدن مالیات)

VAT_Percent

decimal

درصد مالیات ارزش افزوده

VAT_Amount

decimal

معادل مبلغی درصد مالیات ارزش افزوده

NetPrice_TaxIncluded

decimal

نرخ خالص نهایی (بعد از کسر کمیسیون و بعد از اضافه شدن مالیات)

Extrabed_PriceBreakdown

complex type

جزییات نرخ تخت اضافه

در صورتی که برای اتاق تخت اضافه در نظر گرفته شده باشد این فیلد مقدار خواهد داشت، در غیر این صورت null خواهد بود.

BoardPrice

decimal

نرخ برد اتاق (قبل از اعمال شدن کمیسیون و مالیات)

CommissionPercent

decimal

درصد کمیسیون

CalculatedAmountOfCommissionPercent

decimal

معادل مبلغی درصد کمیسیون

Discount

decimal

مبلغ تخفیف

Surcharge

decimal

مبلغ اضافه بها

NetPrice_TaxExcluded

decimal

نرخ خالص (بعد از کسر کمیسیون و قبل از اضافه شدن مالیات)

VAT_Percent

decimal

درصد مالیات ارزش افزوده

VAT_Amount

decimal

معادل مبلغی درصد مالیات ارزش افزوده

NetPrice_TaxIncluded

decimal

نرخ خالص نهایی (بعد از کسر کمیسیون و بعد از اضافه شدن مالیات)

Sample Response
{
  "StatusId": 1,
  "StatusDesc": "OK",
  "Pnr": "KV455G",
  "FailReason": null,
  "CharterRoomList": [
    {
      "HotelSepehrGlobalId": 101,
      "HotelName": "ميراژ",
      "RoomTypeSepehrGlobalId": 5004,
      "RoomTypeName": "يک تخته پرزيدنت",
      "CheckinDate": "2023-05-11",
      "CheckoutDate": "2023-05-14",
      "PassengerList": [
        {
          "FirstName": "SAYEDMOHAMMAD",
          "LastName": "KHORSAND",
          "AgeType": "ADL",
          "Gender": "M",
          "Birthdate": "1993-05-09",
          "NationalityCountry": null,
          "IranianCartMelli": {
            "CodeMelli": "0010752821"
          },
          "Passport": null
        },
        {
          "FirstName": "GITI",
          "LastName": "ZAHEDI KASHANI",
          "AgeType": "ADL",
          "Gender": "M",
          "Birthdate": "1993-05-09",
          "NationalityCountry": null,
          "IranianCartMelli": {
            "CodeMelli": "0011436301"
          },
          "Passport": null
        }
      ],
      "PriceList": [
        {
          "Date": "2023-05-11",
          "Room_PriceBreakdown": {
            "BoardPrice": 1000000,
            "CommissionPercent": 2,
            "CalculatedAmountOfCommissionPercent": 20000,
            "Discount": 0,
            "Surcharge": 0,
            "NetPrice_TaxExcluded": 980000,
            "VAT_Percent": 0,
            "VAT_Amount": 0,
            "NetPrice_TaxIncluded": 980000
          },
          "Extrabed_PriceBreakdown": {
            "BoardPrice": 1000000,
            "CommissionPercent": 2,
            "CalculatedAmountOfCommissionPercent": 20000,
            "Discount": 0,
            "Surcharge": 0,
            "NetPrice_TaxExcluded": 980000,
            "VAT_Percent": 0,
            "VAT_Amount": 0,
            "NetPrice_TaxIncluded": 980000
          }
        },
        {
          "Date": "2023-05-12",
          "Room_PriceBreakdown": {
            "BoardPrice": 1000000,
            "CommissionPercent": 2,
            "CalculatedAmountOfCommissionPercent": 20000,
            "Discount": 0,
            "Surcharge": 0,
            "NetPrice_TaxExcluded": 980000,
            "VAT_Percent": 0,
            "VAT_Amount": 0,
            "NetPrice_TaxIncluded": 980000
          },
          "Extrabed_PriceBreakdown": {
            "BoardPrice": 1000000,
            "CommissionPercent": 2,
            "CalculatedAmountOfCommissionPercent": 20000,
            "Discount": 0,
            "Surcharge": 0,
            "NetPrice_TaxExcluded": 980000,
            "VAT_Percent": 0,
            "VAT_Amount": 0,
            "NetPrice_TaxIncluded": 980000
          }
        },
        {
          "Date": "2023-05-13",
          "Room_PriceBreakdown": {
            "BoardPrice": 1000000,
            "CommissionPercent": 2,
            "CalculatedAmountOfCommissionPercent": 20000,
            "Discount": 0,
            "Surcharge": 0,
            "NetPrice_TaxExcluded": 980000,
            "VAT_Percent": 0,
            "VAT_Amount": 0,
            "NetPrice_TaxIncluded": 980000
          },
          "Extrabed_PriceBreakdown": {
            "BoardPrice": 1000000,
            "CommissionPercent": 2,
            "CalculatedAmountOfCommissionPercent": 20000,
            "Discount": 0,
            "Surcharge": 0,
            "NetPrice_TaxExcluded": 980000,
            "VAT_Percent": 0,
            "VAT_Amount": 0,
            "NetPrice_TaxIncluded": 980000
          }
        }
      ]
    },
    {
      "HotelSepehrGlobalId": 101,
      "HotelName": "ميراژ",
      "RoomTypeSepehrGlobalId": 5001,
      "RoomTypeName": "دو تخته رو به دريا",
      "CheckinDate": "2023-05-11",
      "CheckoutDate": "2023-05-14",
      "PassengerList": [
        {
          "FirstName": "ZAINAB",
          "LastName": "KHODAMORADIFARD",
          "AgeType": "ADL",
          "Gender": "M",
          "Birthdate": "1993-05-09",
          "NationalityCountry": null,
          "IranianCartMelli": {
            "CodeMelli": "0010387714"
          },
          "Passport": null
        },
        {
          "FirstName": "MAEDE",
          "LastName": "HOSSEINNIA SANJARANI",
          "AgeType": "ADL",
          "Gender": "M",
          "Birthdate": "1993-05-09",
          "NationalityCountry": null,
          "IranianCartMelli": {
            "CodeMelli": "0012025445"
          },
          "Passport": null
        }
      ],
      "PriceList": [
        {
          "Date": "2023-05-11",
          "Room_PriceBreakdown": {
            "BoardPrice": 2000000,
            "CommissionPercent": 0,
            "CalculatedAmountOfCommissionPercent": 0,
            "Discount": 0,
            "Surcharge": 0,
            "NetPrice_TaxExcluded": 2000000,
            "VAT_Percent": 0,
            "VAT_Amount": 0,
            "NetPrice_TaxIncluded": 2000000
          },
          "Extrabed_PriceBreakdown": null
        },
        {
          "Date": "2023-05-12",
          "Room_PriceBreakdown": {
            "BoardPrice": 2000000,
            "CommissionPercent": 0,
            "CalculatedAmountOfCommissionPercent": 0,
            "Discount": 0,
            "Surcharge": 0,
            "NetPrice_TaxExcluded": 2000000,
            "VAT_Percent": 0,
            "VAT_Amount": 0,
            "NetPrice_TaxIncluded": 2000000
          },
          "Extrabed_PriceBreakdown": null
        },
        {
          "Date": "2023-05-13",
          "Room_PriceBreakdown": {
            "BoardPrice": 2000000,
            "CommissionPercent": 0,
            "CalculatedAmountOfCommissionPercent": 0,
            "Discount": 0,
            "Surcharge": 0,
            "NetPrice_TaxExcluded": 2000000,
            "VAT_Percent": 0,
            "VAT_Amount": 0,
            "NetPrice_TaxIncluded": 2000000
          },
          "Extrabed_PriceBreakdown": null
        }
      ]
    }
  ]
}	
Response common exceptions

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

ExceptionType توضیح خطا

Exception

خطای نامشخص. جهت دریافت اطلاعات بیشتر باید به ErrorMessage داخل json برگشتی مراجعه نمود.