Retrieve Booking

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

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

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

بنابراین اگر هدف شما دریافت اطلاعات یک رزرو از سایت های سپهر که خود شما مالک آن سایت ها نیستید و فقط به عنوان یک مشتری (Client) روی آن سایت ها اقدام به رزرو می نمایید، این متد مناسب شما نبوده و باید از متد RetrieveBooking که در بخش وب سرویس پرواز یا هتل یا تور قرار دارد استفاده نمایید.

زمانی که شما این متد را فراخوانی می نمایید، سیستم سپهر هم تراست بودن IP شما و هم صحت Api Key ارسال شده توسط شما را بررسی نموده و در صورت مطابقت آنها با اطلاعات تعریف شده در سیستم، جواب برگشت داده خواهد شد. بنابراین جهت استفاده از این متد، دو پیش نیاز وجود دارد.

  1. IP شما در سیستم سپهر Trust شود.
  2. یک Api Key توسط سپهر تولید شده و برای شما ارسال گردد.

جهت انجام این مورد، نیاز می باشد که مجموعه ای که قصد دریافت اطلاعات از آن را دارید، روی سربرگ رسمی IP را به مجموعه سپهر اعلام نماید. جهت دریافت نمونه درخواست، اینجا کلیک نمایید. همچنین برای تست می توانید از محیط تستی (سایت SepehrApiTest.ir) استفاده نمایید که تراست کردن IP بدون نیاز به طی مراحل رسمی و اداری امکان پذیر است. برای استفاده از محیط تست کافی است IP خود را از طریق واترآپ یا تلگرام به ما اعلام نمایید.

زمان (تاریخ و ساعت) هایی که در این وب سرویس خروجی داده میشود – مثلا فیلد BookingDateTime – بر اساس ناحیه زمانی UTC می باشد و در صورت نیاز باید آنها را به زمان ایران تبدیل نمایید.

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

زمان ورود به هتل یا خروج از هتل نیز بر اساس زمان محلی کشوری که هتل در آن قرار دارد خروجی داده می شود.

API Endpoint
https://{SupplierWebsiteUrl}/api/ThirdParties/RetrieveBooking/V1?pnr={PNR} get

که PNR رفرنسی است که بعد از رزرو توسط سیستم سپهر تولید شده و به شما نمایش داده شده است.

Request headers

لطفا دقت نموده که به همراه تمامی درخواست های خود، header های زیر را نیز ارسال نمایید.

X-API-Key: your-api-key

required

این Header جهت ارسال Api Key استفاده می شود.

Accept: application/json

required

استفاده از این Header به سرور سپهر اعلام می کند که باید جواب را به صورت json برگشت دهد.

Accept-Encoding: gzip, deflate

required

استفاده از این Header باعث می گردد جواب برگشتی از سرور به صورت فشرده شده باشد.

Sample Request
    curl "https://SepehrApiTest.ir/api/ThirdParties/RetrieveBooking/V1?pnr=Y5V44H"
            --header "x-api-key: 1fd17d79-0a7f-4c29-b5ea-15e6e08d2444"
            --header "Content-Type: application/json; charset=utf-8"
            --header "Accept-Encoding: gzip, deflate"	
Response Data

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

\RetrieveBooking\V1\ResponseModel

Flight

complex type

اطلاعات مربوط به سگمنت های پروازی

در حال حاضر اطلاعات سگمنت های هتل خروجی داده نمی شود.

LastState

complex type

اطلاعات مربوط به آخرین وضعیت رزرو

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

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

CharterSegmentList

List(CharterSegment)

لیست سگمنت های چارتری مسافر

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

و رفتار سیستم بدین شکل نخواهد بود که سگمنت های کنسل شده را خروجی داده و با یک فیلد مثلا Status یا UN وضیت کنسل شدن آن را مشخص نماید.

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

TicketNumber

string

شماره بلیط مسافر

FlightNumber

string

شماره پرواز

FlightDate

string

تاریخ پرواز به صورت میلادی و به ناحیه زمانی فرودگاه مبدا و با فرمت yyyy-MM-dd HH:mm

OriginIataCode

string

کد یاتا فرودگاه مبدا

DestinationIataCode

string

کد یاتا فرودگاه مقصد

CabinType

string

