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

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
 
(не показано 66 промежуточных версий 13 участников)
Строка 1: Строка 1:
 +
{{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}}
 +
 
== Подключение ==
 
== Подключение ==
  
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.
+
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта, для которого будет производится бронирование. 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">
Строка 19: Строка 21:
 
                   <!--FlightId — Id перелёта в системе Nemo-->
 
                   <!--FlightId — Id перелёта в системе Nemo-->
 
                   <!--Optional:-->
 
                   <!--Optional:-->
                  <ValidatingCompany>?</ValidatingCompany> <!--необязательный-->
+
                  <BookId>?</BookId>
                   <!--ValidatingCompany валидирующий перевозчик (тот кто выписывает билет)-->
+
                   <!--BookId Id заказа в системе Nemo, полученный в ответе на запрос EmptyBook-->
                  <!--Optional:-->
 
                  <BookingCodes>
 
                    <!--Zero or more repetitions:-->
 
                    <BookingCode Code="?" SegNumber="?"/>
 
                    <!--Code — код класса перелёта-->
 
            <!--SegNumber — номер сегмента в перелёте (начинаются с 1)-->
 
                  </BookingCodes>
 
 
                   <!--Optional:-->
 
                   <!--Optional:-->
 
                   <CurrencyCode>?</CurrencyCode> <!--необязательный-->
 
                   <CurrencyCode>?</CurrencyCode> <!--необязательный-->
 
                   <!--CurrencyCode — код валюты-->
 
                   <!--CurrencyCode — код валюты-->
                  <!--Optional:-->
 
                  <TicketTimeLimit>?</TicketTimeLimit> <!--необязательный-->
 
                  <!--TicketTimeLimit — таймлимит на оплату, формат: ГГГГ-ММ-ДДTЧЧ:ММ:СС-->
 
 
                   <!--Optional:-->
 
                   <!--Optional:-->
 
                   <Agency Name="?"> <!--необязательный-->
 
                   <Agency Name="?"> <!--необязательный-->
Строка 61: Строка 53:
 
                     <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 — Блюда щадящей диеты
Строка 137: Строка 128:
 
                           </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 – Документ для пересечения границы
 +
                                                                F – Свидетельство о рождении (только для ГРС Сирена Трэвел, для
 +
                                                                других ГРС рекомендуется использовать тип документа P)-->
 
<!--DocNum — номер документа-->
 
<!--DocNum — номер документа-->
 
<!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
 
<!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
Строка 164: Строка 157:
 
<!--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>
Строка 200: Строка 181:
 
               <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>
Строка 229: Строка 219:
 
                   <QueryPlace xsi:nil="true"/>
 
                   <QueryPlace xsi:nil="true"/>
 
                   <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
 
                   <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
 +
                  <IsPossibleToTicket>?</IsPossibleToTicket>
 +
                  <!--IsPossibleToTicket — возможность провести выписку ПНРа, boolean-->
 
                   <Flight FlightId="?">
 
                   <Flight FlightId="?">
 
                   <!--FlightId — Id перелёта в системе Nemo-->
 
                   <!--FlightId — Id перелёта в системе Nemo-->
Строка 241: Строка 233:
 
                         <!--SegNum — номер сегмента в перелёте-->
 
                         <!--SegNum — номер сегмента в перелёте-->
 
        <!--SegGroupNum – номер плеча перелёта-->
 
        <!--SegGroupNum – номер плеча перелёта-->
 +
                          <SupplierCode>?</SupplierCode>
 +
                          <!--SupplierCode – номер заказа в системе АК-->
 
                           <DepAirp CodeType="IATA">?</DepAirp>
 
                           <DepAirp CodeType="IATA">?</DepAirp>
 
                           <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва  
 
                           <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва  
Строка 266: Строка 260:
 
                           <StopNum>?</StopNum>
 
                           <StopNum>?</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 ClassType="?">
 
                               <BookingCode ClassType="?">
Строка 281: Строка 288:
 
                           <ETicket>?</ETicket>
 
                           <ETicket>?</ETicket>
 
                           <!--ETicket — признак электронного билета, значения: true / false-->
 
                           <!--ETicket — признак электронного билета, значения: true / false-->
 +
                          <isCharter>?</isCharter>
 +
                          <!--isCharter — признак чартерного перелета, значения: true / false-->
 +
                          <BaggageAllowances>
 +
                          <!--BaggageAllowances — информация о багаже-->
 +
                              <BaggageAllowance>
 +
                                <PassengerType>?</PassengerType>
 +
                                <!--PassengerType — тип пассажира, соответствует типу тарифа в PricingInfo -->
 +
                                <Value>?</Value>
 +
                                <!--Value — количество-->
 +
                                <Measurement>?</Measurement>
 +
                                <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место, lb — фунт-->
 +
                              </BaggageAllowance>
 +
                          </BaggageAllowances>
 
                         </Segment>
 
                         </Segment>
 
                     </Segments>
 
                     </Segments>
Строка 286: Строка 306:
 
                     <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
 
                     <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
 
                         <PassengerFare Type="?" Quantity="?">
 
                         <PassengerFare Type="?" Quantity="?">
                         <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
+
                         <!--Type — тип тарифа-->
                        INF — младенцы, INS — младенцы с местом-->
 
 
        <!--Quantity — количество пассажиров данного типа-->
 
        <!--Quantity — количество пассажиров данного типа-->
 +
                          <TravellerRef>
 +
                          <!--TravellerRef — Ссылка на пассажиров, к которым относится данный тариф-->
 +
                              <Ref>?</Ref>
 +
                              <!--Ref — Номера пассажиров, к которым относится данный тариф-->
 +
                          </TravellerRef>
 
                           <BaseFare Currency="?" Amount="?"/>
 
                           <BaseFare Currency="?" Amount="?"/>
 
                           <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
 
                           <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
