Веб-служба бронирования: различия между версиями
м (→См. также) |
|||
(не показаны 93 промежуточные версии 14 участников) | |||
Строка 1: | Строка 1: | ||
− | + | {{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}} | |
− | + | == Подключение == | |
− | |||
− | |||
− | + | Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight | |
− | + | == Общий формат запроса / ответа бронирования == | |
− | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | |
− | + | ==== Запрос ==== | |
− | + | <div class="mw-collapsible-content"> | |
− | + | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | |
− | + | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight"> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
<soapenv:Header/> | <soapenv:Header/> | ||
<soapenv:Body> | <soapenv:Body> | ||
Строка 226: | Строка 18: | ||
<Request> | <Request> | ||
<BookFlight> | <BookFlight> | ||
− | <!-- | + | <FlightId>?</FlightId> |
− | + | <!--FlightId — Id перелёта в системе Nemo--> | |
− | <!-- | + | <!--Optional:--> |
− | + | <BookId>?</BookId> | |
− | <!-- | + | <!--BookId — Id заказа в системе Nemo, полученный в ответе на запрос EmptyBook--> |
− | + | <!--Optional:--> | |
− | + | <CurrencyCode>?</CurrencyCode> <!--необязательный--> | |
− | + | <!--CurrencyCode — код валюты--> | |
− | + | <!--Optional:--> | |
− | + | <Agency Name="?"> <!--необязательный--> | |
− | <!-- | + | <!--Name — название агентства--> |
− | + | <Telephone Type="?"> | |
− | <!-- | + | <!--Type — тип номера, обязательный, возможные значения: |
− | + | M — мобильный, H — домашний, B — рабочий, A — агенство--> | |
− | + | <!--Optional:--> | |
− | + | <PhoneNumber>?</PhoneNumber> | |
− | + | <!--PhoneNumber — номер телефона--> | |
− | + | <!--Optional:--> | |
− | + | <CountryAccessCode>?</CountryAccessCode> <!--необязательный--> | |
− | + | <!--CountryAccessCode — код страны--> | |
− | + | <!--Optional:--> | |
− | + | <AreaCityCode>?</AreaCityCode> <!--необязательный--> | |
− | + | <!--AreaCityCode — код региона/города--> | |
− | |||
− | <!-- | ||
− | <PhoneNumber></PhoneNumber> | ||
− | |||
− | |||
− | <!-- | ||
− | <AreaCityCode></AreaCityCode> | ||
</Telephone> | </Telephone> | ||
− | + | <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный--> | |
− | + | <!--City — город--> | |
− | + | <!--State — штат--> | |
− | + | <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)--> | |
− | + | <!--PostalCode — почтовый индекс--> | |
− | + | <!--CountryCode — код страны (RU, UA и т.п.)--> | |
− | + | </Agency> | |
− | |||
<Travellers> | <Travellers> | ||
− | <!-- | + | <!--Zero or more repetitions:--> |
− | + | <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?"> | |
− | + | <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые, | |
− | + | CLD — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом--> | |
− | + | <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является, | |
− | + | контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них | |
− | + | может быть контактным лицом, по умолчанию false--> | |
− | + | <!--Num — порядковый номер пассажира, начинается с 1--> | |
− | + | <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> <!--необязательный--> | |
− | + | <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра--> | |
− | + | <Meal>?</Meal> <!--необязательный--> | |
− | + | <!--Meal — код типа питания, возможные значения: | |
− | + | AVML — Азиатская вегетарианская кухня | |
− | + | BLML — Блюда щадящей диеты | |
− | + | CHML — Детское питание | |
− | + | CHPC — Детский холодный завтрак | |
− | + | СНСС — Детский горячий завтрак | |
− | + | CHHC — Детский ланч, ветчина и сыр | |
− | + | PBJS — Детский ланч, ореховое масло | |
− | + | CHMC — Детский обед макароны с сыром | |
− | + | DBML — Диабетическое питание | |
− | + | FPML — Фрукты | |
− | + | GFML — Питание без клейковины | |
− | + | HFML — Питание богатое клетчаткой | |
− | + | HNML — Индусская кухня | |
− | + | BBML — Питание для младенцев | |
− | + | KSML — Кошерная кухня | |
− | + | SMKB — Кошерный завтрак | |
− | + | SMKL — Кошерный ланч | |
− | + | SMKD — Кошерный обед | |
− | + | LPML — Малобелковое питание | |
− | + | LCML — Низкокалорийное питание | |
− | + | LFML — Низкохолестериновое питание | |
− | + | PRML — Низкопуриновое питание | |
− | + | LSML — Малосоленое питание | |
− | + | MOML — Мюсли | |
− | + | NLML — Безмолочные продукты | |
− | + | ORML — Восточная кухня | |
− | + | RVML — Сырые овощи | |
− | + | SFML — Морепродукты | |
− | + | SPML — Особое питание | |
− | + | VLML — Вегетарианское, молоко и яйца | |
− | + | VGML — Строго вегетарианское питание | |
− | + | VJML — Джайнизское вегетарианское | |
− | + | VOML — Восточное вегетарианское питание--> | |
− | + | <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?"> | |
− | + | <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)--> | |
− | < | + | <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)--> |
− | <!-- | + | <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)--> |
− | + | <FirstName>?</FirstName> | |
− | + | <!--FirstName — имя пассажира--> | |
− | + | <LastName>?</LastName> | |
− | + | <!--LastName — фамилия пассажира--> | |
− | + | <!--Optional:--> | |
− | + | <MiddleName>?</MiddleName> <!--необязательный--> | |
− | <!-- | + | <!--MiddleName — отчество пассажира--> |
− | |||
− | |||
− | |||
− | |||
− | |||
</PersonalInfo> | </PersonalInfo> | ||
− | <!-- | + | <LoyaltyCard OpCode="?" Number="?"/> <!--необязательный--> |
− | + | <!--OpCode — код авиакомпании--> | |
− | + | <!--Number — номер карточки--> | |
− | < | + | <ContactInfo> <!--необязательный--> |
− | + | <!--Optional:--> | |
− | + | <EmailID>?</EmailID> | |
− | <!-- | + | <!--EmailID — контактный email--> |
− | <EmailID></EmailID> | + | <!--Optional:--> |
− | <!-- | + | <Telephone Type="?"> |
− | + | <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий--> | |
− | + | <!--Optional:--> | |
− | + | <PhoneNumber>?</PhoneNumber> | |
− | + | <!--PhoneNumber — номер телефона--> | |
− | + | <!--Optional:--> | |
− | <!-- | + | <CountryAccessCode>?</CountryAccessCode> |
− | <PhoneNumber></PhoneNumber> | + | <!--CountryAccessCode — код страны--> |
− | <!-- | + | <!--Optional:--> |
− | <CountryAccessCode></CountryAccessCode> | + | <AreaCityCode>?</AreaCityCode> |
− | <!-- | + | <!--AreaCityCode — код региона/города--> |
− | <AreaCityCode></AreaCityCode> | ||
</Telephone> | </Telephone> | ||
</ContactInfo> | </ContactInfo> | ||
− | <!-- | + | <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> <!--необязательный--> |
− | + | <!--DocType — тип документа, возможные значения: | |
− | + | P — Паспорт | |
− | + | A – Паспорт иностранца | |
− | + | C — Внутренний гражданский паспорт | |
− | + | F – Документ заменяющий паспорт | |
− | + | M — Воинское удостоверение | |
− | + | N – Сертификат натурализации(специфичный документ США) | |
− | + | T – Док.повторного въезда, паспорт беженца | |
− | + | V – Документ для пересечения границы | |
− | + | F – Свидетельство о рождении (только для ГРС Сирена Трэвел, для | |
− | + | других ГРС рекомендуется использовать тип документа P)--> | |
− | + | <!--DocNum — номер документа--> | |
− | < | + | <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)--> |
− | <!-- | + | <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)--> |
− | + | <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/> | |
− | + | <!--необязательный--> | |
− | + | <!--Num — номер визы--> | |
− | + | <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы--> | |
− | + | <!--IssueCountry — страна выдачи визы--> | |
− | + | <!--IssuePlace — место выдачи визы--> | |
− | + | <!--BirthCountry — страна рождения(IATA код страны)--> | |
− | + | <!--BirthCity — город рождения(название)--> | |
− | <!-- | + | <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный--> |
− | + | <!--City — город--> | |
− | + | <!--State — штат или область въезда--> | |
− | + | <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.--> | |
− | + | <!--PostalCode — почтовый код--> | |
− | + | <!--CountryCode — код страны--> | |
− | + | </Traveller> | |
− | |||
− | |||
− | <ArrAddress City="" State="" StreetAddress="" PostalCode="" CountryCode=""/> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</Travellers> | </Travellers> | ||
− | <!-- | + | <!--Optional:--> |
− | < | + | <DeviceId> <!--необязательный--> |
− | + | <Type>?</Type> | |
+ | <!--Type — Тип мобильного устройства (apple/android)--> | ||
+ | <Token>?</Token> | ||
+ | <!--Token — Токен мобильного устройства--> | ||
+ | </DeviceId> | ||
+ | <Marker>?</Marker> | ||
+ | <!--Marker — Маркер пользователя--> | ||
+ | </BookFlight> | ||
</Request> | </Request> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<Source> | <Source> | ||
− | <ClientId> | + | <ClientId>?</ClientId> |
− | <APIKey> | + | <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе |
− | <Language> | + | "Администрирование" ? "Веб-служба. Авторизация".--> |
− | <Currency> | + | <APIKey>?</APIKey> |
− | </Source></ | + | <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе |
+ | "Администрирование" ? "Веб-служба. Авторизация".--> | ||
+ | <Language>?</Language> | ||
+ | <!--Language — язык--> | ||
+ | <Currency>?</Currency> | ||
+ | <!-- CUrrency — валюта--> | ||
+ | <EndUserData> | ||
+ | <!--Блок с данными о конечном пользователе, необязательный, но необходим при при использовании запросов поиска и бронирования для поставщика TravelFusion--> | ||
+ | <EndUserIP>123.123.123.123</EndUserIP> | ||
+ | <!--IP адрес пользователя--> | ||
+ | <EndUserBrowserAgent>firefox</EndUserBrowserAgent> | ||
+ | <!--Браузер пользователя--> | ||
+ | <RequestOrigin>Russia-nemo.travel</RequestOrigin> | ||
+ | <!--Страна и домен, с которого пользователь совершает поиск/бронирование--> | ||
+ | </EndUserData> | ||
+ | </Source> | ||
+ | </RequestBin> | ||
+ | </ver:BookFlight> | ||
+ | </soapenv:Body> | ||
+ | </soapenv:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
− | + | ==== Ответ ==== | |
− | <div>< | + | <div class="mw-collapsible-content"> |
− | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http:// | + | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> |
+ | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<SOAP-ENV:Body> | <SOAP-ENV:Body> | ||
<ns1:BookFlightResponse> | <ns1:BookFlightResponse> | ||
<ResponseBin> | <ResponseBin> | ||
<Response> | <Response> | ||
− | + | <BookFlight ID="?" Status="?" Code="?"> | |
− | + | <!--ID — Id брони в системе Nemo, целое число, обязательный--> | |
− | + | <!--Status — индикатор состояния брони, возможные значения: | |
− | booked | + | booked — забронировано, |
− | canceled | + | canceled — бронь отменена, |
− | + | ticket — выписана | |
− | UNDEFINED | + | UNDEFINED — статус не определён--> |
− | + | <!--Code — код брони в системе поставщика--> | |
− | |||
− | |||
− | |||
− | |||
<QueryPlace xsi:nil="true"/> | <QueryPlace xsi:nil="true"/> | ||
− | + | <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди--> | |
− | <Flight FlightId=" | + | <IsPossibleToTicket>?</IsPossibleToTicket> |
− | + | <!--IsPossibleToTicket — возможность провести выписку ПНРа, boolean--> | |
− | <WebService> | + | <Flight FlightId="?"> |
− | + | <!--FlightId — Id перелёта в системе Nemo--> | |
− | <ValCompany> | + | <WebService>?</WebService> |
− | <URL> | + | <!--WebService — поставщик перелёта--> |
+ | <ValCompany>?</ValCompany> | ||
+ | <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA--> | ||
+ | <URL>?</URL> | ||
+ | <!--URL — ссылка на бронирование конкретного перелета--> | ||
<Segments> | <Segments> | ||
− | + | <Segment SegNum="?" SegGroupNum="?"> | |
− | + | <!--SegNum — номер сегмента в перелёте--> | |
− | + | <!--SegGroupNum – номер плеча перелёта--> | |
− | <DepAirp CodeType="IATA"> | + | <SupplierCode>?</SupplierCode> |
− | + | <!--SupplierCode – номер заказа в системе АК--> | |
− | < | + | <DepAirp CodeType="IATA">?</DepAirp> |
− | + | <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва | |
− | < | + | или SVO — Шереметьево--> |
− | + | <DepTerminal>?</DepTerminal> | |
− | < | + | <!--DepTerminal — терминал пункта отправления, если пустое значение, |
− | + | то в аэропорту всего 1 терминал--> | |
− | < | + | <ArrAirp CodeType="IATA">?</ArrAirp> |
− | + | <!--ArrAirp — аэропорт прибытия--> | |
− | < | + | <ArrTerminal>?</ArrTerminal> |
− | + | <!--ArrTerminal — терминал пункта прибытия, если пустое значение, | |
− | < | + | то в аэропорту всего 1 терминал--> |
− | + | <OpAirline>?</OpAirline> | |
− | < | + | <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот--> |
− | + | <MarkAirline>?</MarkAirline> | |
− | < | + | <!--MarkAirline — авиакомпания, продающая перелёт--> |
− | + | <FlightNumber>?</FlightNumber> | |
− | < | + | <!--FlightNumber — номер рейса--> |
− | + | <AircraftType>?</AircraftType> | |
− | + | <!--AircraftType — тип воздушного судна, код--> | |
− | + | <DepDateTime>?</DepDateTime> | |
+ | <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <ArrDateTime>?</ArrDateTime> | ||
+ | <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <StopNum>?</StopNum> | ||
+ | <!--StopNum — количество остановок--> | ||
+ | <StopPoints> | ||
+ | <!--StopPoints — информация о технических остановках, если они есть--> | ||
+ | <StopPoint> | ||
+ | <AirportCode>?</AirportCode> | ||
+ | <!--AirportCode — код аэропорта остановки, трех символьный iata код--> | ||
+ | <UTC>?</UTC> | ||
+ | <!--UTC — сдвиг часового пояса аэропорта--> | ||
+ | <ArrDateTime>?</ArrDateTime> | ||
+ | <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <DepDateTime>?</DepDateTime> | ||
+ | <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | </StopPoint> | ||
+ | </StopPoints> | ||
<BookingCodes> | <BookingCodes> | ||
− | <BookingCode> | + | <BookingCode ClassType="?"> |
+ | <!--ClassType — класс перелета, например: economy--> | ||
+ | <BookingCode>?</BookingCode> | ||
+ | <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс | ||
+ | может записываться разными литерами, например: L--> | ||
+ | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
− | + | <FlightTime>?</FlightTime> | |
− | < | + | <!--FlightTime — время перелёта в минутах--> |
− | + | <TimeZone Departure="?" Arrival="?"/> | |
− | + | <!--Departure временная зона аэропорта отправления--> | |
− | + | <!--Arrival — временная зона аэропорта прибытия--> | |
− | < | + | <ETicket>?</ETicket> |
− | + | <!--ETicket — признак электронного билета, значения: true / false--> | |
− | < | + | <isCharter>?</isCharter> |
+ | <!--isCharter — признак чартерного перелета, значения: true / false--> | ||
+ | <BaggageAllowances> | ||
+ | <!--BaggageAllowances — информация о багаже--> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>?</PassengerType> | ||
+ | <!--PassengerType — тип пассажира, соответствует типу тарифа в PricingInfo --> | ||
+ | <Value>?</Value> | ||
+ | <!--Value — количество--> | ||
+ | <Measurement>?</Measurement> | ||
+ | <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место, lb — фунт--> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
</Segments> | </Segments> | ||
− | + | <PricingInfo Refundable="?"> | |
− | + | <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно--> | |
− | + | <PassengerFare Type="?" Quantity="?"> | |
− | + | <!--Type — тип тарифа--> | |
− | + | <!--Quantity — количество пассажиров данного типа--> | |
− | + | <TravellerRef> | |
− | + | <!--TravellerRef — Ссылка на пассажиров, к которым относится данный тариф--> | |
− | + | <Ref>?</Ref> | |
− | + | <!--Ref — Номера пассажиров, к которым относится данный тариф--> | |
− | + | </TravellerRef> | |
− | + | <BaseFare Currency="?" Amount="?"/> | |
− | + | <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены--> | |
− | + | <EquiveFare Currency="?" Amount="?"/> | |
− | + | <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи). | |
− | < | + | Currency — код валюты, Amount — значение цены--> |
− | + | <TotalFare Currency="?" Amount="?"/> | |
− | + | <!--TotalFare — суммарная стоимость, в эквивалентной валюте. | |
− | < | + | Currency — код валюты, Amount — значение цены--> |
− | |||
− | |||
− | |||
− | |||
<Taxes> | <Taxes> | ||
− | + | <Tax CurCode="?" TaxCode="?" Amount="?"/> | |
− | + | <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы--> | |
− | |||
− | |||
− | <Tax CurCode=" | ||
− | < | ||
</Taxes> | </Taxes> | ||
− | |||
<Tariffs> | <Tariffs> | ||
− | + | <Tariff Code="?" SegNum="?"/> | |
− | + | <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф--> | |
− | + | <FareFamilies> | |
− | + | <FullName>?</FullName> | |
+ | <!--FullName — название тарифа--> | ||
+ | </FareFamilies> | ||
</Tariffs> | </Tariffs> | ||
− | + | <FareCalc>?</FareCalc> | |
− | < | + | <!--FareCalc — строка расчёта цены--> |
− | + | <LastTicketDateTime>?</LastTicketDateTime> | |
− | + | <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.--> | |
</PassengerFare> | </PassengerFare> | ||
</PricingInfo> | </PricingInfo> | ||
− | + | <Charges Currency="?">?</Charges> | |
− | + | <!--Charges — сборы, Currency — код валюты--> | |
− | < | + | <TotalPrice Currency="?">?</TotalPrice> |
− | + | <!--TotalPrice — итоговая цена, Currency — код валюты--> | |
− | |||
− | |||
</Flight> | </Flight> | ||
− | + | <Agency Name="?"> | |
− | + | <!--Name — название агентства--> | |
− | + | <Telephone Type="?"> | |
− | + | <!--Type — тип номера, обязательный, возможные значения: | |
− | + | M — мобильный, H — домашний, B — рабочий, A — агенство--> | |
− | + | <!--Optional:--> | |
− | + | <PhoneNumber>?</PhoneNumber> | |
− | + | <!--PhoneNumber — номер телефона--> | |
− | + | <!--Optional:--> | |
− | + | <CountryAccessCode>?</CountryAccessCode> | |
− | + | <!--CountryAccessCode — код страны--> | |
− | + | <!--Optional:--> | |
− | + | <AreaCityCode>?</AreaCityCode> | |
− | + | <!--AreaCityCode — код региона/города--> | |
− | + | </Telephone> | |
− | + | <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> | |
− | + | <!--City — город--> | |
− | + | <!--State — штат--> | |
− | + | <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)--> | |
− | + | <!--PostalCode — почтовый индекс--> | |
− | + | <!--CountryCode — код страны (RU, UA и т.п.)--> | |
− | + | </Agency> | |
− | + | <ItinReceipts Encoding="?" Format="?"> | |
− | + | <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат--> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | <!-- | ||
− | |||
− | |||
− | |||
<FareStored xsi:nil="true"/> | <FareStored xsi:nil="true"/> | ||
− | |||
<Travellers> | <Travellers> | ||
− | + | <!--Zero or more repetitions:--> | |
− | + | <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?"> | |
− | + | <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые, | |
− | + | CLD — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом--> | |
− | + | <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является, | |
− | + | контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них | |
− | + | может быть контактным лицом, по умолчанию false--> | |
− | + | <!--Num — порядковый номер пассажира, начинается с 1--> | |
− | + | <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> | |
− | + | <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра--> | |
− | + | <Meal>?</Meal> | |
− | + | <!--Meal — код типа питания, возможные значения: | |
− | + | AVML — Азиатская вегетарианская кухня | |
− | + | BLML — Блюда щадящей диеты | |
− | + | CHML — Детское питание | |
− | + | CHPC — Детский холодный завтрак | |
− | + | СНСС — Детский горячий завтрак | |
− | + | CHHC — Детский ланч, ветчина и сыр | |
− | + | PBJS — Детский ланч, ореховое масло | |
− | + | CHMC — Детский обед макароны с сыром | |
− | + | DBML — Диабетическое питание | |
− | + | FPML — Фрукты | |
− | + | GFML — Питание без клейковины | |
− | + | HFML — Питание богатое клетчаткой | |
− | + | HNML — Индусская кухня | |
− | + | BBML — Питание для младенцев | |
− | + | KSML — Кошерная кухня | |
− | + | SMKB — Кошерный завтрак | |
− | + | SMKL — Кошерный ланч | |
− | + | SMKD — Кошерный обед | |
− | + | LPML — Малобелковое питание | |
− | + | LCML — Низкокалорийное питание | |
− | + | LFML — Низкохолестериновое питание | |
− | + | PRML — Низкопуриновое питание | |
− | + | LSML — Малосоленое питание | |
− | + | MOML — Мюсли | |
− | + | NLML — Безмолочные продукты | |
− | + | ORML — Восточная кухня | |
− | + | RVML — Сырые овощи | |
− | + | SFML — Морепродукты | |
− | + | SPML — Особое питание | |
− | + | VLML — Вегетарианское, молоко и яйца | |
− | + | VGML — Строго вегетарианское питание | |
− | + | VJML — Джайнизское вегетарианское | |
− | + | VOML — Восточное вегетарианское питание--> | |
− | + | <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?"> | |
− | + | <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)--> | |
− | + | <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)--> | |
− | + | <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)--> | |
− | < | + | <FirstName>?</FirstName> |
− | + | <!--FirstName — имя пассажира--> | |
− | + | <LastName>?</LastName> | |
− | + | <!--LastName — фамилия пассажира--> | |
− | <MiddleName> | + | <!--Optional:--> |
+ | <MiddleName>?</MiddleName> | ||
+ | <!--MiddleName — отчество пассажира--> | ||
</PersonalInfo> | </PersonalInfo> | ||
− | < | + | <LoyaltyCard OpCode="?" Number="?"/> |
− | + | <!--OpCode — код авиакомпании--> | |
− | + | <!--Number — номер карточки--> | |
− | + | <ContactInfo> | |
− | <ContactInfo> | + | <!--Optional:--> |
− | + | <EmailID>?</EmailID> | |
− | + | <!--EmailID — контактный email--> | |
− | + | <!--Optional:--> | |
− | + | <Telephone Type="?"> | |
− | + | <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий--> | |
− | + | <!--Optional:--> | |
− | + | <PhoneNumber>?</PhoneNumber> | |
− | + | <!--PhoneNumber — номер телефона--> | |
− | + | <!--Optional:--> | |
− | + | <CountryAccessCode>?</CountryAccessCode> | |
− | + | <!--CountryAccessCode — код страны--> | |
− | + | <!--Optional:--> | |
− | + | <AreaCityCode>?</AreaCityCode> | |
− | + | <!--AreaCityCode — код региона/города--> | |
− | + | </Telephone> | |
− | + | </ContactInfo> | |
− | + | <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> | |
− | + | <!--DocType — тип документа, возможные значения: | |
− | + | Р — Паспорт | |
− | + | A – Паспорт иностранца | |
− | + | С — Внутренний гражданский паспорт | |
− | + | F – Документ заменяющий паспорт | |
− | + | М — Воинское удостоверение | |
− | + | N – Сертификат натурализации(специфичный документ США) | |
− | + | T – Док.повторного въезда, паспорт беженца | |
− | + | V – Документ для пересечения границы--> | |
− | + | <!--DocNum — номер документа--> | |
− | + | <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)--> | |
− | + | <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)--> | |
− | < | + | <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/> |
− | + | <!--Num — номер визы--> | |
− | + | <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы--> | |
− | + | <!--IssueCountry — страна выдачи визы--> | |
− | + | <!--IssuePlace — место выдачи визы--> | |
− | + | <!--BirthCountry — страна рождения(IATA код страны)--> | |
− | + | <!--BirthCity — город рождения(название)--> | |
− | + | <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> | |
− | + | <!--City — город--> | |
− | + | <!--State — штат или область въезда--> | |
− | <!-- | + | <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.--> |
− | + | <!--PostalCode — почтовый код--> | |
− | + | <!--CountryCode — код страны--> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <!-- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<DocStringFormats> | <DocStringFormats> | ||
− | + | <!--Zero or more repetitions:--> | |
− | + | <DocStringFormat>?</DocStringFormat> | |
− | + | <!--DocStringFormat — формат паспортной строки, возможные значения: | |
− | + | DOCS — строка формата DOCS, FOID — строка формата FOID--> | |
− | + | </DocStringFormats> | |
</Traveller> | </Traveller> | ||
</Travellers> | </Travellers> | ||
+ | <AutoCancelDate>?</AutoCancelDate> | ||
+ | <!--AutoCancelDate — дата и время таймлимита автоаннуляции в формате ГГГГ-MM-ДДTЧЧ:ММ:СС определяемые по настройкам агентства--> | ||
+ | <TimeLimits> | ||
+ | <TicketingTimeLimit>?</TicketingTimeLimit> | ||
+ | <!--TicketingTimeLimit — Таймлимит на выписку в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <PriceTimeLimit>?</PriceTimeLimit> | ||
+ | <!--PriceTimeLimit — Таймлимит цены из ГРС в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <AdvancedPurchaseTimeLimit>?</AdvancedPurchaseTimeLimit> | ||
+ | <!--AdvancedPurchaseTimeLimit — Таймлимит цены из тарифных правил в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <AgencyTimeLimit>?</AgencyTimeLimit> | ||
+ | <!--AgencyTimeLimit - Таймлимит по настройкам в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | </TimeLimits> | ||
</BookFlight> | </BookFlight> | ||
<Requisites/> | <Requisites/> | ||
<RequestType xsi:nil="true"/> | <RequestType xsi:nil="true"/> | ||
<UserID xsi:nil="true"/> | <UserID xsi:nil="true"/> | ||
− | < | + | <Error Code="?">Сообщение об ошибке</Error> |
</Response> | </Response> | ||
</ResponseBin> | </ResponseBin> | ||
</ns1:BookFlightResponse> | </ns1:BookFlightResponse> | ||
</SOAP-ENV:Body> | </SOAP-ENV:Body> | ||
− | </SOAP-ENV:Envelope></ | + | </SOAP-ENV:Envelope> |
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | == Пример использования == | ||
− | + | Пример одностороннего перелета Москва — Мадрид. | |
− | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | |
− | < | + | ==== Запрос ==== |
+ | <div class="mw-collapsible-content"> | ||
+ | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
+ | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight"> | ||
<soapenv:Header/> | <soapenv:Header/> | ||
<soapenv:Body> | <soapenv:Body> | ||
Строка 722: | Строка 523: | ||
<Request> | <Request> | ||
<BookFlight> | <BookFlight> | ||
− | + | <FlightId>171430002</FlightId> | |
− | + | <Travellers> | |
− | + | <!--Zero or more repetitions:--> | |
− | + | <Traveller Type="ADT" IsContact="true" Num="1"> | |
− | + | <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M"> | |
− | + | <FirstName>Petr</FirstName> | |
− | <!-- | + | <LastName>Ivanov</LastName> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <PersonalInfo DateOfBirth=" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</PersonalInfo> | </PersonalInfo> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<ContactInfo> | <ContactInfo> | ||
− | <!-- | + | <!--Optional:--> |
− | <EmailID></EmailID> | + | <EmailID>testmail@mail.ru</EmailID> |
− | <!-- | + | <!--Optional:--> |
− | + | <Telephone Type="M"> | |
− | + | <!--Optional:--> | |
− | + | <PhoneNumber>79051234567</PhoneNumber> | |
− | |||
− | <Telephone Type=""> | ||
− | <!-- | ||
− | <PhoneNumber></PhoneNumber | ||
− | |||
− | |||
− | |||
− | |||
</Telephone> | </Telephone> | ||
</ContactInfo> | </ContactInfo> | ||
− | + | <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <DocumentInfo DocType=" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</Traveller> | </Traveller> | ||
</Travellers> | </Travellers> | ||
− | |||
− | |||
</BookFlight> | </BookFlight> | ||
</Request> | </Request> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<Source> | <Source> | ||
− | + | <ClientId>---</ClientId> | |
− | + | <APIKey>---</APIKey> | |
− | + | <Language>RU</Language> | |
− | + | <Currency>RUB</Currency> | |
− | + | </Source> | |
</RequestBin> | </RequestBin> | ||
</ver:BookFlight> | </ver:BookFlight> | ||
</soapenv:Body> | </soapenv:Body> | ||
− | </soapenv:Envelope></ | + | </soapenv:Envelope> |
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
− | + | ==== Ответ ==== | |
− | < | + | <div class="mw-collapsible-content"> |
+ | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
+ | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<SOAP-ENV:Body> | <SOAP-ENV:Body> | ||
<ns1:BookFlightResponse> | <ns1:BookFlightResponse> | ||
<ResponseBin> | <ResponseBin> | ||
<Response> | <Response> | ||
− | + | <BookFlight ID="262872" Status="booked" Code="LQHZWU"> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <BookFlight ID=" | ||
− | |||
− | |||
<QueryPlace xsi:nil="true"/> | <QueryPlace xsi:nil="true"/> | ||
− | + | <Flight FlightId="171430002"> | |
− | <Flight FlightId=" | + | <WebService>SABRE</WebService> |
− | + | <ValCompany>SU</ValCompany> | |
− | <WebService> | + | <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D14290%26flight%3D171430002</URL> |
− | |||
− | <ValCompany> | ||
− | <URL>http%3A%2F% | ||
<Segments> | <Segments> | ||
− | + | <Segment SegNum="1" SegGroupNum="0"> | |
− | <Segment SegNum="1" | + | <DepAirp CodeType="IATA">SVO</DepAirp> |
− | + | <DepTerminal>D</DepTerminal> | |
− | <DepAirp CodeType="IATA"> | + | <ArrAirp CodeType="IATA">BCN</ArrAirp> |
− | |||
− | <DepTerminal | ||
− | |||
− | <ArrAirp CodeType="IATA"> | ||
− | |||
<ArrTerminal>1</ArrTerminal> | <ArrTerminal>1</ArrTerminal> | ||
− | + | <OpAirline>SU</OpAirline> | |
− | <OpAirline> | + | <MarkAirline>SU</MarkAirline> |
− | + | <FlightNumber>2512</FlightNumber> | |
− | <MarkAirline> | + | <AircraftType>321</AircraftType> |
− | + | <DepDateTime>2014-03-20T20:40:00</DepDateTime> | |
− | <FlightNumber> | + | <ArrDateTime>2014-03-20T22:20:00</ArrDateTime> |
− | |||
− | <AircraftType> | ||
− | |||
− | <DepDateTime> | ||
− | |||
− | <ArrDateTime> | ||
− | |||
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
− | |||
<BookingCodes> | <BookingCodes> | ||
− | <BookingCode> | + | <BookingCode ClassType="economy"> |
+ | <BookingCode>E</BookingCode> | ||
+ | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
− | + | <FlightTime>280</FlightTime> | |
− | < | + | <TimeZone Departure="4" Arrival="1"/> |
− | + | <ETicket>true</ETicket> | |
− | + | </Segment> | |
− | + | <Segment SegNum="2" SegGroupNum="0"> | |
− | < | + | <DepAirp CodeType="IATA">BCN</DepAirp> |
− | + | <DepTerminal>1</DepTerminal> | |
+ | <ArrAirp CodeType="IATA">MAD</ArrAirp> | ||
+ | <ArrTerminal>2</ArrTerminal> | ||
+ | <OpAirline>UX</OpAirline> | ||
+ | <MarkAirline>SU</MarkAirline> | ||
+ | <FlightNumber>3403</FlightNumber> | ||
+ | <AircraftType>738</AircraftType> | ||
+ | <DepDateTime>2014-03-21T12:05:00</DepDateTime> | ||
+ | <ArrDateTime>2014-03-21T13:25:00</ArrDateTime> | ||
+ | <StopNum>0</StopNum> | ||
+ | <BookingCodes> | ||
+ | <BookingCode ClassType="economy"> | ||
+ | <BookingCode>E</BookingCode> | ||
+ | </BookingCode> | ||
+ | </BookingCodes> | ||
+ | <FlightTime>80</FlightTime> | ||
+ | <TimeZone Departure="1" Arrival="1"/> | ||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
</Segment> | </Segment> | ||
</Segments> | </Segments> | ||
− | + | <PricingInfo Refundable="false"> | |
− | |||
− | <PricingInfo Refundable=" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<PassengerFare Type="ADT" Quantity="1"> | <PassengerFare Type="ADT" Quantity="1"> | ||
− | + | <BaseFare Currency="EUR" Amount="165"/> | |
− | + | <EquiveFare Currency="RUB" Amount="8335"/> | |
− | <BaseFare Currency=" | + | <TotalFare Currency="RUB" Amount="14025"/> |
− | |||
− | |||
− | <EquiveFare Currency="RUB" Amount=" | ||
− | |||
− | |||
− | <TotalFare Currency="RUB" Amount=" | ||
− | |||
<Taxes> | <Taxes> | ||
− | + | <Tax CurCode="RUB" TaxCode="YQF" Amount="4242"/> | |
− | + | <Tax CurCode="RUB" TaxCode="YRI" Amount="374"/> | |
− | + | <Tax CurCode="RUB" TaxCode="JD" Amount="844"/> | |
− | + | <Tax CurCode="RUB" TaxCode="QV" Amount="230"/> | |
− | <Tax CurCode="RUB" TaxCode=" | ||
− | <Tax CurCode="RUB" TaxCode=" | ||
</Taxes> | </Taxes> | ||
− | |||
<Tariffs> | <Tariffs> | ||
− | + | <Tariff Code="EBSRT" SegNum="1"> | |
− | + | <FareFamilies> | |
− | + | <FullName>Бюджет-Эконом</FullName> | |
− | + | </FareFamilies> | |
+ | </Tariff> | ||
+ | <Tariff Code="EBSRT" SegNum="2"> | ||
+ | <FareFamilies> | ||
+ | <FullName>Бюджет-Эконом</FullName> | ||
+ | </FareFamilies> | ||
+ | </Tariff> | ||
</Tariffs> | </Tariffs> | ||
− | + | <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc> | |
− | <FareCalc | + | <LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime> |
− | |||
− | <LastTicketDateTime> | ||
</PassengerFare> | </PassengerFare> | ||
</PricingInfo> | </PricingInfo> | ||
− | + | <Charges Currency="RUB">140.25</Charges> | |
− | + | <TotalPrice Currency="RUB">14165.25</TotalPrice> | |
− | < | ||
− | |||
− | |||
− | < | ||
</Flight> | </Flight> | ||
− | + | <Agency/> | |
− | + | <ItinReceipts xsi:nil="true"/> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<FareStored xsi:nil="true"/> | <FareStored xsi:nil="true"/> | ||
− | |||
<Travellers> | <Travellers> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<Traveller Type="ADT" IsContact="true" Num="1"> | <Traveller Type="ADT" IsContact="true" Num="1"> | ||
− | + | <Meal/> | |
− | + | <Ticket/> | |
− | + | <Seats/> | |
− | + | <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M"> | |
− | + | <FirstName>PETR</FirstName> | |
− | + | <LastName>IVANOV</LastName> | |
− | + | <MiddleName/> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <Meal | ||
− | |||
− | |||
− | |||
− | <Seats | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <PersonalInfo DateOfBirth=" | ||
− | |||
− | <FirstName> | ||
− | |||
− | <LastName> | ||
− | |||
− | <MiddleName | ||
</PersonalInfo> | </PersonalInfo> | ||
− | + | <LoyaltyCard/> | |
− | |||
− | |||
− | |||
<ContactInfo> | <ContactInfo> | ||
− | + | <EmailID>TESTMAIL@MAIL.ru</EmailID> | |
− | + | <Telephone Type="M"> | |
− | + | <PhoneNumber>79051234567</PhoneNumber> | |
− | + | <CountryAccessCode/> | |
− | + | <AreaCityCode/> | |
− | + | </Telephone> | |
− | + | </ContactInfo> | |
− | + | <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/> | |
− | + | <VisaInfo/> | |
− | + | <ArrAddress/> | |
− | + | <PreferedPlace/> | |
− | + | <DocStringFormats/> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <DocumentInfo DocType=" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <DocStringFormats | ||
− | |||
− | |||
− | |||
− | |||
− | |||
</Traveller> | </Traveller> | ||
</Travellers> | </Travellers> | ||
+ | <AutoCancelDate>2014-03-14T09:45:00</AutoCancelDate> | ||
+ | <TimeLimits> | ||
+ | <TicketingTimeLimit>2014-03-14T12:45:00</TicketingTimeLimit> | ||
+ | <PriceTimeLimit>2014-03-14T10:45:00</PriceTimeLimit> | ||
+ | <AdvancedPurchaseTimeLimit>2014-03-14T12:40:00</AdvancedPurchaseTimeLimit> | ||
+ | <AgencyTimeLimit>2014-03-14T09:45:00</AgencyTimeLimit> | ||
+ | </TimeLimits> | ||
</BookFlight> | </BookFlight> | ||
<Requisites/> | <Requisites/> | ||
Строка 1210: | Строка 694: | ||
</ns1:BookFlightResponse> | </ns1:BookFlightResponse> | ||
</SOAP-ENV:Body> | </SOAP-ENV:Body> | ||
− | </SOAP-ENV:Envelope></ | + | </SOAP-ENV:Envelope> |
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
+ | |||
+ | ==== Ответ с ошибкой==== | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
+ | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://release.mlsd.ru/nemoflights/?version%3D1.0%26for%3DBookFlight"> | ||
+ | <SOAP-ENV:Body> | ||
+ | <ns1:BookFlightResponse> | ||
+ | <ResponseBin> | ||
+ | <Error Code="E001936">Invalid Flight ID</Error> | ||
+ | </ResponseBin> | ||
+ | </ns1:BookFlightResponse> | ||
+ | </SOAP-ENV:Body> | ||
+ | </SOAP-ENV:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | == Общий формат запроса / ответа отмены бронирования == | ||
+ | |||
+ | После бронирования, если не истек таймлимит, можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимита, установленного для заказа, система сама аннулирует заказ. | ||
+ | |||
+ | WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
+ | ==== Запрос ==== | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
+ | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook"> | ||
+ | <soapenv:Header/> | ||
+ | <soapenv:Body> | ||
+ | <ver:CancelBook> | ||
+ | <RequestBin> | ||
+ | <Request> | ||
+ | <CancelBook BookID="?"/> | ||
+ | <!--BookID — Id брони в системе Nemo, целое число--> | ||
+ | </Request> | ||
+ | <Source> | ||
+ | <ClientId>?</ClientId> | ||
+ | <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе | ||
+ | "Администрирование" ? "Веб-служба. Авторизация".--> | ||
+ | <APIKey>?</APIKey> | ||
+ | <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе | ||
+ | "Администрирование" ? "Веб-служба. Авторизация".--> | ||
+ | <Language>?</Language> | ||
+ | <!--Language — язык--> | ||
+ | <Currency>?</Currency> | ||
+ | <!-- CUrrency — валюта--> | ||
+ | </Source> | ||
+ | </RequestBin> | ||
+ | </ver:CancelBook> | ||
+ | </soapenv:Body> | ||
+ | </soapenv:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
+ | ==== Ответ ==== | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
+ | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
+ | <SOAP-ENV:Body> | ||
+ | <ns1:CancelBookResponse> | ||
+ | <ResponseBin> | ||
+ | <Response> | ||
+ | <CancelBook BookID="?"> | ||
+ | <!--BookID — Id брони в системе Nemo, целое число--> | ||
+ | <Result Success="?"/> | ||
+ | <!--Success — результат отмены брони, true или false--> | ||
+ | </CancelBook> | ||
+ | <Requisites/> | ||
+ | <RequestType xsi:nil="true"/> | ||
+ | <UserID xsi:nil="true"/> | ||
+ | <Error Code="?">Сообщение об ошибке</Error> | ||
+ | </Response> | ||
+ | </ResponseBin> | ||
+ | </ns1:CancelBookResponse> | ||
+ | </SOAP-ENV:Body> | ||
+ | </SOAP-ENV:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
== См. также == | == См. также == | ||
− | [[Бронирование]] | + | *[[Агентский API Авиабилеты]] |
− | [[ | + | *[[Бронирование]] |
+ | |||
+ | [[Категория:Интеграция]] | ||
+ | [[Категория:Агентский API]] |
Текущая версия на 18:44, 6 мая 2019
Внимание! В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по ссылке
Содержание
Подключение
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight
Общий формат запроса / ответа бронирования
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:BookFlight>
5 <RequestBin>
6 <Request>
7 <BookFlight>
8 <FlightId>?</FlightId>
9 <!--FlightId — Id перелёта в системе Nemo-->
10 <!--Optional:-->
11 <BookId>?</BookId>
12 <!--BookId — Id заказа в системе Nemo, полученный в ответе на запрос EmptyBook-->
13 <!--Optional:-->
14 <CurrencyCode>?</CurrencyCode> <!--необязательный-->
15 <!--CurrencyCode — код валюты-->
16 <!--Optional:-->
17 <Agency Name="?"> <!--необязательный-->
18 <!--Name — название агентства-->
19 <Telephone Type="?">
20 <!--Type — тип номера, обязательный, возможные значения:
21 M — мобильный, H — домашний, B — рабочий, A — агенство-->
22 <!--Optional:-->
23 <PhoneNumber>?</PhoneNumber>
24 <!--PhoneNumber — номер телефона-->
25 <!--Optional:-->
26 <CountryAccessCode>?</CountryAccessCode> <!--необязательный-->
27 <!--CountryAccessCode — код страны-->
28 <!--Optional:-->
29 <AreaCityCode>?</AreaCityCode> <!--необязательный-->
30 <!--AreaCityCode — код региона/города-->
31 </Telephone>
32 <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
33 <!--City — город-->
34 <!--State — штат-->
35 <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)-->
36 <!--PostalCode — почтовый индекс-->
37 <!--CountryCode — код страны (RU, UA и т.п.)-->
38 </Agency>
39 <Travellers>
40 <!--Zero or more repetitions:-->
41 <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
42 <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
43 CLD — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
44 <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
45 контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
46 может быть контактным лицом, по умолчанию false-->
47 <!--Num — порядковый номер пассажира, начинается с 1-->
48 <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> <!--необязательный-->
49 <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
50 <Meal>?</Meal> <!--необязательный-->
51 <!--Meal — код типа питания, возможные значения:
52 AVML — Азиатская вегетарианская кухня
53 BLML — Блюда щадящей диеты
54 CHML — Детское питание
55 CHPC — Детский холодный завтрак
56 СНСС — Детский горячий завтрак
57 CHHC — Детский ланч, ветчина и сыр
58 PBJS — Детский ланч, ореховое масло
59 CHMC — Детский обед макароны с сыром
60 DBML — Диабетическое питание
61 FPML — Фрукты
62 GFML — Питание без клейковины
63 HFML — Питание богатое клетчаткой
64 HNML — Индусская кухня
65 BBML — Питание для младенцев
66 KSML — Кошерная кухня
67 SMKB — Кошерный завтрак
68 SMKL — Кошерный ланч
69 SMKD — Кошерный обед
70 LPML — Малобелковое питание
71 LCML — Низкокалорийное питание
72 LFML — Низкохолестериновое питание
73 PRML — Низкопуриновое питание
74 LSML — Малосоленое питание
75 MOML — Мюсли
76 NLML — Безмолочные продукты
77 ORML — Восточная кухня
78 RVML — Сырые овощи
79 SFML — Морепродукты
80 SPML — Особое питание
81 VLML — Вегетарианское, молоко и яйца
82 VGML — Строго вегетарианское питание
83 VJML — Джайнизское вегетарианское
84 VOML — Восточное вегетарианское питание-->
85 <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
86 <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
87 <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
88 <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)-->
89 <FirstName>?</FirstName>
90 <!--FirstName — имя пассажира-->
91 <LastName>?</LastName>
92 <!--LastName — фамилия пассажира-->
93 <!--Optional:-->
94 <MiddleName>?</MiddleName> <!--необязательный-->
95 <!--MiddleName — отчество пассажира-->
96 </PersonalInfo>
97 <LoyaltyCard OpCode="?" Number="?"/> <!--необязательный-->
98 <!--OpCode — код авиакомпании-->
99 <!--Number — номер карточки-->
100 <ContactInfo> <!--необязательный-->
101 <!--Optional:-->
102 <EmailID>?</EmailID>
103 <!--EmailID — контактный email-->
104 <!--Optional:-->
105 <Telephone Type="?">
106 <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий-->
107 <!--Optional:-->
108 <PhoneNumber>?</PhoneNumber>
109 <!--PhoneNumber — номер телефона-->
110 <!--Optional:-->
111 <CountryAccessCode>?</CountryAccessCode>
112 <!--CountryAccessCode — код страны-->
113 <!--Optional:-->
114 <AreaCityCode>?</AreaCityCode>
115 <!--AreaCityCode — код региона/города-->
116 </Telephone>
117 </ContactInfo>
118 <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> <!--необязательный-->
119 <!--DocType — тип документа, возможные значения:
120 P — Паспорт
121 A – Паспорт иностранца
122 C — Внутренний гражданский паспорт
123 F – Документ заменяющий паспорт
124 M — Воинское удостоверение
125 N – Сертификат натурализации(специфичный документ США)
126 T – Док.повторного въезда, паспорт беженца
127 V – Документ для пересечения границы
128 F – Свидетельство о рождении (только для ГРС Сирена Трэвел, для
129 других ГРС рекомендуется использовать тип документа P)-->
130 <!--DocNum — номер документа-->
131 <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
132 <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
133 <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
134 <!--необязательный-->
135 <!--Num — номер визы-->
136 <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы-->
137 <!--IssueCountry — страна выдачи визы-->
138 <!--IssuePlace — место выдачи визы-->
139 <!--BirthCountry — страна рождения(IATA код страны)-->
140 <!--BirthCity — город рождения(название)-->
141 <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
142 <!--City — город-->
143 <!--State — штат или область въезда-->
144 <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
145 <!--PostalCode — почтовый код-->
146 <!--CountryCode — код страны-->
147 </Traveller>
148 </Travellers>
149 <!--Optional:-->
150 <DeviceId> <!--необязательный-->
151 <Type>?</Type>
152 <!--Type — Тип мобильного устройства (apple/android)-->
153 <Token>?</Token>
154 <!--Token — Токен мобильного устройства-->
155 </DeviceId>
156 <Marker>?</Marker>
157 <!--Marker — Маркер пользователя-->
158 </BookFlight>
159 </Request>
160 <Source>
161 <ClientId>?</ClientId>
162 <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
163 "Администрирование" ? "Веб-служба. Авторизация".-->
164 <APIKey>?</APIKey>
165 <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
166 "Администрирование" ? "Веб-служба. Авторизация".-->
167 <Language>?</Language>
168 <!--Language — язык-->
169 <Currency>?</Currency>
170 <!-- CUrrency — валюта-->
171 <EndUserData>
172 <!--Блок с данными о конечном пользователе, необязательный, но необходим при при использовании запросов поиска и бронирования для поставщика TravelFusion-->
173 <EndUserIP>123.123.123.123</EndUserIP>
174 <!--IP адрес пользователя-->
175 <EndUserBrowserAgent>firefox</EndUserBrowserAgent>
176 <!--Браузер пользователя-->
177 <RequestOrigin>Russia-nemo.travel</RequestOrigin>
178 <!--Страна и домен, с которого пользователь совершает поиск/бронирование-->
179 </EndUserData>
180 </Source>
181 </RequestBin>
182 </ver:BookFlight>
183 </soapenv:Body>
184 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:BookFlightResponse>
4 <ResponseBin>
5 <Response>
6 <BookFlight ID="?" Status="?" Code="?">
7 <!--ID — Id брони в системе Nemo, целое число, обязательный-->
8 <!--Status — индикатор состояния брони, возможные значения:
9 booked — забронировано,
10 canceled — бронь отменена,
11 ticket — выписана
12 UNDEFINED — статус не определён-->
13 <!--Code — код брони в системе поставщика-->
14 <QueryPlace xsi:nil="true"/>
15 <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
16 <IsPossibleToTicket>?</IsPossibleToTicket>
17 <!--IsPossibleToTicket — возможность провести выписку ПНРа, boolean-->
18 <Flight FlightId="?">
19 <!--FlightId — Id перелёта в системе Nemo-->
20 <WebService>?</WebService>
21 <!--WebService — поставщик перелёта-->
22 <ValCompany>?</ValCompany>
23 <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
24 <URL>?</URL>
25 <!--URL — ссылка на бронирование конкретного перелета-->
26 <Segments>
27 <Segment SegNum="?" SegGroupNum="?">
28 <!--SegNum — номер сегмента в перелёте-->
29 <!--SegGroupNum – номер плеча перелёта-->
30 <SupplierCode>?</SupplierCode>
31 <!--SupplierCode – номер заказа в системе АК-->
32 <DepAirp CodeType="IATA">?</DepAirp>
33 <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
34 или SVO — Шереметьево-->
35 <DepTerminal>?</DepTerminal>
36 <!--DepTerminal — терминал пункта отправления, если пустое значение,
37 то в аэропорту всего 1 терминал-->
38 <ArrAirp CodeType="IATA">?</ArrAirp>
39 <!--ArrAirp — аэропорт прибытия-->
40 <ArrTerminal>?</ArrTerminal>
41 <!--ArrTerminal — терминал пункта прибытия, если пустое значение,
42 то в аэропорту всего 1 терминал-->
43 <OpAirline>?</OpAirline>
44 <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
45 <MarkAirline>?</MarkAirline>
46 <!--MarkAirline — авиакомпания, продающая перелёт-->
47 <FlightNumber>?</FlightNumber>
48 <!--FlightNumber — номер рейса-->
49 <AircraftType>?</AircraftType>
50 <!--AircraftType — тип воздушного судна, код-->
51 <DepDateTime>?</DepDateTime>
52 <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
53 <ArrDateTime>?</ArrDateTime>
54 <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
55 <StopNum>?</StopNum>
56 <!--StopNum — количество остановок-->
57 <StopPoints>
58 <!--StopPoints — информация о технических остановках, если они есть-->
59 <StopPoint>
60 <AirportCode>?</AirportCode>
61 <!--AirportCode — код аэропорта остановки, трех символьный iata код-->
62 <UTC>?</UTC>
63 <!--UTC — сдвиг часового пояса аэропорта-->
64 <ArrDateTime>?</ArrDateTime>
65 <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
66 <DepDateTime>?</DepDateTime>
67 <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
68 </StopPoint>
69 </StopPoints>
70 <BookingCodes>
71 <BookingCode ClassType="?">
72 <!--ClassType — класс перелета, например: economy-->
73 <BookingCode>?</BookingCode>
74 <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
75 может записываться разными литерами, например: L-->
76 </BookingCode>
77 </BookingCodes>
78 <FlightTime>?</FlightTime>
79 <!--FlightTime — время перелёта в минутах-->
80 <TimeZone Departure="?" Arrival="?"/>
81 <!--Departure временная зона аэропорта отправления-->
82 <!--Arrival — временная зона аэропорта прибытия-->
83 <ETicket>?</ETicket>
84 <!--ETicket — признак электронного билета, значения: true / false-->
85 <isCharter>?</isCharter>
86 <!--isCharter — признак чартерного перелета, значения: true / false-->
87 <BaggageAllowances>
88 <!--BaggageAllowances — информация о багаже-->
89 <BaggageAllowance>
90 <PassengerType>?</PassengerType>
91 <!--PassengerType — тип пассажира, соответствует типу тарифа в PricingInfo -->
92 <Value>?</Value>
93 <!--Value — количество-->
94 <Measurement>?</Measurement>
95 <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место, lb — фунт-->
96 </BaggageAllowance>
97 </BaggageAllowances>
98 </Segment>
99 </Segments>
100 <PricingInfo Refundable="?">
101 <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
102 <PassengerFare Type="?" Quantity="?">
103 <!--Type — тип тарифа-->
104 <!--Quantity — количество пассажиров данного типа-->
105 <TravellerRef>
106 <!--TravellerRef — Ссылка на пассажиров, к которым относится данный тариф-->
107 <Ref>?</Ref>
108 <!--Ref — Номера пассажиров, к которым относится данный тариф-->
109 </TravellerRef>
110 <BaseFare Currency="?" Amount="?"/>
111 <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
112 <EquiveFare Currency="?" Amount="?"/>
113 <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
114 Currency — код валюты, Amount — значение цены-->
115 <TotalFare Currency="?" Amount="?"/>
116 <!--TotalFare — суммарная стоимость, в эквивалентной валюте.
117 Currency — код валюты, Amount — значение цены-->
118 <Taxes>
119 <Tax CurCode="?" TaxCode="?" Amount="?"/>
120 <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
121 </Taxes>
122 <Tariffs>
123 <Tariff Code="?" SegNum="?"/>
124 <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
125 <FareFamilies>
126 <FullName>?</FullName>
127 <!--FullName — название тарифа-->
128 </FareFamilies>
129 </Tariffs>
130 <FareCalc>?</FareCalc>
131 <!--FareCalc — строка расчёта цены-->
132 <LastTicketDateTime>?</LastTicketDateTime>
133 <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
134 </PassengerFare>
135 </PricingInfo>
136 <Charges Currency="?">?</Charges>
137 <!--Charges — сборы, Currency — код валюты-->
138 <TotalPrice Currency="?">?</TotalPrice>
139 <!--TotalPrice — итоговая цена, Currency — код валюты-->
140 </Flight>
141 <Agency Name="?">
142 <!--Name — название агентства-->
143 <Telephone Type="?">
144 <!--Type — тип номера, обязательный, возможные значения:
145 M — мобильный, H — домашний, B — рабочий, A — агенство-->
146 <!--Optional:-->
147 <PhoneNumber>?</PhoneNumber>
148 <!--PhoneNumber — номер телефона-->
149 <!--Optional:-->
150 <CountryAccessCode>?</CountryAccessCode>
151 <!--CountryAccessCode — код страны-->
152 <!--Optional:-->
153 <AreaCityCode>?</AreaCityCode>
154 <!--AreaCityCode — код региона/города-->
155 </Telephone>
156 <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
157 <!--City — город-->
158 <!--State — штат-->
159 <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)-->
160 <!--PostalCode — почтовый индекс-->
161 <!--CountryCode — код страны (RU, UA и т.п.)-->
162 </Agency>
163 <ItinReceipts Encoding="?" Format="?">
164 <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат-->
165 <FareStored xsi:nil="true"/>
166 <Travellers>
167 <!--Zero or more repetitions:-->
168 <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
169 <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
170 CLD — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
171 <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
172 контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
173 может быть контактным лицом, по умолчанию false-->
174 <!--Num — порядковый номер пассажира, начинается с 1-->
175 <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)-->
176 <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
177 <Meal>?</Meal>
178 <!--Meal — код типа питания, возможные значения:
179 AVML — Азиатская вегетарианская кухня
180 BLML — Блюда щадящей диеты
181 CHML — Детское питание
182 CHPC — Детский холодный завтрак
183 СНСС — Детский горячий завтрак
184 CHHC — Детский ланч, ветчина и сыр
185 PBJS — Детский ланч, ореховое масло
186 CHMC — Детский обед макароны с сыром
187 DBML — Диабетическое питание
188 FPML — Фрукты
189 GFML — Питание без клейковины
190 HFML — Питание богатое клетчаткой
191 HNML — Индусская кухня
192 BBML — Питание для младенцев
193 KSML — Кошерная кухня
194 SMKB — Кошерный завтрак
195 SMKL — Кошерный ланч
196 SMKD — Кошерный обед
197 LPML — Малобелковое питание
198 LCML — Низкокалорийное питание
199 LFML — Низкохолестериновое питание
200 PRML — Низкопуриновое питание
201 LSML — Малосоленое питание
202 MOML — Мюсли
203 NLML — Безмолочные продукты
204 ORML — Восточная кухня
205 RVML — Сырые овощи
206 SFML — Морепродукты
207 SPML — Особое питание
208 VLML — Вегетарианское, молоко и яйца
209 VGML — Строго вегетарианское питание
210 VJML — Джайнизское вегетарианское
211 VOML — Восточное вегетарианское питание-->
212 <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
213 <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
214 <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
215 <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)-->
216 <FirstName>?</FirstName>
217 <!--FirstName — имя пассажира-->
218 <LastName>?</LastName>
219 <!--LastName — фамилия пассажира-->
220 <!--Optional:-->
221 <MiddleName>?</MiddleName>
222 <!--MiddleName — отчество пассажира-->
223 </PersonalInfo>
224 <LoyaltyCard OpCode="?" Number="?"/>
225 <!--OpCode — код авиакомпании-->
226 <!--Number — номер карточки-->
227 <ContactInfo>
228 <!--Optional:-->
229 <EmailID>?</EmailID>
230 <!--EmailID — контактный email-->
231 <!--Optional:-->
232 <Telephone Type="?">
233 <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий-->
234 <!--Optional:-->
235 <PhoneNumber>?</PhoneNumber>
236 <!--PhoneNumber — номер телефона-->
237 <!--Optional:-->
238 <CountryAccessCode>?</CountryAccessCode>
239 <!--CountryAccessCode — код страны-->
240 <!--Optional:-->
241 <AreaCityCode>?</AreaCityCode>
242 <!--AreaCityCode — код региона/города-->
243 </Telephone>
244 </ContactInfo>
245 <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
246 <!--DocType — тип документа, возможные значения:
247 Р — Паспорт
248 A – Паспорт иностранца
249 С — Внутренний гражданский паспорт
250 F – Документ заменяющий паспорт
251 М — Воинское удостоверение
252 N – Сертификат натурализации(специфичный документ США)
253 T – Док.повторного въезда, паспорт беженца
254 V – Документ для пересечения границы-->
255 <!--DocNum — номер документа-->
256 <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
257 <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
258 <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
259 <!--Num — номер визы-->
260 <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы-->
261 <!--IssueCountry — страна выдачи визы-->
262 <!--IssuePlace — место выдачи визы-->
263 <!--BirthCountry — страна рождения(IATA код страны)-->
264 <!--BirthCity — город рождения(название)-->
265 <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
266 <!--City — город-->
267 <!--State — штат или область въезда-->
268 <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
269 <!--PostalCode — почтовый код-->
270 <!--CountryCode — код страны-->
271 <DocStringFormats>
272 <!--Zero or more repetitions:-->
273 <DocStringFormat>?</DocStringFormat>
274 <!--DocStringFormat — формат паспортной строки, возможные значения:
275 DOCS — строка формата DOCS, FOID — строка формата FOID-->
276 </DocStringFormats>
277 </Traveller>
278 </Travellers>
279 <AutoCancelDate>?</AutoCancelDate>
280 <!--AutoCancelDate — дата и время таймлимита автоаннуляции в формате ГГГГ-MM-ДДTЧЧ:ММ:СС определяемые по настройкам агентства-->
281 <TimeLimits>
282 <TicketingTimeLimit>?</TicketingTimeLimit>
283 <!--TicketingTimeLimit — Таймлимит на выписку в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
284 <PriceTimeLimit>?</PriceTimeLimit>
285 <!--PriceTimeLimit — Таймлимит цены из ГРС в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
286 <AdvancedPurchaseTimeLimit>?</AdvancedPurchaseTimeLimit>
287 <!--AdvancedPurchaseTimeLimit — Таймлимит цены из тарифных правил в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
288 <AgencyTimeLimit>?</AgencyTimeLimit>
289 <!--AgencyTimeLimit - Таймлимит по настройкам в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
290 </TimeLimits>
291 </BookFlight>
292 <Requisites/>
293 <RequestType xsi:nil="true"/>
294 <UserID xsi:nil="true"/>
295 <Error Code="?">Сообщение об ошибке</Error>
296 </Response>
297 </ResponseBin>
298 </ns1:BookFlightResponse>
299 </SOAP-ENV:Body>
300 </SOAP-ENV:Envelope>
Пример использования
Пример одностороннего перелета Москва — Мадрид.
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:BookFlight>
5 <RequestBin>
6 <Request>
7 <BookFlight>
8 <FlightId>171430002</FlightId>
9 <Travellers>
10 <!--Zero or more repetitions:-->
11 <Traveller Type="ADT" IsContact="true" Num="1">
12 <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
13 <FirstName>Petr</FirstName>
14 <LastName>Ivanov</LastName>
15 </PersonalInfo>
16 <ContactInfo>
17 <!--Optional:-->
18 <EmailID>testmail@mail.ru</EmailID>
19 <!--Optional:-->
20 <Telephone Type="M">
21 <!--Optional:-->
22 <PhoneNumber>79051234567</PhoneNumber>
23 </Telephone>
24 </ContactInfo>
25 <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
26 </Traveller>
27 </Travellers>
28 </BookFlight>
29 </Request>
30 <Source>
31 <ClientId>---</ClientId>
32 <APIKey>---</APIKey>
33 <Language>RU</Language>
34 <Currency>RUB</Currency>
35 </Source>
36 </RequestBin>
37 </ver:BookFlight>
38 </soapenv:Body>
39 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:BookFlightResponse>
4 <ResponseBin>
5 <Response>
6 <BookFlight ID="262872" Status="booked" Code="LQHZWU">
7 <QueryPlace xsi:nil="true"/>
8 <Flight FlightId="171430002">
9 <WebService>SABRE</WebService>
10 <ValCompany>SU</ValCompany>
11 <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D14290%26flight%3D171430002</URL>
12 <Segments>
13 <Segment SegNum="1" SegGroupNum="0">
14 <DepAirp CodeType="IATA">SVO</DepAirp>
15 <DepTerminal>D</DepTerminal>
16 <ArrAirp CodeType="IATA">BCN</ArrAirp>
17 <ArrTerminal>1</ArrTerminal>
18 <OpAirline>SU</OpAirline>
19 <MarkAirline>SU</MarkAirline>
20 <FlightNumber>2512</FlightNumber>
21 <AircraftType>321</AircraftType>
22 <DepDateTime>2014-03-20T20:40:00</DepDateTime>
23 <ArrDateTime>2014-03-20T22:20:00</ArrDateTime>
24 <StopNum>0</StopNum>
25 <BookingCodes>
26 <BookingCode ClassType="economy">
27 <BookingCode>E</BookingCode>
28 </BookingCode>
29 </BookingCodes>
30 <FlightTime>280</FlightTime>
31 <TimeZone Departure="4" Arrival="1"/>
32 <ETicket>true</ETicket>
33 </Segment>
34 <Segment SegNum="2" SegGroupNum="0">
35 <DepAirp CodeType="IATA">BCN</DepAirp>
36 <DepTerminal>1</DepTerminal>
37 <ArrAirp CodeType="IATA">MAD</ArrAirp>
38 <ArrTerminal>2</ArrTerminal>
39 <OpAirline>UX</OpAirline>
40 <MarkAirline>SU</MarkAirline>
41 <FlightNumber>3403</FlightNumber>
42 <AircraftType>738</AircraftType>
43 <DepDateTime>2014-03-21T12:05:00</DepDateTime>
44 <ArrDateTime>2014-03-21T13:25:00</ArrDateTime>
45 <StopNum>0</StopNum>
46 <BookingCodes>
47 <BookingCode ClassType="economy">
48 <BookingCode>E</BookingCode>
49 </BookingCode>
50 </BookingCodes>
51 <FlightTime>80</FlightTime>
52 <TimeZone Departure="1" Arrival="1"/>
53 <ETicket>true</ETicket>
54 </Segment>
55 </Segments>
56 <PricingInfo Refundable="false">
57 <PassengerFare Type="ADT" Quantity="1">
58 <BaseFare Currency="EUR" Amount="165"/>
59 <EquiveFare Currency="RUB" Amount="8335"/>
60 <TotalFare Currency="RUB" Amount="14025"/>
61 <Taxes>
62 <Tax CurCode="RUB" TaxCode="YQF" Amount="4242"/>
63 <Tax CurCode="RUB" TaxCode="YRI" Amount="374"/>
64 <Tax CurCode="RUB" TaxCode="JD" Amount="844"/>
65 <Tax CurCode="RUB" TaxCode="QV" Amount="230"/>
66 </Taxes>
67 <Tariffs>
68 <Tariff Code="EBSRT" SegNum="1">
69 <FareFamilies>
70 <FullName>Бюджет-Эконом</FullName>
71 </FareFamilies>
72 </Tariff>
73 <Tariff Code="EBSRT" SegNum="2">
74 <FareFamilies>
75 <FullName>Бюджет-Эконом</FullName>
76 </FareFamilies>
77 </Tariff>
78 </Tariffs>
79 <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
80 <LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime>
81 </PassengerFare>
82 </PricingInfo>
83 <Charges Currency="RUB">140.25</Charges>
84 <TotalPrice Currency="RUB">14165.25</TotalPrice>
85 </Flight>
86 <Agency/>
87 <ItinReceipts xsi:nil="true"/>
88 <FareStored xsi:nil="true"/>
89 <Travellers>
90 <Traveller Type="ADT" IsContact="true" Num="1">
91 <Meal/>
92 <Ticket/>
93 <Seats/>
94 <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
95 <FirstName>PETR</FirstName>
96 <LastName>IVANOV</LastName>
97 <MiddleName/>
98 </PersonalInfo>
99 <LoyaltyCard/>
100 <ContactInfo>
101 <EmailID>TESTMAIL@MAIL.ru</EmailID>
102 <Telephone Type="M">
103 <PhoneNumber>79051234567</PhoneNumber>
104 <CountryAccessCode/>
105 <AreaCityCode/>
106 </Telephone>
107 </ContactInfo>
108 <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
109 <VisaInfo/>
110 <ArrAddress/>
111 <PreferedPlace/>
112 <DocStringFormats/>
113 </Traveller>
114 </Travellers>
115 <AutoCancelDate>2014-03-14T09:45:00</AutoCancelDate>
116 <TimeLimits>
117 <TicketingTimeLimit>2014-03-14T12:45:00</TicketingTimeLimit>
118 <PriceTimeLimit>2014-03-14T10:45:00</PriceTimeLimit>
119 <AdvancedPurchaseTimeLimit>2014-03-14T12:40:00</AdvancedPurchaseTimeLimit>
120 <AgencyTimeLimit>2014-03-14T09:45:00</AgencyTimeLimit>
121 </TimeLimits>
122 </BookFlight>
123 <Requisites/>
124 <RequestType xsi:nil="true"/>
125 <UserID xsi:nil="true"/>
126 <Errors xsi:nil="true"/>
127 </Response>
128 </ResponseBin>
129 </ns1:BookFlightResponse>
130 </SOAP-ENV:Body>
131 </SOAP-ENV:Envelope>
Ответ с ошибкой
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://release.mlsd.ru/nemoflights/?version%3D1.0%26for%3DBookFlight">
2 <SOAP-ENV:Body>
3 <ns1:BookFlightResponse>
4 <ResponseBin>
5 <Error Code="E001936">Invalid Flight ID</Error>
6 </ResponseBin>
7 </ns1:BookFlightResponse>
8 </SOAP-ENV:Body>
9 </SOAP-ENV:Envelope>
Общий формат запроса / ответа отмены бронирования
После бронирования, если не истек таймлимит, можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимита, установленного для заказа, система сама аннулирует заказ.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:CancelBook>
5 <RequestBin>
6 <Request>
7 <CancelBook BookID="?"/>
8 <!--BookID — Id брони в системе Nemo, целое число-->
9 </Request>
10 <Source>
11 <ClientId>?</ClientId>
12 <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
13 "Администрирование" ? "Веб-служба. Авторизация".-->
14 <APIKey>?</APIKey>
15 <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
16 "Администрирование" ? "Веб-служба. Авторизация".-->
17 <Language>?</Language>
18 <!--Language — язык-->
19 <Currency>?</Currency>
20 <!-- CUrrency — валюта-->
21 </Source>
22 </RequestBin>
23 </ver:CancelBook>
24 </soapenv:Body>
25 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:CancelBookResponse>
4 <ResponseBin>
5 <Response>
6 <CancelBook BookID="?">
7 <!--BookID — Id брони в системе Nemo, целое число-->
8 <Result Success="?"/>
9 <!--Success — результат отмены брони, true или false-->
10 </CancelBook>
11 <Requisites/>
12 <RequestType xsi:nil="true"/>
13 <UserID xsi:nil="true"/>
14 <Error Code="?">Сообщение об ошибке</Error>
15 </Response>
16 </ResponseBin>
17 </ns1:CancelBookResponse>
18 </SOAP-ENV:Body>
19 </SOAP-ENV:Envelope>