changed-schedule-passengers
متد GetList
این متد لیست رزروهایی که تغییری در برنامه پروازی مسافران آنها داده شده است را بر می گرداند.
زمانبندی فراخوانی توصیه میشود این متد را به صورت دورهای (برای مثال هر ۱۵ دقیقه) فراخوانی کنید تا همواره از آخرین تغییرات برنامه پروازی مطلع شده و مسافران را در جریان بگذارید.
نحوه مدیریت محدودیت تعداد خروجی (صفحهبندی) سقف تعداد رکوردهای برگشتی در هر بار فراخوانی این وبسرویس ۵۰۰ رکورد است. اگر حجم تغییرات بیش از این تعداد باشد، باید با ذخیره کردن بزرگترین تاریخ ChangeScheduleDateTimeUtc و قرار دادن آن در فیلد FromDateTimeUtc درخواست بعدی، مجدداً متد را فراخوانی کنید تا رکوردهای بعدی برای شما ارسال شود.
نمایش پیام به مسافر سیستم به طور خودکار مناسبترین متن اطلاعرسانی را در فیلد Message تولید و ارسال میکند. هرچند امکان تولید پیام شخصیسازیشده بر اساس فیلدهای تفکیکشده وجود دارد، اما با توجه به لاجیک بسیار پیچیده و زمانبر بودن پیادهسازی آن، پیشنهاد میکنیم پیامها را مستقیماً از روی فیلد Message برای مسافران ارسال کنید.
نکته بسیار مهم در خصوص رزروهای چند مسافره در یک رزرو گروهی، ممکن است وضعیت تغییرات پرواز برای مسافران یکسان نباشد (مثلاً به دلیل محدودیت جا، پرواز پیشنهادی جدید فقط به تعدادی از مسافران تخصیص داده شود). بنابراین، متن پیام در فیلد Message برای هر مسافر به صورت مجزا تولید میشود.
رویکرد اشتباه: استفاده از پیام مسافر اول برای کل اعضای رزرو.
رویکرد درست: در پردازش دادهها، مسافرانِ هر رزرو را بر اساس محتوای فیلد Message دستهبندی (Group) کنید. سپس برای مسافرانی که متن پیام کاملاً مشابهی دارند، یک پیامک مشترک ارسال کنید تا هم در هزینههای ارسال پیامک صرفهجویی شود و هم اطلاعات نادرست به سایر مسافران ارسال نگردد.
نکته مهم در مورد استرداد اگر وضعیت پرواز مسافر Cancelled شد، این به معنی کنسل شدن خودِ رزرو نیست. برای اینکه رزرو واقعا کنسل شود و مبلغ به اعتبار شما برگردد، باید حتما متد DoRefund را فراخوانی کنید. تا قبل از اجرای DoRefund، هیچ مبلغی به اعتبار شما باز نمیگردد و نباید وجهی به مسافر استرداد شود؛ چون ممکن است وضعیت پرواز بعدا از Cancelled به Reinstated تغییر کند و رزرو دوباره معتبر شود.
همچنین اگر DoRefund را اجرا کرده باشید، حتی در صورت برقراری مجدد پرواز، رزرو دیگر به حالت Reinstated برنمیگردد.
نکته مهم دیگر این است که ممکن است مسافری که در رکورد فعلی با وضعیت Cancelled نمایش داده میشود، در رکوردهای بعدی Reinstated شده باشد. بنابراین قبل از فراخوانی DoRefund، حتما متد GetPenalty را بررسی کنید تا مطمئن شوید وضعیت مسافر همچنان Cancelled و استرداد بدون جریمه همچنان مجاز است.
API Endpoint
POST https://{SupplierWebsiteUrl}/api/Partners/ChangedSchedulePassengers/V2/GetList
Request Parameters
Usernamestring
required
نام کاربری
Passwordstring
required
رمز عبور به صورت MD5 شده
FromDateTimeUtcdatetime
required
تاریخ و زمان مبدأ جهت دریافت تغییرات جدید (به وقت UTC و با فرمت yyyy-MM-dd HH:mm:ss).
در اولین درخواست، تاریخ مبدأ مورد نظر خود را ارسال کنید. در پاسخ، فهرستی از Bookingها برمیگردد که هرکدام دارای فیلد ChangeScheduleDateTimeUtc هستند. برای فراخوانیهای بعدی، باید بزرگترین (جدیدترین) زمانِ دریافت شده در این فیلد را سمت خود ذخیره کرده و آن را در فیلد FromDateTimeUtc درخواست بعدی بفرستید تا فقط تغییرات جدیدتر از آن زمان برای شما ارسال شود.
Sample Request
{
"Username": "testdev1",
"Password": "25f9e794323b453885f5181f1b624d0b",
"FromDateTimeUtc": "2024-02-01 00:00:00"
}
Response Parameters
BookingListList(Booking)
لیست رزروهای که پرواز مسافران آن تغییر برنامه داده شده است
BookingList.RecordIdinteger
شناسه یکتای مربوط به رکورد تغییرات.
شما میتوانید از این فیلد برای اعتبارسنجی یکتایی دادهها در سمت خود استفاده کنید تا از ثبت و پردازش مجدد دادههای تکراری جلوگیری شود.
BookingList.Pnrstring
رفرنس رزرو
BookingList.BookingDateTimeUtcstring
زمان انجام شدن رزرو
فرمت این فیلد yyyy-MM-dd HH:mm:ss می باشد
تاریخ میلادی و به ناحیه زمانی UTC می باشد
BookingList.ChangeScheduleDateTimeUtcstring
زمان انجام شدن تغییرات
فرمت این فیلد yyyy-MM-dd HH:mm:ss می باشد
تاریخ میلادی و به ناحیه زمانی UTC می باشد
BookingList.YourLocalInventoryPnrstring
رفرنس سیستم داخلی شما
BookingList.IsReserveIssuedboolean
این فیلد مشخص میکند که رزرو مسافر نهایی و صادر شده است یا همچنان در وضعیت موقت قرار دارد و هنوز صادر نشده است.
از آنجا که در این وبسرویس، برای هر دو نوع رزروِ موقت (صادرنشده) و رزروِ نهاییشده، در صورت تغییر برنامه پروازی رکورد خروجی برگردانده میشود، این فیلد در پاسخ قرار داده شده است تا بتوانید وضعیت رزرو را تشخیص دهید.
در صورتی که بخواهید بر اساس موقت یا نهایی بودن رزرو، متن یا نحوه اطلاعرسانی متفاوتی به مسافر ارسال کنید، میتوانید از مقدار این فیلد استفاده کنید.
BookingList.PassengerListList(Passenger)
لیست مسافران
BookingList.PassengerList.AgeTypestring
گروه سنی مسافر که شامل یکی از مقادیر ADL یا CHD یا INF می باشد
BookingList.PassengerList.FirstNamestring
نام مسافر
BookingList.PassengerList.LastNamestring
نام خانوادگی مسافر
BookingList.PassengerList.Genderstring
جنسیت مسافر که یکی از مقادیر M یا F را دارد.
BookingList.PassengerList.TicketNumberstring
شماره بلیط
BookingList.PassengerList.CabinTypestring
نوع کابین
BookingList.PassengerList.Statusstring
مشخصکننده وضعیت و جنس تغییرات اعمالشده بر روی رزرو مسافر. این فیلد شامل یکی از مقادیر زیر است:
Cancelled
پرواز باطل شده یا به علت کاهش لود (کاهش ظرفیت مجاز پرواز)، مسافر از لیست پرواز حذف شده و امکان سفر ندارد.
FlightTimeChanged
زمان پرواز تغییر کرده است (شامل تعجیل یا تأخیر در ساعت پرواز).
Reinstated
پروازِ ابطالشده قبلی، مجدداً احیا و برقرار شده است و رزرو مسافر به حالت معتبر بازمیگردد.
BookingList.PassengerList.Cancelledcomplex type
این فیلد جزئیات و اطلاعات تکمیلی مربوط به ابطال پرواز را ارائه میدهد.
این فیلد تنها زمانی مقداردهی میشود که مقدار فیلد Status برابر با Cancelled باشد؛ در غیر این صورت، این فیلد به صورت null فرستاده میشود.
BookingList.PassengerList.Cancelled.CancellationReasonstring
بیانکننده دلیل ابطال پرواز یا کاهش لود مسافر. این فیلد یکی از مقادیر زیر را شامل میشود:
FlightCancellation
ابطال کامل پرواز.
ReducedFlightCapacityDueToAircraftChange
کاهش ظرفیت پرواز به دلیل تغییر تایپ هواپیما به هواپیمای کوچکتر.
ReducedFlightCapacityDueToTemperature
کاهش ظرفیت پرواز به دلیل محدودیتهای دمای هوا (محدودیت وزن برخاست).
ReducedFlightCapacityDueToPublicHealthEmergency
کاهش ظرفیت پرواز به علت شرایط اضطراری سلامت و بهداشت عمومی.
ReducedFlightCapacityDueToOverbooking
کاهش ظرفیت به دلیل اوربوکینگ (فروش بیش از ظرفیت پرواز).
BookingList.PassengerList.Cancelled.PassengerResponseDeadlineUtcdatetime
ضربالاجل و آخرین مهلت پاسخگویی مسافر برای تعیین تکلیف پرواز جایگزین (به وقت UTC).
چنانچه برای پرواز ابطالشده، پروازهای جایگزینی در لیست AlternativeFlightList ارائه شده باشد، مهلت زمانی پاسخ مسافر (تایید یا رد پیشنهادات) در این فیلد مشخص میگردد. در صورتی که هیچ پرواز جایگزینی پیشنهاد نشده باشد، مقدار این فیلد برابر با null ارسال میشود.
BookingList.PassengerList.FlightTimeChangedcomplex type
این فیلد اطلاعات تکمیلی و جزئیات مربوط به تغییر ساعت پرواز (تعجیل یا تاخیر) را ارائه میدهد.
این فیلد تنها زمانی مقداردهی میشود که مقدار فیلد Status برابر با FlightTimeChanged باشد؛ در غیر این صورت، مقدار آن به صورت null ارسال خواهد شد.
BookingList.PassengerList.FlightTimeChanged.PreviousFlightTimedatetime
این فیلد زمان اولیه پرواز (پیش از تغییر ساعت) را ارائه میدهد.
اطلاعات زمانی داخلی این فیلد با فرمت yyyy-MM-dd HH:mm و بر اساس ناحیه زمانی فرودگاه مبدا پرواز می باشد
BookingList.PassengerList.FlightTimeChanged.CurrentFlightTimedatetime
مشخصکننده ساعت جدید پرواز (پس از اعمال تاخیر یا تعجیل).
اطلاعات زمانی داخلی این فیلد با فرمت yyyy-MM-dd HH:mm و بر اساس ناحیه زمانی فرودگاه مبدا پرواز می باشد
BookingList.PassengerList.FlightTimeChanged.IsRefundWithoutPenaltyAllowedboolean
مشخصکننده مجاز بودن استرداد بدون جریمه بلیط.
اگر مقدار این فیلد true باشد، مسافر حق دارد به علت تغییرات زمانی پرواز، کل مبلغ بلیط را بدون کسر هرگونه جریمه استرداد نماید. در صورتی که مقدار این فیلد false باشد، کنسلی رزرو تابع قوانین عادی ریفاند بوده و جریمه استرداد از آن کسر خواهد شد.
BookingList.PassengerList.FlightTimeChanged.PassengerResponseDeadlineUtcdatetime
ضربالاجل و آخرین مهلت پاسخگویی مسافر/آژانس (به وقت UTC) جهت تعیین تکلیف رزرو (تأیید پرواز جایگزین یا نهایی کردن استرداد بدون جریمه).
این فیلد زمانی مقداردهی میشود که پروازهای پیشنهادی جدیدی در لیست AlternativeFlightList ارائه شده باشد یا تغییر ساعت پرواز به گونهای باشد که مسافر واجد شرایط استرداد بدون جریمه گردد (IsRefundWithoutPenaltyAllowed = true). در صورت عدم وجود هر دو حالت (یعنی عدم ارائه پرواز جایگزین و عدم امکان استرداد بدون جریمه)، این فیلد به صورت null فرستاده میشود.
BookingList.PassengerList.Reinstatedcomplex type
این فیلد اطلاعات مربوط به پروازی را ارائه میدهد که پیشتر با وضعیت ابطال اعلام شده بود و اکنون مجدداً برقرار شده است.
این فیلد تنها زمانی مقداردهی میشود که مقدار فیلد Status برابر با Reinstated باشد؛ در غیر این صورت، مقدار آن به صورت null ارسال خواهد شد.
BookingList.PassengerList.Reinstated.Reasonstring
این فیلد علت برقراری مجدد پرواز یا تأیید دوبارهی رزرو را مشخص میکند و شامل یکی از مقادیر زیر است:
FlightReinstated
بیانگر برقراری مجدد پروازی است که پیشتر لغو شده بود؛ در این حالت وضعیت رزرو مسافر به حالت «تأییدشده» بازمیگردد.
IncreasedFlightCapacity
بیانگر افزایش ظرفیت صندلیهای پرواز است؛ در این حالت رزروی که به دلیل محدودیت ظرفیت (Load) غیرفعال شده بود، مجدداً معتبر و قابل استفاده میگردد.
BookingList.PassengerList.Reinstated.FlightNumberstring
شماره پرواز
BookingList.PassengerList.Reinstated.FlightDatedatetime
زمان پرواز
اطلاعات زمانی داخلی این فیلد با فرمت yyyy-MM-dd HH:mm و بر اساس ناحیه زمانی فرودگاه مبدا پرواز می باشد
BookingList.PassengerList.Reinstated.AirlineIataCodestring
یاتا کد ایرلاین
BookingList.PassengerList.Reinstated.OriginIataCodestring
کد یاتا فرودگاه مبدا
BookingList.PassengerList.Reinstated.DestinationIataCodestring
کد یاتا فرودگاه مقصد
BookingList.PassengerList.AlternativeFlightListlist of AlternativeFlight
فهرستی از گزینههای پیشنهادی برای پرواز جایگزین.
اگر تأمینکننده پرواز در پی ابطال یا تغییر ساعت پرواز اولیه، امکان تغییر رزرو بدون جریمه و با همان نرخ قبلی (بدون مابهالتفاوت) را برای مسافر فراهم کرده باشد، گزینههای پروازی در این فیلد ارائه میشوند. در غیر این صورت، این لیست خالی خواهد بود.
BookingList.PassengerList.AlternativeFlightList.FlightNumberstring
شماره پرواز
BookingList.PassengerList.AlternativeFlightList.FlightDatedatetime
زمان پرواز
اطلاعات زمانی داخلی این فیلد با فرمت yyyy-MM-dd HH:mm و بر اساس ناحیه زمانی فرودگاه مبدا پرواز می باشد
BookingList.PassengerList.AlternativeFlightList.AirlineIataCodestring
یاتا کد ایرلاین
BookingList.PassengerList.AlternativeFlightList.OriginIataCodestring
کد یاتا فرودگاه مبدا
BookingList.PassengerList.AlternativeFlightList.DestinationIataCodestring
کد یاتا فرودگاه مقصد
BookingList.PassengerList.AlternativeFlightList.CabinTypestring
کابین پرواز، مثلا اکونومی یا بیزینس یا ...
BookingList.PassengerList.Messagestring
متن پیام نهایی و آمادهشده جهت اطلاعرسانی به مسافر.
با وجود اینکه تمامی جزئیات تغییرات پرواز به صورت تفکیکشده در فیلدهای مربوطه ارسال شدهاند، پیشنهاد اکید ما این است که برای ارسال پیامک، ایمیل یا نوتیفیکیشن به مسافر، مستقیماً از محتوای این فیلد استفاده کنید. بازسازی و تولید مجدد این پیام بر اساس فیلدهای دیگر، به دلیل داشتن منطقهای تجاری (Business Logic) متعدد و استثناهای فراوان، پیچیده و زمانبر خواهد بود.
در نظر داشته باشید که متن پیام Message تولید شده برای یک مسافر ممکن است متفاوت از متن پیام سایر مسافران همان رزرو باشد.
Sample Response
{
"BookingList": [
{
"RecordId": 394,
"Pnr": "S5C5K5",
"BookingDateTimeUtc": "2026-07-18 09:06:31",
"ChangeScheduleDateTimeUtc": "2026-07-21 07:26:16",
"YourLocalInventoryPnr": null,
"IsReserveIssued": true,
"PassengerList": [
{
"AgeType": "ADL",
"FirstName": "ESMAT",
"LastName": "TAVAKOLIGARMASEH",
"Gender": "F",
"TicketNumber": "1549782",
"CabinType": "Economy",
"Status": "Cancelled",
"Cancelled": {
"CancellationReason": "ReducedFlightCapacityDueToOverbooking",
"PassengerResponseDeadlineUtc": null
},
"FlightTimeChanged": null,
"Reinstated": null,
"AlternativeFlightList": [],
"Message": "مسافر گرامی با سلام و عرض پوزش رزرو شما در پرواز 312 مورخ 30 تير 1405 مسیر آبادان به اهواز به علت کاهش ظرفیت به دلیل Over شدن باطل اعلام می گردد.\r\n\r\nجهت بازگشت وجه لطفا فرم استرداد را تکمیل نمایید."
},
{
"AgeType": "ADL",
"FirstName": "SAEID",
"LastName": "ALISHAHIVARNOSFADERANI",
"Gender": "M",
"TicketNumber": "1549783",
"CabinType": "Economy",
"Status": "Cancelled",
"Cancelled": {
"CancellationReason": "ReducedFlightCapacityDueToOverbooking",
"PassengerResponseDeadlineUtc": null
},
"FlightTimeChanged": null,
"Reinstated": null,
"AlternativeFlightList": [],
"Message": "مسافر گرامی با سلام و عرض پوزش رزرو شما در پرواز 312 مورخ 30 تير 1405 مسیر آبادان به اهواز به علت کاهش ظرفیت به دلیل Over شدن باطل اعلام می گردد.\r\n\r\nجهت بازگشت وجه لطفا فرم استرداد را تکمیل نمایید."
}
// ... بیشتر مسافران
]
}
// ... بیشتر Bookingها
]
}