Строка 304: Строка 328:
 
                               <Tariff Code="?" SegNum="?"/>
 
                               <Tariff Code="?" SegNum="?"/>
 
                               <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
 
                               <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
 +
                                <FareFamilies>
 +
                                  <FullName>?</FullName>
 +
                                  <!--FullName — название тарифа-->
 +
                                </FareFamilies>
 
                           </Tariffs>
 
                           </Tariffs>
 
                           <FareCalc>?</FareCalc>
 
                           <FareCalc>?</FareCalc>
 
                           <!--FareCalc — строка расчёта цены-->
 
                           <!--FareCalc — строка расчёта цены-->
 
                           <LastTicketDateTime>?</LastTicketDateTime>
 
                           <LastTicketDateTime>?</LastTicketDateTime>
                           <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
+
                           <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
 
                         </PassengerFare>
 
                         </PassengerFare>
 
                     </PricingInfo>
 
                     </PricingInfo>
                    <Commission/>
 
 
                     <Charges Currency="?">?</Charges>
 
                     <Charges Currency="?">?</Charges>
 
                     <!--Charges — сборы, Currency — код валюты-->
 
                     <!--Charges — сборы, Currency — код валюты-->
Строка 346: Строка 373:
 
                     <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 — Блюда щадящей диеты
Строка 448: Строка 474:
 
<!--PostalCode — почтовый код-->
 
<!--PostalCode — почтовый код-->
 
<!--CountryCode — код страны-->
 
<!--CountryCode — код страны-->
                        <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
 
                        <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
 
<!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих-->
 
<!--Location — положение места в ряде, возможные значения:
 
W — у окна (Window)
 
M — где-то в середине ряда (Middle)
 
NPW — возле прохода (NearPassengerWay)
 
NS — нет предпочтения (NotSpecified)-->
 
<!--RowNumber — номер ряда-->
 
<!--PlaceNumber — номер места-->
 
<!--SegNumber — номер сегмента-->
 
 
                         <DocStringFormats>
 
                         <DocStringFormats>
 
                           <!--Zero or more repetitions:-->
 
                           <!--Zero or more repetitions:-->
Строка 467: Строка 482:
 
                     </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>
+
               <Error Code="?">Сообщение об ошибке</Error>
                  <Error Code="?">
 
                  <!--Code — код ошибки в системе Nemo-->
 
                    <ServiceErrorMessage>?</ServiceErrorMessage>
 
                    <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика-->
 
                    <Message>?</Message>
 
                    <!--Message — сообщение об ошибке от системы Nemo-->
 
                  </Error>
 
              </Errors>
 
 
             </Response>
 
             </Response>
 
         </ResponseBin>
 
         </ResponseBin>
Строка 505: Строка 524:
 
               <BookFlight>
 
               <BookFlight>
 
                   <FlightId>171430002</FlightId>
 
                   <FlightId>171430002</FlightId>
                  <BookingCodes>
+
                  <Travellers>
                    <!--Zero or more repetitions:-->
 
                    <BookingCode Code="E" SegNumber="2"/>
 
                  </BookingCodes>
 
                  <Travellers>
 
 
                     <!--Zero or more repetitions:-->
 
                     <!--Zero or more repetitions:-->
 
                     <Traveller Type="ADT" IsContact="true" Num="1">
 
                     <Traveller Type="ADT" IsContact="true" Num="1">
Строка 615: Строка 630:
 
                               <Tax CurCode="RUB" TaxCode="QV" Amount="230"/>
 
                               <Tax CurCode="RUB" TaxCode="QV" Amount="230"/>
 
                           </Taxes>
 
                           </Taxes>
                           <Tariffs/>
+
                           <Tariffs>
 +
                            <Tariff Code="EBSRT" SegNum="1">
 +
                              <FareFamilies>
 +
                                <FullName>Бюджет-Эконом</FullName>
 +
                              </FareFamilies>
 +
                            </Tariff>
 +
                            <Tariff Code="EBSRT" SegNum="2">
 +
                              <FareFamilies>
 +
                                <FullName>Бюджет-Эконом</FullName>
 +
                              </FareFamilies>
 +
                            </Tariff>
 +
                          </Tariffs>
 
                           <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 
                           <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 
                           <LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime>
 
                           <LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime>
 
                         </PassengerFare>
 
                         </PassengerFare>
 
                     </PricingInfo>
 
                     </PricingInfo>
                    <Commission Currency="RUB">0</Commission>
 
 
                     <Charges Currency="RUB">140.25</Charges>
 
                     <Charges Currency="RUB">140.25</Charges>
 
                     <TotalPrice Currency="RUB">14165.25</TotalPrice>
 
                     <TotalPrice Currency="RUB">14165.25</TotalPrice>
Строка 653: Строка 678:
 
                     </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/>
Строка 659: Строка 691:
 
               <Errors xsi:nil="true"/>
 
               <Errors xsi:nil="true"/>
 
             </Response>
 
             </Response>
 +
        </ResponseBin>
 +
      </ns1:BookFlightResponse>
 +
  </SOAP-ENV:Body>
 +
</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>
 
         </ResponseBin>
 
       </ns1:BookFlightResponse>
 
       </ns1:BookFlightResponse>