نوع کابین کلاس پروازی که می تواند یکی از موارد زیر را داشته باشد:

  • Economy
  • EconomyPlus
  • PremiumEconomy
  • Business
  • BusinessComfort
  • BusinessPremium
  • First

BookingCode

string

معمولا ترکیب یک یا دو حرف بوده و مشخص کننده نوع BookingCode می باشد. مانند Y یا M.

FareName

string

اسم Fare

AirlineIataCode

string

کد یاتا ایرلاین

SaleInfo

Complex type

اطلاعات مربوط به نرخ فروش

BaseFare

decimal

نرخ پایه بلیط

Tax

decimal

مجموع مالیات

TotalFare

decimal

مجموع نرخ پایه به علاوه مالیات

CommisionPercent

decimal

کمیسیون درصدی

CalculatedAmountOfCommisionPercent

decimal

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

CommisionValue

decimal

کمیسیون مبلغی

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

در صورت تعریف شدن کمیسیون به صورت مبلغ، مقدار این فیلد مشخص کننده مقدار آن خواهد بود

Payable

decimal

مبلغ نهایی

مبلغ این فیلد در حساب بدهکاری خریدار منظور می گردد و مبنای پرداخت های پولی می باشد.

FreeBaggage

Complex type

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

CheckedBaggage_Quantity

number

تعداد چمدان

CheckedBaggage_TotalWeight

number

مجموع وزن چمدان ها

HandBaggage_Quantity

number

تعداد کیف بار دستی

HandBaggage_TotalWeight

number

مجموع وزن کیف و بار دستی

WebserviceSegmentList

List(WebserviceSegment)

لیست سگمنت های وب سرویسی مسافر

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

و رفتار سیستم بدین شکل نخواهد بود که سگمنت های کنسل شده را خروجی داده و با یک فیلد مثلا Status یا UN وضیت کنسل شدن آن را مشخص نماید.

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

FlightNumber

string

شماره پرواز

FlightDate

string

تاریخ پرواز به صورت میلادی و به ناحیه زمانی فرودگاه مبدا و با فرمت yyyy-MM-dd HH:mm

OriginIataCode

string

کد یاتا فرودگاه مبدا

DestinationIataCode

string

کد یاتا فرودگاه مقصد

CabinType

string

نوع کابین کلاس پروازی که می تواند یکی از موارد زیر را داشته باشد:

  • Economy
  • EconomyPlus
  • PremiumEconomy
  • Business
  • BusinessComfort
  • BusinessPremium
  • First

BookingCode

string

معمولا ترکیب یک یا دو حرف بوده و مشخص کننده نوع BookingCode می باشد. مانند Y یا M.

FareName

string

اسم Fare

AirlineIataCode

string

کد یاتا ایرلاین

Supplier

Complex type

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

در اینجا منظور از تامین کننده سایتی است که پروازهای خود را به صورت وب سرویسی به سایت سپهری داده است که شما به آن درخواست ارسال نموده اید.

Name

string

نام تامین کننده

Pnr

string

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

TicketNumber

string

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

SaleInfo

Complex type

اطلاعات مربوط به نرخ فروش

BaseFare

decimal

نرخ پایه بلیط

Tax

decimal

مجموع مالیات

TotalFare

decimal

مجموع نرخ پایه به علاوه مالیات

CommisionPercent

decimal

کمیسیون درصدی

CalculatedAmountOfCommisionPercent

decimal

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

CommisionValue

decimal

کمیسیون مبلغی

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

در صورت تعریف شدن کمیسیون به صورت مبلغ، مقدار این فیلد مشخص کننده مقدار آن خواهد بود

Payable

decimal

مبلغ نهایی

مبلغ این فیلد در حساب بدهکاری خریدار منظور می گردد و مبنای پرداخت های پولی می باشد.

FreeBaggage

Complex type

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

CheckedBaggage_Quantity

number

تعداد چمدان

CheckedBaggage_TotalWeight

number

مجموع وزن چمدان ها

HandBaggage_Quantity

number

تعداد کیف بار دستی

HandBaggage_TotalWeight

number

مجموع وزن کیف و بار دستی

JarimeCanceliTextFa

string

جدول جریمه های استرداد به زبان فارسی

JarimeCanceliTextEn

string

