Веб-служба бронирования: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Запрос)
 
(не показано 87 промежуточных версий 13 участников)
Строка 1: Строка 1:
== Запросы ==
+
{{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}}
  
*Запрос на бронирование
+
== Подключение ==
*Односторонний перелет. Бронирование
 
*Бронирование через TravellerId
 
  
== Запрос на бронирование ==
+
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight
  
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр - «FlightId» - ИД перелёта для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.
+
== Общий формат запроса / ответа бронирования ==
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
Строка 13: Строка 11:
 
<div class="mw-collapsible-content">
 
<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;">
 
<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://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DBookFlight">
+
<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>
Строка 21: Строка 19:
 
               <BookFlight>
 
               <BookFlight>
 
                   <FlightId>?</FlightId>
 
                   <FlightId>?</FlightId>
                   <!--FlightId - ид перелёта в системе Немо-->
+
                   <!--FlightId — Id перелёта в системе Nemo-->
 
                   <!--Optional:-->
 
                   <!--Optional:-->
                  <ValidatingCompany>?</ValidatingCompany> //необязательный
+
                  <BookId>?</BookId>
                   <!--ValidatingCompany - валидирующий перевозчик (тот кто выписывает билет)-->
+
                   <!--BookId — Id заказа в системе Nemo, полученный в ответе на запрос EmptyBook-->
 
                   <!--Optional:-->
 
                   <!--Optional:-->
                   <BookingCodes>
+
                   <CurrencyCode>?</CurrencyCode> <!--необязательный-->
                    <!--Zero or more repetitions:-->
+
                   <!--CurrencyCode код валюты-->
                    <BookingCode Code="?" SegNumber="?"/>
 
                    <!--Code - код класса перелёта-->
 
            <!--SegNumber - номер сегмента в перелёте (начинаются с 1)-->
 
                  </BookingCodes>
 
                  <!--Optional:-->
 
                  <CurrencyCode>?</CurrencyCode> //необязательный
 
                   <!--CurrencyCode - код валюты-->
 
                  <!--Optional:-->
 
                  <TicketTimeLimit>?</TicketTimeLimit> //необязательный
 
                  <!--TicketTimeLimit - таймлимит на оплату, формат: ГГГГ-ММ-ДДTЧЧ:ММ:СС-->
 
 
                   <!--Optional:-->
 
                   <!--Optional:-->
                   <Agency Name="?"> //необязательный
+
                   <Agency Name="?"> <!--необязательный-->
                   <!--Name - название агентства-->
+
                   <!--Name название агентства-->
 
                     <Telephone Type="?">
 
                     <Telephone Type="?">
                     <!--Type - тип номера, обязательный, возможные значения:  
+
                     <!--Type тип номера, обязательный, возможные значения:  
                       M - мобильный, H - домашний, B - рабочий, A - агенство-->
+
                       M мобильный, H домашний, B рабочий, A агенство-->
 
                         <!--Optional:-->
 
                         <!--Optional:-->
 
                         <PhoneNumber>?</PhoneNumber>
 
                         <PhoneNumber>?</PhoneNumber>
                         <!--PhoneNumber - номер телефона-->
+
                         <!--PhoneNumber номер телефона-->
 
                         <!--Optional:-->
 
                         <!--Optional:-->
                         <CountryAccessCode>?</CountryAccessCode> //необязательный
+
                         <CountryAccessCode>?</CountryAccessCode> <!--необязательный-->
                         <!--CountryAccessCode - код страны-->
+
                         <!--CountryAccessCode код страны-->
 
                         <!--Optional:-->
 
                         <!--Optional:-->
                         <AreaCityCode>?</AreaCityCode> //необязательный
+
                         <AreaCityCode>?</AreaCityCode> <!--необязательный-->
                         <!--AreaCityCode - код региона/города-->
+
                         <!--AreaCityCode код региона/города-->
 
                     </Telephone>
 
                     </Telephone>
                     <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> //необязательный
+
                     <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
                     <!--City - город-->
+
                     <!--City город-->
    <!--State - штат-->
+
    <!--State штат-->
    <!--StreetAddress - адрес в городе (улица, дом, корпус, офис и т.д.)-->
+
    <!--StreetAddress адрес в городе (улица, дом, корпус, офис и т.д.)-->
    <!--PostalCode - почтовый индекс-->
+
    <!--PostalCode почтовый индекс-->
    <!--CountryCode - код страны (RU, UA и т.п.)-->
+
    <!--CountryCode код страны (RU, UA и т.п.)-->
 
  </Agency>
 
  </Agency>
 
                   <Travellers>
 
                   <Travellers>
 
                     <!--Zero or more repetitions:-->
 
                     <!--Zero or more repetitions:-->
 
                     <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
 
                     <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
                     <!--Type - тип пассажира, обязательный, возможные значения: ADT - взрослые,
+
                     <!--Type тип пассажира, обязательный, возможные значения: ADT взрослые,
                       CNN - дети со взрослыми,UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом-->
+
                       CLD — дети со взрослыми,UNN дети без сопровождения взрослых, INF младенцы, INS младенцы с местом-->
    <!--IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
+
    <!--IsContact если true то данный пассажир является контактным лицом, если false то не является,
 
      контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них  
 
      контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них  
 
                       может быть контактным лицом, по умолчанию false-->
 
                       может быть контактным лицом, по умолчанию false-->
    <!--Num - порядковый номер пассажира, начинается с 1-->
+
    <!--Num порядковый номер пассажира, начинается с 1-->
                     <!--LinkedTo - номер взрослого, к которому привязан младенец/ребёнок--> //необязательный
+
                     <!--LinkedTo номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> <!--необязательный-->
                     <!--TravellerId - индивидуальный номер пассажира--> //необязательный
+
                     <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
                         <Meal>?</Meal> //необязательный
+
                         <Meal>?</Meal> <!--необязательный-->
                         <!--Meal - код типа питания, возможные значения:
+
                         <!--Meal код типа питания, возможные значения:
NONE - отсутствует
+
AVML Азиатская вегетарианская кухня
AVML - Азиатская вегетарианская кухня
+
BLML Блюда щадящей диеты
BLML - Блюда щадящей диеты
+
CHML Детское питание
CHML - Детское питание
+
CHPC Детский холодный завтрак
CHPC - Детский холодный завтрак
+
СНСС Детский горячий завтрак
СНСС - Детский горячий завтрак
+
CHHC Детский ланч, ветчина и сыр
CHHC - Детский ланч, ветчина и сыр
+
PBJS Детский ланч, ореховое масло
PBJS - Детский ланч, ореховое масло
+
CHMC Детский обед макароны с сыром
CHMC - Детский обед макароны с сыром
+
DBML Диабетическое питание
DBML - Диабетическое питание
+
FPML Фрукты
FPML - Фрукты
+
GFML Питание без клейковины
GFML - Питание без клейковины
+
HFML Питание богатое клетчаткой
HFML - Питание богатое клетчаткой
+
HNML Индусская кухня
HNML - Индусская кухня
+
BBML Питание для младенцев
BBML - Питание для младенцев
+
KSML Кошерная кухня
KSML - Кошерная кухня
+
SMKB Кошерный завтрак
SMKB - Кошерный завтрак
+
SMKL Кошерный ланч
SMKL - Кошерный ланч
+
SMKD Кошерный обед
SMKD - Кошерный обед
+
LPML Малобелковое питание
LPML - Малобелковое питание
+
LCML Низкокалорийное питание
LCML - Низкокалорийное питание
+
LFML Низкохолестериновое питание
LFML - Низкохолестериновое питание
+
PRML Низкопуриновое питание
PRML - Низкопуриновое питание
+
LSML Малосоленое питание
LSML - Малосоленое питание
+
MOML Мюсли
MOML - Мюсли
+
NLML Безмолочные продукты
NLML - Безмолочные продукты
+
ORML Восточная кухня
ORML - Восточная кухня
+
RVML Сырые овощи
RVML - Сырые овощи
+
SFML Морепродукты
SFML - Морепродукты
+
SPML Особое питание
SPML - Особое питание
+
VLML Вегетарианское, молоко и яйца
VLML - Вегетарианское, молоко и яйца
+
VGML Строго вегетарианское питание
VGML - Строго вегетарианское питание
+
VJML Джайнизское вегетарианское
VJML - Джайнизское вегетарианское
+
VOML Восточное вегетарианское питание-->
VOML - Восточное вегетарианское питание-->
 
 
                         <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
 
                         <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
                         <!--DateOfBirth - дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
+
                         <!--DateOfBirth дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
<!--Nationality - гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
+
<!--Nationality гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
<!--Gender - пол пассажира, возможные значения: M - мужской(Male), F - женский(Female)-->
+
<!--Gender пол пассажира, возможные значения: M мужской(Male), F женский(Female)-->
 
                           <FirstName>?</FirstName>
 
                           <FirstName>?</FirstName>
                           <!--FirstName - имя пассажира-->
+
                           <!--FirstName имя пассажира-->
 
                           <LastName>?</LastName>
 
                           <LastName>?</LastName>
                           <!--LastName - фамилия пассажира-->
+
                           <!--LastName фамилия пассажира-->
 
                           <!--Optional:-->
 
                           <!--Optional:-->
                           <MiddleName>?</MiddleName> //необязательный
+
                           <MiddleName>?</MiddleName> <!--необязательный-->
                           <!--MiddleName - отчество пассажира-->
+
                           <!--MiddleName отчество пассажира-->
 
                         </PersonalInfo>
 
                         </PersonalInfo>
                         <LoyaltyCard OpCode="?" Number="?"/> //необязательный
+
                         <LoyaltyCard OpCode="?" Number="?"/> <!--необязательный-->
                         <!--OpCode - код авиакомпании-->
+
                         <!--OpCode код авиакомпании-->
<!--Number - номер карточки-->
+
<!--Number номер карточки-->
                         <ContactInfo> //необязательный
+
                         <ContactInfo> <!--необязательный-->
 
                           <!--Optional:-->
 
                           <!--Optional:-->
 
                           <EmailID>?</EmailID>
 
                           <EmailID>?</EmailID>
                           <!--EmailID - контактный email-->