Строка 669: Строка 719:
 
== Общий формат запроса / ответа отмены бронирования ==
 
== Общий формат запроса / ответа отмены бронирования ==
  
После бронирования, если не истек таймлимит можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимита, установленного для заказа система сама аннулирует заказ.
+
После бронирования, если не истек таймлимит, можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимита, установленного для заказа, система сама аннулирует заказ.
  
 
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook
 
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook
Строка 723: Строка 773:
 
               <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>
Строка 735: Строка 785:
 
== См. также ==
 
== См. также ==
  
*[[Агентский АПИ]]
+
*[[Агентский API Авиабилеты]]
 
*[[Бронирование]]
 
*[[Бронирование]]
  
 
[[Категория:Интеграция]]
 
[[Категория:Интеграция]]
 +
[[Категория:Агентский API]]

Текущая версия на 18:44, 6 мая 2019

Внимание! В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по ссылке

Подключение

Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight

Общий формат запроса / ответа бронирования

Запрос

  1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight">
  2    <soapenv:Header/>
  3    <soapenv:Body>
  4       <ver:BookFlight>
  5          <RequestBin>
  6             <Request>
  7                <BookFlight>
  8                   <FlightId>?</FlightId>
  9                   <!--FlightId — Id перелёта в системе Nemo-->
 10                   <!--Optional:-->
 11                    <BookId>?</BookId>
 12                   <!--BookId — Id заказа в системе Nemo, полученный в ответе на запрос EmptyBook-->
 13                   <!--Optional:-->
 14                   <CurrencyCode>?</CurrencyCode> <!--необязательный-->
 15                   <!--CurrencyCode — код валюты-->
 16                   <!--Optional:-->
 17                   <Agency Name="?"> <!--необязательный-->
 18                   <!--Name — название агентства-->
 19                      <Telephone Type="?">
 20                      <!--Type — тип номера, обязательный, возможные значения: 
 21                       M — мобильный, H — домашний, B — рабочий, A — агенство-->
 22                         <!--Optional:-->
 23                         <PhoneNumber>?</PhoneNumber>
 24                         <!--PhoneNumber — номер телефона-->
 25                         <!--Optional:-->
 26                         <CountryAccessCode>?</CountryAccessCode> <!--необязательный-->
 27                         <!--CountryAccessCode — код страны-->
 28                         <!--Optional:-->
 29                         <AreaCityCode>?</AreaCityCode> <!--необязательный-->
 30                         <!--AreaCityCode — код региона/города-->
 31                      </Telephone>
 32                      <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
 33                      <!--City — город-->
 34 		     <!--State — штат-->
 35 		     <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)-->
 36 		     <!--PostalCode — почтовый индекс-->
 37 		     <!--CountryCode — код страны (RU, UA и т.п.)-->
 38 		  </Agency>
 39                   <Travellers>
 40                      <!--Zero or more repetitions:-->
 41                      <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
 42                      <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
 43                       CLD — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
 44 		     <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
 45 		      контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них 
 46                       может быть контактным лицом, по умолчанию false-->
 47 		     <!--Num — порядковый номер пассажира, начинается с 1-->
 48                      <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> <!--необязательный-->
 49                      <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
 50                         <Meal>?</Meal> <!--необязательный-->
 51                         <!--Meal — код типа питания, возможные значения:
 52 						AVML — Азиатская вегетарианская кухня
 53 						BLML — Блюда щадящей диеты
 54 						CHML — Детское питание
 55 						CHPC — Детский холодный завтрак
 56 						СНСС — Детский горячий завтрак
 57 						CHHC — Детский ланч, ветчина и сыр
 58 						PBJS — Детский ланч, ореховое масло
 59 						CHMC — Детский обед макароны с сыром
 60 						DBML — Диабетическое питание
 61 						FPML — Фрукты
 62 						GFML — Питание без клейковины
 63 						HFML — Питание богатое клетчаткой
 64 						HNML — Индусская кухня
 65 						BBML — Питание для младенцев
 66 						KSML — Кошерная кухня
 67 						SMKB — Кошерный завтрак
 68 						SMKL — Кошерный ланч
 69 						SMKD — Кошерный обед
 70 						LPML — Малобелковое питание
 71 						LCML — Низкокалорийное питание
 72 						LFML — Низкохолестериновое питание
 73 						PRML — Низкопуриновое питание
 74 						LSML — Малосоленое питание
 75 						MOML — Мюсли
 76 						NLML — Безмолочные продукты
 77 						ORML — Восточная кухня
 78 						RVML — Сырые овощи
 79 						SFML — Морепродукты
 80 						SPML — Особое питание
 81 						VLML — Вегетарианское, молоко и яйца
 82 						VGML — Строго вегетарианское питание
 83 						VJML — Джайнизское вегетарианское
 84 						VOML — Восточное вегетарианское питание-->
 85                         <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
 86                         <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
 87 			<!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
 88 			<!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)-->
 89                            <FirstName>?</FirstName>
 90                            <!--FirstName — имя пассажира-->
 91                            <LastName>?</LastName>
 92                            <!--LastName — фамилия пассажира-->
 93                            <!--Optional:-->
 94                            <MiddleName>?</MiddleName> <!--необязательный-->
 95                            <!--MiddleName — отчество пассажира-->
 96                         </PersonalInfo>
 97                         <LoyaltyCard OpCode="?" Number="?"/> <!--необязательный-->
 98                         <!--OpCode — код авиакомпании-->
 99 			<!--Number — номер карточки-->
