availability
متد GetHotelPackageList
کارکرد این متد، ارائه تمام پکیج های تور (ترکیب پروازها و انواع اتاق) برای یک هتل است.
برای اخذ نرخ و ظرفیت تورها، ابتدا لازم است متد GetCheapestPrice فراخوانی گردد و خروجی آن که شامل فهرستی از هتلها است به مسافر ارائه شود. پس از انتخاب هتل مورد نظر توسط مسافر، در گام بعدی میبایست این متد فراخوانی شده و نتایج حاصل از آن که مشتمل بر کلیه پکیجها (شامل پروازها و انواع اتاق) میباشد، به مسافر نمایش داده شود.
این متد فقط هتل ها یا انواع اتاقی را خروجی میدهد که در سیستم سپهر صحت قراداد تامین کننده با هتل مورد بررسی قرار گرفته باشد. بنابراین ممکن است خروجی این متد با هتل هایی که در سایت تامین کننده مشاهده می گردد یکسان نباشد.
API Endpoint
POST https://{SupplierWebsiteUrl}/api/Partners/Tour/Availability/V7/GetHotelPackageList
Request Parameters
Usernamestring
required
نام کاربری
در صورتی که شما یک موتور جستجو هستید و قصد فروش نداشته و فقط می خواهید اطلاعات هتل های عمومی را بدست آورید، نام کاربری را public ارسال نمایید.
Passwordstring
required
رمز عبور به صورت MD5 شده
HotelSepehrGlobalIdnumber
required
مقدار شناسه هتلی که در مرحله قبل توسط متد GetCheapestPrice برگردانده شده و توسط مسافر انتخاب گردیده است، در این فیلد وارد شود
OriginIataCodestring
required
کد یاتا فرودگاه شهر مبدا
DestinationIataCodestring
required
کد یاتا فرودگاه شهر مقصد
DepartureDatestring
required
تاریخ رفت
با فرمت yyyy-MM-dd و به صورت میلادی
ReturningDatestring
required
تاریخ برگشت
با فرمت yyyy-MM-dd و به صورت میلادی
TripTypestring
required
این فیلد مشخص کننده نوع سفر است که می تواند شامل یکی از موارد زیر باشد:
Roundtrip
زمانی که درخواست مسافر شامل هتل و هم پرواز رفت و هم پرواز برگشت باشد، باید این مقدار ارسال گردد.
HotelWithDepartureFlight
زمانی که درخواست مسافر فقط شامل هتل و پرواز رفت باشد، باید این مقدار ارسال گردد.
HotelWithReturningFlight
زمانی که درخواست مسافر فقط شامل هتل و پرواز برگشت باشد، باید این مقدار ارسال گردد.
RoomListComplex type
required
لیستی از اتاق های درخواستی که شامل تعداد اتاق و تعداد میهمانان مقیم هر اتاق می باشد
حداکثر تعداد اتاق درخواستی 4 عدد می باشد.
RoomList.AdultCountnumber
required
تعداد میهمان بزرگسال روی این اتاق
RoomList.ChildAgeListlist of numbers
optional
لیستی از سن کودک
این پارامتر برای مشخصکردن تعداد کودکان و سن هر کودک استفاده میشود. به این صورت که:
- تعداد آیتمهای موجود در لیست، نشاندهنده تعداد کودکان است.
- مقدار هر آیتم، سن همان کودک را مشخص میکند.
نحوه محاسبه سن:
سن کودک باید به صورت عدد صحیح رو به بالا (Ceiling) ارسال شود. به عبارت دیگر:
- کمتر از ۱ سال → 1
- بین ۱ تا کمتر از ۲ سال → 2
- بین ۲ تا کمتر از ۳ سال → 3
- …
- ۴ سال و ۱ روز → 5
مثال:
اگر دو کودک با سنهای زیر وجود داشته باشند:
- کودک اول: ۲ سال و ۶ ماه
- کودک دوم: ۴ سال و ۱ روز
مقدار ارسالی باید به صورت زیر باشد: ChildAgeList = [3, 5]
Culturestring enum
required
زبان برگشت پیام ها از وب سرویس که می تواند fa-IR یا en-US یا ar-IQ باشد.
در زمان هایی که وب سرویس خطایی را برمیگرداند – مثلا تکمیل ظرفیت یک پرواز – با استفاده از این فیلد می توانید زبان پیام را مشخص نمایید.
Sample Request
{
"UserName": "testdev1",
"Password": "25f9e794323b453885f5181f1b624d0b",
"HotelSepehrGlobalId": 101,
"OriginIataCode": "THR",
"DestinationIataCode": "KIH",
"DepartureDate": "2025-12-17",
"ReturningDate": "2025-12-20",
"TripType": "Roundtrip",
"RoomList": [{
"AdultCount": 2,
"ChildAgeList": []
}
],
"Culture": "fa-IR"
}
نمونه درخواست - دو اتاق - سه بزرگسال - یک کودک 3 ساله
{
"UserName": "testdev1",
"Password": "25f9e794323b453885f5181f1b624d0b",
"HotelSepehrGlobalId": 104,
"OriginIataCode": "IKA",
"DestinationIataCode": "IST",
"DepartureDate": "2025-12-17",
"ReturningDate": "2025-12-20",
"TripType": "Roundtrip",
"RoomList": [{
"AdultCount": 2,
"ChildAgeList": []
}, {
"AdultCount": 1,
"ChildAgeList": [3]
}
],
"Culture": "fa-IR"
}
Response Parameters
CurrencyCodestring
این فیلد مشخص می کند که نرخ های برگشتی بر اساس چه ارزی می باشد.
مقدار آن بستگی به این دارد که ارز کاربر شما در سایت تامین کننده چه چیزی تعیین شده باشد. مثلا اگر کاربر شما به صورت ریالی باشد مقدار آن IRR و اگر دلاری باشد مقدار آن USD خواهد بود.
PackageListComplex type
لیست ترکیب های مختلف پرواز و انواع اتاق(پکیج) مربوط به یک هتل
PackageList.DepartureFlightComplex type
اطلاعات پرواز رفت
PackageList.DepartureFlight.FlightNumberstring
شماره پرواز
PackageList.DepartureFlight.DepartureDateTimestring
تاریخ پرواز با فرمت yyyy-MM-dd HH:mm به زمان محلی مبدا
PackageList.DepartureFlight.OriginComplex type
فرودگاه مبدا
PackageList.DepartureFlight.Origin.Codestring
کد یاتای سه حرفی فرودگاه مبدا
PackageList.DepartureFlight.Origin.Terminalstring
ترمینال مبدا. در حال حاضر خالی برگشت داده میشود.
PackageList.DepartureFlight.DestinationComplex type
فرودگاه مقصد
PackageList.DepartureFlight.Destination.Codestring
کد یاتای سه حرفی فرودگاه مقصد
PackageList.DepartureFlight.Destination.Terminalstring
ترمینال مقصد. در حال حاضر خالی برگشت داده میشود.
PackageList.DepartureFlight.Aircraftstring
کد یاتای نوع هواپیما.
جهت مشاهده کد یاتا انواع هواپیما اینجا کلیک نمایید
PackageList.DepartureFlight.ArrivalDateTimestring
زمان رسیدن پرواز به مقصد با فرمت yyyy-MM-dd HH:mm به زمان محلی مقصد
PackageList.DepartureFlight.Durationnumber
طول مدت پرواز بر حسب دقیقه
در صورتی که در سیستم خود طول مدت پرواز را نمایش می دهید، بهتر است به جای بدست آوردن تفاوت بین DepartureDateTime و ArrivalDateTime، از مقدار این فیلد استفاده نمایید. زیرا بدست آوردن تفاوت بر اساس DepartureDateTime و ArrivalDateTime نیازمند در نظر گرفتن ناحیه زمانی مبدا و مقصد بوده و یا حتی در مواردی که مبدا و مقصد یکسان بوده ولی ساعت ها تغییر کنند (مانند اول فروردین یا اول مهرماه) بدست آوردن این تفاوت، نیازمند عملیات پیچیده است. بنابراین بهتر است از مقدار این فیلد استفاده نمایید.
PackageList.DepartureFlight.Airlinestring
کد یاتا ایرلاین
PackageList.DepartureFlight.Remarksstring
اگر تامین کننده توضیحاتی در خصوص این پرواز ثبت کرده باشد، این توضیحات به صورت متن در این فیلد خروجی داده می شود.
معمولا شما نیازی به استفاده از این فیلد نخواهید داشت و می توانید آن را نادیده بگیرید.
PackageList.DepartureFlight.Stop1Complex type
در صورتی که پرواز دارای Stop باشد، اطلاعات اولین توقف در این فیلد خروجی داده خواهد شد.
در پروازهای Stop دار، در زمان توقف، مسافر از هواپیما پیاده نشده و همچنین نیازی به جابجایی بار نیست. معمولا این گونه توقف ها بابت پیاده یا سوار کردن مسافران جدید یا سوخت گیری انجام می پذیرد. و در هر صورتی مسافران قبلی در زمان توقف در هواپیما باقی مانده و نیازی به ترک هواپیما نمی باشد.
PackageList.DepartureFlight.Stop1.AirportIataCodestring
کد یاتا فرودگاه محل توقف
PackageList.DepartureFlight.Stop1.FlightDurationUntilThisStopInMinutenumber
طول مدت پرواز تا رسیدن به فرودگاه محل توقف.
مقدار این فیلد بر اساس دقیقه می باشد.
PackageList.DepartureFlight.Stop1.StopDurationInMinutenumber
طول مدت توقف در فرودگاه
مقدار این فیلد بر اساس دقیقه می باشد.
PackageList.DepartureFlight.Stop1.ArrivalDateTimestring
زمان ورود به فرودگاه محل توقف
بر اساس زمان محلی و با فرمت yyyy-MM-dd HH:mm
PackageList.DepartureFlight.Stop1.DepartureDateTimestring
زمان خروج از فرودگاه محل توقف
بر اساس زمان محلی و با فرمت yyyy-MM-dd HH:mm
جهت بررسی این فیلد می توانید از تست سناریوهای زیر استفاده نمایید:
PackageList.DepartureFlight.Stop2Complex type
در صورتی که پرواز دارای بیش از یک Stop باشد، اطلاعات مربوط به توقف دوم توسط این فیلد خروجی داده می شود.
ساختار فرمت آن مشابه فیلد Stop1 می باشد.
جهت بررسی این فیلد می توانید از تست سناریوهای زیر استفاده نمایید:
PackageList.DepartureFlight.CabinTypestring
نوع کابین کلاس پروازی که می تواند یکی از موارد زیر را داشته باشد:
- Economy
- EconomyPlus
- PremiumEconomy
- Business
- BusinessComfort
- BusinessPremium
- First
PackageList.DepartureFlight.BookingCodestring
معمولا ترکیب یک یا دو حرف بوده و مشخص کننده نوع BookingCode می باشد. مانند Y یا M.
طول این فیلد حداکثر 3 کاراکتر می باشد.
PackageList.DepartureFlight.FareNamestring
نام Fare کلاس پروازی که می تواند ترکیب طولانی از حروف و اعداد باشد مانند THRMHD137. این نام در زمان رزرو گرفتن باید ارسال شود تا مشخص کند شما می خواهید روی چه کلاس پروازی رزرو خود را انجام دهید.
طول این فیلد حداکثر 50 کاراکتر می باشد.
PackageList.DepartureFlight.AdultFreeBaggageComplex type
اطلاعات مربوط به بار مجاز یک نفر بزرگسال
PackageList.DepartureFlight.AdultFreeBaggage.CheckedBaggageQuantitynumber
تعداد چمدان بار مجاز جهت قسمت بار هواپیما
PackageList.DepartureFlight.AdultFreeBaggage.CheckedBaggageTotalWeightnumber
مجموع وزن بار مجاز جهت قسمت بار هواپیما
PackageList.DepartureFlight.AdultFreeBaggage.HandBaggageQuantitynumber
تعداد کیف دستی قابل حمل به داخل هواپیما
PackageList.DepartureFlight.AdultFreeBaggage.HandBaggageTotalWeightnumber
مجموع وزن کیف دستی قابل حمل به داخل هواپیما
PackageList.DepartureFlight.ChildFreeBaggageComplex type
اطلاعات مربوط به بار مجاز یک نفر کودک
ساختار آن شبیه به AdultFreeBaggage می باشد.
PackageList.DepartureFlight.InfantFreeBaggageComplex type
اطلاعات مربوط به بار مجاز یک نفر نوزاد
ساختار آن شبیه به AdultFreeBaggage می باشد.
PackageList.ReturningFlightComplex type
اطلاعات پرواز برگشت
ساختار آن کاملا شبیه DepartureFlight می باشد.
PackageList.HotelComplex type
اطلاعات مربوط به هتل
PackageList.Hotel.SepehrGlobalIdnumber
شناسه منحصر به فرد مربوط به این هتل در تمام سایت های سپهری
PackageList.Hotel.Namestring
نام هتل
PackageList.Hotel.RoomTypeListComplex type
لیست انواع اتاق موجود روی این هتل
PackageList.Hotel.RoomTypeList.SepehrGlobalIdnumber
شناسه منحصر به فرد مربوط به این نوع اتاق در تمام سایت های سپهری
PackageList.Hotel.RoomTypeList.Namestring
عنوان نوع اتاق
PackageList.Hotel.RoomTypeList.BoardTypeCodestring
کد نوع بورد که یکی از موارد زیر می باشد:
- RO - مخفف Room Only و به معنی اسکان تک و بدون هیچ وعده غذایی می باشد.
- SC - مخفف Self Catering می باشد و بیشتر در هتل آپارتمان ها تعریف می شود.
- BB - مخفف Bed & Breakfast و به معنی اقامت با صبحانه می باشد
- HB - مخفف Half Board و به معنی اقامت به همراه صبحانه و ناهار می باشد.
- BD - به معنی اقامت به همراه صبحانه و شام می باشد.
- BS - به معنی اقامت به همراه صبحانه و یک وعده غذایی دیگر به انتخاب مسافر (یا ناهار یا شام) می باشد.
- FC - به معنی Full Board و اقامت به همراه صبحانه و ناهار و شام به صورت منوی بسته می باشد.
- FB - به معنی Full Board و اقامت به همراه صبحانه و ناهار و شام به صورت منوی انتخابی می باشد.
- FF - به معنی Full Board و اقامت به همراه صبحانه و ناهار و شام به صورت منوی بوفه می باشد.
- AI - مخفف All Inclusive و از نظر ارائه میان وعده های غذایی بالاتر از FB می باشد.
- UA - مخفف Ultra All Inclusive می باشد
PackageList.Hotel.RoomTypeList.AdultCountnumber
تعداد میهمانان بزرگسال که طبق درخواست شما در این نوع اتاق جا داده شده است
PackageList.Hotel.RoomTypeList.ChildAgeListlist of numbers
سن میهمانان کودک که طبق درخواست شما در این نوع اتاق جا داده شده است
PackageList.Hotel.RoomTypeList.ExtrabedAssignedCountnumber
تعداد تخت اضافه اختصاص شده روی این اتاق
در صورتی که اتاق گنجایش تخت اضافه داشته باشد و جهت اسکان تعداد میهمانان درخواستی شما در این نوع اتاق نیاز به تخت اضافه باشد، سیستم تعداد تخت اضافه که جهت اسکان اختصاص داده شده است را در این فیلد خروجی میدهد.
PackageList.Hotel.AmenityListComplex type
لیست خدمات ارائه شده روی این هتل
PackageList.Hotel.AmenityList.SepehrGlobalIdnumber
شناسه منحصر به فرد مربوط به این خدمت در تمام سایت های سپهری
PackageList.Hotel.AmenityList.Namestring
عنوان خدمت
PackageList.Hotel.AmenityList.Quantitynumber
تعداد خدمت ارائه شده
PackageList.TotalFlightNetPricedecimal
مجموع نرخ لگ های پروازی
مقدار این فیلد مورد نیاز متد Lock می باشد و کاربرد دیگری ندارد.
PackageList.TotalHotelNetPricedecimal
مجموع نرخ هتل
مقدار این فیلد مورد نیاز متد Lock می باشد و کاربرد دیگری ندارد.
PackageList.TotalGrossPricedecimal
نرخ ناخالص (قبل از کسر کمیسیون) تور
مقدار این فیلد جهت نمایش در سایت شما به مسافر کاربرد دارد. به این صورت که می توانید مقدار این فیلد را به عنوان مبلغ اولیه (قبل از اعمال شدن تخفیف) به مسافر نمایش دهید
PackageList.TotalCommissiondecimal
مجموع کمیسیون که در صورت رزرو به شما تعلق خواهد گرفت
PackageList.TotalNetPricedecimal
نرخ خالص (بعد از کسر کمیسیون) تور
این مبلغ در زمان رزرو در حساب بدهکاری شما منظور خواهد شد.
Sample Response
{
"CurrencyCode": "IRR",
"PackageList": [{
"DepartureFlight": {
"FlightNumber": "412",
"DepartureDateTime": "2025-12-17 18:00",
"Origin": {
"Code": "THR",
"Terminal": null
},
"Destination": {
"Code": "KIH",
"Terminal": null
},
"Aircraft": "AB4",
"ArrivalDateTime": "2025-12-17 19:50",
"Duration": 110,
"Airline": "NV",
"Remarks": "",
"Stop1": null,
"Stop2": null,
"CabinType": "Business",
"BookingCode": "C",
"FareName": "THRMHD1",
"AdultFreeBaggage": {
"CheckedBaggageQuantity": 0,
"CheckedBaggageTotalWeight": 0,
"HandBaggageQuantity": 0,
"HandBaggageTotalWeight": 0
},
"ChildFreeBaggage": {
"CheckedBaggageQuantity": 0,
"CheckedBaggageTotalWeight": 0,
"HandBaggageQuantity": 0,
"HandBaggageTotalWeight": 0
},
"InfantFreeBaggage": {
"CheckedBaggageQuantity": 0,
"CheckedBaggageTotalWeight": 0,
"HandBaggageQuantity": 0,
"HandBaggageTotalWeight": 0
}
},
"ReturningFlight": {
"FlightNumber": "413",
"DepartureDateTime": "2025-12-20 10:00",
"Origin": {
"Code": "KIH",
"Terminal": null
},
"Destination": {
"Code": "THR",
"Terminal": null
},
"Aircraft": "AB4",
"ArrivalDateTime": "2025-12-20 11:10",
"Duration": 70,
"Airline": "HH",
"Remarks": "",
"Stop1": null,
"Stop2": null,
"CabinType": "Economy",
"BookingCode": "Y",
"FareName": "MHD",
"AdultFreeBaggage": {
"CheckedBaggageQuantity": 2,
"CheckedBaggageTotalWeight": 20,
"HandBaggageQuantity": 1,
"HandBaggageTotalWeight": 5
},
"ChildFreeBaggage": {
"CheckedBaggageQuantity": 2,
"CheckedBaggageTotalWeight": 20,
"HandBaggageQuantity": 1,
"HandBaggageTotalWeight": 5
},
"InfantFreeBaggage": {
"CheckedBaggageQuantity": 0,
"CheckedBaggageTotalWeight": 0,
"HandBaggageQuantity": 0,
"HandBaggageTotalWeight": 0
}
},
"Hotel": {
"SepehrGlobalId": 101,
"Name": "هتل کوهستان تستي",
"RoomTypeList": [{
"SepehrGlobalId": 5003,
"Name": "دو تخته استاندارد",
"BoardTypeCode": "BB",
"AdultCount": 2,
"ChildAgeList": [],
"ExtrabedAssignedCount": 0
}
],
"AmenityList": [{
"SepehrGlobalId": 102,
"Name": "استخر روباز",
"Quantity": 6
}, {
"SepehrGlobalId": 100,
"Name": "استقبال فرودگاهی",
"Quantity": 2
}, {
"SepehrGlobalId": 103,
"Name": "بیمه مسافرتی",
"Quantity": 2
}
]
},
"TotalFlightNetPrice": 17809900.00,
"TotalHotelNetPrice": 18366500.00,
"TotalGrossPrice": 35498500.00,
"TotalCommission": 582100.0,
"TotalNetPrice": 36176400.00
}
// ... بیشتر پکیجها
]
}