+
                           <!--EmailID контактный email-->
 
                           <!--Optional:-->
 
                           <!--Optional:-->
 
                           <Telephone Type="?">
 
                           <Telephone Type="?">
                           <!--Type - тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий-->
+
                           <!--Type тип номера, возможные значения: M мобильный, H домашний, B рабочий-->
 
                               <!--Optional:-->
 
                               <!--Optional:-->
 
                               <PhoneNumber>?</PhoneNumber>
 
                               <PhoneNumber>?</PhoneNumber>
                               <!--PhoneNumber - номер телефона-->
+
                               <!--PhoneNumber номер телефона-->
 
                               <!--Optional:-->
 
                               <!--Optional:-->
 
                               <CountryAccessCode>?</CountryAccessCode>
 
                               <CountryAccessCode>?</CountryAccessCode>
                               <!--CountryAccessCode - код страны-->
+
                               <!--CountryAccessCode код страны-->
 
                               <!--Optional:-->
 
                               <!--Optional:-->
 
                               <AreaCityCode>?</AreaCityCode>
 
                               <AreaCityCode>?</AreaCityCode>
                               <!--AreaCityCode - код региона/города-->
+
                               <!--AreaCityCode код региона/города-->
 
                           </Telephone>
 
                           </Telephone>
 
                         </ContactInfo>
 
                         </ContactInfo>
                         <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
+
                         <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> <!--необязательный-->
                         <!--DocType - тип документа, возможные значения:
+
                         <!--DocType тип документа, возможные значения:
Р - Паспорт
+
P — Паспорт
 
A – Паспорт иностранца
 
A – Паспорт иностранца
С - Внутренний гражданский паспорт
+
C — Внутренний гражданский паспорт
 
F – Документ заменяющий паспорт
 
F – Документ заменяющий паспорт
М - Воинское удостоверение
+
M — Воинское удостоверение
 
N – Сертификат натурализации(специфичный документ США)
 
N – Сертификат натурализации(специфичный документ США)
 
T – Док.повторного въезда, паспорт беженца
 
T – Док.повторного въезда, паспорт беженца
V – Документ для пересечения границы-->
+
V – Документ для пересечения границы
<!--DocNum - номер документа-->
+
                                                                F – Свидетельство о рождении (только для ГРС Сирена Трэвел, для
<!--CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
+
                                                                других ГРС рекомендуется использовать тип документа P)-->
<!--DocElapsedTime - срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
+
<!--DocNum номер документа-->
 +
<!--CountryCode двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
 +
<!--DocElapsedTime срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
 
                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>  
 
                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>  
                         //необязательный
+
                         <!--необязательный-->
                         <!--Num - номер визы-->
+
                         <!--Num номер визы-->
                         <!--IssueDate - дата(ДД.ММ.ГГГГ) выдачи визы-->
+
                         <!--IssueDate дата(ДД.ММ.ГГГГ) выдачи визы-->
                         <!--IssueCountry - страна выдачи визы-->
+
                         <!--IssueCountry страна выдачи визы-->
                         <!--IssuePlace - место выдачи визы-->
+
                         <!--IssuePlace место выдачи визы-->
                         <!--BirthCountry - страна рождения(IATA код страны)-->
+
                         <!--BirthCountry страна рождения(IATA код страны)-->
                         <!--BirthCity - город рождения(название)-->
+
                         <!--BirthCity город рождения(название)-->
                         <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> //необязательный
+
                         <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
                         <!--City - город-->
+
                         <!--City город-->
<!--State - штат или область въезда-->
+
<!--State штат или область въезда-->
<!--StreetAddress - адрес: улица, номер дома, квартиры и т.д.-->
+
<!--StreetAddress адрес: улица, номер дома, квартиры и т.д.-->
<!--PostalCode - почтовый код-->
+
<!--PostalCode почтовый код-->
<!--CountryCode - код страны-->
+
<!--CountryCode код страны-->
                        <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
+
                      </Traveller>
                        //необязательный
 
                        <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
 
<!--SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих-->
 
<!--Location - положение места в ряде, возможные значения:
 
W - у окна (Window)
 
M - где-то в середине ряда (Middle)
 
NPW - возле прохода (NearPassengerWay)
 
NS - нет предпочтения (NotSpecified)-->
 
<!--RowNumber - номер ряда-->
 
<!--PlaceNumber - номер места-->
 
<!--SegNumber - номер сегмента-->
 
                        <DocStringFormats>
 
                          <!--Zero or more repetitions:-->
 
                          <DocStringFormat>?</DocStringFormat>
 
                          <!--DocStringFormat - формат паспортной строки, возможные значения:
 
                            DOCS - строка формата DOCS, FOID - строка формата FOID-->
 
                        </DocStringFormats>
 
                    </Traveller>
 
 
                   </Travellers>
 
                   </Travellers>
 
                   <!--Optional:-->
 
                   <!--Optional:-->
                   <QueueNum>?</QueueNum> //необязательный
+
                   <DeviceId> <!--необязательный-->
                   <!--QueueNum - номер очереди, в которую необходимо поместить бронирование-->
+
                    <Type>?</Type>
              </BookFlight>
+
                    <!--Type — Тип мобильного устройства (apple/android)-->
 +
                    <Token>?</Token>
 +
                    <!--Token — Токен мобильного устройства-->
 +
                  </DeviceId>
 +
                  <Marker>?</Marker>
 +
                   <!--Marker — Маркер пользователя-->
 +
                </BookFlight>
 
             </Request>
 
             </Request>
 
             <Source>
 
             <Source>
 
               <ClientId>?</ClientId>
 
               <ClientId>?</ClientId>
               <!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе  
+
               <!--ClientId ID клиента в системе Nemo. Можно посмотреть/добавить в разделе  
                 "Администрирование" "Веб-служба. Авторизация".-->
+
                 "Администрирование" ? "Веб-служба. Авторизация".-->
 
               <APIKey>?</APIKey>
 
               <APIKey>?</APIKey>
               <!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе  
+
               <!--APIKey секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе  
                 "Администрирование" "Веб-служба. Авторизация".-->
+
                 "Администрирование" ? "Веб-служба. Авторизация".-->
 
               <Language>?</Language>
 
               <Language>?</Language>
               <!--Language - язык-->
+
               <!--Language язык-->
 
               <Currency>?</Currency>
 
               <Currency>?</Currency>
               <!-- CUrrency - валюта-->
+
               <!-- CUrrency — валюта-->
 +
              <EndUserData>
 +
                  <!--Блок с данными о конечном пользователе, необязательный, но необходим при при использовании запросов поиска и бронирования для поставщика TravelFusion-->
 +
                  <EndUserIP>123.123.123.123</EndUserIP>
 +
                  <!--IP адрес пользователя-->
 +
                  <EndUserBrowserAgent>firefox</EndUserBrowserAgent>
 +
                  <!--Браузер пользователя-->
 +
                  <RequestOrigin>Russia-nemo.travel</RequestOrigin>
 +
                  <!--Страна и домен, с которого пользователь совершает поиск/бронирование-->
 +
              </EndUserData>       
 
             </Source>
 
             </Source>
 
         </RequestBin>
 
         </RequestBin>
Строка 213: Строка 199:
 
</div>
 
</div>
  
== Односторонний перелет: Москва - Санкт-Петербург ==
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
  
'''REQUEST'''
+
==== Ответ ====
<pre>soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://localhost/nemoflights/?version%3D1.0%26for%3DBookFlight">
+
<div class="mw-collapsible-content">
  <soapenv:Header/>
+
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
  <soapenv:Body>
+
<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">
      <ver:BookFlight>
 
        <RequestBin>
 
            <Request>
 
              <BookFlight>
 
                  <!--@FlightId ид перелёта в системе Немо, обязательный-->
 
  <FlightId>534733</FlightId>
 
                  <!--Валидирующий перевозчик (тот кто выписывает билет), необязательный-->
 
  <ValidatingCompany>SU</ValidatingCompany>
 
                  <!--Код класс перелёта, один для каждого сегмента в перелёте, необязательный-->
 
  <BookingCodes>
 
                    <!--@Code - код класса перелёта, обязательный-->
 
<!--@SegNumber - номер сегмента в перелёте (начинаются с 1), обязательный-->
 
<BookingCode Code="Q" SegNumber="1"/>
 
                  </BookingCodes>
 
                  <!--Код валюты, необязательный-->
 
  <CurrencyCode>RUB</CurrencyCode> 
 
                  <!--Оплатить не позже, формат: ГГГГ-ММ-ДДTЧЧ:мм:СС, необязательный-->
 
  <TicketTimeLimit>2011-06-20 00:00:00</TicketTimeLimit>
 
                  <!--Информация об агенстве, обязательный-->
 
  <!--@Name - название агентства, обязательный-->
 
                  <Agency Name="">
 
<!--Телефон агентсва, необязательный-->
 
<!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий,
 
A - агенство-->
 
                    <Telephone Type="">
 
                        <!--Номер телефона, обязательный-->
 
                        <PhoneNumber></PhoneNumber>
 
<!--Код страны, необязательный-->                       
 
<CountryAccessCode></CountryAccessCode>
 
                        <!--Код региона/города, необязательный-->
 
                        <AreaCityCode></AreaCityCode>
 
                    </Telephone>
 
<!--Адресс агенства. Обязательный.-->
 
<!--@ City - Город. Обязательный.-->
 
<!--@StreetAddress - Адрес в городе (улица, дом, корпус, офис и т.д.). Необязательный.-->
 
<!--@PostalCode - Почтовый индекс. Необязательный.-->
 
<!--@CountryCode - Код страны (RU, UA и т.п.). Необязательный.-->
 
                    <Address City="" State="" StreetAddress="" PostalCode="" CountryCode=""/>
 
                  </Agency>
 
  <!--Список пассажиров, обязательный-->
 
                  <Travellers>
 
                    <!--Информация о пассажире, обязательный-->
 
<!--@Type - тип пассажира, обязательный, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом-->
 
<!--@IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
 
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false, обязательный-->
 