100                         <ContactInfo> <!--необязательный-->
101                            <!--Optional:-->
102                            <EmailID>?</EmailID>
103                            <!--EmailID — контактный email-->
104                            <!--Optional:-->
105                            <Telephone Type="?">
106                            <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий-->
107                               <!--Optional:-->
108                               <PhoneNumber>?</PhoneNumber>
109                               <!--PhoneNumber — номер телефона-->
110                               <!--Optional:-->
111                               <CountryAccessCode>?</CountryAccessCode>
112                               <!--CountryAccessCode — код страны-->
113                               <!--Optional:-->
114                               <AreaCityCode>?</AreaCityCode>
115                               <!--AreaCityCode — код региона/города-->
116                            </Telephone>
117                         </ContactInfo>
118                         <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> <!--необязательный-->
119                         <!--DocType — тип документа, возможные значения:
120 								P — Паспорт
121 								A – Паспорт иностранца
122 								C — Внутренний гражданский паспорт
123 								F – Документ заменяющий паспорт
124 								M — Воинское удостоверение
125 								N – Сертификат натурализации(специфичный документ США)
126 								T – Док.повторного въезда, паспорт беженца
127 								V – Документ для пересечения границы
128                                                                 F – Свидетельство о рождении (только для ГРС Сирена Трэвел, для 
129                                                                  других ГРС рекомендуется использовать тип документа P)-->
130 			<!--DocNum — номер документа-->
131 			<!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
132 			<!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
133                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/> 
134                         <!--необязательный-->
135                         <!--Num — номер визы-->
136                         <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы-->
137                         <!--IssueCountry — страна выдачи визы-->
138                         <!--IssuePlace — место выдачи визы-->
139                         <!--BirthCountry — страна рождения(IATA код страны)-->
140                         <!--BirthCity — город рождения(название)-->
141                         <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
142                         <!--City — город-->
143 			<!--State — штат или область въезда-->
144 			<!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
145 			<!--PostalCode — почтовый код-->
146 			<!--CountryCode — код страны-->
147                        </Traveller>
148                   </Travellers>
149                   <!--Optional:-->
150                   <DeviceId> <!--необязательный-->
151                      <Type>?</Type>
152                      <!--Type — Тип мобильного устройства (apple/android)-->
153                      <Token>?</Token>
154                      <!--Token — Токен мобильного устройства-->
155                   </DeviceId>
156                   <Marker>?</Marker>
157                   <!--Marker — Маркер пользователя-->
158                 </BookFlight>
159             </Request>
160             <Source>
161                <ClientId>?</ClientId>
162                <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе 
163                 "Администрирование" ? "Веб-служба. Авторизация".-->
164                <APIKey>?</APIKey>
165                <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе 
166                 "Администрирование" ? "Веб-служба. Авторизация".-->
167                <Language>?</Language>
168                <!--Language — язык-->
169                <Currency>?</Currency>
170                <!-- CUrrency — валюта-->
171                <EndUserData>
172                   <!--Блок с данными о конечном пользователе, необязательный, но необходим при при использовании запросов поиска и бронирования для поставщика TravelFusion-->
173                   <EndUserIP>123.123.123.123</EndUserIP>
174                   <!--IP адрес пользователя-->
175                   <EndUserBrowserAgent>firefox</EndUserBrowserAgent>
176                   <!--Браузер пользователя-->
177                   <RequestOrigin>Russia-nemo.travel</RequestOrigin>
178                   <!--Страна и домен, с которого пользователь совершает поиск/бронирование-->
179                </EndUserData>         
180             </Source>
181          </RequestBin>
182       </ver:BookFlight>
183    </soapenv:Body>
184 </soapenv:Envelope>