جدول جریمه های استرداد به زبان انگلیسی

History_InitialBooking

complex type

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

 

مستندات این بخش در آینده تکمیل می گردد.

History_Cancelation

complex type

تاریخچه اطلاعات مربوط به سگمنت های کنسل شده

 

مستندات این بخش در آینده تکمیل می گردد.

History_PassengerInfoChanged

complex type

تاریخچه اطلاعات مربوط به تغییرات اسامی و اطلاعات شخصی مسافران

 

مستندات این بخش در آینده تکمیل می گردد.

History_ChangedFlight

complex type

تاریخچه اطلاعات مربوط به تغییرات پرواز

 

مستندات این بخش در آینده تکمیل می گردد.

Sample Response
{
  "Flight": {
    "LastState": {
      "PassengerList": [
        {
          "FirstName": "HADI",
          "LastName": "MOHAMMADI",
          "AgeType": "ADL",
          "Gender": "M",
          "Birthdate": "1935-06-26",
          "NationalityCountry": "IR",
          "IranianCartMelli": {
            "CodeMelli": "0010626921"
          },
          "Passport": null,
          "CharterSegmentList": [
            {
              "TicketNumber": "1529557",
              "FlightNumber": "240",
              "FlightDate": "2023-06-04 12:30",
              "OriginIataCode": "AWZ",
              "DestinationIataCode": "IFN",
              "CabinType": "Economy",
              "BookingCode": "V",
              "FareName": "AWZIFN IR 300",
              "AirlineIataCode": "IR",
              "SaleInfo": {
                "BaseFare": 3000000,
                "Tax": 0,
                "TotalFare": 3000000,
                "CommisionPercent": 0,
                "CalculatedAmountOfCommisionPercent": 0,
                "CommisionValue": 0,
                "Payable": 3000000
              },
              "FreeBaggage": {
                "CheckedBaggage_Quantity": 1,
                "CheckedBaggage_TotalWeight": 20,
                "HandBaggage_Quantity": 1,
                "HandBaggage_TotalWeight": 5
              }
            },
            {
              "TicketNumber": "1529558",
              "FlightNumber": "3333",
              "FlightDate": "2023-06-05 15:00",
              "OriginIataCode": "IFN",
              "DestinationIataCode": "AWZ",
              "CabinType": "Economy",
              "BookingCode": "H",
              "FareName": "THRKIH ZV 450",
              "AirlineIataCode": "B9",
              "SaleInfo": {
                "BaseFare": 4500000,
                "Tax": 0,
                "TotalFare": 4500000,
                "CommisionPercent": 0,
                "CalculatedAmountOfCommisionPercent": 0,
                "CommisionValue": 0,
                "Payable": 4500000
              },
              "FreeBaggage": {
                "CheckedBaggage_Quantity": 2,
                "CheckedBaggage_TotalWeight": 20,
                "HandBaggage_Quantity": 1,
                "HandBaggage_TotalWeight": 7
              }
            }
          ],
          "WebserviceSegmentList": []
        }
      ]
    },
    "History_InitialBooking": {
      "BookingDateTime": "2023-06-01 06:53:41",
      "Phone": "+989352283333",
      "Email": "testemail@gmail.com",
      "Remarks": "",
      "CharterPassengerList": [
        {
          "FirstName": "ALI",
          "LastName": "MOHAMMADI",
          "AgeTypeCode": "ADL",
          "Gender": "M",
          "Birthdate": "1935-06-26",
          "NationalityCountry": "IR",
          "IranianCartMelli": {
            "CodeMelli": "0010626921"
          },
          "Passport": null,
          "SegmentList": [
            {
              "TicketNumber": "1529557",
              "FlightNumber": "240",
              "FlightDate": "2023-06-02 12:30",
              "OriginIataCode": "AWZ",
              "DestinationIataCode": "IFN",
              "CabinType": "Economy",
              "BookingCode": "V",
              "FareName": "AWZIFN IR 300",
              "AirlineIataCode": "IR",
              "SaleInfo": {
                "BaseFare": 3000000,
                "Tax": 0,
                "TotalFare": 3000000,
                "CommisionPercent": 0,
                "CalculatedAmountOfCommisionPercent": 0,
                "CommisionValue": 0,
                "Payable": 3000000
              }
            },
            {
              "TicketNumber": "1529558",
              "FlightNumber": "3333",
              "FlightDate": "2023-06-02 15:00",
              "OriginIataCode": "IFN",
              "DestinationIataCode": "AWZ",
              "CabinType": "Economy",
              "BookingCode": "H",
              "FareName": "THRKIH ZV 450",
              "AirlineIataCode": "B9",
              "SaleInfo": {
                "BaseFare": 4500000,
                "Tax": 0,
                "TotalFare": 4500000,
                "CommisionPercent": 0,
                "CalculatedAmountOfCommisionPercent": 0,
                "CommisionValue": 0,
                "Payable": 4500000
              }
            }
          ]
        }
      ],
      "WebservicePassengerList": []
    },
    "History_Cancelation": {
      "CharterHistoryList": []
    },
    "History_PassengerInfoChanged": {
      "CharterHistoryList": []
    },
    "History_ChangedFlight": {
      "CharterHistoryList": [
        {
          "HistoryTimestamp": "2023-06-01 06:54:21",
          "FlightInfo_Old": {
            "FlightNumber": "240",
            "FlightDate": "2023-06-02 12:30",
            "OriginIataCode": "AWZ",
            "DestinationIataCode": "IFN",
            "CabinType": "Economy",
            "BookingCode": "V",
            "FareName": "AWZIFN IR 300",
            "AirlineIataCode": "IR"
          },
          "FlightInfo_New": {
            "FlightNumber": "240",
            "FlightDate": "2023-06-03 12:30",
            "OriginIataCode": "AWZ",
            "DestinationIataCode": "IFN",
            "CabinType": "Economy",
            "BookingCode": "V",
            "FareName": "AWZIFN IR 300",
            "AirlineIataCode": "IR"
          },
          "PassengerList": [
            {
              "FirstName": "HADI",
              "LastName": "MOHAMMADI",
              "AgeTypeCode": "ADL",
              "PenaltyForOldSegment": 0,
              "SaleInfo_Old": {
                "BaseFare": 3000000,
                "Tax": 0,
                "TotalFare": 3000000,
                "CommisionPercent": 0,
                "CalculatedAmountOfCommisionPercent": 0,
                "CommisionValue": 0,
                "Payable": 3000000
              },
              "SaleInfo_New": {
                "BaseFare": 3000000,
                "Tax": 0,
                "TotalFare": 3000000,
                "CommisionPercent": 0,
                "CalculatedAmountOfCommisionPercent": 0,
                "CommisionValue": 0,
                "Payable": 3000000
              }
            }
          ]
        },
        {
          "HistoryTimestamp": "2023-06-01 06:54:57",
          "FlightInfo_Old": {
            "FlightNumber": "3333",
            "FlightDate": "2023-06-02 15:00",
            "OriginIataCode": "IFN",
            "DestinationIataCode": "AWZ",
            "CabinType": "Economy",
            "BookingCode": "H",
            "FareName": "THRKIH ZV 450",
            "AirlineIataCode": "B9"
          },
          "FlightInfo_New": {
            "FlightNumber": "3333",
            "FlightDate": "2023-06-04 15:00",
            "OriginIataCode": "IFN",
            "DestinationIataCode": "AWZ",
            "CabinType": "Economy",
            "BookingCode": "H",
            "FareName": "THRKIH ZV 450",
            "AirlineIataCode": "B9"
          },
          "PassengerList": [
            {
              "FirstName": "ALI",
              "LastName": "MOHAMMADI",
              "AgeTypeCode": "ADL",
              "PenaltyForOldSegment": 0,
              "SaleInfo_Old": {
                "BaseFare": 4500000,
                "Tax": 0,
                "TotalFare": 4500000,
                "CommisionPercent": 0,
                "CalculatedAmountOfCommisionPercent": 0,
                "CommisionValue": 0,
                "Payable": 4500000
              },
              "SaleInfo_New": {
                "BaseFare": 4500000,
                "Tax": 0,
                "TotalFare": 4500000,
                "CommisionPercent": 0,
                "CalculatedAmountOfCommisionPercent": 0,
                "CommisionValue": 0,
                "Payable": 4500000
              }
            }
          ]
        }
      ]
    }
  }
}