<!--@Num - порядковый номер пассажира, начинается с 1, обязательный-->
 
<!--@TravellerId - id номер пассажира из БД, необязательный-->
 
                    <Traveller Type="ADT" IsContact="true"  Num="1" TravellerId="">
 
<!--Код типа питания, необязательный, возможные значения:
 
NONE - отсутствует
 
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 - Восточное вегетарианское питание-->
 
                        <Meal></Meal>
 
                        <!--Персональные данные, обязательный-->
 
<!--@DateOfBirth - дата рождения в формате yyyy-mm-dd (например 2000-12-31), обязательный-->
 
<!--@Nationality - национальность(гражданство?), двух буквенный код страны (RU, UA, US и т.д.), обязательный-->
 
<!--@Gender - пол пассажира, обязательный, возможные значения:
 
M - мужской(Male)
 
F - женский(Female)-->
 
                        <PersonalInfo DateOfBirth="1975-05-15" Nationality="RU" Gender="M">
 
                          <!--Имя пассажира, обязательный-->
 
<FirstName>Ivan</FirstName>
 
<!--Фамилия пассажира, обязательный-->
 
<LastName>Ivanov</LastName>
 
<!--Отчество пассажира, обязательный-->
 
                            <MiddleName></MiddleName>
 
                        </PersonalInfo>
 
                        <!--Карточка часто летающего пассажира, необязательный -->
 
<!--@OpCode - код авиакомпании, обязательный-->
 
<!--@Number - номер карточки, обязательный-->
 
                        <LoyaltyCard OpCode="" Number=""/>
 
                        <!--Контактная информация, необязательный-->
 
                        <ContactInfo>
 
                          <!--Контактный email, необязательный-->
 
                          <EmailID></EmailID>
 
                          <!--Контактный телефон, необязательный-->
 
  <!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий-->
 
                          <Telephone Type="">
 
                              <!--Номер телефона, обязательный-->
 
                              <PhoneNumber></PhoneNumber>
 
                              <!--Код страны, необязательный-->
 
                              <CountryAccessCode></CountryAccessCode>
 
                              <!--Код региона/города, необязательный-->
 
                              <AreaCityCode></AreaCityCode>
 
                          </Telephone>
 
                        </ContactInfo>
 
                        <!--Паспортные данные, обязательный-->
 
<!--@DocType - тип документа, обязательный, возможные значения:
 
Р - Паспорт
 
A – Паспорт иностранца
 
С - Внутренний гражданский паспорт
 
F – Документ заменяющий паспорт
 
М - Воинское удостоверение
 
N – Сертификат натурализации(специфичный документ США)
 
T – Док.повторного въезда, паспорт беженца
 
V – Документ для пересечения границы-->
 
<!--@DocNum - номер документа, обязательный-->
 
<!--@CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.), обязательный-->
 
<!--@DocElapsedTime - Срок истечения срока действия паспорта в yyyy-mm-dd (например 2000-12-31), обязательный-->
 
                        <DocumentInfo DocType="P" DocNum="1234123456" CountryCode="RU" DocElapsedTime="2025-06-15"/>
 
                        <!--информация о визе, необязательная.(Заполняется через SSR DOCO)
 
@Num - номер визы, обязательный
 
@IssueDate - дата(dd.mm.yyyy) выдачи визы, обязательный
 
@IssueCountry - страна выдачи визы, обязательный
 
@IssuePlace - место выдачи визы, обязательный
 
@BirthCountry - страна рождения(IATA код страны), необязательный
 
@BirthCity - город рождения(название), необязательный
 
-->
 
                        <VisaInfo Num="" IssueCountry="" IssuePlace="" BirthCountry="" BirthCity="" IssueDate=""/>
 
                        <!--Адрес прибытия, необязательный.(Заполняется через SSR DOCA)
 
Но для въезжающих в США(неграждан США) информация является обязательной. Если она не заполняется
 
при оформлении брони, то её всё равно придётся заполнить при посадке на самолёт.
 
@CountryCode - Код страны. Обязательный
 
@State - Штат или область въезда. Обязательный
 
@PostalCode - Почтовый код. Обязательный
 
@City - Город. Обязательный
 
@StreetAddress - Адрес: улица, номер дома, квартиры и тп. Обязательный
 
-->
 
                        <ArrAddress City="" State="" StreetAddress="" PostalCode="" CountryCode=""/>
 
                        <!--Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры @Smoking и @Location игнорируются и могут быть не указаны. Необязательный-->
 
<!--@SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих, необязательный-->
 
<!--@Location - положение места в ряде, необязательный, возможные значения:
 
W - у окна (Window)
 
M - где-то в середине ряда (Middle)
 
NPW - возле прохода (NearPassengerWay)
 
NS - нет предпочтения (NotSpecified)
 
-->
 
<!--@RowNumber - Номер ряда, строка, необязательный-->
 
<!--@PlaceNumber - Номер места, строка, необязательный-->
 
<!--@SegNumber - Номер сегмента, строка, обязательный-->
 
                        <PreferedPlace SmokingAllowed="" Location="" RowNumber="" PlaceNumber="" SegNumber=""/>
 
                        <!--Список форматов строк паспортных данных, необязательный-->
 
                        <DocStringFormats>
 
                          <!--Формат паспортной строки, обязательный, возможные значения:
 
DOCS - строка формата DOCS,
 
FOID - строка формата FOID-->
 
                          <DocStringFormat></DocStringFormat>
 
                        </DocStringFormats>
 
                    </Traveller>
 
                  </Travellers>
 
                  <!--Номер очереди, в которую необходимо поместить бронирование. Строка, необязательный-->
 
                  <QueueNum></QueueNum>
 
              </BookFlight>
 
            </Request>
 
            <!--Авторизация, обязательный-->
 
<!--@ClientId, идентификатор клиента, обязательный-->
 
<!--@APIKey, API ключ клиента, обязательный-->
 
<!--@Language, код языка, обязательный-->
 
<!--@Currency код валюты, обязательный-->
 
            <Source>
 
              <ClientId>102</ClientId>
 
              <APIKey>7F48365D42B73307C99C12A578E92B36</APIKey>
 
              <Language>RU</Language>
 
              <Currency>RUB</Currency>
 
            </Source></pre>
 
 
 
'''RESPONSE'''
 
<div><pre>
 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://localhost/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 — Id брони в системе Nemo, целое число, обязательный-->
<!--@Status - Индикатор состояния брони, обязательный, возможные значения:
+
      <!--Status — индикатор состояния брони, возможные значения:
booked - забронировано,
+
booked забронировано,
canceled - бронь отменена,
+
canceled бронь отменена,
ticket - выписана
+
ticket выписана
UNDEFINED - статус не определён
+
UNDEFINED статус не определён-->
-->
+
      <!--Code — код брони в системе поставщика-->
<!--@Code - Код брони в системе бронирования/поиска (sabre, sirena и т.д.), строка, обязательный-->
 
              <BookFlight ID="21282" Status="booked" Code="QSSRL0">
 
  <!--Положение брони в очереди, необязательный-->
 
  <!--@Number - номер брони в очереди, обязательный-->
 
 
                   <QueryPlace xsi:nil="true"/>
 
                   <QueryPlace xsi:nil="true"/>
  <!--@FlightId ид перелёта в системе Немо, обязательный-->
+
                  <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
                   <Flight FlightId="535464">
+
                  <IsPossibleToTicket>?</IsPossibleToTicket>
<!--Веб-сервис из которого получен перелёт, обязательный-->
+
                  <!--IsPossibleToTicket — возможность провести выписку ПНРа, boolean-->
                     <WebService>GALILEO</WebService>
+
                   <Flight FlightId="?">
<!--Код авиакомпании - валидирующего перевозчика, IATA, обязательный-->
+
                  <!--FlightId — Id перелёта в системе Nemo-->
                     <ValCompany>S7</ValCompany>
+
                     <WebService>?</WebService>
                     <URL>http%3A%2F%2Flocalhost%2F%3Fgo%3Dbooking%2Finfo%26uid%3D26664%26flight%3D535464</URL>
+
                    <!--WebService — поставщик перелёта-->
 +
                     <ValCompany>?</ValCompany>
 +
                    <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
 +
                     <URL>?</URL>
 +
                    <!--URL — ссылка на бронирование конкретного перелета-->
 
                     <Segments>
 
                     <Segments>
<!--SegNum - Номер сегмента в перелёте, обязательный-->
+
                        <Segment SegNum="?" SegGroupNum="?">
                        <Segment SegNum="1">
+
                        <!--SegNum — номер сегмента в перелёте-->
  <!--Аэропорт отправления. Обязательный-->
+
        <!--SegGroupNum – номер плеча перелёта-->
                           <DepAirp CodeType="IATA">DME</DepAirp>
+
                          <SupplierCode>?</SupplierCode>
  <!--Терминал пункта отправления, если пустое значение, то терминала нет, т.е. в аэропорту всего 1 терминал, необязательный-->
+
                          <!--SupplierCode – номер заказа в системе АК-->  
                           <DepTerminal xsi:nil="true"/>
+
                           <DepAirp CodeType="IATA">?</DepAirp>
  <!--Аэропорт прибытия. Обязательный-->
+
                          <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
                           <ArrAirp CodeType="IATA">LED</ArrAirp>
+
                            или SVO — Шереметьево-->
  <!--Терминал пункта прибытия, если пустое значение, то терминала нет, т.е. в аэропорту всего 1 терминал, необязательный-->
+
                          <DepTerminal>?</DepTerminal>
                           <ArrTerminal>1</ArrTerminal>
+
                          <!--DepTerminal — терминал пункта отправления, если пустое значение,  
  <!--Авиакомпания перевозчик. Обязательный-->
+
                            то в аэропорту всего 1 терминал-->
                           <OpAirline>S7</OpAirline>
+
                           <ArrAirp CodeType="IATA">?</ArrAirp>
  <!--Авиакомпания, продающая перелёт. Обязательный-->
+
                          <!--ArrAirp — аэропорт прибытия-->
                           <MarkAirline>S7</MarkAirline>
+
                           <ArrTerminal>?</ArrTerminal>
  <!--Номер рейса. Обязательный-->