Ответ

  1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2    <SOAP-ENV:Body>
  3       <ns1:BookFlightResponse>
  4          <ResponseBin>
  5             <Response>
  6                <BookFlight ID="?" Status="?" Code="?">
  7                <!--ID — Id брони в системе Nemo, целое число, обязательный-->
  8 	       <!--Status — индикатор состояния брони, возможные значения:
  9 						booked — забронировано,
 10 						canceled — бронь отменена,
 11  						ticket — выписана
 12 						UNDEFINED — статус не определён-->
 13 	       <!--Code — код брони в системе поставщика-->
 14                   <QueryPlace xsi:nil="true"/>
 15                   <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
 16                   <IsPossibleToTicket>?</IsPossibleToTicket>
 17                   <!--IsPossibleToTicket — возможность провести выписку ПНРа, boolean-->
 18                   <Flight FlightId="?">
 19                   <!--FlightId — Id перелёта в системе Nemo-->
 20                      <WebService>?</WebService>
 21                      <!--WebService — поставщик перелёта-->
 22                      <ValCompany>?</ValCompany>
 23                      <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
 24                      <URL>?</URL>
 25                      <!--URL — ссылка на бронирование конкретного перелета-->
 26                      <Segments>
 27                         <Segment SegNum="?" SegGroupNum="?">
 28                         <!--SegNum — номер сегмента в перелёте-->
 29 		        <!--SegGroupNum – номер плеча перелёта-->
 30                            <SupplierCode>?</SupplierCode>
 31                            <!--SupplierCode – номер заказа в системе АК--> 
 32                            <DepAirp CodeType="IATA">?</DepAirp>
 33                            <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва 
 34                             или SVO — Шереметьево-->
 35                            <DepTerminal>?</DepTerminal>
 36                            <!--DepTerminal — терминал пункта отправления, если пустое значение, 
 37                             то в аэропорту всего 1 терминал-->
 38                            <ArrAirp CodeType="IATA">?</ArrAirp>
 39                            <!--ArrAirp — аэропорт прибытия-->
 40                            <ArrTerminal>?</ArrTerminal>
 41                            <!--ArrTerminal — терминал пункта прибытия, если пустое значение, 
 42                             то в аэропорту всего 1 терминал-->
 43                            <OpAirline>?</OpAirline>
 44                            <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
 45                            <MarkAirline>?</MarkAirline>
 46                            <!--MarkAirline — авиакомпания, продающая перелёт-->
 47                            <FlightNumber>?</FlightNumber>
 48                            <!--FlightNumber — номер рейса-->
 49                            <AircraftType>?</AircraftType>
 50                            <!--AircraftType — тип воздушного судна, код-->
 51                            <DepDateTime>?</DepDateTime>
 52                            <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 53                            <ArrDateTime>?</ArrDateTime>
 54                            <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 55                            <StopNum>?</StopNum>
 56                            <!--StopNum — количество остановок-->
 57                            <StopPoints>
 58                            <!--StopPoints — информация о технических остановках, если они есть-->
 59                               <StopPoint>
 60                                  <AirportCode>?</AirportCode>
 61                                  <!--AirportCode — код аэропорта остановки, трех символьный iata код-->
 62                                  <UTC>?</UTC>
 63                                  <!--UTC — сдвиг часового пояса аэропорта-->
 64                                  <ArrDateTime>?</ArrDateTime>
 65                                  <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 66                                  <DepDateTime>?</DepDateTime>
 67                                  <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 68                               </StopPoint>
 69                            </StopPoints>
 70                            <BookingCodes>
 71                               <BookingCode ClassType="?">
 72                               <!--ClassType — класс перелета, например: economy-->
 73                                  <BookingCode>?</BookingCode>
 74                                  <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс 
 75                                   может записываться разными литерами, например: L-->
 76                               </BookingCode>
 77                            </BookingCodes>
 78                            <FlightTime>?</FlightTime>
 79                            <!--FlightTime — время перелёта в минутах-->
 80                            <TimeZone Departure="?" Arrival="?"/>
 81                            <!--Departure временная зона аэропорта отправления-->
 82 			   <!--Arrival — временная зона аэропорта прибытия-->
 83                            <ETicket>?</ETicket>
 84                            <!--ETicket — признак электронного билета, значения: true / false-->
 85                            <isCharter>?</isCharter>
 86                            <!--isCharter — признак чартерного перелета, значения: true / false-->
 87                            <BaggageAllowances>
 88                            <!--BaggageAllowances — информация о багаже-->
 89                               <BaggageAllowance>
 90                                  <PassengerType>?</PassengerType>
 91                                  <!--PassengerType — тип пассажира, соответствует типу тарифа в PricingInfo -->
 92                                  <Value>?</Value>
 93                                  <!--Value — количество-->
 94                                  <Measurement>?</Measurement>
 95                                  <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место, lb — фунт-->
 96                               </BaggageAllowance>
 97                            </BaggageAllowances>
 98                         </Segment>
 99                      </Segments>