+
                          <!--ArrTerminal — терминал пункта прибытия, если пустое значение,  
                           <FlightNumber>39</FlightNumber>
+
                            то в аэропорту всего 1 терминал-->
  <!--Тип воздушного судна, код. Обязательный-->
+
                           <OpAirline>?</OpAirline>
                           <AircraftType>320</AircraftType>
+
                          <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
  <!--Дата и время отправления, формат ГГГГ-MM-DDTЧЧ:ММ:СС. Обязательный-->
+
                           <MarkAirline>?</MarkAirline>
                           <DepDateTime>2011-06-15T12:15:00</DepDateTime>
+
                          <!--MarkAirline — авиакомпания, продающая перелёт-->
  <!--Дата и время прибытия, формат ГГГГ-MM-DDTЧЧ:ММ:СС. Обязательный-->
+
                           <FlightNumber>?</FlightNumber>
                           <ArrDateTime>2011-06-15T13:45:00</ArrDateTime>
+
                          <!--FlightNumber — номер рейса-->
  <!--Количество остановок. Обязательный-->
+
                           <AircraftType>?</AircraftType>
                          <StopNum>0</StopNum>
+
                          <!--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>O</BookingCode>
+
                               <BookingCode ClassType="?">
 +
                              <!--ClassType — класс перелета, например: economy-->
 +
                                <BookingCode>?</BookingCode>
 +
                                <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
 +
                                  может записываться разными литерами, например: L-->
 +
                              </BookingCode>
 
                           </BookingCodes>
 
                           </BookingCodes>
  <!--Время перелёта, в минутах. Обязательный-->
+
                          <FlightTime>?</FlightTime>
                           <FlightTime>90</FlightTime>
+
                          <!--FlightTime — время перелёта в минутах-->
  <!--Временные зоны точки отправления и прибытия. Необязательный-->
+
                           <TimeZone Departure="?" Arrival="?"/>
  <!--@departure временная зона аэропорта отправления, обязательный-->
+
                          <!--Departure временная зона аэропорта отправления-->
  <!--@arrival - временная зона аэропорта прибытия, обязательный-->
+
  <!--Arrival — временная зона аэропорта прибытия-->
                           <TimeZone xsi:nil="true"/>
+
                          <ETicket>?</ETicket>
  <!--Признак электронного билета. Значения: true или false. Обязательный-->
+
                          <!--ETicket — признак электронного билета, значения: true / false-->
                           <ETicket>true</ETicket>
+
                           <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>
<!--информация о стоимости, может встречаться более 1 раза, обязательный-->
+
                    <PricingInfo Refundable="?">
<!--@Refundable возвратный/невозвратный, true/false. Если пустое, то не известно, необязательный-->
+
                    <!--Refundable возвратный/невозвратный, true/false. Если пустое, то не известно-->
                    <PricingInfo Refundable="true">
+
                        <PassengerFare Type="?" Quantity="?">
<!--Типы пассажиров с ценами, таксами и тп, может встречаться более 1 раза, необязательный-->
+
                        <!--Type — тип тарифа-->
<!--@Type тип пассажира, возможные значения:
+
        <!--Quantity — количество пассажиров данного типа-->
ADT - взрослые,
+
                          <TravellerRef>
CNN - дети со взрослыми,
+
                          <!--TravellerRef — Ссылка на пассажиров, к которым относится данный тариф-->
UNN - дети без сопровождения взрослых,
+
                              <Ref>?</Ref>
INF - младенцы,
+
                              <!--Ref — Номера пассажиров, к которым относится данный тариф-->
INS - младенцы с местом, обязательный-->
+
                          </TravellerRef>
<!--@Quantity Количество пассажиров данного типа, обязательный-->
+
                          <BaseFare Currency="?" Amount="?"/>
                        <PassengerFare Type="ADT" Quantity="1">
+
                          <!--BaseFare — базовая стоимость, в базовой валюте. Currency код валюты, Amount значение цены-->
  <!--Базовая стоимость, в базовой валюте, обязательный-->
+
                           <EquiveFare Currency="?" Amount="?"/>
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
+
                          <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
                           <BaseFare Currency="RUB" Amount="3300"/>
+
                            Currency код валюты, Amount значение цены-->
  <!--Базовая стоимость, в эквивалентной валюте(валюте продажи), обязательный-->
+
                           <TotalFare Currency="?" Amount="?"/>
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
+
                          <!--TotalFare — суммарная стоимость, в эквивалентной валюте.
                           <EquiveFare Currency="RUB" Amount="3300"/>
+
                            Currency код валюты, Amount значение цены-->
  <!--Суммарная стоимость в эквивалентной валюте, необязательный-->
 
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
 
                          <TotalFare Currency="RUB" Amount="3710"/>
 
  <!--Массив такс, необязательный-->
 
 
                           <Taxes>
 
                           <Taxes>
  <!--Одна такса, обязательный-->
+
                               <Tax CurCode="?" TaxCode="?" Amount="?"/>
  <!--@CurCode код валюты, обязательный-->
+
                               <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
  <!--@TaxCode код таксы, обязательный-->
 
  <!--@Amount сумма таксы, обязательный-->
 
                               <Tax CurCode="RUB" TaxCode="RU" Amount="41"/>
 
                               <Tax CurCode="RUB" TaxCode="YQ" Amount="369"/>
 
 
                           </Taxes>
 
                           </Taxes>
  <!--Массив тарифов, необязательный-->
 
 
                           <Tariffs>
 
                           <Tariffs>
  <!--Тариф, обязательный-->
+
                              <Tariff Code="?" SegNum="?"/>
  <!--@Code код тарифа, обязательный-->
+
                              <!--Code код тарифа, SegNum — номер сегмента, к которому применён тариф-->
  <!--@SegNum номер сегмента, к которому применён тариф, обязательный-->
+
                                <FareFamilies>
                              <Tariff Code="OPOOW" SegNum="1"/>
+
                                  <FullName>?</FullName>
 +
                                  <!--FullName — название тарифа-->
 +
                                </FareFamilies>
 
                           </Tariffs>
 
                           </Tariffs>
  <!--Строка расчёта цены, необязательный-->
+
                          <FareCalc>?</FareCalc>
                           <FareCalc xsi:nil="true"/>
+
                          <!--FareCalc — строка расчёта цены-->
  <!--Дата и время таймлимита по выписке в формате ГГГГ-MM-DDTЧЧ:ММ:СС, обязательный-->
+
                           <LastTicketDateTime>?</LastTicketDateTime>
                          <LastTicketDateTime>2011-05-27T23:59:00</LastTicketDateTime>
+
                          <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
 
                         </PassengerFare>
 
                         </PassengerFare>
 
                     </PricingInfo>
 
                     </PricingInfo>
<!--Комиссии, обязательный-->
+
                    <Charges Currency="?">?</Charges>
<!--@Currency, код валюты, обязательный-->
+
                    <!--Charges — сборы, Currency код валюты-->
                     <Commission Currency="RUB">382.2</Commission>
+
                     <TotalPrice Currency="?">?</TotalPrice>
<!--Сборы, обязательный-->
+
                    <!--TotalPrice — итоговая цена, Currency код валюты-->
<!--@Currency, код валюты, обязательный-->
 
                    <Charges Currency="RUB">112</Charges>
 
 
                   </Flight>
 
                   </Flight>
  <!--Информация об агенстве, обязательный-->
+
                  <Agency Name="?">  
  <!--@Name - название агентства, обязательный-->                
+
                  <!--Name название агентства-->
<Agency Name="">
+
                    <Telephone Type="?">
<!--Телефон агентсва, необязательный-->
+
                    <!--Type тип номера, обязательный, возможные значения:  
<!--@Type - тип номера, обязательный, возможные значения:
+
                      M мобильный, H домашний, B рабочий, A агенство-->
M - мобильный,
+
                        <!--Optional:-->
H - домашний,
+
                        <PhoneNumber>?</PhoneNumber>
B - рабочий,
+
                        <!--PhoneNumber — номер телефона-->
A - агенство-->
+
                        <!--Optional:-->
<Telephone Type="">
+
                        <CountryAccessCode>?</CountryAccessCode>  
<!--Номер телефона, обязательный-->
+
                        <!--CountryAccessCode — код страны-->
<PhoneNumber></PhoneNumber>
+
                        <!--Optional:-->
<!--Код страны, необязательный-->
+
                        <AreaCityCode>?</AreaCityCode>  
<CountryAccessCode></CountryAccessCode>
+
                        <!--AreaCityCode — код региона/города-->
<!--Код региона/города, необязательный-->
+
                    </Telephone>
<AreaCityCode></AreaCityCode>
+
                    <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>  
</Telephone>
+
                    <!--City — город-->
<!--Адресс агенства. Обязательный.-->
+
    <!--State — штат-->
<Address>
+
    <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)-->
<!--Город. Обязательный.-->
+
    <!--PostalCode — почтовый индекс-->
<City></City>
+
    <!--CountryCode — код страны (RU, UA и т.п.)-->
<!--Адрес в городе (улица, дом, корпус, офис и т.д.). Необязательный.-->
+
  </Agency>
<StreetAddress></StreetAddress>
+
                  <ItinReceipts Encoding="?" Format="?">
<!--Почтовый индекс. Необязательный.-->
+
                   <!--ItinReceipts — маршрут квитанция, Encoding кодировка, Format формат-->
<PostalCode></PostalCode>
 
<!--Код страны (RU, UA и т.п.). Необязательный.-->
 
<CountryCode></CountryCode>
 
</Address>
 
</Agency>
 
                   <!--Маршрут квитанция, необязательный-->
 
  <!--@Encoding - кодировка, обязательный-->
 
  <!--@Format - формат, обязательный-->
 
  <ItinReceipts Encoding="" Format="">
 
 
                   <FareStored xsi:nil="true"/>
 
                   <FareStored xsi:nil="true"/>
  <!--Список пассажиров, обязательный-->
 
 
                   <Travellers>
 
                   <Travellers>
  <!--@Type тип пассажира, обязательный, возможные значения:
+
                    <!--Zero or more repetitions:-->
ADT - взрослые,
+
                    <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
CNN - дети со взрослыми,
+
                    <!--Type — тип пассажира, обязательный, возможные значения: ADT взрослые,
UNN - дети без сопровождения взрослых,
+
                      CLD — дети со взрослыми,UNN дети без сопровождения взрослых, INF младенцы, INS младенцы с местом-->
INF - младенцы,
+
    <!--IsContact если true то данный пассажир является контактным лицом, если false то не является,
INS - младенцы с местом-->
+
      контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них  
  <!--@IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
+
                      может быть контактным лицом, по умолчанию false-->
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false, обязательный-->
+
    <!--Num порядковый номер пассажира, начинается с 1-->
  <!--@Num - порядковый номер пассажира , начинается с 1, обязательный-->
+
                    <!--LinkedTo номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)-->
  <!--@LinkedTo - номер взрослого, к которому привязан младенец/ребёнок, необязательный-->
+
                    <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
                    <Traveller Type="ADT" IsContact="true" Num="1">
+
                        <Meal>?</Meal>  
<!--Тип питания, обязательный, возможные значения:
+
                        <!--Meal — код типа питания, возможные значения:
UNDEFINED - неизвестно
+
AVML — Азиатская вегетарианская кухня
N - Нет питания
+
BLML — Блюда щадящей диеты
P - Алкогольные напитки в продаже
+
CHML — Детское питание
B - Завтрак
+
CHPC — Детский холодный завтрак
O - Холодная еда
+
СНСС — Детский горячий завтрак
C - Бесплатные алкогольные напитки
+
CHHC — Детский ланч, ветчина и сыр
K - Континтальный завтрак
+
PBJS — Детский ланч, ореховое масло
D - Обед
+
CHMC — Детский обед макароны с сыром
F - Еда в продаже
+
DBML — Диабетическое питание
G - Еда/напитки в продаже
+
FPML — Фрукты
H - Горячая еда
+
GFML — Питание без клейковины
L - Ланч
+
HFML — Питание богатое клетчаткой
M - Еда
+
HNML — Индусская кухня
R - Освежающие еда/напитки бесплатно
+
BBML — Питание для младенцев
V - Освежающие еда/напитки за отдельную плату
+
KSML — Кошерная кухня
S - Закуска
+
SMKB — Кошерный завтрак
-->
+
SMKL — Кошерный ланч
                        <Meal xsi:nil="true"/>
+
SMKD — Кошерный обед
<!--Билет, необязательный-->
+
LPML — Малобелковое питание
<!--@TickectNum - номер билета, обязательный-->
+
LCML — Низкокалорийное питание
<Ticket TickectNum="" />
+
LFML — Низкохолестериновое питание
                        <Seats>
+
PRML — Низкопуриновое питание
<!--Место пассажира в самолёте, обязательный-->
+
LSML — Малосоленое питание
<!--@Number - номер места, обязательный-->
+
MOML — Мюсли
<!--@Characteristic - Характеристика места в соответствии со стандартом EDIFACT, необязательный-->
+
NLML — Безмолочные продукты
<!--@SmokingPreference - статус курения на этом месте, если Y - место для курящих, если N - место для некурящих, необязательный-->
+
ORML — Восточная кухня
<!--@SegmentNumber - номер сегмента в перелёте, обязательный-->
+
RVML — Сырые овощи
<Seat Number="" Characteristic="" SmokingPreference="" SegmentNumber=""/>
+
SFML — Морепродукты
</Seats>
+
SPML — Особое питание
<!--Персональные данные, обязательный-->
+
VLML — Вегетарианское, молоко и яйца
<!--@DateOfBirth - дата рождения в формате dd.mm.yyyy (например 31.12.2000), обязательный-->
+
VGML — Строго вегетарианское питание
<!--@Nationality - национальность(гражданство?), двух буквенный код страны (RU, UA, US и т.д.), обязательный-->
+
VJML — Джайнизское вегетарианское
<!--@Gender - пол пассажира, обязательный, возможные значения:
+
VOML — Восточное вегетарианское питание-->
M - мужской(Male)
+
                        <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
F - женский(Female)-->
+
                        <!--DateOfBirth дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
                        <PersonalInfo DateOfBirth="15.05.1975" Nationality="RU" Gender="M">
+
<!--Nationality гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
<!--Имя пассажира, обязательный-->
+
<!--Gender пол пассажира, возможные значения: M мужской(Male), F женский(Female)-->
                           <FirstName>HKSFG</FirstName>
+
                          <FirstName>?</FirstName>
  <!--Фамилия пассажира, обязательный-->
+
                          <!--FirstName — имя пассажира-->
                           <LastName>DFGDG</LastName>
+
                           <LastName>?</LastName>
  <!--Отчество пассажира, обязательный-->
+
                          <!--LastName — фамилия пассажира-->
                           <MiddleName>SHHHHHHH</MiddleName>
+
                           <!--Optional:-->
 +
                           <MiddleName>?</MiddleName>
 +
                          <!--MiddleName — отчество пассажира-->
 
                         </PersonalInfo>
 
                         </PersonalInfo>
                         <!--Карточка часто летающего пассажира, необязательный -->
+
                         <LoyaltyCard OpCode="?" Number="?"/>  
<!--@OpCode код авиакомпании, обязательный-->
+
                        <!--OpCode код авиакомпании-->
<!--@Number - номер карточки, обязательный -->
+
<!--Number номер карточки-->
<LoyaltyCard OpCode="" Number=""/>
+
                         <ContactInfo>  
                         <ContactInfo>
+
                          <!--Optional:-->
<!--Контактный email, необязательный-->
+
                          <EmailID>?</EmailID>
<EmailID></EmailID>
+
                          <!--EmailID — контактный email-->
<!--Контактный телефон, необязательный-->
+
                          <!--Optional:-->
<!--@Type - тип номера, обязательный, возможные значения:
+
                          <Telephone Type="?">
M - мобильный,
+
                          <!--Type — тип номера, возможные значения: M мобильный, H домашний, B рабочий-->
H - домашний,  
+
                              <!--Optional:-->
B - рабочий-->
+
                              <PhoneNumber>?</PhoneNumber>
<Telephone Type="">
+
                              <!--PhoneNumber — номер телефона-->
<!--Номер телефона, обязательный-->
+
                              <!--Optional:-->
<PhoneNumber></PhoneNumber>
+
                              <CountryAccessCode>?</CountryAccessCode>
<!--Код страны, необязательный-->
+
                              <!--CountryAccessCode — код страны-->
<CountryAccessCode></CountryAccessCode>
+
                              <!--Optional:-->
<!--Код региона/города, необязательный-->
+
                              <AreaCityCode>?</AreaCityCode>
<AreaCityCode></AreaCityCode>
+
                              <!--AreaCityCode — код региона/города-->
</Telephone>
+
                          </Telephone>
</ContactInfo>
+
                        </ContactInfo>
<!--Паспортные данные, обязательный-->
+
                        <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
<!--@DocType - тип документа, обязательный, возможные значения:
+
                        <!--DocType тип документа, возможные значения:
Р - Паспорт
+
Р Паспорт
A – Паспорт иностранца
+
A – Паспорт иностранца
С - Внутренний гражданский паспорт
+
С Внутренний гражданский паспорт
F – Документ заменяющий паспорт
+
F – Документ заменяющий паспорт
М - Воинское удостоверение
+
М Воинское удостоверение
N – Сертификат натурализации(специфичный документ США)
+
N – Сертификат натурализации(специфичный документ США)
T – Док.повторного въезда, паспорт беженца
+
T – Док.повторного въезда, паспорт беженца
V – Документ для пересечения границы-->
+
  V – Документ для пересечения границы-->
<!--@DocNum - номер документа, обязательный-->
+
<!--DocNum номер документа-->
<!--@CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.), обязательный-->
+
<!--CountryCode двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
<!--@DocElapsedTime - Срок истечения срока действия паспорта в dd.mm.yyyy (например 31.12.2000), обязательный-->
+
<!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
                         <DocumentInfo DocType="P" DocNum="1234123456" CountryCode="RU" DocElapsedTime="15.06.2025"/>
+
                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>  
<!--информация о визе, необязательная.(Заполняется через SSR DOCO)
+
                        <!--Num номер визы-->
@Num - номер визы, обязательный
+
                        <!--IssueDate дата(ДД.ММ.ГГГГ) выдачи визы-->
@IssueDate - дата(dd.mm.yyyy) выдачи визы, обязательный
+
                        <!--IssueCountry страна выдачи визы-->
@IssueCountry - страна выдачи визы, обязательный
+
                        <!--IssuePlace место выдачи визы-->
@IssuePlace - место выдачи визы, обязательный
+
                        <!--BirthCountry страна рождения(IATA код страны)-->
@BirthCountry - страна рождения(IATA код страны), необязательный
+
                         <!--BirthCity — город рождения(название)-->
@BirthCity - город рождения(название), необязательный
+
                        <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>  
-->
+
                         <!--City — город-->
<VisaInfo Num="" IssueDate="" IssueCountry="" IssuePlace="" BirthCountry="" BirthCity=""/>
+
<!--State — штат или область въезда-->
                         <!--Адрес прибытия, необязательный.(Заполняется через SSR DOCA)
+
<!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
Но для въезжающих в США(неграждан США) информация является обязательной. Если она не заполняется
+
<!--PostalCode — почтовый код-->
при оформлении брони, то её всё равно придётся заполнить при посадке на самолёт.
+
<!--CountryCode — код страны-->
@CountryCode - Код страны. Обязательный
 
@State - Штат или область въезда. Обязательный
 
@PostalCode - Почтовый код. Обязательный
 
@City - Город. Обязательный
 
@StreetAddress - Адрес: улица, номер дома, квартиры и тп. Обязательный
 
-->
 
<ArrAddress CountryCode="" State="" PostalCode="" City="" StreetAddress=""/>
 
                         <!--Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры @Smoking и @Location игнорируются и могут быть не указаны. Необязательный-->
 
<!--@SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих, необязательный-->
 
<!--@Location - положение места в ряде, необязательный, возможные значения:
 
W - у окна (Window)
 