100                      <PricingInfo Refundable="?">
101                      <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
102                         <PassengerFare Type="?" Quantity="?">
103                         <!--Type — тип тарифа-->
104 		        <!--Quantity — количество пассажиров данного типа-->
105                            <TravellerRef>
106                            <!--TravellerRef — Ссылка на пассажиров, к которым относится данный тариф-->
107                               <Ref>?</Ref>
108                               <!--Ref — Номера пассажиров, к которым относится данный тариф-->
109                            </TravellerRef>
110                            <BaseFare Currency="?" Amount="?"/>
111                            <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
112                            <EquiveFare Currency="?" Amount="?"/>
113                            <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи). 
114                             Currency — код валюты, Amount — значение цены-->
115                            <TotalFare Currency="?" Amount="?"/>
116                            <!--TotalFare — суммарная стоимость, в эквивалентной валюте. 
117                             Currency — код валюты, Amount — значение цены-->
118                            <Taxes>
119                               <Tax CurCode="?" TaxCode="?" Amount="?"/>
120                               <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
121                            </Taxes>
122                            <Tariffs>
123                               <Tariff Code="?" SegNum="?"/>
124                               <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
125                                 <FareFamilies>
126                                   <FullName>?</FullName>
127                                   <!--FullName — название тарифа-->
128                                 </FareFamilies>
129                            </Tariffs>
130                            <FareCalc>?</FareCalc>
131                            <!--FareCalc — строка расчёта цены-->
132                            <LastTicketDateTime>?</LastTicketDateTime>
133                            <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
134                         </PassengerFare>
135                      </PricingInfo>
136                      <Charges Currency="?">?</Charges>
137                      <!--Charges — сборы, Currency — код валюты-->
138                      <TotalPrice Currency="?">?</TotalPrice>
139                      <!--TotalPrice — итоговая цена, Currency — код валюты-->
140                   </Flight>
141                   <Agency Name="?"> 
142                   <!--Name — название агентства-->
143                      <Telephone Type="?">
144                      <!--Type — тип номера, обязательный, возможные значения: 
145                       M — мобильный, H — домашний, B — рабочий, A — агенство-->
146                         <!--Optional:-->
147                         <PhoneNumber>?</PhoneNumber>
148                         <!--PhoneNumber — номер телефона-->
149                         <!--Optional:-->
150                         <CountryAccessCode>?</CountryAccessCode> 
151                         <!--CountryAccessCode — код страны-->
152                         <!--Optional:-->
153                         <AreaCityCode>?</AreaCityCode> 
154                         <!--AreaCityCode — код региона/города-->
155                      </Telephone>
156                      <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> 
157                      <!--City — город-->
158 		     <!--State — штат-->
159 		     <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)-->
160 		     <!--PostalCode — почтовый индекс-->
161 		     <!--CountryCode — код страны (RU, UA и т.п.)-->
162 		  </Agency>
163                   <ItinReceipts Encoding="?" Format="?">
164                   <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат-->
165                   <FareStored xsi:nil="true"/>
166                   <Travellers>
167                      <!--Zero or more repetitions:-->
168                      <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
169                      <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
170                       CLD — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
171 		     <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
172 		      контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них 
173                       может быть контактным лицом, по умолчанию false-->
174 		     <!--Num — порядковый номер пассажира, начинается с 1-->
175                      <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> 
176                     <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
177                         <Meal>?</Meal> 
178                         <!--Meal — код типа питания, возможные значения:
179 						AVML — Азиатская вегетарианская кухня
180 						BLML — Блюда щадящей диеты
181 						CHML — Детское питание
182 						CHPC — Детский холодный завтрак
183 						СНСС — Детский горячий завтрак
184  						CHHC — Детский ланч, ветчина и сыр
185 						PBJS — Детский ланч, ореховое масло
186 						CHMC — Детский обед макароны с сыром
187 						DBML — Диабетическое питание
188 						FPML — Фрукты
189 						GFML — Питание без клейковины
190 						HFML — Питание богатое клетчаткой
191 						HNML — Индусская кухня
192  						BBML — Питание для младенцев
193 						KSML — Кошерная кухня
194 						SMKB — Кошерный завтрак
195 						SMKL — Кошерный ланч
196 						SMKD — Кошерный обед
197  						LPML — Малобелковое питание
198 						LCML — Низкокалорийное питание
199 						LFML — Низкохолестериновое питание
200 						PRML — Низкопуриновое питание
201 						LSML — Малосоленое питание
202 						MOML — Мюсли
203 						NLML — Безмолочные продукты
204  						ORML — Восточная кухня
205 						RVML — Сырые овощи
206 						SFML — Морепродукты
207 						SPML — Особое питание
208 						VLML — Вегетарианское, молоко и яйца
209 						VGML — Строго вегетарианское питание
210 						VJML — Джайнизское вегетарианское
211  						VOML — Восточное вегетарианское питание-->
212                         <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
213                         <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
214 			<!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
215 			<!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)-->
216                            <FirstName>?</FirstName>
217                            <!--FirstName — имя пассажира-->
218                            <LastName>?</LastName>
219                            <!--LastName — фамилия пассажира-->
220                            <!--Optional:-->
221                            <MiddleName>?</MiddleName> 
222                            <!--MiddleName — отчество пассажира-->
223                         </PersonalInfo>
224                         <LoyaltyCard OpCode="?" Number="?"/> 
225                         <!--OpCode — код авиакомпании-->
226 			<!--Number — номер карточки-->
227                         <ContactInfo> 
228                            <!--Optional:-->
229                            <EmailID>?</EmailID>
230                            <!--EmailID — контактный email-->
231                            <!--Optional:-->
232                            <Telephone Type="?">
233                            <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий-->
234                               <!--Optional:-->
235                               <PhoneNumber>?</PhoneNumber>
236                               <!--PhoneNumber — номер телефона-->
237                               <!--Optional:-->
238                               <CountryAccessCode>?</CountryAccessCode>
239                               <!--CountryAccessCode — код страны-->
240                               <!--Optional:-->
241                               <AreaCityCode>?</AreaCityCode>
242                               <!--AreaCityCode — код региона/города-->
243                            </Telephone>
244                         </ContactInfo>
245                         <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
246                         <!--DocType — тип документа, возможные значения:
247 								Р — Паспорт
248 								A – Паспорт иностранца
249 								С — Внутренний гражданский паспорт
250 								F – Документ заменяющий паспорт
251 								М — Воинское удостоверение
252 								N – Сертификат натурализации(специфичный документ США)
253 								T – Док.повторного въезда, паспорт беженца
254   								V – Документ для пересечения границы-->
255 			<!--DocNum — номер документа-->
256 			<!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
257 			<!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
258                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/> 
259                         <!--Num — номер визы-->
260                         <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы-->
261                         <!--IssueCountry — страна выдачи визы-->
262                         <!--IssuePlace — место выдачи визы-->
263                         <!--BirthCountry — страна рождения(IATA код страны)-->
264                         <!--BirthCity — город рождения(название)-->
265                         <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> 
266                         <!--City — город-->
267 			<!--State — штат или область въезда-->
268 			<!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
269 			<!--PostalCode — почтовый код-->
270 			<!--CountryCode — код страны-->
271                         <DocStringFormats>
272                            <!--Zero or more repetitions:-->
273                            <DocStringFormat>?</DocStringFormat>
274                            <!--DocStringFormat — формат паспортной строки, возможные значения: 
275                             DOCS — строка формата DOCS, FOID — строка формата FOID-->
276                         </DocStringFormats>
277                      </Traveller>
278                   </Travellers>
279                   <AutoCancelDate>?</AutoCancelDate>
280                   <!--AutoCancelDate — дата и время таймлимита автоаннуляции в формате ГГГГ-MM-ДДTЧЧ:ММ:СС определяемые по настройкам агентства-->
281                   <TimeLimits>
282                     <TicketingTimeLimit>?</TicketingTimeLimit>
283                     <!--TicketingTimeLimit — Таймлимит на выписку в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
284                     <PriceTimeLimit>?</PriceTimeLimit>
285                     <!--PriceTimeLimit — Таймлимит цены из ГРС в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
286                     <AdvancedPurchaseTimeLimit>?</AdvancedPurchaseTimeLimit>
287                     <!--AdvancedPurchaseTimeLimit — Таймлимит цены из тарифных правил в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
288                     <AgencyTimeLimit>?</AgencyTimeLimit>
289                     <!--AgencyTimeLimit - Таймлимит по настройкам в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
290                   </TimeLimits>
291                </BookFlight>
292                <Requisites/>
293                <RequestType xsi:nil="true"/>
294                <UserID xsi:nil="true"/>
295                <Error Code="?">Сообщение об ошибке</Error>
296             </Response>
297          </ResponseBin>
298       </ns1:BookFlightResponse>
299    </SOAP-ENV:Body>
300 </SOAP-ENV:Envelope>

Пример использования

Пример одностороннего перелета Москва — Мадрид.

Запрос

 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight">
 2    <soapenv:Header/>
 3    <soapenv:Body>
 4       <ver:BookFlight>
 5          <RequestBin>
 6             <Request>
 7                <BookFlight>
 8                   <FlightId>171430002</FlightId>
 9                    <Travellers>
10                      <!--Zero or more repetitions:-->
11                      <Traveller Type="ADT" IsContact="true" Num="1">
12                         <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
13                            <FirstName>Petr</FirstName>
14                            <LastName>Ivanov</LastName>
15                         </PersonalInfo>
16                         <ContactInfo>
17                            <!--Optional:-->
18                            <EmailID>testmail@mail.ru</EmailID>
19                            <!--Optional:-->
20                            <Telephone Type="M">
21                               <!--Optional:-->
22                               <PhoneNumber>79051234567</PhoneNumber>
23                            </Telephone>
24                         </ContactInfo>
25                         <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
26                      </Traveller>
27                   </Travellers>
28                </BookFlight>
29             </Request>
30             <Source>
31                <ClientId>---</ClientId>
32                <APIKey>---</APIKey>
33                <Language>RU</Language>
34                <Currency>RUB</Currency>
35             </Source>
36          </RequestBin>
37       </ver:BookFlight>
38    </soapenv:Body>
39 </soapenv:Envelope>

Ответ

  1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2    <SOAP-ENV:Body>
  3       <ns1:BookFlightResponse>
  4          <ResponseBin>
  5             <Response>
  6                <BookFlight ID="262872" Status="booked" Code="LQHZWU">
  7                   <QueryPlace xsi:nil="true"/>
  8                   <Flight FlightId="171430002">
  9                      <WebService>SABRE</WebService>
 10                      <ValCompany>SU</ValCompany>
 11                      <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D14290%26flight%3D171430002</URL>
 12                      <Segments>
 13                         <Segment SegNum="1" SegGroupNum="0">
 14                            <DepAirp CodeType="IATA">SVO</DepAirp>
 15                            <DepTerminal>D</DepTerminal>
 16                            <ArrAirp CodeType="IATA">BCN</ArrAirp>
 17                            <ArrTerminal>1</ArrTerminal>
 18                            <OpAirline>SU</OpAirline>
 19                            <MarkAirline>SU</MarkAirline>
 20                            <FlightNumber>2512</FlightNumber>
 21                            <AircraftType>321</AircraftType>
 22                            <DepDateTime>2014-03-20T20:40:00</DepDateTime>
 23                            <ArrDateTime>2014-03-20T22:20:00</ArrDateTime>
 24                            <StopNum>0</StopNum>
 25                            <BookingCodes>
 26                               <BookingCode ClassType="economy">
 27                                  <BookingCode>E</BookingCode>
 28                               </BookingCode>
 29                            </BookingCodes>
 30                            <FlightTime>280</FlightTime>
 31                            <TimeZone Departure="4" Arrival="1"/>
 32                            <ETicket>true</ETicket>
 33                         </Segment>
 34                         <Segment SegNum="2" SegGroupNum="0">
 35                            <DepAirp CodeType="IATA">BCN</DepAirp>
 36                            <DepTerminal>1</DepTerminal>
 37                            <ArrAirp CodeType="IATA">MAD</ArrAirp>
 38                            <ArrTerminal>2</ArrTerminal>
 39                            <OpAirline>UX</OpAirline>
 40                            <MarkAirline>SU</MarkAirline>
 41                            <FlightNumber>3403</FlightNumber>
 42                            <AircraftType>738</AircraftType>
 43                            <DepDateTime>2014-03-21T12:05:00</DepDateTime>
 44                            <ArrDateTime>2014-03-21T13:25:00</ArrDateTime>
 45                            <StopNum>0</StopNum>
 46                            <BookingCodes>
 47                               <BookingCode ClassType="economy">
 48                                  <BookingCode>E</BookingCode>
 49                               </BookingCode>
 50                            </BookingCodes>
 51                            <FlightTime>80</FlightTime>
 52                            <TimeZone Departure="1" Arrival="1"/>
 53                            <ETicket>true</ETicket>
 54                         </Segment>
 55                      </Segments>
 56                      <PricingInfo Refundable="false">
 57                         <PassengerFare Type="ADT" Quantity="1">
 58                            <BaseFare Currency="EUR" Amount="165"/>
 59                            <EquiveFare Currency="RUB" Amount="8335"/>
 60                            <TotalFare Currency="RUB" Amount="14025"/>
 61                            <Taxes>
 62                               <Tax CurCode="RUB" TaxCode="YQF" Amount="4242"/>
 63                               <Tax CurCode="RUB" TaxCode="YRI" Amount="374"/>
 64                               <Tax CurCode="RUB" TaxCode="JD" Amount="844"/>
 65                               <Tax CurCode="RUB" TaxCode="QV" Amount="230"/>
 66                            </Taxes>
 67                            <Tariffs>
 68                              <Tariff Code="EBSRT" SegNum="1">
 69                                <FareFamilies>
 70                                  <FullName>Бюджет-Эконом</FullName>
 71                                </FareFamilies>
 72                              </Tariff>
 73                              <Tariff Code="EBSRT" SegNum="2">
 74                                <FareFamilies>
 75                                 <FullName>Бюджет-Эконом</FullName>
 76                                </FareFamilies>
 77                              </Tariff>
 78                            </Tariffs>
 79                            <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 80                            <LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime>
 81                         </PassengerFare>
 82                      </PricingInfo>
 83                      <Charges Currency="RUB">140.25</Charges>
 84                      <TotalPrice Currency="RUB">14165.25</TotalPrice>
 85                   </Flight>
 86                   <Agency/>
 87                   <ItinReceipts xsi:nil="true"/>
 88                   <FareStored xsi:nil="true"/>
 89                   <Travellers>
 90                      <Traveller Type="ADT" IsContact="true" Num="1">
 91                         <Meal/>
 92                         <Ticket/>
 93                         <Seats/>
 94                         <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
 95                            <FirstName>PETR</FirstName>
 96                            <LastName>IVANOV</LastName>
 97                            <MiddleName/>
 98                         </PersonalInfo>
 99                         <LoyaltyCard/>