M - где-то в середине ряда (Middle)
 
NPW - возле прохода (NearPassengerWay)
 
NS - нет предпочтения (NotSpecified)
 
-->
 
<!--@RowNumber - Номер ряда, строка, необязательный-->
 
<!--@PlaceNumber - Номер места, строка, необязательный-->
 
<!--@SegNumber - Номер сегмента, строка, обязательный-->
 
<PreferedPlace SmokingAllowed="" Location="" RowNumber="" PlaceNumber="" SegNumber=""/>
 
 
                         <DocStringFormats>
 
                         <DocStringFormats>
<!--Формат паспортной строки, обязательный, возможные значения:
+
                          <!--Zero or more repetitions:-->
DOCS - строка формата DOCS,
+
                          <DocStringFormat>?</DocStringFormat>
FOID - строка формата FOID-->
+
                          <!--DocStringFormat — формат паспортной строки, возможные значения:  
<DocStringFormat></DocStringFormat>
+
                            DOCS строка формата DOCS, FOID строка формата FOID-->
</DocStringFormats>
+
                        </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"/>
               <Errors xsi:nil="true"/>
+
               <Error Code="?">Сообщение об ошибке</Error>
 
             </Response>
 
             </Response>
 
         </ResponseBin>
 
         </ResponseBin>
 
       </ns1:BookFlightResponse>
 
       </ns1:BookFlightResponse>
 
   </SOAP-ENV:Body>
 
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope></pre></div>
+
</SOAP-ENV:Envelope>
 +
</syntaxhighlight>
 +
</div>
 +
</div>
 +
 
 +
== Пример использования ==
  
== Перелет Москва - Санкт-Петербург ==
+
Пример одностороннего перелета Москва — Мадрид.
  
'''REQUEST'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
<pre><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://localhost/nemoflights/?version%3D1.0%26for%3DBookFlight">
+
==== Запрос ====
 +
<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>
Строка 719: Строка 523:
 
             <Request>
 
             <Request>
 
               <BookFlight>
 
               <BookFlight>
                   <!--@FlightId ид перелёта в системе Немо, обязательный-->
+
                   <FlightId>171430002</FlightId>
  <FlightId>534339</FlightId>
+
                  <Travellers>
                  <!--Валидирующий перевозчик (тот кто выписывает билет), необязательный-->
+
                     <!--Zero or more repetitions:-->
  <ValidatingCompany>SU</ValidatingCompany>
+
                     <Traveller Type="ADT" IsContact="true" Num="1">
                  <!--Код класс перелёта, один для каждого сегмента в перелёте, необязательный-->
+
                         <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
  <BookingCodes>
+
                           <FirstName>Petr</FirstName>
                     <!--@Code - код класса перелёта, обязательный-->
+
                          <LastName>Ivanov</LastName>
<!--@SegNumber - номер сегмента в перелёте (начинаются с 1), обязательный-->
 
<BookingCode Code="Q" SegNumber="1"/>
 
                  </BookingCodes>
 
                  <!--Код валюты, необязательный-->
 
  <CurrencyCode>RUB</CurrencyCode>   
 
                  <!--Оплатить не позже, формат: ГГГГ-ММ-ДДTЧЧ:мм:СС, необязательный-->
 
  <TicketTimeLimit>2011-06-20 00:00:00</TicketTimeLimit>
 
                  <!--Информация об агенстве, обязательный-->
 
  <!--@Name - название агентства, обязательный-->
 
                  <Agency Name="">
 
<!--Телефон агентсва, необязательный-->
 
<!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий,
 
A - агенство-->
 
                     <Telephone Type="">
 
                        <!--Номер телефона, обязательный-->
 
                        <PhoneNumber></PhoneNumber>
 
<!--Код страны, необязательный-->                       
 
<CountryAccessCode></CountryAccessCode>
 
                        <!--Код региона/города, необязательный-->
 
                        <AreaCityCode></AreaCityCode>
 
                    </Telephone>
 
<!--Адресс агенства. Обязательный.-->
 
<!--@ City - Город. Обязательный.-->
 
<!--@StreetAddress - Адрес в городе (улица, дом, корпус, офис и т.д.). Необязательный.-->
 
<!--@PostalCode - Почтовый индекс. Необязательный.-->
 
<!--@CountryCode - Код страны (RU, UA и т.п.). Необязательный.-->
 
                    <Address City="" State="" StreetAddress="" PostalCode="" CountryCode=""/>
 
                  </Agency>
 
  <!--Список пассажиров, обязательный-->
 
                  <Travellers>
 
                    <Travellers>
 
<!--Информация о пассажире, обязательный-->
 
<!--@Type - тип пассажира, обязательный, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом-->
 
<!--@IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
 
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false, обязательный-->
 
<!--@Num - порядковый номер пассажира, начинается с 1, обязательный-->
 
<!--@TravellerId - id пользователя в БД, необязательный-->
 
<Traveller Type="ADT" IsContact="true" Num="1" TravellerId="32738"/>
 
<!--Код типа питания, необязательный, возможные значения:
 
NONE - отсутствует
 
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 - Восточное вегетарианское питание-->
 
                        <Meal></Meal>
 
                        <!--Персональные данные, обязательный-->
 
<!--@DateOfBirth - дата рождения в формате yyyy-mm-dd (например 2000-12-31), обязательный-->
 
<!--@Nationality - национальность(гражданство?), двух буквенный код страны (RU, UA, US и т.д.), обязательный-->
 
<!--@Gender - пол пассажира, обязательный, возможные значения:
 
M - мужской(Male)
 
F - женский(Female)-->
 
                         <PersonalInfo DateOfBirth="1975-05-15" Nationality="RU" Gender="M">
 
                           <!--Имя пассажира, обязательный-->
 
<FirstName>Ivan</FirstName>
 
<!--Фамилия пассажира, обязательный-->
 
<LastName>Ivanov</LastName>
 
<!--Отчество пассажира, обязательный-->
 
                            <MiddleName></MiddleName>
 
 
                         </PersonalInfo>
 
                         </PersonalInfo>
                        <!--Карточка часто летающего пассажира, необязательный -->
 
<!--@OpCode - код авиакомпании, обязательный-->
 
<!--@Number - номер карточки, обязательный-->
 
                        <LoyaltyCard OpCode="" Number=""/>
 
                        <!--Контактная информация, необязательный-->
 
 
                         <ContactInfo>
 
                         <ContactInfo>
                           <!--Контактный email, необязательный-->
+
                           <!--Optional:-->
                           <EmailID></EmailID>
+
                           <EmailID>testmail@mail.ru</EmailID>
                           <!--Контактный телефон, необязательный-->
+
                           <!--Optional:-->
  <!--@Type - тип номера, обязательный, возможные значения:
+
                           <Telephone Type="M">
M - мобильный,
+
                               <!--Optional:-->
H - домашний,
+
                               <PhoneNumber>79051234567</PhoneNumber>
B - рабочий-->
 
                           <Telephone Type="">
 
                               <!--Номер телефона, обязательный-->
 
                               <PhoneNumber></PhoneNumber>
 
                              <!--Код страны, необязательный-->
 
                              <CountryAccessCode></CountryAccessCode>
 
                              <!--Код региона/города, необязательный-->
 
                              <AreaCityCode></AreaCityCode>
 
 
                           </Telephone>
 
                           </Telephone>
 
                         </ContactInfo>
 
                         </ContactInfo>
                        <!--Паспортные данные, обязательный-->
+
                         <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
<!--@DocType - тип документа, обязательный, возможные значения:
 
Р - Паспорт
 
A – Паспорт иностранца
 
С - Внутренний гражданский паспорт
 
F – Документ заменяющий паспорт
 
М - Воинское удостоверение
 
N – Сертификат натурализации(специфичный документ США)
 
T – Док.повторного въезда, паспорт беженца
 
V – Документ для пересечения границы-->
 
<!--@DocNum - номер документа, обязательный-->
 
<!--@CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.), обязательный-->
 
<!--@DocElapsedTime - Срок истечения срока действия паспорта в yyyy-mm-dd (например 2000-12-31), обязательный-->
 
                         <DocumentInfo DocType="P" DocNum="1234123456" CountryCode="RU" DocElapsedTime="2025-06-15"/>
 
                        <!--информация о визе, необязательная.(Заполняется через SSR DOCO)
 
@Num - номер визы, обязательный
 
@IssueDate - дата(dd.mm.yyyy) выдачи визы, обязательный
 
@IssueCountry - страна выдачи визы, обязательный
 
@IssuePlace - место выдачи визы, обязательный
 
@BirthCountry - страна рождения(IATA код страны), необязательный
 
@BirthCity - город рождения(название), необязательный
 
-->
 
                        <VisaInfo Num="" IssueCountry="" IssuePlace="" BirthCountry="" BirthCity="" IssueDate=""/>
 
                        <!--Адрес прибытия, необязательный.(Заполняется через SSR DOCA)
 
Но для въезжающих в США(неграждан США) информация является обязательной. Если она не заполняется
 
при оформлении брони, то её всё равно придётся заполнить при посадке на самолёт.
 
@CountryCode - Код страны. Обязательный
 
@State - Штат или область въезда. Обязательный
 
@PostalCode - Почтовый код. Обязательный
 
@City - Город. Обязательный
 
@StreetAddress - Адрес: улица, номер дома, квартиры и тп. Обязательный
 
-->
 
                        <ArrAddress City="" State="" StreetAddress="" PostalCode="" CountryCode=""/>
 
                        <!--Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры @Smoking и @Location игнорируются и могут быть не указаны. Необязательный-->
 
<!--@SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих, необязательный-->
 
<!--@Location - положение места в ряде, необязательный, возможные значения:
 
W - у окна (Window)
 
M - где-то в середине ряда (Middle)
 
NPW - возле прохода (NearPassengerWay)
 
NS - нет предпочтения (NotSpecified)
 
-->
 
<!--@RowNumber - Номер ряда, строка, необязательный-->
 
<!--@PlaceNumber - Номер места, строка, необязательный-->
 
<!--@SegNumber - Номер сегмента, строка, обязательный-->
 
                        <PreferedPlace SmokingAllowed="" Location="" RowNumber="" PlaceNumber="" SegNumber=""/>
 
                        <!--Список форматов строк паспортных данных, необязательный-->
 
                        <DocStringFormats>
 
                          <!--Формат паспортной строки, обязательный, возможные значения:
 
DOCS - строка формата DOCS,
 
FOID - строка формата FOID-->
 
                          <DocStringFormat></DocStringFormat>
 
                        </DocStringFormats>
 
 
                     </Traveller>
 
                     </Traveller>
 
                   </Travellers>
 
                   </Travellers>
                  <!--Номер очереди, в которую необходимо поместить бронирование. Строка, необязательный-->
 
                  <QueueNum></QueueNum>
 
 
               </BookFlight>
 
               </BookFlight>
 
             </Request>
 
             </Request>
            <!--Авторизация, обязательный-->
 
<!--@ClientId, идентификатор клиента, обязательный-->
 
<!--@APIKey, API ключ клиента, обязательный-->
 
<!--@Language, код языка, обязательный-->
 
<!--@Currency код валюты, обязательный-->
 
 
             <Source>
 
             <Source>
<ClientId>102</ClientId>
+
              <ClientId>---</ClientId>
<APIKey>7F48365D42B73307C99C12A578E92B36</APIKey>
+
              <APIKey>---</APIKey>
<Language>RU</Language>
+
              <Language>RU</Language>
<Currency>RUB</Currency>
+
              <Currency>RUB</Currency>
</Source>
+
            </Source>
 
         </RequestBin>
 
         </RequestBin>
 
       </ver:BookFlight>
 
       </ver:BookFlight>
 
   </soapenv:Body>
 
   </soapenv:Body>
</soapenv:Envelope></pre>
+
</soapenv:Envelope>
 +
</syntaxhighlight>
 +
</div>
 +
</div>
  
'''RESPONSE'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
<pre><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://localhost/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
 
 +