100                         <ContactInfo>
101                            <EmailID>TESTMAIL@MAIL.ru</EmailID>
102                            <Telephone Type="M">
103                               <PhoneNumber>79051234567</PhoneNumber>
104                               <CountryAccessCode/>
105                               <AreaCityCode/>
106                            </Telephone>
107                         </ContactInfo>
108                         <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
109                         <VisaInfo/>
110                         <ArrAddress/>
111                         <PreferedPlace/>
112                         <DocStringFormats/>
113                      </Traveller>
114                   </Travellers>
115                   <AutoCancelDate>2014-03-14T09:45:00</AutoCancelDate>
116                   <TimeLimits>
117                     <TicketingTimeLimit>2014-03-14T12:45:00</TicketingTimeLimit>
118                     <PriceTimeLimit>2014-03-14T10:45:00</PriceTimeLimit>
119                     <AdvancedPurchaseTimeLimit>2014-03-14T12:40:00</AdvancedPurchaseTimeLimit>
120                     <AgencyTimeLimit>2014-03-14T09:45:00</AgencyTimeLimit>
121                   </TimeLimits>
122                </BookFlight>
123                <Requisites/>
124                <RequestType xsi:nil="true"/>
125                <UserID xsi:nil="true"/>
126                <Errors xsi:nil="true"/>
127             </Response>
128          </ResponseBin>
129       </ns1:BookFlightResponse>
130    </SOAP-ENV:Body>
131 </SOAP-ENV:Envelope>

Ответ с ошибкой

1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://release.mlsd.ru/nemoflights/?version%3D1.0%26for%3DBookFlight">
2    <SOAP-ENV:Body>
3       <ns1:BookFlightResponse>
4          <ResponseBin>
5             <Error Code="E001936">Invalid Flight ID</Error>
6          </ResponseBin>
7       </ns1:BookFlightResponse>
8    </SOAP-ENV:Body>
9 </SOAP-ENV:Envelope>

Общий формат запроса / ответа отмены бронирования

После бронирования, если не истек таймлимит, можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимита, установленного для заказа, система сама аннулирует заказ.

WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook

Запрос

 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook">
 2    <soapenv:Header/>
 3    <soapenv:Body>
 4       <ver:CancelBook>
 5          <RequestBin>
 6             <Request>
 7                <CancelBook BookID="?"/>
 8                <!--BookID — Id брони в системе Nemo, целое число-->
 9             </Request>
10             <Source>
11                <ClientId>?</ClientId>
12                <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе 
13                 "Администрирование" ? "Веб-служба. Авторизация".-->
14                <APIKey>?</APIKey>
15                <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе 
16                 "Администрирование" ? "Веб-служба. Авторизация".-->
17                <Language>?</Language>
18                <!--Language — язык-->
19                <Currency>?</Currency>
20                <!-- CUrrency — валюта-->
21             </Source>
22          </RequestBin>
23       </ver:CancelBook>
24    </soapenv:Body>
25 </soapenv:Envelope>

Ответ

 1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 2    <SOAP-ENV:Body>
 3       <ns1:CancelBookResponse>
 4          <ResponseBin>
 5             <Response>
 6                <CancelBook BookID="?">
 7                <!--BookID — Id брони в системе Nemo, целое число-->
 8                   <Result Success="?"/>
 9                   <!--Success — результат отмены брони, true или false-->
10                </CancelBook>
11                <Requisites/>
12                <RequestType xsi:nil="true"/>
13                <UserID xsi:nil="true"/>
14                <Error Code="?">Сообщение об ошибке</Error>
15             </Response>
16          </ResponseBin>
17       </ns1:CancelBookResponse>
18    </SOAP-ENV:Body>
19 </SOAP-ENV:Envelope>

См. также