==== Ответ ====
 +
<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">
<!--@ID - Ид брони в системе немо, целое число, обязательный-->
 
<!--@Status - Индикатор состояния брони, обязательный, возможные значения:
 
booked - забронировано,
 
canceled - бронь отменена,
 
ticket - выписана
 
UNDEFINED - статус не определён
 
-->
 
<!--@Code - Код брони в системе бронирования/поиска (sabre, sirena и т.д.), строка, обязательный-->
 
               <BookFlight ID="21282" Status="booked" Code="QSSRL0">
 
  <!--Положение брони в очереди, необязательный-->
 
  <!--@Number - номер брони в очереди, обязательный-->
 
 
                   <QueryPlace xsi:nil="true"/>
 
                   <QueryPlace xsi:nil="true"/>
  <!--@FlightId ид перелёта в системе Немо, обязательный-->
+
                   <Flight FlightId="171430002">
                   <Flight FlightId="535464">
+
                     <WebService>SABRE</WebService>
<!--Веб-сервис из которого получен перелёт, обязательный-->
+
                     <ValCompany>SU</ValCompany>
                     <WebService>GALILEO</WebService>
+
                     <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D14290%26flight%3D171430002</URL>
<!--Код авиакомпании - валидирующего перевозчика, IATA, обязательный-->
 
                     <ValCompany>S7</ValCompany>
 
                     <URL>http%3A%2F%2Flocalhost%2F%3Fgo%3Dbooking%2Finfo%26uid%3D26664%26flight%3D535464</URL>
 
 
                     <Segments>
 
                     <Segments>
<!--SegNum - Номер сегмента в перелёте, обязательный-->
+
                         <Segment SegNum="1" SegGroupNum="0">
                         <Segment SegNum="1">
+
                           <DepAirp CodeType="IATA">SVO</DepAirp>
  <!--Аэропорт отправления. Обязательный-->
+
                           <DepTerminal>D</DepTerminal>
                           <DepAirp CodeType="IATA">DME</DepAirp>
+
                           <ArrAirp CodeType="IATA">BCN</ArrAirp>
  <!--Терминал пункта отправления, если пустое значение, то терминала нет, т.е. в аэропорту всего 1 терминал, необязательный-->
 
                           <DepTerminal xsi:nil="true"/>
 
  <!--Аэропорт прибытия. Обязательный-->
 
                           <ArrAirp CodeType="IATA">LED</ArrAirp>
 
  <!--Терминал пункта прибытия, если пустое значение, то терминала нет, т.е. в аэропорту всего 1 терминал, необязательный-->
 
 
                           <ArrTerminal>1</ArrTerminal>
 
                           <ArrTerminal>1</ArrTerminal>
  <!--Авиакомпания перевозчик. Обязательный-->
+
                           <OpAirline>SU</OpAirline>
                           <OpAirline>S7</OpAirline>
+
                           <MarkAirline>SU</MarkAirline>
  <!--Авиакомпания, продающая перелёт. Обязательный-->
+
                           <FlightNumber>2512</FlightNumber>
                           <MarkAirline>S7</MarkAirline>
+
                           <AircraftType>321</AircraftType>
  <!--Номер рейса. Обязательный-->
+
                           <DepDateTime>2014-03-20T20:40:00</DepDateTime>
                           <FlightNumber>39</FlightNumber>
+
                           <ArrDateTime>2014-03-20T22:20:00</ArrDateTime>
  <!--Тип воздушного судна, код. Обязательный-->
 
                           <AircraftType>320</AircraftType>
 
  <!--Дата и время отправления, формат ГГГГ-MM-DDTЧЧ:ММ:СС. Обязательный-->
 
                           <DepDateTime>2011-06-15T12:15:00</DepDateTime>
 
  <!--Дата и время прибытия, формат ГГГГ-MM-DDTЧЧ:ММ:СС. Обязательный-->
 
                           <ArrDateTime>2011-06-15T13:45:00</ArrDateTime>
 
  <!--Количество остановок. Обязательный-->
 
 
                           <StopNum>0</StopNum>
 
                           <StopNum>0</StopNum>
  <!--Код класса бронирования. Обязательный-->
 
 
                           <BookingCodes>
 
                           <BookingCodes>
                               <BookingCode>O</BookingCode>
+
                               <BookingCode ClassType="economy">
 +
                                <BookingCode>E</BookingCode>
 +
                              </BookingCode>
 
                           </BookingCodes>
 
                           </BookingCodes>
  <!--Время перелёта, в минутах. Обязательный-->
+
                          <FlightTime>280</FlightTime>
                           <FlightTime>90</FlightTime>
+
                          <TimeZone Departure="4" Arrival="1"/>
  <!--Временные зоны точки отправления и прибытия. Необязательный-->
+
                           <ETicket>true</ETicket>
  <!--@departure временная зона аэропорта отправления, обязательный-->
+
                        </Segment>
  <!--@arrival - временная зона аэропорта прибытия, обязательный-->
+
                        <Segment SegNum="2" SegGroupNum="0">
                           <TimeZone xsi:nil="true"/>
+
                          <DepAirp CodeType="IATA">BCN</DepAirp>
  <!--Признак электронного билета. Значения: true или false. Обязательный-->
+
                          <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>
<!--информация о стоимости, может встречаться более 1 раза, обязательный-->
+
                     <PricingInfo Refundable="false">
<!--@Refundable возвратный/невозвратный, true/false. Если пустое, то не известно, необязательный-->
 
                     <PricingInfo Refundable="true">
 
<!--Типы пассажиров с ценами, таксами и тп, может встречаться более 1 раза, необязательный-->
 
<!--@Type тип пассажира, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом, обязательный-->
 
<!--@Quantity Количество пассажиров данного типа, обязательный-->
 
 
                         <PassengerFare Type="ADT" Quantity="1">
 
                         <PassengerFare Type="ADT" Quantity="1">
  <!--Базовая стоимость, в базовой валюте, обязательный-->
+
                           <BaseFare Currency="EUR" Amount="165"/>
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
+
                           <EquiveFare Currency="RUB" Amount="8335"/>
                           <BaseFare Currency="RUB" Amount="3300"/>
+
                           <TotalFare Currency="RUB" Amount="14025"/>
  <!--Базовая стоимость, в эквивалентной валюте(валюте продажи), обязательный-->
 
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
 
                           <EquiveFare Currency="RUB" Amount="3300"/>
 
  <!--Суммарная стоимость в эквивалентной валюте, необязательный-->
 
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
 
                           <TotalFare Currency="RUB" Amount="3710"/>
 
  <!--Массив такс, необязательный-->
 
 
                           <Taxes>
 
                           <Taxes>
  <!--Одна такса, обязательный-->
+
                              <Tax CurCode="RUB" TaxCode="YQF" Amount="4242"/>
  <!--@CurCode код валюты, обязательный-->
+
                              <Tax CurCode="RUB" TaxCode="YRI" Amount="374"/>
  <!--@TaxCode код таксы, обязательный-->
+
                               <Tax CurCode="RUB" TaxCode="JD" Amount="844"/>
  <!--@Amount сумма таксы, обязательный-->
+
                               <Tax CurCode="RUB" TaxCode="QV" Amount="230"/>
                               <Tax CurCode="RUB" TaxCode="RU" Amount="41"/>
 
                               <Tax CurCode="RUB" TaxCode="YQ" Amount="369"/>
 
 
                           </Taxes>
 
                           </Taxes>
  <!--Массив тарифов, необязательный-->
 
 
                           <Tariffs>
 
                           <Tariffs>
  <!--Тариф, обязательный-->
+
                            <Tariff Code="EBSRT" SegNum="1">
  <!--@Code код тарифа, обязательный-->
+
                              <FareFamilies>
  <!--@SegNum номер сегмента, к которому применён тариф, обязательный-->
+
                                <FullName>Бюджет-Эконом</FullName>
                              <Tariff Code="OPOOW" SegNum="1"/>
+
                              </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 xsi:nil="true"/>
+
                           <LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime>
  <!--Дата и время таймлимита по выписке в формате ГГГГ-MM-DDTЧЧ:ММ:СС, обязательный-->
 
                           <LastTicketDateTime>2011-05-27T23:59:00</LastTicketDateTime>
 
 
                         </PassengerFare>
 
                         </PassengerFare>
 
                     </PricingInfo>
 
                     </PricingInfo>
<!--Комиссии, обязательный-->
+
                     <Charges Currency="RUB">140.25</Charges>
<!--@Currency, код валюты, обязательный-->
+
                     <TotalPrice Currency="RUB">14165.25</TotalPrice>
                     <Commission Currency="RUB">382.2</Commission>
 
<!--Сборы, обязательный-->
 
<!--@Currency, код валюты, обязательный-->
 
                     <Charges Currency="RUB">112</Charges>
 
 
                   </Flight>
 
                   </Flight>
  <!--Информация об агенстве, обязательный-->
+
                  <Agency/>
  <!--@Name - название агентства, обязательный-->               
+
                   <ItinReceipts xsi:nil="true"/>
<Agency Name="">
 
<!--Телефон агентсва, необязательный-->
 
<!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий,
 
A - агенство-->
 
<Telephone Type="">
 
<!--Номер телефона, обязательный-->
 
<PhoneNumber></PhoneNumber>
 
<!--Код страны, необязательный-->
 
<CountryAccessCode></CountryAccessCode>
 
<!--Код региона/города, необязательный-->
 
<AreaCityCode></AreaCityCode>
 
</Telephone>
 
<!--Адресс агенства. Обязательный.-->
 
<Address>
 
<!--Город. Обязательный.-->
 
<City></City>
 
<!--Адрес в городе (улица, дом, корпус, офис и т.д.). Необязательный.-->
 
<StreetAddress></StreetAddress>
 
<!--Почтовый индекс. Необязательный.-->
 
<PostalCode></PostalCode>
 
<!--Код страны (RU, UA и т.п.). Необязательный.-->
 
<CountryCode></CountryCode>
 
</Address>
 
</Agency>
 
                   <!--Маршрут квитанция, необязательный-->
 
  <!--@Encoding - кодировка, обязательный-->
 
  <!--@Format - формат, обязательный-->
 
  <ItinReceipts Encoding="" Format="">
 
 
                   <FareStored xsi:nil="true"/>
 
                   <FareStored xsi:nil="true"/>
  <!--Список пассажиров, обязательный-->
 
 
                   <Travellers>
 
                   <Travellers>
  <!--@Type тип пассажира, обязательный, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом-->
 
  <!--@IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
 
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false, обязательный-->
 
  <!--@Num - порядковый номер пассажира , начинается с 1, обязательный-->
 
  <!--@LinkedTo - номер взрослого, к которому привязан младенец/ребёнок, необязательный-->
 
 
                     <Traveller Type="ADT" IsContact="true" Num="1">
 
                     <Traveller Type="ADT" IsContact="true" Num="1">
<!--Тип питания, обязательный, возможные значения:
+
                         <Meal/>
UNDEFINED - неизвестно
+
                        <Ticket/>
N - Нет питания
+
                         <Seats/>
P - Алкогольные напитки в продаже
+
                         <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
B - Завтрак
+
                           <FirstName>PETR</FirstName>
O - Холодная еда
+
                           <LastName>IVANOV</LastName>
C - Бесплатные алкогольные напитки
+
                           <MiddleName/>
K - Континтальный завтрак
 
D - Обед
 
F - Еда в продаже
 
G - Еда/напитки в продаже
 
H - Горячая еда
 
L - Ланч
 
M - Еда
 
R - Освежающие еда/напитки бесплатно
 
V - Освежающие еда/напитки за отдельную плату
 
S - Закуска
 
-->
 
                         <Meal xsi:nil="true"/>
 
<!--Билет, необязательный-->
 
<!--@TickectNum - номер билета, обязательный-->
 
<Ticket TickectNum="" />
 
                         <Seats>
 
<!--Место пассажира в самолёте, обязательный-->
 
<!--@Number - номер места, обязательный-->
 
<!--@Characteristic - Характеристика места в соответствии со стандартом EDIFACT, необязательный-->
 
<!--@SmokingPreference - статус курения на этом месте, если Y - место для курящих, если N - место для некурящих, необязательный-->
 
<!--@SegmentNumber - номер сегмента в перелёте, обязательный-->
 
<Seat Number="" Characteristic="" SmokingPreference="" SegmentNumber=""/>
 
</Seats>
 
<!--Персональные данные, обязательный-->
 
<!--@DateOfBirth - дата рождения в формате dd.mm.yyyy (например 31.12.2000), обязательный-->
 
<!--@Nationality - национальность(гражданство?), двух буквенный код страны (RU, UA, US и т.д.), обязательный-->
 
<!--@Gender - пол пассажира, обязательный, возможные значения:
 
M - мужской(Male)
 
F - женский(Female)-->
 
                         <PersonalInfo DateOfBirth="01.05.1981" Nationality="AU" Gender="M">
 
<!--Имя пассажира, обязательный-->
 
                           <FirstName>ANDREW</FirstName>
 
  <!--Фамилия пассажира, обязательный-->
 
                           <LastName>RESH</LastName>
 
  <!--Отчество пассажира, обязательный-->
 
                           <MiddleName>SARAT</MiddleName>
 
 
                         </PersonalInfo>
 
                         </PersonalInfo>
                         <!--Карточка часто летающего пассажира, необязательный -->
+
                         <LoyaltyCard/>
<!--@OpCode -  код авиакомпании, обязательный-->
 
<!--@Number - номер карточки, обязательный -->
 
<LoyaltyCard OpCode="" Number=""/>
 
 
                         <ContactInfo>
 
                         <ContactInfo>
<!--Контактный email, необязательный-->
+
                          <EmailID>TESTMAIL@MAIL.ru</EmailID>
<EmailID></EmailID>
+
                          <Telephone Type="M">
<!--Контактный телефон, необязательный-->
+
                              <PhoneNumber>79051234567</PhoneNumber>
<!--@Type - тип номера, обязательный, возможные значения:
+
                              <CountryAccessCode/>
M - мобильный,
+
                              <AreaCityCode/>
H - домашний,
+
                          </Telephone>
B - рабочий-->
+
                        </ContactInfo>
<Telephone Type="">
+
                         <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
<!--Номер телефона, обязательный-->
+
                        <VisaInfo/>
<PhoneNumber></PhoneNumber>
+
                         <ArrAddress/>
<!--Код страны, необязательный-->
+
                         <PreferedPlace/>
<CountryAccessCode></CountryAccessCode>
+
                         <DocStringFormats/>
<!--Код региона/города, необязательный-->
 
<AreaCityCode></AreaCityCode>
 
</Telephone>
 
</ContactInfo>
 
<!--Паспортные данные, обязательный-->
 
<!--@DocType - тип документа, обязательный, возможные значения:
 
Р - Паспорт
 
A – Паспорт иностранца
 
С - Внутренний гражданский паспорт
 
F – Документ заменяющий паспорт
 
М - Воинское удостоверение
 
N – Сертификат натурализации(специфичный документ США)
 
T – Док.повторного въезда, паспорт беженца
 
V – Документ для пересечения границы-->
 
<!--@DocNum - номер документа, обязательный-->
 
<!--@CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.), обязательный-->
 
<!--@DocElapsedTime - Срок истечения срока действия паспорта в dd.mm.yyyy (например 31.12.2000), обязательный-->
 
                         <DocumentInfo DocType="P" DocNum="3254253345" CountryCode="AU" DocElapsedTime="29.05.2011"/>
 
<!--информация о визе, необязательная.(Заполняется через SSR DOCO)
 
@Num - номер визы, обязательный
 
@IssueDate - дата(dd.mm.yyyy) выдачи визы, обязательный
 
@IssueCountry - страна выдачи визы, обязательный
 
@IssuePlace - место выдачи визы, обязательный
 
@BirthCountry - страна рождения(IATA код страны), необязательный
 
@BirthCity - город рождения(название), необязательный
 
-->
 
<VisaInfo Num="" IssueDate="" IssueCountry="" IssuePlace="" BirthCountry="" BirthCity=""/>
 
                         <!--Адрес прибытия, необязательный.(Заполняется через SSR DOCA)
 
Но для въезжающих в США(неграждан США) информация является обязательной. Если она не заполняется
 
при оформлении брони, то её всё равно придётся заполнить при посадке на самолёт.
 
@CountryCode - Код страны. Обязательный
 
@State - Штат или область въезда. Обязательный
 
@PostalCode - Почтовый код. Обязательный
 
@City - Город. Обязательный
 
@StreetAddress - Адрес: улица, номер дома, квартиры и тп. Обязательный
 
-->
 
<ArrAddress CountryCode="" State="" PostalCode="" City="" StreetAddress=""/>
 
                         <!--Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры @Smoking и @Location игнорируются и могут быть не указаны. Необязательный-->
 
<!--@SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих, необязательный-->
 
<!--@Location - положение места в ряде, необязательный, возможные значения:
 
W - у окна (Window)
 
M - где-то в середине ряда (Middle)
 
NPW - возле прохода (NearPassengerWay)
 
NS - нет предпочтения (NotSpecified)
 
-->
 
<!--@RowNumber - Номер ряда, строка, необязательный-->
 
<!--@PlaceNumber - Номер места, строка, необязательный-->
 
<!--@SegNumber - Номер сегмента, строка, обязательный-->
 
<PreferedPlace SmokingAllowed="" Location="" RowNumber="" PlaceNumber="" SegNumber=""/>
 
                         <DocStringFormats>
 
<!--Формат паспортной строки, обязательный, возможные значения:
 
DOCS - строка формата DOCS,
 
FOID - строка формата FOID-->
 
<DocStringFormat></DocStringFormat>
 
</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/>
Строка 1207: Строка 694:
 
       </ns1:BookFlightResponse>
 
       </ns1:BookFlightResponse>
 
   </SOAP-ENV:Body>
 
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope></pre>
+
</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 Авиабилеты]]
 
*[[Бронирование]]
 
*[[Бронирование]]
*[[Бронирование через TravellerId]]
 
  
 
[[Категория:Интеграция]]
 
[[Категория:Интеграция]]
 +
[[Категория:Агентский 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>

См. также