Интеграция со сторонними системами АПИ: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
м (API Авиабилетов)
 
(не показано 111 промежуточных версий 4 участников)
Строка 1: Строка 1:
==API Поиска авиабилетов==
+
==API Авиабилетов==
=== Подключение ===
 
  
 +
Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.
 +
 +
=== API Поиска авиабилетов ===
 
Это сервис внутри Nemo, который позволяет получить результаты поиска.
 
Это сервис внутри Nemo, который позволяет получить результаты поиска.
  
 
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''.
 
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''.
  
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
+
Подробнее можно узнать в специальной статье [[Веб-служба поиска авиабилетов]]
  
WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights
+
=== API Бронирования авиабилетов ===
 +
Сервис позволяет забронировать/войдировать авиабилет с использованием API, описание подключения, запроса, ответов находится в этой статье [[Веб-служба бронирования]]
  
=== Общий формат запроса / ответа поиска ===
+
=== API Выписки авиабилетов ===
  
<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%3DSearchFlights">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
      <ver:search>
 
        <RequestBin>
 
            <Request>
 
              <SearchFlights LinkOnly="?">
 
              <!--LinkOnly — Позволяет управлять выдачей результатов. true — вернуть только ссылку на результаты поиска,
 
                без перелётов (занимает меньше времени), false — полная выдача, ссылки и перелёты.-->
 
                  <ODPairs Type="?" Direct="?" AroundDates="?">
 
                  <!--Type — тип перелёта, возможные значения: OW — туда, RT — туда-обратно, CR — сложный маршрут. Для перелета
 
                  туда-обратно или сложного маршрута необходимо добавить еще один или несколько тэгов ODPair, примеры далее-->
 
                  <!--Direct — искать только прямые перелёты, возможные значения: true/false-->
 
                  <!--AroundDates — поиск по окружным датам, количество дней +/- от даты заезда/возвращения, значения: 0, 1, 3.
 
                  Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT)-->
 
                    <!--Zero or more repetitions:-->
 
                    <ODPair>
 
                        <DepDate>?</DepDate>
 
                        <!--DepDate — дата вылета, в формате ГГГГ-MM-ДД-->
 
                        <DepAirp CodeType="IATA">?</DepAirp>
 
                        <!--DepAirp — аэропорт вылета, IATA код-->
 
                        <ArrAirp CodeType="IATA">?</ArrAirp>
 
                        <!--ArrAirp — аэропорт прилёта, IATA код-->
 
                    </ODPair>
 
                  </ODPairs>
 
                  <Travellers>
 
                    <!--Zero or more repetitions:-->
 
                    <Traveller Type="?" Count="?"/>
 
                    <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
 
                      INF — младенцы, INS — младенцы с местом-->
 
            <!--Count — количество пассажиров-->
 
                  </Travellers>
 
                  <Restrictions>
 
                    <ClassPref>?</ClassPref> <!--необязательный-->
 
                    <!--ClassPref — предпочитаемый класс поиска, возможные значения: economy, business, first.
 
                      Если не заполнять, то будет произведен поиск эконом класса-->
 
                    <OnlyAvail>?</OnlyAvail> <!--необязательный-->
 
                    <!--OnlyAvail — искать только доступные, возможные значения: true/false-->
 
                    <AirVPrefs>
 
                        <!--Zero or more repetitions:-->
 
                        <AirVPref Code="?" Include="?" Type="IATA"/> <!--необязательный-->
 
                        <!--Code — код авиакомпании, SU, FV и т.п.-->
 
        <!--Include — включить или исключить авиакомпанию из результатов: true — включить, false — исключить-->
 
            </AirVPrefs>
 
                    <IncludePrivateFare>?</IncludePrivateFare> <!--необязательный-->
 
                    <!--IncludePrivateFare — искать цены для агентства, если true — то включаем приватные, false — публичные-->
 
                    <CurrencyCode>?</CurrencyCode> <!--необязательный-->
 
                    <!--CurrencyCode — код валюты, например: RUB, EUR-->
 
                  </Restrictions>
 
              </SearchFlights>
 
            </Request>
 
            <Source>
 
              <ClientId>?</ClientId>
 
              <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
 
                "Администрирование" ? "Веб-служба. Авторизация".-->
 
              <APIKey>?</APIKey>
 
              <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
 
                "Администрирование" ? "Веб-служба. Авторизация".-->
 
              <Language>?</Language>
 
              <!--Language — язык, например: RU-->
 
              <Currency>?</Currency>
 
              <!-- Currency — валюта, например: RUB, EUR-->
 
              <ShowNames>?</ShowNames>
 
              <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент.  -->
 
            </Source>
 
        </RequestBin>
 
      </ver:search>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
=== API Оплаты ===
  
===== Ответ =====
+
Сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. [[Агентские АПИ оплаты]]
<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%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <SOAP-ENV:Body>
 
      <ns1:searchResponse>
 
        <ResponseBin>
 
            <Response>
 
              <SearchFlights>
 
                  <Flights SearchId="?" ResultURL="?">
 
                  <!--SearchId — номер процесса поиска в Nemo-->
 
                  <!--ResultURL — ссылка на страницу просмотра результатов на сайте агентства-->
 
                    <Flight FlightId="?">
 
                    <!--FlightId — Id перелёта в системе Nemo-->
 
                        <WebService>?</WebService>
 
                        <!--WebService — поставщик перелёта-->
 
                        <ValCompany>?</ValCompany>
 
                        <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
 
                        <URL>?</URL>
 
                        <!--URL — ссылка на бронирование конкретного перелета-->
 
                        <Segments>
 
                          <Segment SegNum="?" SegGroupNum="?">
 
                          <!--SegNum — номер сегмента в перелёте-->
 
          <!--SegGroupNum – номер плеча перелёта-->
 
                              <DepAirp CodeType="IATA" Name="?">?</DepAirp>
 
                              <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево. Name - название аэропорта отправления-->
 
                              <DepTerminal>?</DepTerminal>
 
                              <!--DepTerminal — терминал пункта отправления, если пустое значение,
 
                              то в аэропорту всего 1 терминал-->
 
                              <ArrAirp CodeType="IATA" Name="?">?</ArrAirp>
 
                              <!--ArrAirp — аэропорт прибытия. Name - название аэропорта прибытия-->
 
                              <ArrTerminal>?</ArrTerminal>
 
                              <!--ArrTerminal — терминал пункта прибытия, если пустое значение,
 
                              то в аэропорту всего 1 терминал-->
 
                              <OpAirline>?</OpAirline>
 
                              <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
 
                              <OpAirlineName>?</OpAirlineName>
 
                              <!--OpAirlineName — название авиакомпании перевозчика, например: Аэрофлот - Российские авиалинии -->
 
                              <MarkAirline>?</MarkAirline>
 
                              <!--MarkAirline — авиакомпания, продающая перелёт-->
 
                              <MarkAirlineName>?</MarkAirlineName>
 
                              <!--MarkAirlineName — название авиакомпании, продающей перелёт-->
 
                              <FlightNumber>?</FlightNumber>
 
                              <!--FlightNumber — номер рейса-->
 
                              <AircraftName>?</AircraftName>
 
                              <!--AircraftName — название воздушного судна. Например: Airbus 320-->
 
                              <AircraftType>?</AircraftType>
 
                              <!--AircraftType — тип воздушного судна, код-->
 
                              <DepDateTime>?</DepDateTime>
 
                              <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 
                              <ArrDateTime>?</ArrDateTime>
 
                              <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 
                              <StopNum>?</StopNum>
 
                              <!--StopNum — количество остановок-->
 
                              <BookingCodes>
 
                                <BookingCode ClassType="?">
 
                                <!--ClassType — класс перелета, например: economy-->
 
                                    <BookingCode>?</BookingCode>
 
                                    <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
 
                                    может записываться разными литерами, например: L-->
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>?</FlightTime>
 
                              <!--FlightTime — время перелёта в минутах-->
 
                              <TimeZone Departure="?" Arrival="?"/>
 
                              <!--Departure временная зона аэропорта отправления-->
 
      <!--Arrival — временная зона аэропорта прибытия-->
 
                              <ETicket>?</ETicket>
 
                              <!--ETicket — признак электронного билета, значения: true / false-->
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="?">
 
                        <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
 
                          <PassengerFare Type="?" Quantity="?">
 
                          <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
 
                            INF — младенцы, INS — младенцы с местом-->
 
          <!--Quantity — количество пассажиров данного типа-->
 
                              <BaseFare Currency="?" Amount="?"/>
 
                              <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
 
                              <EquiveFare Currency="?" Amount="?"/>
 
                              <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
 
                              Currency — код валюты, Amount — значение цены-->
 
                              <TotalFare Currency="?" Amount="?"/>
 
                              <!--TotalFare — суммарная стоимость, в эквивалентной валюте.
 
                              Currency — код валюты, Amount — значение цены-->
 
                              <Taxes>
 
                                <Tax CurCode="?" TaxCode="?" Amount="?"/>
 
                                <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
 
                              </Taxes>
 
                              <Tariffs>
 
                                <Tariff Code="?" SegNum="?"/>
 
                                <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
 
                              </Tariffs>
 
                              <FareCalc>?</FareCalc>
 
                              <!--FareCalc — строка расчёта цены-->
 
                              <LastTicketDateTime>?</LastTicketDateTime>
 
                              <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="?">?</Charges>
 
                        <!--Charges — сборы, Currency — код валюты-->
 
                        <TotalPrice Currency="?">?</TotalPrice>
 
                        <!--TotalPrice — итоговая цена, Currency — код валюты-->
 
                    </Flight>
 
                    <Flight>...</Flight>
 
                    ....................
 
                    <Flight>...</Flight>
 
                  </Flights>
 
                  <Errors>
 
                    <Error Code="?">
 
                    <!--Code — код ошибки в системе Nemo-->
 
                        <ServiceErrorMessage>?</ServiceErrorMessage>
 
                        <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика-->
 
                        <Message>?</Message>
 
                        <!--Message — сообщение об ошибке от системы Nemo-->
 
                    </Error>
 
                  </Errors>
 
              </SearchFlights>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:searchResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом:
+
=== API Дополнительных запросов авиабилетов ===
* Если текущий домен агентства/субагентства есть в настройках ('''Администрирование''' ⇨ '''Настройки агентства''' ⇨ '''Доменное имя сайта для загрузки настроек'''), то этот домен используется в ссылках.
 
* Если текущего домена нет в настройках, то используется первый домен из настроек.
 
* Если в настройках не прописано ни одного домена, то используется текущий домен.
 
  
На поиск действуют ограничения заданные в настройках агентства, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетов.
+
К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. [[Дополнительные запросы АПИ авиабилетов]]
* Если дата поиска меньше ближайшей разрешенной даты для поиска билетов, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая
 
* Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых
 
* Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей
 
* Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
 
* Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
 
  
=== Примеры использования ===
+
=== Используемые параметры ===
 
 
==== Односторонний перелет ====
 
 
 
Пример одностороннего перелета: Москва — Мадрид, 1 взрослый, 1 ребенок, эконом класс, предпочитаемая авиакомпания — Аэрофлот.
 
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Запрос =====
+
==== Параметры, используемые в запросах ====
 
<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;">
+
<table border="1">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
+
<tr bgcolor="#CCCCCC">
  <soapenv:Header/>
+
<th> Имя элемента </th><th> Обязательный      </th><th> Тип  </th><th>    Описание  </th>
  <soapenv:Body>
+
</tr>
      <ver:search>
+
<tr>
        <RequestBin>
 
            <Request>
 
              <SearchFlights LinkOnly="false">
 
                  <ODPairs Type="OW" Direct="false" AroundDates="0">
 
                    <!--Zero or more repetitions:-->
 
                    <ODPair>
 
                        <DepDate>2014-03-20</DepDate>
 
                        <DepAirp CodeType="IATA">MOW</DepAirp>
 
                        <ArrAirp CodeType="IATA">MAD</ArrAirp>
 
                    </ODPair>
 
                  </ODPairs>
 
                  <Travellers>
 
                    <!--Zero or more repetitions:-->
 
                    <Traveller Type="ADT" Count="1"/>
 
                    <Traveller Type="CNN" Count="1"/>
 
                  </Travellers>
 
                  <Restrictions>
 
                    <ClassPref>economy</ClassPref>
 
                    <OnlyAvail>false</OnlyAvail>
 
                    <AirVPrefs>
 
                        <!--Zero or more repetitions:-->
 
                        <AirVPref Code="SU" Include="true" Type="IATA"/>
 
                    </AirVPrefs>
 
                    <IncludePrivateFare>false</IncludePrivateFare>
 
                    <CurrencyCode>RUB</CurrencyCode>
 
                  </Restrictions>
 
              </SearchFlights>
 
            </Request>
 
            <Source>
 
              <ClientId>---</ClientId>
 
              <APIKey>---</APIKey>
 
              <Language>RU</Language>
 
              <Currency>RUB</Currency>
 
              <ShowNames>true</ShowNames>
 
            </Source>
 
        </RequestBin>
 
      </ver:search>
 
   </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
<td>BookFlight </td><td>да </td><td>сложный </td><td>Контейнер для тела запроса бронирования</td>
 +
</tr>
 +
<tr>
 +
<td>FlightId </td><td class="col1">да </td><td>число</td><td >Id перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности)</td>
 +
</tr>
 +
<tr>
 +
<td>CurrencyCode </td><td>нет</td><td>строка</td><td>Трёх буквенный код валюты (обязателен для комиссии в валюте)</td>
  
===== Ответ =====
+
</tr>
<div class="mw-collapsible-content">
+
<tr>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
<td>Agency </td><td>да </td><td>сложный </td><td>Информация об агентстве</td>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <SOAP-ENV:Body>
 
      <ns1:searchResponse>
 
        <ResponseBin>
 
            <Response>
 
              <SearchFlights>
 
                  <Flights SearchId="13949" ResultURL="http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D13949">
 
                    <Flight FlightId="168090001">
 
                        <WebService>SABRE</WebService>
 
                        <ValCompany/>
 
                        <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090001</URL>
 
                        <Segments>
 
                          <Segment SegNum="1" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp>
 
                              <DepTerminal/>
 
                              <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp>
 
                              <ArrTerminal/>
 
                              <OpAirline>SU</OpAirline>
 
                              <OpAirlineName>Аэрофлот - Российские авиалинии</OpAirlineName>
 
                              <MarkAirline>SU</MarkAirline>
 
                              <MarkAirlineName>Аэрофлот - Российские авиалинии</MarkAirlineName>
 
                              <FlightNumber>2500</FlightNumber>
 
                              <AircraftName>Airbus 320</AircraftName>
 
                              <AircraftType>320</AircraftType>
 
                              <DepDateTime>2014-03-20T08:05:00</DepDateTime>
 
                              <ArrDateTime>2014-03-20T10:15:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>E</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>310</FlightTime>
 
                              <TimeZone Departure="4" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="false">
 
                          <PassengerFare Type="ADT" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="165"/>
 
                              <EquiveFare Currency="RUB" Amount="8250"/>
 
                              <TotalFare Currency="RUB" Amount="10535"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                          <PassengerFare Type="CNN" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="124"/>
 
                              <EquiveFare Currency="RUB" Amount="6200"/>
 
                              <TotalFare Currency="RUB" Amount="8485"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU MAD169.08NUC169.08END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">0</Charges>
 
                        <TotalPrice Currency="RUB">19020</TotalPrice>
 
                    </Flight>
 
                    <Flight FlightId="168090002">
 
                        <WebService>SABRE</WebService>
 
                        <ValCompany/>
 
                        <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090002</URL>
 
                        <Segments>
 
                          <Segment SegNum="1" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA">SVO</DepAirp>
 
                              <DepTerminal/>
 
                              <ArrAirp CodeType="IATA">MAD</ArrAirp>
 
                              <ArrTerminal/>
 
                              <OpAirline>SU</OpAirline>
 
                              <MarkAirline>SU</MarkAirline>
 
                              <FlightNumber>2604</FlightNumber>
 
                              <AircraftType>320</AircraftType>
 
                              <DepDateTime>2014-03-20T20:30:00</DepDateTime>
 
                              <ArrDateTime>2014-03-20T22:40:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>E</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>310</FlightTime>
 
                              <TimeZone Departure="4" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="false">
 
                          <PassengerFare Type="ADT" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="165"/>
 
                              <EquiveFare Currency="RUB" Amount="8250"/>
 
                              <TotalFare Currency="RUB" Amount="10535"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                          <PassengerFare Type="CNN" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="124"/>
 
                              <EquiveFare Currency="RUB" Amount="6200"/>
 
                              <TotalFare Currency="RUB" Amount="8485"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU MAD169.08NUC169.08END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">0</Charges>
 
                        <TotalPrice Currency="RUB">19020</TotalPrice>
 
                    </Flight>
 
                    <Flight FlightId="168090003">
 
                        <WebService>SABRE</WebService>
 
                        <ValCompany/>
 
                        <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090003</URL>
 
                        <Segments>
 
                          <Segment SegNum="1" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA">SVO</DepAirp>
 
                              <DepTerminal/>
 
                              <ArrAirp CodeType="IATA">BCN</ArrAirp>
 
                              <ArrTerminal/>
 
                              <OpAirline>SU</OpAirline>
 
                              <MarkAirline>SU</MarkAirline>
 
                              <FlightNumber>2638</FlightNumber>
 
                              <AircraftType>321</AircraftType>
 
                              <DepDateTime>2014-03-20T09:10:00</DepDateTime>
 
                              <ArrDateTime>2014-03-20T10:40:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>E</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>270</FlightTime>
 
                              <TimeZone Departure="4" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="2" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA">BCN</DepAirp>
 
                              <DepTerminal/>
 
                              <ArrAirp CodeType="IATA">MAD</ArrAirp>
 
                              <ArrTerminal/>
 
                              <OpAirline>UX</OpAirline>
 
                              <MarkAirline>SU</MarkAirline>
 
                              <FlightNumber>3403</FlightNumber>
 
                              <AircraftType>738</AircraftType>
 
                              <DepDateTime>2014-03-20T12:05:00</DepDateTime>
 
                              <ArrDateTime>2014-03-20T13: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>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="false">
 
                          <PassengerFare Type="ADT" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="165"/>
 
                              <EquiveFare Currency="RUB" Amount="8250"/>
 
                              <TotalFare Currency="RUB" Amount="13681"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="JD" Amount="675"/>
 
                                <Tax CurCode="RUB" TaxCode="QV" Amount="186"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                          <PassengerFare Type="CNN" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="124"/>
 
                              <EquiveFare Currency="RUB" Amount="6200"/>
 
                              <TotalFare Currency="RUB" Amount="11631"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="JD" Amount="675"/>
 
                                <Tax CurCode="RUB" TaxCode="QV" Amount="186"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU X/BCN SU MAD169.08NUC169.08END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">0</Charges>
 
                        <TotalPrice Currency="RUB">25312</TotalPrice>
 
                    </Flight>
 
                    .........
 
                    <Flight>...</Flight>
 
                  </Flights>
 
                  <Errors xsi:nil="true"/>
 
              </SearchFlights>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:searchResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
==== Перелет туда-обратно ====
+
</tr>
 +
<tr>
 +
<td>Name </td><td>да </td><td>строка </td><td>Название агентства</td>
 +
</tr>
 +
<tr>
 +
<td>Telephone </td><td>нет </td><td>сложный </td><td>Контактный телефон агентства</td>
  
Пример перелета туда-обратно: Москва — Париж, 2 взрослых, бизнес класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''
+
</tr>
 +
<tr>
 +
<td>Type</td><td>да </td><td>строка </td><td>Тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий, A - агентство</td>
 +
</tr>
 +
<tr>
 +
<td>PhoneNumber </td><td>да </td><td>строка </td><td>Номер телефона</td>
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
</tr>
===== Запрос =====
+
<tr>
<div class="mw-collapsible-content">
+
<td>CountryAccessCode </td><td>нет </td><td>строка </td><td>Код страны</td>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
</tr>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
+
<tr>
<soapenv:Header/>
+
<td>AreaCityCode </td><td>нет </td><td>строка</td><td>Код региона/города</td>
  <soapenv:Body>
 
      <ver:search>
 
        <RequestBin>
 
            <Request>
 
              <SearchFlights LinkOnly="false">
 
                  <ODPairs Type="RT" Direct="false" AroundDates="0">
 
                    <!--Zero or more repetitions:-->
 
                    <ODPair>
 
                        <DepDate>2014-12-20</DepDate>
 
                        <DepAirp CodeType="IATA">MOW</DepAirp>
 
                        <ArrAirp CodeType="IATA">PAR</ArrAirp>
 
                    </ODPair>
 
                      <ODPair>
 
                        <DepDate>2014-12-21</DepDate>
 
                        <DepAirp CodeType="IATA">PAR</DepAirp>
 
                        <ArrAirp CodeType="IATA">MOW</ArrAirp>
 
                    </ODPair>
 
                  </ODPairs>
 
                  <Travellers>
 
                    <!--Zero or more repetitions:-->
 
                    <Traveller Type="ADT" Count="2"/>
 
                  </Travellers>
 
                  <Restrictions>
 
                    <ClassPref>business</ClassPref>
 
                    <OnlyAvail>false</OnlyAvail>
 
                    <AirVPrefs/>
 
                    <IncludePrivateFare>false</IncludePrivateFare>
 
                    <CurrencyCode>RUB</CurrencyCode>
 
                  </Restrictions>
 
              </SearchFlights>
 
            </Request>
 
            <Source>
 
              <ClientId>---</ClientId>
 
              <APIKey>---</APIKey>
 
              <Language>RU</Language>
 
              <Currency>RUB</Currency>
 
              <ShowNames>true</ShowNames>
 
            </Source>
 
        </RequestBin>
 
      </ver:search>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
</tr>
 +
<tr>
 +
<td>Address</td><td>да </td><td>сложный </td><td class="col3">Адрес агентства</td>
 +
</tr>
 +
<tr>
 +
<td>City</td><td>да </td><td class="col2">строка </td><td>Город, в котором расположено агентство</td>
  
===== Ответ =====
+
</tr>
<div class="mw-collapsible-content">
+
<tr>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
<td>StreetAddress </td><td>нет </td><td>сложный </td><td>Адрес агентства в городе (улица, дом, корпус, офис и т.д.)</td>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
</tr>
    <SOAP-ENV:Body>
+
<tr>
      <ns1:searchResponse>
+
<td>PostalCode </td><td>нет </td><td>строка </td><td>Почтовый код, индекс.</td>
        <ResponseBin>
 
            <Response>
 
              <SearchFlights>
 
                  <Flights SearchId="190484987" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190484987">
 
                    <Flight FlightId="372384680001">
 
                        <WebService>SABRE</WebService>
 
                        <ValCompany/>
 
                        <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190484987%26flight%3D372384680001%26utm_source%3Dalias1</URL>
 
                        <Segments>
 
                          <Segment SegNum="1" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>JU</OpAirline>
 
                              <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 
                              <MarkAirline>JU</MarkAirline>
 
                              <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 
                              <FlightNumber>657</FlightNumber>
 
                              <AircraftName>Airbus 319</AircraftName>
 
                              <AircraftType>319</AircraftType>
 
                              <DepDateTime>2014-12-20T05:05:00</DepDateTime>
 
                              <ArrDateTime>2014-12-20T06:05:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="business">
 
                                    <BookingCode>W</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>180</FlightTime>
 
                              <TimeZone Departure="3" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="2" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>JU</OpAirline>
 
                              <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 
                              <MarkAirline>JU</MarkAirline>
 
                              <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 
                              <FlightNumber>314</FlightNumber>
 
                              <AircraftName>Airbus 320</AircraftName>
 
                              <AircraftType>320</AircraftType>
 
                              <DepDateTime>2014-12-20T17:10:00</DepDateTime>
 
                              <ArrDateTime>2014-12-20T19:50:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="business">
 
                                    <BookingCode>W</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>160</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="3" SegGroupNum="1">
 
                              <DepAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>JU</OpAirline>
 
                              <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 
                              <MarkAirline>JU</MarkAirline>
 
                              <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 
                              <FlightNumber>311</FlightNumber>
 
                              <AircraftName>Airbus 320</AircraftName>
 
                              <AircraftType>320</AircraftType>
 
                              <DepDateTime>2014-12-21T10:10:00</DepDateTime>
 
                              <ArrDateTime>2014-12-21T12:30:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="business">
 
                                    <BookingCode>W</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>140</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="4" SegGroupNum="1">
 
                              <DepAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>JU</OpAirline>
 
                              <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 
                              <MarkAirline>JU</MarkAirline>
 
                              <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 
                              <FlightNumber>656</FlightNumber>
 
                              <AircraftName>Airbus 319</AircraftName>
 
                              <AircraftType>319</AircraftType>
 
                              <DepDateTime>2014-12-21T23:20:00</DepDateTime>
 
                              <ArrDateTime>2014-12-22T04:10:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="business">
 
                                    <BookingCode>W</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>170</FlightTime>
 
                              <TimeZone Departure="1" Arrival="3"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="true">
 
                          <PassengerFare Type="ADT" Quantity="2">
 
                              <BaseFare Currency="EUR" Amount="620"/>
 
                              <EquiveFare Currency="RUB" Amount="34720"/>
 
                              <TotalFare Currency="RUB" Amount="44430"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
 
                                <Tax CurCode="RUB" TaxCode="RI" Amount="428"/>
 
                                <Tax CurCode="RUB" TaxCode="RI" Amount="428"/>
 
                                <Tax CurCode="RUB" TaxCode="UH" Amount="304"/>
 
                                <Tax CurCode="RUB" TaxCode="LG" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="LG" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="RS" Amount="224"/>
 
                                <Tax CurCode="RUB" TaxCode="RS" Amount="224"/>
 
                                <Tax CurCode="RUB" TaxCode="RF" Amount="55"/>
 
                                <Tax CurCode="RUB" TaxCode="RF" Amount="55"/>
 
                                <Tax CurCode="RUB" TaxCode="FR1" Amount="434"/>
 
                                <Tax CurCode="RUB" TaxCode="FR4" Amount="714"/>
 
                                <Tax CurCode="RUB" TaxCode="QX3" Amount="1546"/>
 
                                <Tax CurCode="RUB" TaxCode="IZ4" Amount="224"/>
 
                              </Taxes>
 
                              <Tariffs>
 
                                <Tariff Code="WRTRU" SegNum="4"/>
 
                              </Tariffs>
 
                              <FareCalc>MOW JU X/BEG JU PAR401.57JU X/BEG JU MOW401.57NUC803.14END ROE0.771963</FareCalc>
 
                              <LastTicketDateTime>2014-12-20T04:05:00</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">0</Charges>
 
                        <TotalPrice Currency="RUB">88860</TotalPrice>
 
                    </Flight>
 
                    .........
 
                    <Flight>...</Flight>
 
                  </Flights>
 
                  <Errors xsi:nil="true"/>
 
              </SearchFlights>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:searchResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
==== Сложный маршрут ====
+
</tr>
 +
<tr>
 +
<td>CountryCode </td><td>нет </td><td>строка </td><td>Код страны (RU, UA, US и т.д.)</td>
 +
</tr>
 +
<tr>
 +
<td>Travellers </td><td>да </td><td>сложный </td><td>Контейнер для информации о пассажирах (для которых будет производится поиск перелёта, бронирование)</td>
  
Пример сложного маршрута: Прага — Москва — Милан — Мадрид, 1 взрослый, 1 младенец, эконом класс.  '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''
+
</tr>
 +
<tr>
 +
<td class="col0">Traveller </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация о пассажире</td>
 +
</tr>
 +
<tr class="row24">
 +
<td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети, UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом</td>
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
</tr>
===== Запрос =====
+
<tr class="row25">
<div class="mw-collapsible-content">
+
<td class="col0">IsContact </td><td class="col1">нет</td><td class="col2">булевский </td><td class="col3">Индикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false.</td>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
</tr>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
+
<tr class="row26">
    <soapenv:Header/>
+
<td class="col0">LinkedTo </td><td class="col1">нет </td><td class="col2">целое число </td><td class="col3">Номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)</td>
  <soapenv:Body>
 
      <ver:search>
 
        <RequestBin>
 
            <Request>
 
              <SearchFlights LinkOnly="false">
 
                  <ODPairs Type="CR" Direct="false" AroundDates="0">
 
                    <!--Zero or more repetitions:-->
 
                    <ODPair>
 
                        <DepDate>2014-12-20</DepDate>
 
                        <DepAirp CodeType="IATA">PRG</DepAirp>
 
                        <ArrAirp CodeType="IATA">MOW</ArrAirp>
 
                    </ODPair>
 
                      <ODPair>
 
                        <DepDate>2014-12-23</DepDate>
 
                        <DepAirp CodeType="IATA">MOW</DepAirp>
 
                        <ArrAirp CodeType="IATA">MIL</ArrAirp>
 
                    </ODPair>
 
                    <ODPair>
 
                        <DepDate>2014-12-27</DepDate>
 
                        <DepAirp CodeType="IATA">MIL</DepAirp>
 
                        <ArrAirp CodeType="IATA">MAD</ArrAirp>
 
                    </ODPair>
 
                  </ODPairs>
 
                  <Travellers>
 
                    <!--Zero or more repetitions:-->
 
                    <Traveller Type="ADT" Count="1"/>
 
                    <Traveller Type="INF" Count="1"/>
 
                  </Travellers>
 
                  <Restrictions>
 
                    <ClassPref>economy</ClassPref>
 
                    <OnlyAvail>false</OnlyAvail>
 
                    <AirVPrefs/>
 
                    <IncludePrivateFare>false</IncludePrivateFare>
 
                    <CurrencyCode>RUB</CurrencyCode>
 
                  </Restrictions>
 
              </SearchFlights>
 
            </Request>
 
            <Source>
 
              <ClientId>134</ClientId>
 
              <APIKey>93632C10DA299034C03D742FB160C2D6</APIKey>
 
              <Language>RU</Language>
 
              <Currency>RUB</Currency>
 
              <ShowNames>true</ShowNames>
 
            </Source>
 
        </RequestBin>
 
      </ver:search>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
</tr>
 +
<tr class="row27">
 +
<td class="col0">Num </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер пассажира.</td>
 +
</tr>
 +
<tr class="row28">
 +
<td class="col0">PreferedPlace </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры Smoking и Location игнорируются и могут быть не указаны.</td>
  
===== Ответ =====
+
</tr>
<div class="mw-collapsible-content">
+
<tr class="row29">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
<td class="col0">SmokingAllowed </td><td class="col1">нет </td><td class="col2">булевский </td><td class="col3">true - место для курящих, false - место для некурящих. По умолчанию false.</td>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
</tr>
  <SOAP-ENV:Body>
+
<tr class="row30">
      <ns1:searchResponse>
+
<td class="col0">Location </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Расположение места, возможные значения: W - у окна (Window); M - где-то в середине ряда (Middle); NPW - возле прохода (NearPassengerWay); NS - нет предпочтения (NotSpecified).</td>
        <ResponseBin>
+
</tr>
            <Response>
+
<tr class="row31">
              <SearchFlights>
+
<td class="col0">RowNumber</td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Номер ряда</td>
                  <Flights SearchId="190491108" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190491108">
+
</tr>
                    <Flight FlightId="372394480001">
+
<tr class="row32">
                        <WebService>SABRE</WebService>
+
<td class="col0">PlaceNumber </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Номер места</td>
                        <ValCompany/>
 
                        <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190491108%26flight%3D372394480001%26utm_source%3Dalias1</URL>
 
                        <Segments>
 
                          <Segment SegNum="1" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA" Name="Прага">PRG</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1485</FlightNumber>
 
                              <AircraftName>Avro RJ100</AircraftName>
 
                              <AircraftType>AR1</AircraftType>
 
                              <DepDateTime>2014-12-20T10:05:00</DepDateTime>
 
                              <ArrDateTime>2014-12-20T11:30:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>K</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>85</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="2" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Домодедово, Москва">DME</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1326</FlightNumber>
 
                              <AircraftName>Airbus 321</AircraftName>
 
                              <AircraftType>321</AircraftType>
 
                              <DepDateTime>2014-12-20T12:20:00</DepDateTime>
 
                              <ArrDateTime>2014-12-20T17:50:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>K</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>210</FlightTime>
 
                              <TimeZone Departure="1" Arrival="3"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="3" SegGroupNum="1">
 
                              <DepAirp CodeType="IATA" Name="Домодедово, Москва">DME</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1325</FlightNumber>
 
                              <AircraftName>Airbus 321</AircraftName>
 
                              <AircraftType>321</AircraftType>
 
                              <DepDateTime>2014-12-23T09:05:00</DepDateTime>
 
                              <ArrDateTime>2014-12-23T10:50:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>V</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>225</FlightTime>
 
                              <TimeZone Departure="3" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="4" SegGroupNum="1">
 
                              <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1628</FlightNumber>
 
                              <AircraftName>Avro RJ100</AircraftName>
 
                              <AircraftType>AR1</AircraftType>
 
                              <DepDateTime>2014-12-23T12:25:00</DepDateTime>
 
                              <ArrDateTime>2014-12-23T13:20:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>K</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>55</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="5" SegGroupNum="2">
 
                              <DepAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1639</FlightNumber>
 
                              <AircraftName>Avro RJ100</AircraftName>
 
                              <AircraftType>AR1</AircraftType>
 
                              <DepDateTime>2014-12-27T07:05:00</DepDateTime>
 
                              <ArrDateTime>2014-12-27T08:05:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>K</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>60</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="6" SegGroupNum="2">
 
                              <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>2026</FlightNumber>
 
                              <AircraftName/>
 
                              <AircraftType>32A</AircraftType>
 
                              <DepDateTime>2014-12-27T12:30:00</DepDateTime>
 
                              <ArrDateTime>2014-12-27T14:50:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>V</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>140</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="false">
 
                          <PassengerFare Type="ADT" Quantity="1">
 
                              <BaseFare Currency="CZK" Amount="8440"/>
 
                              <EquiveFare Currency="RUB" Amount="17305"/>
 
                              <TotalFare Currency="RUB" Amount="31456"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/>
 
                                <Tax CurCode="RUB" TaxCode="RI" Amount="378"/>
 
                                <Tax CurCode="RUB" TaxCode="RI" Amount="378"/>
 
                                <Tax CurCode="RUB" TaxCode="UH" Amount="284"/>
 
                                <Tax CurCode="RUB" TaxCode="CZ" Amount="1159"/>
 
                                <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
 
                                <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
 
                                <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
 
                                <Tax CurCode="RUB" TaxCode="EX" Amount="56"/>
 
                                <Tax CurCode="RUB" TaxCode="IT1" Amount="707"/>
 
                                <Tax CurCode="RUB" TaxCode="VT" Amount="142"/>
 
                                <Tax CurCode="RUB" TaxCode="HB" Amount="364"/>
 
                                <Tax CurCode="RUB" TaxCode="MJ" Amount="67"/>
 
                              </Taxes>
 
                              <Tariffs>
 
                                <Tariff Code="KNC29F3S" SegNum="2"/>
 
                                <Tariff Code="VNC28G2S" SegNum="6"/>
 
                                <Tariff Code="KNN2SSR" SegNum="5"/>
 
                              </Tariffs>
 
                              <FareCalc>PRG LX X/ZRH LX MOW28.06LX ZRH*LX MIL31.13LX ZRH31.13*LX MAD175.52 1S129.53NUC395.37END ROE21.3469</FareCalc>
 
                              <LastTicketDateTime>2014-12-20T11:05:00</LastTicketDateTime>
 
                          </PassengerFare>
 
                          <PassengerFare Type="INF" Quantity="1">
 
                              <BaseFare Currency="CZK" Amount="3333"/>
 
                              <EquiveFare Currency="RUB" Amount="6835"/>
 
                              <TotalFare Currency="RUB" Amount="6835"/>
 
                              <Taxes/>
 
                              <Tariffs>
 
                                <Tariff Code="KNC29F3S/IN90" SegNum="2"/>
 
                                <Tariff Code="VNC28G2S/IN90" SegNum="6"/>
 
                                <Tariff Code="KNN2SSR/IN90" SegNum="5"/>
 
                              </Tariffs>
 
                              <FareCalc>PRG LX X/ZRH LX MOW2.80LX ZRH*LX MIL3.11LX ZRH3.11*LX MAD17.55 1S129.53NUC156.10END ROE21.3469</FareCalc>
 
                              <LastTicketDateTime>2014-12-20T11:05:00</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">765.82</Charges>
 
                        <TotalPrice Currency="RUB">39056.82</TotalPrice>
 
                    </Flight>
 
                    .........
 
                    <Flight>...</Flight>
 
                  </Flights>
 
                  <Errors xsi:nil="true"/>
 
              </SearchFlights>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:searchResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
 +
</tr>
 +
<tr class="row33">
 +
<td class="col0">SegNumber </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер сегмента</td>
 +
</tr>
 +
<tr class="row34">
 +
<td class="col0">DocumentInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Паспортные данные</td>
  
 +
</tr>
 +
<tr class="row35">
 +
<td class="col0">DocType </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Тип документа, обязательный.</td>
 +
</tr>
 +
<tr class="row36">
 +
<td class="col0">DocNum </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер документа</td>
 +
</tr>
 +
<tr class="row37">
 +
<td class="col0">CountryCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Страна выдачи, двух буквенный код(RU, US и т.д.)</td>
 +
</tr>
 +
<tr class="row38">
 +
<td class="col0">DocElapsedTime</td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Срок истечения срока действия паспорта в фирмате dd.mm.yyyy (например 31.12.2012)</td>
  
==API Поиска отелей==
+
</tr>
'''Агентский API Отелей''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
+
<tr class="row39">
 +
<td class="col0">VisaInfo </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Информация о визе</td>
 +
</tr>
 +
<tr class="row40">
 +
<td class="col0">Num </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер визы</td>
  
=== Динамические данные ===
+
</tr>
==== Поиск ====
+
<tr class="row41">
 +
<td class="col0">IssueDate </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Дата выдачи визы в формате dd.mm.yyyy</td>
 +
</tr>
 +
<tr class="row42">
 +
<td class="col0">IssueCountry </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Страна выдачи визы</td>
  
Сервис предназначен для получения списка отелей, удовлетворяющих условиям запроса. В условия запроса входят: идентификатор города, где будет вестись поиск; дата заезда и дата выезда; информация о количестве людей и способе их размещения в комнатах. Так же указываются дополнительные необязательные поля фильтров.
+
</tr>
 +
<tr class="row43">
 +
<td class="col0">IssuePlace </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Место выдачи визы</td>
 +
</tr>
 +
<tr class="row44">
 +
<td class="col0">BirthCountry </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Страна рождения (IATA код страны)</td>
  
Для получения списка доступных городов, воспользуйтесь запросом на выгрузку статики (см. ССЫЛКА). Список допустимых отелей для фильтра также доступен через сервис (см. ССЫЛКА). Рекомендуется выгрузить все данные по отелям, городам и странам в локальную базу, для экономии времени и запросов.
+
</tr>
 +
<tr class="row45">
 +
<td class="col0">BirthCity </td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Город рождения (название)</td>
 +
</tr>
 +
<tr class="row46">
 +
<td class="col0">ArrAddress </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Адрес прибытия, для въезжающих в США (не граждан США) информация является обязательной. Если она не заполняется при оформлении брони, то её всё равно придётся заполнять при посадке на самолёт.</td>
  
'''WSDL''' (тестовый сервер): [http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch]
+
</tr>
 +
<tr class="row47">
 +
<td class="col0">CountryCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">IATA код страны</td>
 +
</tr>
 +
<tr class="row48">
 +
<td class="col0">State </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Штат или область въезда</td>
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
</tr>
===== Запрос =====
+
<tr class="row49">
<div class="mw-collapsible-content">
+
<td class="col0">PostalCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Почтовый код</td>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
</tr>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+
<tr class="row50">
xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
+
<td class="col0">City </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Город</td>
  <soapenv:Header/>
 
  <soapenv:Body>
 
    <ver:search>
 
      <RequestBin>
 
        <Request>
 
          <HotelSearch>
 
            <CityId>22046</CityId>
 
            <DateBegin>2013-10-15</DateBegin>
 
            <DateEnd>2013-10-18</DateEnd>
 
            <Rooms>
 
              <!--Zero or more repetitions:-->
 
              <Room>
 
                <Persons>
 
                  <!--Zero or more repetitions:-->
 
                  <Person Id="1" Type="ADT" Age="30"/>
 
                  <Person Id="2" Type="CLD" Age="10"/>
 
                </Persons>
 
                <!--Optional:-->
 
                <DoubleBed>false</DoubleBed>
 
              </Room>
 
              <Room>
 
                <Persons>
 
                  <!--Zero or more repetitions:-->
 
                  <Person Id="1" Type="ADT" Age="30"/>
 
                </Persons>
 
              </Room>
 
            </Rooms>
 
            <!--Optional:-->
 
            <Filters>
 
              <Hotels>
 
                <!--Zero or more repetitions:-->
 
                <!--<Id>123</Id>-->
 
              </Hotels>
 
            </Filters>
 
          </HotelSearch>
 
        </Request>
 
        <Source>
 
          <ClientId></ClientId>
 
          <APIKey></APIKey>
 
          <Language>ru</Language>
 
          <Currency>RUB</Currency>
 
        </Source>
 
      </RequestBin>
 
    </ver:search>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''HotelSearch'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row51">
|-
+
<td class="col0">StreetAddress </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Адрес: улица, номер дома, квартиры и тп</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row52">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">DocStringFormats </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Список форматов строк паспортных данных, которые будут отправлены в дополнение к стандартным.</td>
|-
 
| CityId
 
| Обязательный. Идентификатор города в системе Nemo.
 
| Целое число
 
|-
 
| DateBegin
 
| Обязательный. Дата заселения.
 
| Формат гггг-мм-дд.
 
|-
 
| DateEnd
 
| Обязательный. Дата выезда.
 
| Формат гггг-мм-дд.
 
|-
 
| Rooms
 
| Обязательный. Содержит массив запрашиваемых номеров/апартаментов.
 
| Элемент Room. Максимум 4 элемента Room.
 
|-
 
| Filters
 
| Необязательный. Содержит различные фильтры поиска отелей.
 
| Элемент Hotels.
 
|}
 
  
Элемент '''Room'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row53">
|-
+
<td class="col0">DocStringFormat </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Формат данных, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID. Установка данных в формате DOCS как правило необходима для последующей выписки в BSP среде. Установка FOID - всреде ТКП.</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row54">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">PersonalInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Персональные данные пассажира</td>
|-
+
</tr>
| Persons
+
<tr class="row55">
| Обязательный. Содержит данные о клиентах в номерах.
+
<td class="col0">DateOfBirth</td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Дата рождения в формате dd.mm.yyyy (например 31.12.2000)</td>
| Элемент Person
+
</tr>
|-
+
<tr class="row56">
| DoubleBed
+
<td class="col0">Nationality </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Национальность/гражданство, двух буквенный код страны (RU, UA, US и т.д.)</td>
| Необязательный. Может быть использован только если сумма количества детей и взрослых равна 2-м, а также
 
Если в запросе сумма детей и взрослых не равна 2, то данный элемент будет проигнорирован.
 
| true/false
 
true означает, что номер должен иметь двуспальную кровать
 
|}
 
  
Элемент '''Person'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row57">
|-
+
<td class="col0">Gender </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Пол пассажира, обязательный, возможные значения: M - мужской(Male); F - женский(Female).</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row58">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">FirstName </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Имя пассажира</td>
|-
 
| Атрибут Id
 
| Уникальный идентификатор. См. результаты бронирования.
 
| Целое число
 
|-
 
| Атрибут Type
 
| Тип клиента.
 
Если не указан, будет определен по возрасту Age.
 
| Константы:
 
ADT - взрослый
 
CLD - ребенок 2-12 лет
 
INF - младенец до 2х лет
 
|-
 
| Атрибут Age
 
| Возраст. Обязателен для детей (CLD).
 
| Целое число. Количество лет.
 
|}
 
  
Элемент '''Filters'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row59">
|-
+
<td class="col0">LastName </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Фамилия пассажира</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row60">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">BMiddleName </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Отчество пассажира</td>
|-
+
</tr>
| Hotels
+
<tr class="row61">
| Необязательный. Набор идентификаторов отелей в системе Nemo.
+
<td class="col0">Meal </td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Код типа питания, возможные значения: 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 - Восточное вегетарианское питание.</td>
Результаты поиска будут ограничены только этими отелями. Данная опция может существенно ускорить поиск - рекомендуется всегда устанавливать при поиске конкретных отелей.
+
</tr>
| Элемент Id – целое число
+
<tr class="row62">
|}
+
<td class="col0">LoyaltyCard </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Карточка часто летающего пассажира</td>
  
Элемент '''Source'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row63">
|-
+
<td class="col0">OpCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">IATA код компании авиаперевозчика</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row64">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">Number </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер карточки</td>
|-
+
</tr>
| ClientID
+
<tr class="row65">
| Обязательный. ID клиента в системе Nemo.
+
<td class="col0">ContactInfo</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактная информация для пассажира</td>
Можно посмотреть/добавить в "Администрирование" "Веб-служба. Авторизация".
+
</tr>
| Целое число.
+
<tr class="row66">
|-
+
<td class="col0">EmailID </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Контактный email</td>
| APIKey
 
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
 
Можно посмотреть/добавить в "Администрирование" "Веб-служба. Авторизация".
 
| Латинские буквы и цифры. Всего 32 символа.
 
|}
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
</tr>
===== Ответ =====
+
<tr class="row67">
<div class="mw-collapsible-content">
+
<td class="col0">Telephone </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактный телефон пассажира, описание аналогично описанию телефона агентства</td>
Система по заданным параметрам ищет отели и возвращает результаты поиска. Все результаты поиска хранятся в базе Nemo определенный срок и доступны для бронирования по идентификатору CacheId.
+
</tr>
 +
<tr class="row68">
 +
<td class="col0">CancelBook</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса отмены брони</td>
 +
</tr>
 +
<tr class="row69">
 +
<td class="col0">BookID</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая будет отменяться (для которой будет производится выписка, отмена выписки)</td>
  
Структура ответа - это набор уникальных отелей. У каждого указан Id - это идентификатор из базы Nemo. По нему можно получить дополнительную статичную информацию из путеводителя Nemo.
+
</tr>
 +
<tr class="row70">
 +
<td class="col0">GetAirRules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска тарифных правил</td>
 +
</tr>
 +
<tr class="row71">
 +
<td class="col0">AirAvail</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса проверки доступности перелёта</td>
  
Каждый отель содержит:
+
</tr>
* Набор номеров &lt;Rooms&gt;. Типы номеров (одноместный, двухместный и т.д.)&nbsp;: устанавливается автоматически по количеству клиентов из запроса.
+
<tr class="row72">
* Сервисы &lt;Services&gt;. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться.
+
<td class="col0">Ticketing</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса выписки брони</td>
* Категория &lt;Categories&gt;. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий.
+
</tr>
 +
<tr class="row73">
 +
<td class="col0">ValCompany</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Валидирующий перевозчик, на бланке которого выписывается билет</td>
  
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
</tr>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
+
<tr class="row74">
xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
+
<td class="col0">Comission</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Комиссия</td>
  <SOAP-ENV:Body>
+
</tr>
    <ns1:searchResponse>
+
<tr class="row75">
      <ResponseBin>
+
<td class="col0">Amount</td><td class="col1">нет</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение комиссии в валюте, если указано, то комиссия в процентах игнорируется</td>
        <Response>
 
          <HotelSearch>
 
            <Hotels>
 
              <Hotel Id="1872666">
 
                <Supplier>GTA</Supplier>
 
                <CityId>22046</CityId>
 
                <DateBegin>2013-10-15</DateBegin>
 
                <DateEnd>2013-10-18</DateEnd>
 
                <CacheId>1872666</CacheId>
 
                <Name>ADLON KEMPINSKI</Name>
 
                <Categories>
 
                  <Category Id="1">
 
                    <Rooms>
 
                      <Room Count="1" Id="1" ServiceId="1"/>
 
                      <Room Count="1" Id="2" ServiceId="2"/>
 
                    </Rooms>
 
                    <TotalPrice Currency="RUB">74733.84</TotalPrice>
 
                  </Category>
 
                </Categories>
 
                <Services>
 
                  <Service Id="1" Status="OK">
 
                    <Desc>Standard Twin</Desc>
 
                    <Meal>Full Breakfast</Meal>
 
                    <Price/>
 
                  </Service>
 
                  <Service Id="2" Status="OK">
 
                    <Desc>Standard Twin</Desc>
 
                    <Meal>Full Breakfast</Meal>
 
                    <Price/>
 
                  </Service>
 
                </Services>
 
                <Rooms>
 
                  <Room Id="1" Type="TWIN"/>
 
                  <Room Id="2" Type="SNGL"/>
 
                </Rooms>
 
              </Hotel>
 
...
 
            </Hotels>
 
          </HotelSearch>
 
        </Response>
 
      </ResponseBin>
 
    </ns1:searchResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''Hotel'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row76">
|-
+
<td class="col0">Percent</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Комиссия в процентах</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row77">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">VoidTicket</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса отмены выписки брони</td>
|-
 
| Атрибут Id
 
| Обязательный. Идентификатор отеля как одного из результатов поиска в системе Nemo.
 
| Целое число.
 
|-
 
| Supplier
 
| Обязательный. Тип поставщика, в котором найден отель.
 
| Строка.
 
Возможные значения:
 
GTA
 
HOTELBEDS
 
DOTW
 
SERHS
 
MIKI
 
TRAVCO
 
ACADEM
 
TOURICO
 
|-
 
| CityId
 
| Обязательный. Идентификатор города в системе Nemo.
 
| Целое число.
 
|-
 
| CacheId
 
| Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.
 
| Целое число.
 
|-
 
| Name
 
| Обязательный. Название отеля.
 
| Строка в произвольном формате.
 
|-
 
| Services
 
| Обязательный. Услуги в отеле.
 
| Элемент Service
 
|-
 
| Rooms
 
| Обязательный. Комнаты в отеле.
 
| Элемент Room
 
|-
 
| Categories
 
| Обязательный. Категории, доступные для бронирования в отеле.
 
| Элемент Category
 
|}
 
  
Элемент '''Service'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row78">
|-
+
<td class="col0">Search</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row79">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">ODPairs</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о перелёте</td>
|-
 
| Атрибут Id
 
| Обязательный. Идентификатор услуги.
 
| Целое число
 
|-
 
| Атрибут Status
 
| Обязательный. Доступность отеля. ОК означает доступен (мгновенное подтверждение).
 
RQ - недоступен (по запросу).
 
| ОК/RQ
 
|-
 
| Desc
 
| Необязательный. Описание отеля.
 
| Строка в произвольном формате.
 
|-
 
| Meal
 
| Обязательный. Питание для данного сервиса.
 
| Строка в произвольном формате.
 
|-
 
| Price
 
| Необязательный. Указывает на стоимость номера с данной услугой.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|}
 
  
Элемент '''Room'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row80">
|-
+
<td class="col0">Type</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Тип перелёта, возможные значения: OW - в одну сторону, RT - туда-обратно, CR - сложный маршрут</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row81">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">Direct</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Индикатор, указывающий какие перелёты искать, только прямые или с пересадками, возможные значения: false - с пересадками, true - только прямые. Если не указан, значение по умолчанию false.</td>
|-
+
</tr>
| Атрибут Id
+
<tr class="row82">
| Обязательный. Идентификатор комнаты в отеле.
+
<td class="col0">AroundDates</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Включает поиск по окружным датам, количество дней +/- от даты заезда/возвращения. Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT). Возможные значения: 0, 1, 2, 3</td>
| Целое число.
+
</tr>
|-
+
<tr class="row83">
| Type
+
<td class="col0">ODPair</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о сегменте перелёта. Может повторяться 1-6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается</td>
| Обязательный. Тип номера.
 
| Строка. Возможные значения:
 
SNGL – одноместный
 
DBL – двухместный с двухспальной кроватью
 
TWIN – двухместный с двумя кроватями
 
TRIP – трёхместный
 
QUAD – четырёхместный
 
|}
 
  
Элемент '''Category'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row84">
|-
+
<td class="col0">DepDate</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата вылета, Формат ГГГГ-MM-DDTЧЧ:ММ:СС</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row85">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города отправления или конкретного аэропорта в городе отправления.</td>
|-
 
| Атрибут Id
 
| Обязательный. Идентификатор категории.
 
| Целое число.
 
|-
 
| Rooms
 
| Обязательный. Массив комнат с соответствием услуг.
 
| Целое число.
 
|-
 
| Room
 
| Атрибут: Count
 
  
Обязательный.
+
</tr>
Количество комнат данного типа.
+
<tr class="row86">
 +
<td class="col0">ArrAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города прибытия или конкретного аэропорта в городе прибытия.</td>
 +
</tr>
 +
<tr class="row87">
 +
<td class="col0">Count</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число пассажиров данного типа. Общее количество пассажиров всех типов должно быть не более 9.</td>
  
Атрибут: Id
+
</tr>
 +
<tr class="row88">
 +
<td class="col0">Restrictions</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер дополнительной информации для поиска.</td>
 +
</tr>
 +
<tr class="row89">
 +
<td class="col0">ClassPref</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Предпочитаемый класс перелёта, возможные значения: All - все, Economy - эконом, Business - бизнес, First - первый. Если не указан, то по умолчанию All.</td>
  
Обязательный. Идентификатор комнаты из атрибута Id в элементе Hotel-> Rooms-> Room.
+
</tr>
 +
<tr class="row90">
 +
<td class="col0">OnlyAvail</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Искать только доступные, возможные значения: true - только доступные, false - все. Если не указан, то по умолчанию false.</td>
 +
</tr>
 +
<tr class="row91">
 +
<td class="col0">AirVPrefs</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Обёртка для списка авиакомпаний, по которым будет или не будет проводиться поиск.</td>
  
Атрибут: ServiceId
+
</tr>
 +
<tr class="row92">
 +
<td class="col0">AirVPref</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Информация об авиакомпании.</td>
 +
</tr>
 +
<tr class="row93">
 +
<td class="col0">Include</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий включить или исключить в результатах поиска перелёты данной авиакомпании: true - включить, false - исключить. Если не указан, то по умолчанию false.</td>
  
- Идентификатор услуги из атрибута Id элемента Service.
+
</tr>
| Целое число.
+
<tr class="row94">
 +
<td class="col0">IncludePrivateFare</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Включать приватные цены в результат или нет, возможные значения: true - включать, false - не включать. Если не указан, то по умолчанию false.</td>
 +
</tr>
 +
<tr class="row95">
 +
<td class="col0">ServiceTypes</td><td class="col1">нет</td><td class="col2">сложный хмл</td><td class="col3">Контейнер массива используемых веб-сервисов при поиске.</td>
  
Целое число.
+
</tr>
 
+
<tr class="row96">
Целое число.
+
<td class="col0">ServiceType</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Тип веб-сервиса(поставщика). При указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса. Возможные значения: Sirena2000 - поиск в Сирене; SirenaSchedule - поиск в Сирене по расписанию; SabreLFS - поиск в Сэйбр LFS; SabreBFM - поиск в Сэйбр BFM; SabreSchedule - поиск Сэйбр по расписанию; Galileo - поиск в Галилео; AmadeusMPTBS - поиск в Амадеус.</td>
|-
+
</tr>
| TotalPrice
+
</table>
| Обязательный. Суммарная стоимость бронируемого сочетания “Комнаты - услуги”.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|}
 
 
</div>
 
</div>
 
</div>
 
</div>
 
 
 
==== Расширенная информация по одному отелю ====
 
Сервис получения дополнительной информации об отеле требует указания идентификатора отеля в системе Nemo и категории.
 
 
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelExtInfo
 
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelExtInfo">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
    <ver:extInfo>
 
      <RequestBin>
 
        <Request>
 
          <HotelExtInfo>
 
            <Item>
 
              <CacheId>1867246</CacheId>
 
              <!--Optional:-->
 
              <CategoryId>1</CategoryId>
 
            </Item>
 
          </HotelExtInfo>
 
        </Request>
 
        <Source>
 
          <ClientId></ClientId>
 
          <APIKey></APIKey>
 
          <Language>ru</Language>
 
          <Currency>RUB</Currency>
 
        </Source>
 
      </RequestBin>
 
    </ver:extInfo>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''Item'''
+
==== Параметры, используемые в ответах ====
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| CacheId
 
| Обязательный. Идентификатор результата поиска.
 
| Целое число
 
|-
 
| CategoryId
 
| ID выбранной категории.
 
| Целое число
 
|}
 
 
 
Элемент '''Source'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| ClientID
 
| Обязательный. ID клиента в системе Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Целое число.
 
|-
 
| APIKey
 
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Латинские буквы и цифры. Всего 32 символа.
 
|}
 
</div>
 
</div>
 
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
===== Ответ =====
 
 
<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;">
+
<table border="1">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
 
xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelExtInfo"
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <SOAP-ENV:Body>
 
    <ns1:extInfoResponse>
 
      <ResponseBin>
 
        <Response>
 
          <HotelExtInfo>
 
            <CategoryId>1</CategoryId>
 
            <PriceInfo>
 
              <PriceBreakDown>
 
                <Date>
 
                  <From>2013-10-15</From>
 
                  <To>2013-10-18</To>
 
                  <Price Currency="RUB">12455.64</Price>
 
                </Date>
 
                <Date>
 
                  <From>2013-10-15</From>
 
                  <To>2013-10-18</To>
 
                  <Price Currency="RUB">12455.64</Price>
 
                </Date>
 
              </PriceBreakDown>
 
              <Netto Currency="EUR">1821</Netto>
 
              <Gross xsi:nil="true"/>
 
            </PriceInfo>
 
          </HotelExtInfo>
 
        </Response>
 
      </ResponseBin>
 
    </ns1:extInfoResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''HotelExtInfo'''
+
<tr bgcolor="#CCCCCC">
{| style="width: 800px" class="wikitable"
+
<th class="col0 leftalign"> Имя элемента      </th><th class="col1 leftalign"> Обязательный      </th><th class="col2 leftalign"> Тип  </th><th class="col3 centeralign">    Описание  </th>
|-
+
</tr>
! scope="col" width="200" | Элемент
+
<tr class="row1">
! scope="col" width="300" | Описание
+
<td class="col0">BookFlightResult </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Контейнер для тела ответа бронирования</td>
! scope="col" width="300" | Допустимые значения
 
|-
 
| CategoryId
 
| Обязательный. Идентификатор категории.
 
| Целое число
 
|-
 
| PriceInfo
 
| Обязательный. Элемент содержащий информацию о цене
 
| см. Элемент PriceInfo
 
|}
 
  
Элемент '''PriceInfo'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row2">
|-
+
<td class="col0">ID </td><td class="col1">да </td><td class="col2">число</td><td class="col3">Номер бронирования в системе Nemo.</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row3">
! scope="col" width="300" | Допустимые значения
+
<td class="col0 leftalign">Status  </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Статус брони, возможные значения: booked - забронировано, canceled - бронь отменена, ticket - выписана; UNDEFINED - статус не определён.</td>
|-
 
| style="width:208px; height:35px" |
 
PriceBreakDown
 
| style="width:208px; height:35px" |
 
Необязательный. Информация о ценах, расписанная по каждому дню.
 
| style="width:208px; height:35px" |
 
Список элементов Date
 
|-
 
| Netto
 
| Обязательный. Стоимость от поставщика.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|-
 
| Gross
 
| Обязательный. Общая стоимость.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|}
 
  
Элемент '''Date'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row4">
|-
+
<td class="col0">Code </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row5">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">QueryPlace </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Очередь, в которую помещено бронирование</td>
|-
 
| From
 
| Обязательный. Дата начала действия тарифа
 
| Формат гггг-мм-дд
 
|-
 
| To
 
| Обязательный. Дата окончания действия тарифа
 
| Формат гггг-мм-дд
 
|-
 
| Price
 
| Цена за одну ночь.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|}
 
</div>
 
</div>
 
  
 +
</tr>
 +
<tr class="row6">
 +
<td class="col0 leftalign">Number  </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер очереди</td>
 +
</tr>
 +
<tr class="row7">
 +
<td class="col0">Flight </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Перелёт, по которому была сделана бронь (Результаты проверки доступности для перелёта)</td>
  
 +
</tr>
 +
<tr class="row8">
 +
<td class="col0">Agency </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация об агентстве</td>
 +
</tr>
 +
<tr class="row9">
 +
<td class="col0">ItinReceipts</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Маршрут квитанция. Содержит строку в кодировки Encoding  (как правило в base64), представляющую маршрут квитанцию в формате Format.</td>
  
==== Штрафы за аннуляцию ====
+
</tr>
 +
<tr class="row10">
 +
<td class="col0">Encoding </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Кодировка</td>
 +
</tr>
 +
<tr class="row11">
 +
<td class="col0">Format </td><td class="col1">да </td><td class="col2">строка</td><td class="col3">Формат</td>
  
Всегда в явном виде нужно указывать пользователю информацию о штрафах за аннуляцию до бронирования.
+
</tr>
 +
<tr class="row12">
 +
<td class="col0">Travellers</td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Контейнер для информации о пассажирах</td>
 +
</tr>
 +
<tr class="row13">
 +
<td class="col0">Traveller </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация о пассажире</td>
  
Штрафы получаются по каждой услуге отдельным запросом. Нужно указать тип услуги, идентификатор результата поиска и выбранную категорию.
+
</tr>
 +
<tr class="row14">
 +
<td class="col0">Ticket </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Билет пассажира.</td>
 +
</tr>
 +
<tr class="row15">
 +
<td class="col0">TickectNum </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер билета</td>
  
Внимание. Для отелей из Hotelbeds (Supplier=HOTELBEDS) штрафы до бронирования получить невозможно.
+
</tr>
 +
<tr class="row16">
 +
<td class="col0">Seats</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контейнер мест пассажира.</td>
 +
</tr>
 +
<tr class="row17">
 +
<td class="col0">Seat </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Место в самолёте</td>
  
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Penalty
+
</tr>
 +
<tr class="row18">
 +
<td class="col0">Number </td><td class="col1">да </td><td class="col2">строка</td><td class="col3">Номер места(ряд+номер в ряду)</td>
 +
</tr>
 +
<tr class="row19">
 +
<td class="col0">Characteristic </td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Характеристика места в соответствии со стандартом EDIFACT. См справочник “Таблица характеристик мест”.</td>
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
</tr>
===== Запрос =====
+
<tr class="row20">
<div class="mw-collapsible-content">
+
<td class="col0">SmokingPreference </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Статус курения на этом месте, если Y - место для курящих, если N - место для некурящих.</td>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
</tr>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+
<tr class="row21">
xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenalty">
+
<td class="col0">SegmentNumber </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер сегмента</td>
  <soapenv:Header/>
 
  <soapenv:Body>
 
    <ver:penalty>
 
      <RequestBin>
 
        <Request>
 
          <Penalty>
 
            <Item>
 
              <Type>HOTELS</Type>
 
              <CacheId>1867246</CacheId>
 
              <CategoryId>1</CategoryId>
 
            </Item>
 
          </Penalty>
 
        </Request>
 
        <Source>
 
          <ClientId></ClientId>
 
          <APIKey></APIKey>
 
          <Language>ru</Language>
 
          <Currency>RUB</Currency>
 
        </Source>
 
      </RequestBin>
 
    </ver:penalty>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''Item'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row22">
|-
+
<td class="col0">PersonalInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Личные данные</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row23">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">LoyaltyCard </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Карточка часто летающего пассажира</td>
|-
 
| Type
 
| Обязательный. Тип объекта.
 
| HOTELS
 
|-
 
| CacheId
 
| Обязательный. Идентификатор результата поиска в системе Nemo.
 
| Целое число
 
|-
 
| CategoryId
 
| Обязательный. Идентификатор категории.
 
| Целое число
 
|}
 
  
Элемент '''Source'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row24">
|-
+
<td class="col0">ContactInfo </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактная информация для пассажира</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row25">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">FareStored </td><td class="col1">нет </td><td class="col2">срока: Yes/No </td><td class="col3">Указывает установлена ли / гарантируется ли цена у поставщика. Если параметр отсутствует в ответе, то по умолчанию значение “Yes”.</td>
|-
 
| ClientID
 
| Обязательный. ID клиента в системе Nemo.
 
Можно посмотреть/добавить в "Администрирование" "Веб-служба. Авторизация".
 
| Целое число.
 
|-
 
| APIKey
 
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Латинские буквы и цифры. Всего 32 символа.
 
|}
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
</tr>
===== Ответ =====
+
<tr class="row26">
<div class="mw-collapsible-content">
+
<td class="col0">CancelBookResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа отмены брони</td>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
</tr>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenalty">
+
<tr class="row27">
  <SOAP-ENV:Body>
+
<td class="col0">BookID</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась)</td>
    <ns1:penaltyResponse>
 
      <ResponseBin>
 
        <Response>
 
          <Penalty>
 
            <ItemDateBegin>2013-10-15 00:00:00</ItemDateBegin>
 
            <CancelCharges>
 
              <Charge>
 
                <DateFrom>2013-10-12 00:00:00</DateFrom>
 
                <DateTo>2013-10-15 23:59:59</DateTo>
 
                <Money Currency="RUB">74733.84</Money>
 
              </Charge>
 
              <Charge>
 
                <DateFrom>2013-09-23 00:00:00</DateFrom>
 
                <DateTo>2013-10-11 00:00:00</DateTo>
 
                <Money Currency="RUB">67260.46</Money>
 
              </Charge>
 
              <Charge>
 
                <DateFrom>2013-08-01 17:59:00</DateFrom>
 
                <DateTo>2013-09-22 00:00:00</DateTo>
 
                <Money Currency="RUB">12455.64</Money>
 
              </Charge>
 
            </CancelCharges>
 
            <ModifyCharges/>
 
          </Penalty>
 
        </Response>
 
      </ResponseBin>
 
    </ns1:penaltyResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''Penalty'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row28">
|-
+
<td class="col0">Result</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Результат отмены (войдирования)</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row29">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">Success</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий успешно или нет прошла отмена, возможные значения: true - успешно отменена (войдирование); false - не отменена</td>
|-
 
| ItemDateBegin
 
| Обязательный. Дата начала услуги (дата заселения в отель).
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| CancelCharges
 
| Необязательный. Содержит информацию о штрафах за аннуляцию.
 
| Элемент Charge
 
|-
 
| ModifyCharges
 
| Необязательный. Содержит информацию о штрафах за модификацию.
 
| Элемент Charge
 
|}
 
  
Штрафы разбиваются по временным интервалам. На каждом интервале указывается значение штрафа.
+
</tr>
 +
<tr class="row30">
 +
<td class="col0">GetAirRulesResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа поиска тарифных правил</td>
 +
</tr>
 +
<tr class="row31">
 +
<td class="col0">FlightId</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер перелёта, для которого найдены тарифные правила (будет проводилась проверка доступности)</td>
  
Элемент '''Charge'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row32">
|-
+
<td class="col0">Rules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для правил</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row33">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">Rule</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Правило</td>
|-
 
| DateFrom
 
| Обязательный. Дата/время начала интервала.
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| DateTo
 
| Необязательный. Дата/время окончания интервала.
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| Money
 
| Обязательный. Сумма штрафа.
 
| Вещественное число.
 
Атрибут: Currency - код валюты.
 
|}
 
</div>
 
</div>
 
  
 +
</tr>
 +
<tr class="row34">
 +
<td class="col0">Tarrif</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код тарифа, для которого правило применяется</td>
 +
</tr>
 +
<tr class="row35">
 +
<td class="col0">Name</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Имя правила</td>
  
 +
</tr>
 +
<tr class="row36">
 +
<td class="col0">RuleText</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Текст правила</td>
 +
</tr>
 +
<tr class="row37">
 +
<td class="col0">AirAvailResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа помещения брони в очередь</td>
  
==== Бронирование ====
+
</tr>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
<tr class="row38">
===== Запрос =====
+
<td class="col0">IsAvail</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий доступность перелёта, возможные значения: true - доступен; false - недоступен</td>
<div class="mw-collapsible-content">
+
</tr>
Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.
+
<tr class="row39">
 +
<td class="col0">VoidTicketResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа отмены выписки брони</td>
  
Сейчас же необходимо указывать только 1 услугу-отель (элемент Item) в запросе на бронирование.
+
</tr>
 +
<tr class="row40">
 +
<td class="col0">SearchResult</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер тела ответа для результатов поиска.</td>
 +
</tr>
 +
<tr class="row41">
 +
<td class="col0">Flights</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для перелётов</td>
  
Для успешного запроса нужно указать:
+
</tr>
#Услугу. В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата.
+
<tr class="row42">
#Информация о клиентах. Все клиенты перечисляются в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиента), также добавляются в описание услуги.
+
<td class="col0">Flight</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Представляет информацию о перелёте. Отсутствует если перелётов не найдено (используется в поисковом ответе)</td>
#Заказчик. Указатель на одну персону.
+
</tr>
 +
<tr class="row43">
 +
<td class="col0">WebService</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Веб-сервис (поставщик) от которого был получен перелёт.</td>
  
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Booking
+
</tr>
 +
<tr class="row44">
 +
<td class="col0">ValCompany</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">IATA код авиакомпании. Валидирующий перевозчик, на бланках которого должен выписываться билет.</td>
 +
</tr>
 +
<tr class="row45">
 +
<td class="col0">Segments</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для сегментов перелёта</td>
  
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
</tr>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+
<tr class="row46">
xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DBooking">
+
<td class="col0">Segment</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Представляет информацию о сегменте</td>
  <soapenv:Header/>
+
</tr>
  <soapenv:Body>
+
<tr class="row47">
    <ver:booking>
+
<td class="col0">SegNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер сегмента в перелёте</td>
      <RequestBin>
 
        <Request>
 
          <Booking>
 
            <Items>
 
              <!--Zero or more repetitions:-->
 
              <Item>
 
                <!--You have a CHOICE of the next 3 items at this level-->
 
                <HotelBookData>
 
                  <CacheId>1872666</CacheId>
 
                  <CategoryId>1</CategoryId>
 
                  <Rooms>
 
                    <!--Zero or more repetitions:-->
 
                    <Room Id="2">
 
                      <Persons>
 
                        <!--Zero or more repetitions:-->
 
                        <Person Number="1"/>
 
                        <Person Number="2"/>
 
                      </Persons>
 
                    </Room>
 
                    <Room Id="1">
 
                      <Persons>
 
                        <!--Zero or more repetitions:-->
 
                        <Person Number="3"/>
 
                      </Persons>
 
                    </Room>
 
                  </Rooms>
 
                </HotelBookData>
 
                <Customer>
 
                  <Person Number="1"/>
 
                </Customer>
 
              </Item>
 
            </Items>
 
            <Persons>
 
              <!--Zero or more repetitions:-->
 
              <Person Number="1" Type="ADT">
 
                <!--Optional:-->
 
                <Lastname>IVANOV</Lastname>
 
                <!--Optional:-->
 
                <Name>IVAN</Name>
 
                <!--Optional:-->
 
                <Middlename>IVANOVICH</Middlename>
 
                <!--Optional:-->
 
                <DateOfBirth>1987-12-12</DateOfBirth>
 
                <!--Optional:-->
 
                <Phone>+79871231212</Phone>
 
                <!--Optional:-->
 
                <Email>m.rudenko@mute-lab.com</Email>
 
                <!--Optional:-->
 
                <Gender>MR</Gender>
 
                <!--Optional:-->
 
                <Document Type="P">
 
                  <Series>1811</Series>
 
                  <Number>912219</Number>
 
                  <!--Optional:-->
 
                  <IssueDate>2012-12-12</IssueDate>
 
                  <!--Optional:-->
 
                  <ExpiryDate>2014-12-12</ExpiryDate>
 
                </Document>
 
              </Person>
 
              <Person Number="2" Type="CHD">
 
                <!--Optional:-->
 
                <Lastname>PETROV</Lastname>
 
                <!--Optional:-->
 
                <Name>IVAN</Name>
 
                <!--Optional:-->
 
                <Middlename>MIKHAILOVICH</Middlename>
 
                <!--Optional:-->
 
                <DateOfBirth>2008-12-12</DateOfBirth>
 
                <!--Optional:-->
 
                <Phone>+79871231212</Phone>
 
                <!--Optional:-->
 
                <Email>m.rudenko@mute-lab.com</Email>
 
                <!--Optional:-->
 
                <Gender>MR</Gender>
 
                <!--Optional:-->
 
                <Document Type="P">
 
                  <Series>1866</Series>
 
                  <Number>913319</Number>
 
                  <!--Optional:-->
 
                  <IssueDate>2012-12-12</IssueDate>
 
                  <!--Optional:-->
 
                  <ExpiryDate>2014-12-12</ExpiryDate>
 
                </Document>
 
              </Person>
 
              <Person Number="3" Type="ADT">
 
                <!--Optional:-->
 
                <Lastname>SIDOROV</Lastname>
 
                <!--Optional:-->
 
                <Name>IVAN</Name>
 
                <!--Optional:-->
 
                <Middlename>SERGEEVICH</Middlename>
 
                <!--Optional:-->
 
                <DateOfBirth>1987-12-12</DateOfBirth>
 
                <!--Optional:-->
 
                <Phone>+79871231212</Phone>
 
                <!--Optional:-->
 
                <Email>m.rudenko@mute-lab.com</Email>
 
                <!--Optional:-->
 
                <Gender>MR</Gender>
 
                <!--Optional:-->
 
                <Document Type="P">
 
                  <Series>1866</Series>
 
                  <Number>913319</Number>
 
                  <!--Optional:-->
 
                  <IssueDate>2012-12-12</IssueDate>
 
                  <!--Optional:-->
 
                  <ExpiryDate>2014-12-12</ExpiryDate>
 
                </Document>
 
              </Person>
 
            </Persons>
 
          </Booking>
 
        </Request>
 
        <Source>
 
          <ClientId></ClientId>
 
          <APIKey></APIKey>
 
          <Language>ru</Language>
 
          <Currency>RUB</Currency>
 
        </Source>
 
      </RequestBin>
 
    </ver:booking>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''Booking'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row48">
|-
+
<td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">IATA код аэропорта отправления</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row49">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">DepTerminal</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Код терминала отправления</td>
|-
 
| Items
 
| Обязательный. Массив элементов Item.
 
| Элемент Item
 
|-
 
| Customer
 
| Обязательный. Элемент установки заказчика.
 
| &nbsp;
 
|-
 
| Persons
 
| Обязательный. Массив клиентов.
 
| &nbsp;
 
|}
 
  
Данные об услугах записываются в элементы &lt;Item&gt;.
+
</tr>
 +
<tr class="row50">
 +
<td class="col0">ArrAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">IATA код аэропорта прибытия</td>
 +
</tr>
 +
<tr class="row51">
 +
<td class="col0">ArrTerminal</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Код терминала прибытия</td>
  
Элемент '''Item'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row52">
|-
+
<td class="col0">OpAirline</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код авиакомпании, выполняющей рейс</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row53">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">MarkAirline</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код авиакомпании, продающей билет</td>
|-
 
| HotelBookData
 
| Обязательный. В зависимости от типа объекта бронирования. В данный момент возможно указать только данные для отеля.
 
| &nbsp;
 
|-
 
| Persons
 
| Необязательный. Привязка клиентов к услуге. Если не указаны, будут привязаны все из указанных в главном элементе Booking.
 
| [<Person Number=''"1"'' />]
 
|}
 
  
<u>Бронирование отеля.</u>
+
</tr>
Для бронирования отеля необходимы следующие параметры:
+
<tr class="row54">
# ID результата поиска - один отель
+
<td class="col0">FlightNumber</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер рейса</td>
# ID выбранной категории этого отеля
+
</tr>
# Распределение клиентов по комнатам.
+
<tr class="row55">
 +
<td class="col0">AircraftType</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код типа самолёта</td>
  
Элемент '''HotelBookData'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row56">
|-
+
<td class="col0">DepDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row57">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">ArrDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС</td>
|-
 
| CacheId
 
| Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.
 
| Целое число
 
|-
 
| CategoryId
 
| Обязательный. Идентификатор категории.
 
| Целое число
 
|-
 
| Rooms
 
| Обязательный. Распределение клиентов по комнатам.
 
| Список элементов Room
 
|-
 
| Room
 
| Атрибут Id
 
Ид комнаты из результата поиска
 
  
Элемент Persons
+
</tr>
| Целое число
+
<tr class="row58">
|-
+
<td class="col0">StopNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число остановок</td>
| Persons
+
</tr>
| Обязательный.
+
<tr class="row59">
Список людей
+
<td class="col0">Meal</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Тип питания, возможные значения: UNDEFINED - неизвестно; N - Нет питания; P - Алкогольные напитки в продаже; B - Завтрак; O - Холодная еда; C - Бесплатные алкогольные напитки; K - Континтальный завтрак; D - Обед; F - Еда в продаже; G - Еда/напитки в продаже; H - Горячая еда; L - Ланч; M - Еда; R - Освежающие еда/напитки бесплатно; V - Освежающие еда/напитки за отдельную плату; S - Закуска</td>
| Список элементов Person
 
|-
 
| Person
 
| Обязательный.
 
Атрибут Number
 
Номер пассажира из Booking ->Persons->Person->Number
 
|
 
Целое число
 
|}
 
  
<u>Информация о клиентах.</u>
+
</tr>
Для успешного завершения бронирования нужно указать как минимум одного клиента. Максимальное число клиентов в текущей версии не ограничено.
+
<tr class="row60">
 +
<td class="col0">BookingCodes</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для классов перелёта</td>
 +
</tr>
 +
<tr class="row61">
 +
<td class="col0">BookingCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код класса перелёта. Если производится поиск по расписанию, то может встречаться несколько раз.</td>
  
Набор обязательных данных может меняться в зависимости от типов услуг в бронировании. Рекомендуемый набор обязательных параметров: Lastname, Name, DateOfBirth. Остальные обязательные параметры будут устанавливаться индивидуально при подключении к сервису.
+
</tr>
 +
<tr class="row62">
 +
<td class="col0">FlightTime</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Время перелёта в минутах</td>
 +
</tr>
 +
<tr class="row63">
 +
<td class="col0">TimeZone</td><td class="col1">нет</td><td class="col2 rightalign"> сложный</td><td class="col3">Информация о временных зона прибытия и отправления</td>
  
Элемент '''Person'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row64">
|-
+
<td class="col0">Departure</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Часовой пояс отправления, UTC (смещение относительно Гринвича)</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row65">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">Arrival</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Часовой пояс прибытия, UTC (смещение относительно Гринвича)</td>
|-
 
| Атрибут Number
 
| Обязательный. Номер клиента, необходим для правильной привязки к услугам.
 
| Целое число
 
|-
 
| Type
 
| Обязательный.
 
Тип пассажира.
 
| Строка.
 
Возможные значения:
 
ADT
 
CLD
 
INF
 
|-
 
| Lastname
 
| Фамилия.
 
| Строка в произвольном формате.
 
|-
 
| Name
 
| Имя.
 
| Строка в произвольном формате.
 
|-
 
| Middlename
 
| Отчество.
 
| Строка в произвольном формате.
 
|-
 
| DateOfBirth
 
| Дата рождения.
 
| Формат гггг-мм-дд.
 
|-
 
| Phone
 
| Телефон.
 
Рекомендуемый формат:
 
+79871234567
 
| Строка
 
|-
 
| Email
 
| Электронный адрес.
 
| Строка
 
|-
 
| Gender
 
| Пол.
 
| MR - мужчина,
 
MS - женщина.
 
|-
 
| Document
 
| Документ
 
| Элемент Document
 
|}
 
  
Для некоторых услуг может потребоваться информация о документах.
+
</tr>
 +
<tr class="row66">
 +
<td class="col0">ETicket</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3 rightalign"> Индикатор электронного билета,  возможные значения: true - билет является электронным, false - билет не является электронным.</td>
 +
</tr>
 +
<tr class="row67">
 +
<td class="col0">Baggage</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Информация о багаже</td>
  
Элемент '''Document'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row68">
|-
+
<td class="col0">Measure</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Мера веса. K - килограммы, PC - сумки/клади</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row69">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">Value</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Количество багажа</td>
|-
 
| Атрибут Type
 
| Обязательный. Тип документа.
 
| P - загранпаспорт
 
C - внутренний гражданский паспорт
 
B - свидетельство о рождении
 
|-
 
| Series
 
| Необязательный. Серия документа. Можно указать слитно с номером в Number.
 
| Строка в произвольном формате
 
|-
 
| Number
 
| Обязательный. Номер документа.
 
| Строка в произвольном формате
 
|-
 
| IssueDate
 
| Необязательный. Дата выдачи документа.
 
| Формат гггг-мм-дд
 
|-
 
| ExpiryDate
 
| Необязательный. Дата истечения срока действия документа.
 
| Формат гггг-мм-дд
 
|}
 
  
Элемент '''Source'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row70">
|-
+
<td class="col0">PricingInfo</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о ценах. Отсутствует в случае, если производится поиск по расписанию.</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row71">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">Refundable</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор показывающий является ли билет возвратным или нет,  возможные значения: true - возвратный (нет штрафов за возврат), false - невозвратный (могут быть штрафы за возврат)</td>
|-
 
| ClientID
 
| Обязательный. ID клиента в системе Nemo.
 
Можно посмотреть/добавить в "Администрирование" "Веб-служба. Авторизация".
 
| Целое число.
 
|-
 
| APIKey
 
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
 
Можно посмотреть/добавить в "Администрирование" "Веб-служба. Авторизация".
 
| Латинские буквы и цифры. Всего 32 символа.
 
|}
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
</tr>
===== Ответ =====
+
<tr class="row72">
<div class="mw-collapsible-content">
+
<td class="col0">PassengerFare</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Информация о ценах для конкретного типа пассажиров.</td>
После выполнения запроса сразу поступит информация о бронировании. В первую очередь нужно внимательно проверить статусы &lt;Status&gt; всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска RQ (по запросу), то статус скорее всего будет не равен «booked». Через некоторое время проверять реальный статус бука отправляя запрос на чтение данных о бронировании.
+
</tr>
 +
<tr class="row73">
 +
<td class="col0">Quantity</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число пассажиров данного типа</td>
  
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
</tr>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
+
<tr class="row74">
xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DBooking"
+
<td class="col0">BaseFare</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Цена в базовой валюте(за одного пассажира)</td>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
</tr>
  <SOAP-ENV:Body>
+
<tr class="row75">
    <ns1:bookingResponse>
+
<td class="col0">EquiveFare</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Цена в эквивалентной валюте(за одного пассажира), при поиске цены не возвращается</td>
      <ResponseBin>
 
        <Response>
 
          <Booking>
 
            <Items>
 
              <Item Id="386610">
 
                <Hotel Id="1872666">
 
                  <Supplier>GTA</Supplier>
 
                  <CityId>22046</CityId>
 
                  <DateBegin>2013-10-15</DateBegin>
 
                  <DateEnd>2013-10-18</DateEnd>
 
                  <CacheId>1872666</CacheId>
 
                  <Name>ADLON KEMPINSKI</Name>
 
                  <Categories>
 
                    <Category Id="1">
 
                      <Rooms>
 
                        <Room Count="1" Id="1" ServiceId="1"/>
 
                        <Room Count="1" Id="2" ServiceId="2"/>
 
                      </Rooms>
 
                      <TotalPrice Currency="RUB">74733.84</TotalPrice>
 
                    </Category>
 
                  </Categories>
 
                  <Services>
 
                    <Service Id="1" Status="OK">
 
                      <Desc>Standard Twin</Desc>
 
                      <Meal>Full Breakfast</Meal>
 
                      <Price Currency="RUB">37366.92</Price>
 
                    </Service>
 
                    <Service Id="2" Status="OK">
 
                      <Desc>Standard Twin</Desc>
 
                      <Meal>Full Breakfast</Meal>
 
                      <Price Currency="RUB">37366.92</Price>
 
                    </Service>
 
                  </Services>
 
                  <Rooms>
 
                    <Room Id="1" Type="TWIN"/>
 
                    <Room Id="2" Type="SNGL"/>
 
                  </Rooms>
 
                </Hotel>
 
                <Type>HOTELS</Type>
 
                <Status>waiting</Status>
 
                <Prices>
 
                  <Price Currency="RUB">74733.84</Price>
 
                  <Charges Currency="RUB">0</Charges>
 
                  <Commission Currency="RUB">0</Commission>
 
                  <Penalty Currency="RUB">0</Penalty>
 
                  <TotalPrice Currency="RUB">74733.84</TotalPrice>
 
                </Prices>
 
                <Dates>
 
                  <BookingDate>2013-08-01 19:49:56</BookingDate>
 
                  <UpdateDate>2013-08-01 19:49:57</UpdateDate>
 
                  <CancelDate xsi:nil="true"/>
 
                  <PenaltyDate>2013-07-31 19:10:37</PenaltyDate>
 
                  <AutoCancelDate>2013-08-01 19:51:56</AutoCancelDate>
 
                  <ConfirmationLimit/>
 
                </Dates>
 
                <Statuses>
 
                  <PaymentStatus>1</PaymentStatus>
 
                  <DocumentStatus>1</DocumentStatus>
 
                  <DeliveryStatus>1</DeliveryStatus>
 
                  <InvoiceStatus>1</InvoiceStatus>
 
                  <ProblemStatus>1</ProblemStatus>
 
                </Statuses>
 
                <Customer>
 
                  <Person Number="1"/>
 
                </Customer>
 
                <Persons>
 
                  <Person Number="1"/>
 
                  <Person Number="2"/>
 
                  <Person Number="3"/>
 
                </Persons>
 
              </Item>
 
            </Items>
 
            <Persons>
 
              <Person Number="1">
 
                <Lastname>IVANOV</Lastname>
 
                <Name>IVAN</Name>
 
                <Middlename>IVANOVICH</Middlename>
 
                <DateOfBirth xsi:nil="true"/>
 
                <Phone>+79871231212</Phone>
 
                <Email>m.rudenko@mute-lab.com</Email>
 
                <Gender xsi:nil="true"/>
 
                <Document Type="P">
 
                  <Series>1811</Series>
 
                  <Number>912219</Number>
 
                  <IssueDate>2012-12-12 00:00:00</IssueDate>
 
                  <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
 
                </Document>
 
              </Person>
 
              <Person Number="2">
 
                <Lastname>PETROV</Lastname>
 
                <Name>IVAN</Name>
 
                <Middlename>MIKHAILOVICH</Middlename>
 
                <DateOfBirth xsi:nil="true"/>
 
                <Phone>+79871231212</Phone>
 
                <Email>m.rudenko@mute-lab.com</Email>
 
                <Gender xsi:nil="true"/>
 
                <Document Type="P">
 
                  <Series>1866</Series>
 
                  <Number>913319</Number>
 
                  <IssueDate>2012-12-12 00:00:00</IssueDate>
 
                  <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
 
                </Document>
 
              </Person>
 
              <Person Number="3">
 
                <Lastname>SIDOROV</Lastname>
 
                <Name>IVAN</Name>
 
                <Middlename>SERGEEVICH</Middlename>
 
                <DateOfBirth xsi:nil="true"/>
 
                <Phone>+79871231212</Phone>
 
                <Email>m.rudenko@mute-lab.com</Email>
 
                <Gender xsi:nil="true"/>
 
                <Document Type="P">
 
                  <Series>1866</Series>
 
                  <Number>913319</Number>
 
                  <IssueDate>2012-12-12 00:00:00</IssueDate>
 
                  <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
 
                </Document>
 
              </Person>
 
            </Persons>
 
          </Booking>
 
        </Response>
 
      </ResponseBin>
 
    </ns1:bookingResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
  
Структура ответа очень похожа на запрос. Выделяются те же основные элементы.
+
</tr>
 +
<tr class="row76">
 +
<td class="col0">TotalFare</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Полная стоимость для пассажиров данного типа включая таксы (за одного пассажира), при поиске цены не возвращается</td>
 +
</tr>
 +
<tr class="row77">
 +
<td class="col0">Currency</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код валюты.</td>
  
Элемент '''Booking'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row78">
|-
+
<td class="col0">Amount</td><td class="col1">да</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение стоимости.</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row79">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">Taxes</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для такс, при поиске цены не возвращается</td>
|-
 
| Items
 
| Обязательный. Содержит элемент(ы) Item.
 
| Элемент Item
 
|-
 
| Persons
 
| Обязательный. Здесь перечислены все клиенты заказа.
 
| Элемент Person
 
|}
 
  
В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
+
</tr>
 +
<tr class="row80">
 +
<td class="col0">Tax</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Одна такса</td>
 +
</tr>
 +
<tr class="row81">
 +
<td class="col0">CurCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код валюты для таксы</td>
  
Элемент '''Item'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row82">
|-
+
<td class="col0">TaxCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код таксы</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row83">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">Amount</td><td class="col1">да</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение таксы</td>
|-
 
| Атрибут Id
 
| Обязательный.
 
Номер заказа в системе Nemo.
 
| Целое число
 
|-
 
| Type
 
| Обязательный.
 
Тип объекта бронирования.
 
| HOTELS
 
|-
 
| Status
 
| Обязательный. Статус объекта бронирования .
 
| booked - забронирован
 
cancelled - аннулирован
 
pending confirmation - в процессе подтверждения
 
pending – произошла попытка бронирования, которое не было завершено
 
waiting – ожидается результат запроса на бронирование
 
|-
 
| Prices
 
| Обязательный. Данные о ценах.
 
| см. Элемент Prices
 
|-
 
| Dates
 
| Обязательный. Данные о датах.
 
| см. Элемент Dates
 
|-
 
| Statuses
 
| Обязательный. Различные дополнительные статусы заказанной услуги.
 
| см. Элемент Statuses
 
|-
 
| Persons
 
| Обязательный. Содержит клиентов привязанных к услуге.
 
| элементы Person
 
|-
 
| Hotel
 
| Необязательный. Элемент с данными об отеле.
 
| см. элемент Hotel (результат поиска отеля)
 
|}
 
  
Информация о цене услуги вынесена в отдельную ветку:
+
</tr>
 +
<tr class="row84">
 +
<td class="col0">Tariffs</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тарифов</td>
 +
</tr>
 +
<tr class="row85">
 +
<td class="col0">Tariff</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для одного тарифа</td>
  
Элемент '''Prices'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
<tr class="row86">
|-
+
<td class="col0">Code</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код тарифа</td>
! scope="col" width="200" | Элемент
+
</tr>
! scope="col" width="300" | Описание
+
<tr class="row87">
! scope="col" width="300" | Допустимые значения
+
<td class="col0">SegNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер сегмента для которого применяется тариф, если тариф применяется для всех сегментов, то возвращается 0.</td>
|-
 
| Price
 
| Обязательный. Базовая цена услуги.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|-
 
| Charges
 
| Необязательный. Сумма дополнительных сборов.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|-
 
| Commission
 
| Необязательный. Сумма комиссий (вычитается из общей стоимости).
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|-
 
| Penalty
 
| Необязательный. Сумма штрафов.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|-
 
| TotalPrice
 
| Обязательный. Итоговая стоимость.
 
= Price + Charges + Commission
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|}
 
  
Информация о датах услуги также вынесена в отдельную ветку:
+
</tr>
 +
<tr class="row88">
 +
<td class="col0">FareCalc</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Строка расчёта цены</td>
 +
</tr>
 +
<tr class="row89">
 +
<td class="col0">LastTicketDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если бронирование не будет аннулировано или выписано до этого времени, то могут быть применены штрафы.</td>
  
Элемент '''Dates'''
+
</tr>
{| style="width: 800px" class="wikitable"
+
</table>
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| BookingDate
 
| Обязательный. Дата бронирования.
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| UpdateDate
 
| Необязательный. Дата обновления.
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| CancelDate
 
| Необязательный. Дата аннуляции.
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| PenaltyDate
 
| Необязательный. Дата наступления штрафов.
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| AutoCancelDate
 
| Необязательный. Дата автоаннулирования.
 
| Формат гггг-мм-дд чч:мм:сс
 
|}
 
 
 
Дополнительные статусы:
 
 
 
Элемент '''Statuses'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| PaymentStatus
 
| Необязательный.
 
Статус оплаты.
 
| Целое число
 
1 - неоплачено
 
2 - частично оплачено
 
3 - оплачено
 
|-
 
| DocumentStatus
 
| Необязательный.
 
Статус ваучера.
 
| Целое число
 
1 - документ не сформирован
 
2 - документ сформирован
 
|-
 
| DeliveryStatus
 
| Необязательный.
 
Статус доставки.
 
| Целое число
 
1 - не доставлен
 
2 - доставлен
 
|-
 
| InvoiceStatus
 
| Необязательный.
 
Статус счета.
 
| Целое число
 
1 - счет выставлен.
 
2 - счет не выставлен.
 
|}
 
 
 
Информация о клиентах заказа полностью повторяет структуру запроса.
 
 
</div>
 
</div>
 
</div>
 
</div>
  
 +
==API Отелей==
 +
'''Агентский API Отелей''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
  
 +
Подробнее можно узнать в нашей специальной статье [http://support.nemo.travel/ru/%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D1%81%D0%BA%D0%B8%D0%B9_API_%D0%9E%D1%82%D0%B5%D0%BB%D0%B5%D0%B9 Агентский АПИ отелей]
  
==== Подтверждение бронирования ====
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
===== Запрос =====
 
<div class="mw-collapsible-content">
 
Подтверждение бронирования заказа.
 
  
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=ConfirmBooking
 
  
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
==Выгрузки статистики продаж через API (Метапоиск)==
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DConfirmBooking">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
      <ver:confirm>
 
        <RequestBin>
 
            <Request>
 
              <BookingId>179547</BookingId>
 
            </Request>
 
            <Source>
 
              <ClientId></ClientId>
 
              <APIKey></APIKey>
 
              <Language>ru</Language>
 
              <Currency>RUB</Currency>
 
            </Source>
 
        </RequestBin>
 
      </ver:confirm>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''Request'''
+
'''Метапоисковая система''' (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| BookingID
 
| Обязательный. Идентификатор заказа в системе Nemo.
 
| Целое число
 
|}
 
  
Элемент '''Source'''
+
В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) <u>за определенный период бронирования заказов</u> в виде файла данных в формате XML.
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| ClientID
 
| Обязательный. ID клиента в системе Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Целое число.
 
|-
 
| APIKey
 
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Латинские буквы и цифры. Всего 32 символа.
 
|}
 
</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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DConfirmBooking">
 
  <SOAP-ENV:Body>
 
      <ns1:confirmResponse>
 
        <ResponseBin>
 
            <Response>
 
              <Books>
 
                  <Book>
 
                    <Id>179547</Id>
 
                    <Status>booked</Status>
 
                  </Book>
 
              </Books>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:confirmResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
 +
==Выгрузка информации о заказах ==
 +
'''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки.
 +
Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]]
  
==== Выгрузка актуальных данных по заказу(ам) ====
+
== API Синхронизации пользователей и субагентов ==
Используется для экспорта бронирований и для обновления данных в локальной клиентской базе.
+
Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей.
 +
Модуль является компонентом, включаемым и отключаемым из административной части.  
  
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Export
+
О механизме авторизации B2B-пользователей, синхронизации учетных записей можно прочитать в статье [[Синхронизация пользователей]]
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
==API Кросс­авторизации==
===== Запрос =====
+
'''Авторизация пользователей из внешних систем''' — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п)
<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DExport">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
    <ver:export>
 
      <RequestBin>
 
        <Request>
 
          <Export>
 
            <Items>
 
              <!--Zero or more repetitions:-->
 
              <Item Id="386621"/>
 
            </Items>
 
          </Export>
 
        </Request>
 
        <Source>
 
          <ClientId></ClientId>
 
          <APIKey></APIKey>
 
          <Language>ru</Language>
 
          <Currency>RUB</Currency>
 
        </Source>
 
      </RequestBin>
 
    </ver:export>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''Item'''
+
Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу:
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Атрибут Id
 
| Обязательный. Идентификатор заказа в системе Nemo.
 
| Целое число
 
|}
 
  
Элемент '''Source'''
+
[http://hostname/authorization_reol.wsdl http://hostname/authorization_reol.wsdl]
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| ClientID
 
| Обязательный. ID клиента в системе Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Целое число.
 
|-
 
| APIKey
 
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Латинские буквы и цифры. Всего 32 символа.
 
|}
 
</div>
 
</div>
 
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Ответ =====
+
===== Запрос =====
 
<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;">
 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
 
xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DExport"
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <SOAP-ENV:Body>
 
    <ns1:exportResponse>
 
      <ResponseBin>
 
        <Response>
 
          <Export>
 
            <Items>
 
              <Item Id="386621">
 
                <Hotel Id="1872666">
 
                  <Supplier>GTA</Supplier>
 
                  <CityId>22046</CityId>
 
                  <DateBegin>2013-10-15</DateBegin>
 
                  <DateEnd>2013-10-18</DateEnd>
 
                  <CacheId>1872666</CacheId>
 
                  <Name>ADLON KEMPINSKI</Name>
 
                  <Categories>
 
                    <Category Id="1">
 
                      <Rooms>
 
                        <Room Count="1" Id="1" ServiceId="1"/>
 
                        <Room Count="1" Id="2" ServiceId="2"/>
 
                      </Rooms>
 
                      <TotalPrice Currency="RUB">74733.84</TotalPrice>
 
                    </Category>
 
                  </Categories>
 
                  <Services>
 
                    <Service Id="1" Status="OK">
 
                      <Desc>Standard Twin</Desc>
 
                      <Meal>Full Breakfast</Meal>
 
                      <Price Currency="RUB">37366.92</Price>
 
                    </Service>
 
                    <Service Id="2" Status="OK">
 
                      <Desc>Standard Twin</Desc>
 
                      <Meal>Full Breakfast</Meal>
 
                      <Price Currency="RUB">37366.92</Price>
 
                    </Service>
 
                  </Services>
 
                  <Rooms>
 
                    <Room Id="1" Type="TWIN"/>
 
                    <Room Id="2" Type="SNGL"/>
 
                  </Rooms>
 
                </Hotel>
 
                <Type>HOTELS</Type>
 
                <Status>waiting</Status>
 
                <Prices>
 
                  <Price Currency="RUB">74733.84</Price>
 
                  <Charges Currency="RUB">0</Charges>
 
                  <Commission Currency="RUB">0</Commission>
 
                  <Penalty Currency="RUB">0</Penalty>
 
                  <TotalPrice Currency="RUB">74733.84</TotalPrice>
 
                </Prices>
 
                <Dates>
 
                  <BookingDate>2013-08-01 20:21:47</BookingDate>
 
                  <UpdateDate>2013-08-01 20:35:01</UpdateDate>
 
                  <CancelDate xsi:nil="true"/>
 
                  <PenaltyDate>2013-07-31 19:10:37</PenaltyDate>
 
                  <AutoCancelDate>2013-08-01 20:23:47</AutoCancelDate>
 
                  <ConfirmationLimit/>
 
                </Dates>
 
                <Statuses>
 
                  <PaymentStatus>1</PaymentStatus>
 
                  <DocumentStatus>1</DocumentStatus>
 
                  <DeliveryStatus>1</DeliveryStatus>
 
                  <InvoiceStatus>1</InvoiceStatus>
 
                  <ProblemStatus>1</ProblemStatus>
 
                </Statuses>
 
                <Customer>
 
                  <Person Number="1"/>
 
                </Customer>
 
                <Persons>
 
                  <Person Number="1"/>
 
                  <Person Number="2"/>
 
                  <Person Number="3"/>
 
                </Persons>
 
              </Item>
 
            </Items>
 
            <Persons>
 
              <Person Number="1">
 
                <Lastname>IVANOV</Lastname>
 
                <Name>IVAN</Name>
 
                <Middlename>IVANOVICH</Middlename>
 
                <DateOfBirth xsi:nil="true"/>
 
                <Phone>+79871231212</Phone>
 
                <Email>m.rudenko@mute-lab.com</Email>
 
                <Gender xsi:nil="true"/>
 
                <Document Type="P">
 
                  <Series>1811</Series>
 
                  <Number>912219</Number>
 
                  <IssueDate>2012-12-12 00:00:00</IssueDate>
 
                  <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
 
                </Document>
 
              </Person>
 
              <Person Number="2">
 
                <Lastname>PETROV</Lastname>
 
                <Name>IVAN</Name>
 
                <Middlename>MIKHAILOVICH</Middlename>
 
                <DateOfBirth xsi:nil="true"/>
 
                <Phone>+79871231212</Phone>
 
                <Email>m.rudenko@mute-lab.com</Email>
 
                <Gender xsi:nil="true"/>
 
                <Document Type="P">
 
                  <Series>1866</Series>
 
                  <Number>913319</Number>
 
                  <IssueDate>2012-12-12 00:00:00</IssueDate>
 
                  <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
 
                </Document>
 
              </Person>
 
              <Person Number="3">
 
                <Lastname>SIDOROV</Lastname>
 
                <Name>IVAN</Name>
 
                <Middlename>SERGEEVICH</Middlename>
 
                <DateOfBirth xsi:nil="true"/>
 
                <Phone>+79871231212</Phone>
 
                <Email>m.rudenko@mute-lab.com</Email>
 
                <Gender xsi:nil="true"/>
 
                <Document Type="P">
 
                  <Series>1866</Series>
 
                  <Number>913319</Number>
 
                  <IssueDate>2012-12-12 00:00:00</IssueDate>
 
                  <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
 
                </Document>
 
              </Person>
 
            </Persons>
 
          </Export>
 
        </Response>
 
      </ResponseBin>
 
    </ns1:exportResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
  
Формат ответа аналогичен результату бронирования.
+
<pre>?xml version ='1.0' encoding ='UTF-8' ?>
</div>
+
<definitions name='Authorization'
</div>
+
targetNamespace='http://example.org/Authorization'
 +
xmlns:tns=' http://example.org/Authorization '
 +
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
 +
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
 +
xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
 +
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
 +
xmlns='http://schemas.xmlsoap.org/wsdl/'>
 +
 +
<message name='getAuthorizationRequest'>
 +
<part name='login' type='xsd:string'/>
 +
<part name='pass' type='xsd:string'/>
 +
</message>
 +
<message name='getAuthorizationResponse'>
 +
<part name='session_id' type='xsd:string'/>
 +
<part name='user_id' type='xsd:string'/>
 +
<part name='login' type='xsd:string'/>
 +
<part name='status' type='xsd:string'/>
 +
</message>
 +
 +
<portType name='AuthorizationPortType'>
 +
<operation name='getAuthorization'>
 +
  <input message='tns:getAuthorizationRequest'/>
 +
  <output message='tns:getAuthorizationResponse'/>
 +
</operation>
 +
</portType>
 +
 +
<binding name='AuthorizationBinding' type='tns:AuthorizationPortType'>
 +
<soap:binding style='rpc'
 +
  transport='http://schemas.xmlsoap.org/soap/http'/>
 +
<operation name='getAuthorization'>
 +
  <soap:operation soapAction='urn:xmethods-delayed-quotes#getAuthorization'/>
 +
  <input>
 +
  <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
 +
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
 +
  </input>
 +
  <output>
 +
  <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
 +
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
 +
  </output>
 +
</operation>
 +
</binding>
 +
 +
<service name='AuthorizationService'>
 +
<port name='AuthorizationPort' binding='AuthorizationBinding'>
 +
  <soap:address location='http://nemo.local/controllers/authorization/auth_server.php'/>
 +
</port>
 +
</service>
 +
</definitions></pre>
 +
</div></div>
  
 +
==Передача параметров в форму поиска (FastSearch)==
  
 +
В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.
  
==== Аннуляция заказа ====
+
Примеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch - передача параметров в форму]]
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CancelBooking
 
<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCancelBooking">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
    <ver:cancel>
 
      <RequestBin>
 
        <Request>
 
          <CancelBooking>           
 
            <Item Id="386621"/>
 
          </CancelBooking>
 
        </Request>
 
        <Source>
 
          <ClientId></ClientId>
 
          <APIKey></APIKey>
 
          <Language>ru</Language>
 
          <Currency>RUB</Currency>
 
        </Source>
 
      </RequestBin>
 
    </ver:cancel>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''Item'''
+
FastSearch так же работает и для отелей, подробности в статье [[Fast Search для отелей]]
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Атрибут Id
 
| Обязательный. Идентификатор заказа в системе Nemo.
 
| Целое число
 
|}
 
  
Элемент '''Source'''
+
<!-- Т.к. это внутренний формат обмена данными между Немо и одним клиентом, то данную инфу скроем в комментарии
{| style="width: 800px" class="wikitable"
+
==Проверка в сторонней системе возможности тикетинга==
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| ClientID
 
| Обязательный. ID клиента в системе Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Целое число.
 
|-
 
| APIKey
 
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Латинские буквы и цифры. Всего 32 символа.
 
|}
 
</div>
 
</div>
 
  
===== Ответ =====
+
При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет
см. результаты бронирования.
+
<pre><m:Opportunity>Да</m:Opportunity></pre>
 +
Пример запроса "GetDebtCounterparty"
 +
<pre>
 +
<?xml version="1.0" encoding="UTF-8"?>
  
=== Статические данные ===
+
  <SOAP-ENV:Body>
Для работы с веб-сервисом Nemo необходимо выгрузить статичные данные. Это данные о странах, городах и отелях.
+
    <ns1:GetDebtCounterparty>
==== Страна ====
+
      <ns1:ExternalUserId>00000001</ns1:ExternalUserId>
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CountryStatic
+
      <ns1:ExternalPaymentId>00000001</ns1:ExternalPaymentId>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
       <ns1:BaseFare>2490</ns1:BaseFare>
====== Запрос ======
+
      <ns1:Tax>643</ns1:Tax>
<div class="mw-collapsible-content">
+
      <ns1:ValVendorCommission>49.8</ns1:ValVendorCommission>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
      <ns1:Locator>0X97T6</ns1:Locator>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+
      <ns1:Discount>0</ns1:Discount>
xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic">
+
      <ns1:Charge>0</ns1:Charge>
  <soapenv:Header/>
+
       <ns1:Sum>3133</ns1:Sum>
  <soapenv:Body>
+
      <ns1:TotalPrice>3658.1</ns1:TotalPrice>
       <ver:countries>
+
      <ns1:GDSCurrency>RUB</ns1:GDSCurrency>
        <RequestBin>
+
      <ns1:OrderCurrency>RUB</ns1:OrderCurrency>
            <Request>
+
       <ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate>
              <CountryStatic>
+
      <ns1:beginDate>2014-08-30T11:05:00</ns1:beginDate>
              </CountryStatic>
+
    </ns1:GetDebtCounterparty>
            </Request>
+
  </SOAP-ENV:Body>
            <Source>
 
              <ClientId></ClientId>
 
              <APIKey></APIKey>
 
              <Language>ru</Language>
 
              <Currency>RUB</Currency>
 
            </Source>
 
        </RequestBin>
 
       </ver:countries>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
 
 
Элемент '''Request'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| CountryStatic
 
| Пустой элемент
 
| <br/>
 
|}
 
 
 
Элемент '''Source'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| ClientID
 
| Обязательный. ID клиента в системе Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Целое число.
 
|-
 
| APIKey
 
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Латинские буквы и цифры. Всего 32 символа.
 
|}
 
</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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic"
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <SOAP-ENV:Body>
 
       <ns1:countriesResponse>
 
        <ResponseBin>
 
            <Response>
 
              <CountryStatic>
 
                  <Countries>
 
                    <Country Id="4">
 
                        <Code>AF</Code>
 
                        <Continent>asia</Continent>
 
                        <Data>
 
                          <Info Language="RU">
 
                              <Name>Афганистан</Name>
 
                          </Info>
 
                          <Info Language="EN">
 
                              <Name>Afghanistan</Name>
 
                          </Info>
 
                        </Data>
 
                    </Country>
 
                  </Countries>
 
              </CountryStatic>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:countriesResponse>
 
  </SOAP-ENV:Body>
 
 
</SOAP-ENV:Envelope>
 
</SOAP-ENV:Envelope>
</syntaxhighlight>
 
  
Элемент '''CountryStatic'''
+
</pre>
{| style="width: 800px" class="wikitable"
+
Пример ответа "GetDebtCounterparty"
|-
+
<pre>
! scope="col" width="200" | Элемент
+
<?xml version="1.0"?>
! scope="col" width="300" | Описание
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
! scope="col" width="300" | Допустимые значения
+
  <soap:Header/>
|-
+
  <soap:Body>
| Countries
+
    <m:GetDebtCounterpartyResponse xmlns:m="http://DOMEN_NAME/avia">
| Обязательный
+
      <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="m:AnswerDebt">
| Набор элементов Country
+
        <m:Opportunity>Да</m:Opportunity>
|}
+
        <m:Message1/>
 +
      </m:return>
 +
    </m:GetDebtCounterpartyResponse>
 +
  </soap:Body>
 +
</soap:Envelope>
  
Элемент '''Country'''
+
</pre>
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Атрибут Id
 
| Обязательный. Идентификатор страны (ISO).
 
| Целое число
 
|-
 
| Code
 
| Обязательный. Код страны ISO.
 
| Строка из 2-х латинских букв
 
|-
 
| Continent
 
| Обязательный. Название континента.
 
| Строка.
 
|-
 
| Data
 
| Обязательный. Информация требующая перевода.
 
| Набор элементов Info.
 
|}
 
  
Элемент '''Info'''
+
== Загрузка счетов из сторонней системы ==
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Атрибут Language
 
| Обязательный. Язык в котором представлена информация.
 
| Строка из 2-х латинских букв.
 
|-
 
| Name
 
| Обязательный. Наименование страны.
 
| Строка в произвольном формате.
 
|}
 
</div>
 
</div>
 
  
====== Ошибки ======
+
При взаимодействии с веб-сервисом 1С, на этапе бронирования отправляется запрос, на создание аккаунта 1С, содержащий в себе данные счета. В системе логирования этот запрос можно найти под именем «[GDS] Запрос "NewAccount"» и ответ «[GDS] Ответ "NewAccount"»
  
==== Город ====
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
Параметры поиска всех услуг требуют указания ID города. Города выгружаются по каждой стране следующим запросом:
 
  
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CityStatic
+
=== Пример запроса ===
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
====== Запрос ======
 
 
<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;">
 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
 
xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
      <ver:cities>
 
        <RequestBin>
 
            <Request>
 
              <CityStatic>
 
                  <CountryId>4</CountryId>
 
              </CityStatic>
 
            </Request>
 
            <Source>
 
              <ClientId></ClientId>
 
              <APIKey></APIKey>
 
              <Language>ru</Language>
 
              <Currency>RUB</Currency>
 
            </Source>
 
        </RequestBin>
 
      </ver:cities>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
  
Элемент '''CityStatic'''
+
<pre>
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| CountryId
 
| Обязательный. Идентификатор страны.
 
| Целое число
 
|}
 
  
Элемент '''Source'''
+
<?xml version="1.0" encoding="UTF-8"?>
{| style="width: 800px" class="wikitable"
+
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://DOMEN_NAME" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|-
+
  <SOAP-ENV:Body>
! scope="col" width="200" | Элемент
+
    <ns1:NewAccount>
! scope="col" width="300" | Описание
+
       <ns1:Input>
! scope="col" width="300" | Допустимые значения
+
        <ns1:CompanyID>0001</ns1:CompanyID>
|-
+
        <ns1:ID>123321</ns1:ID>
| ClientID
+
        <ns1:ExternalUserId>00123321</ns1:ExternalUserId>
| Обязательный. ID клиента в системе Nemo.
+
        <ns1:Locator>11KW22</ns1:Locator>
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
+
        <ns1:ExternalPaymentId>0</ns1:ExternalPaymentId>
| Целое число.
+
        <ns1:Tickets>
|-
+
          <ns1:IATAValidator>92222616</ns1:IATAValidator>
| APIKey
+
          <ns1:ValVendor>UT</ns1:ValVendor>
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
+
          <ns1:GDSCurrency>RUB</ns1:GDSCurrency>
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
+
          <ns1:OrderCurrency>RUB</ns1:OrderCurrency>
| Латинские буквы и цифры. Всего 32 символа.
+
          <ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate>
|}
+
          <ns1:BaseFare>8990</ns1:BaseFare>
</div>
+
          <ns1:Tax>
</div>
+
            <ns1:Code>YQ</ns1:Code>
 
+
            <ns1:Amount>975</ns1:Amount>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
          </ns1:Tax>
====== Ответ ======
+
          <ns1:Tax>
<div class="mw-collapsible-content">
+
            <ns1:Code>YR</ns1:Code>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
            <ns1:Amount>75</ns1:Amount>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  
+
          </ns1:Tax>
xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic">
+
          <ns1:Segment>
  <SOAP-ENV:Body>
+
            <ns1:StartDate>2015-02-17T20:20:00</ns1:StartDate>
       <ns1:citiesResponse>
+
            <ns1:StartAirportCode>VKO</ns1:StartAirportCode>
        <ResponseBin>
+
            <ns1:EndAirportCode>SGC</ns1:EndAirportCode>
            <Response>
+
            <ns1:CompanyCode>UT</ns1:CompanyCode>
              <CityStatic>
+
            <ns1:Tariffs>OSSOW</ns1:Tariffs>
                  <Cities>
+
            <ns1:FlightNumber>295</ns1:FlightNumber>
                    <City Id="1">
+
            <ns1:StopOver>O</ns1:StopOver>
                        <Name>Кабул</Name>
+
            <ns1:ClassTypeCode>O</ns1:ClassTypeCode>
                        <CountryId>4</CountryId>
+
          </ns1:Segment>
                        <Data>
+
          <ns1:FullName>PASSANGER NAME</ns1:FullName>
                          <Info Language="EN">
+
        </ns1:Tickets>
                              <Name>Kabul</Name>
+
        <ns1:Options>
                          </Info>
+
          <ns1:Name>Service</ns1:Name>
                          <Info Language="RU">
+
          <ns1:StringValue>GALILEO</ns1:StringValue>
                              <Name>Кабул</Name>
+
          <ns1:NumericValue xsi:nil="true"/>
                          </Info>
+
          <ns1:DateValue xsi:nil="true"/>
                        </Data>
+
        </ns1:Options>
                    </City>
+
        <ns1:Options>
                    <City Id="204793">
+
          <ns1:Name>AAA</ns1:Name>
                        <Name>Aibak</Name>
+
          <ns1:StringValue>000A</ns1:StringValue>
                        <CountryId>4</CountryId>
+
          <ns1:NumericValue xsi:nil="true"/>
                        <Data>
+
          <ns1:DateValue xsi:nil="true"/>
                          <Info Language="EN">
+
        </ns1:Options>
                              <Name>Aibak</Name>
+
        <ns1:Options>
                          </Info>
+
          <ns1:Name>Checkbox</ns1:Name>
                          <Info Language="RU">
+
          <ns1:StringValue>YES</ns1:StringValue>
                              <Name>Aibak</Name>
+
          <ns1:NumericValue xsi:nil="true"/>
                          </Info>
+
          <ns1:DateValue xsi:nil="true"/>
                        </Data>
+
        </ns1:Options>
                    </City>
+
      </ns1:Input>
                    <City Id="204785">
+
    </ns1:NewAccount>
                        <Name>Anar Darah</Name>
+
  </SOAP-ENV:Body>
                        <CountryId>4</CountryId>
 
                        <Data>
 
                          <Info Language="EN">
 
                              <Name>Anar Darah</Name>
 
                          </Info>
 
                          <Info Language="RU">
 
                              <Name>Anar Darah</Name>
 
                          </Info>
 
                        </Data>
 
                    </City>
 
...
 
                  </Cities>
 
              </CityStatic>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:citiesResponse>
 
  </SOAP-ENV:Body>
 
 
</SOAP-ENV:Envelope>
 
</SOAP-ENV:Envelope>
</syntaxhighlight>
 
  
Элемент '''CityStatic'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Cities
 
| Обязательный. Массив городов.
 
| Набор элементов City
 
|}
 
  
Элемент '''City'''
+
</pre>
{| style="width: 800px" class="wikitable"
+
</div></div>
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Атрибут '''Id'''
 
| Обязательный. Идентификатор города.
 
| Целое число
 
|-
 
| Name
 
| Название города.
 
|
 
|-
 
| Data
 
| Названия городов на разных языках. В данный момент поддерживаются названия на русском и английском.
 
| См. описание элемента Data в ответе получения информации о стране.
 
|}
 
</div>
 
</div>
 
 
 
====== Ошибки ======
 
 
 
==== Статика по отелям и апартаментам ====
 
Этот запрос будет использоваться для выгрузки статичной информации по одному или нескольким отелям.
 
 
 
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelStatic
 
 
 
<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStatic">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
      <ver:hotels>
 
        <RequestBin>
 
            <Request>
 
              <HotelStatic>
 
                  <CityId>58166</CityId>
 
              </HotelStatic>
 
            </Request>
 
            <Source>
 
              <ClientId></ClientId>
 
              <APIKey></APIKey>
 
              <Language>ru</Language>
 
              <Currency>RUB</Currency>
 
            </Source>
 
        </RequestBin>
 
      </ver:hotels>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
 
 
Элемент '''Hotels'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| CityId
 
| Обязательный. Идентификатор города из которого необходимо получить отели.
 
| Целое число
 
|}
 
 
 
Элемент '''Source'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| ClientID
 
| Обязательный. ID клиента в системе Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Целое число.
 
|-
 
| APIKey
 
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
 
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
 
| Латинские буквы и цифры. Всего 32 символа.
 
|}
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
====== Ответ ======
+
=== Пример ответа ===
 
<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;">
+
<pre>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
 
xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStatic"
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <SOAP-ENV:Body>
 
      <ns1:hotelsResponse>
 
        <ResponseBin>
 
            <Response>
 
              <HotelStatic>
 
                  <Hotels>
 
                    <Hotel Id="271714" Apartment="false">
 
                        <CityId>58166</CityId>
 
                        <CountryId>643</CountryId>
 
                        <Latitude xsi:nil="true"/>
 
                        <Longitude xsi:nil="true"/>
 
                        <Rating>3</Rating>
 
                        <Floors xsi:nil="true"/>
 
                        <Data>
 
                          <Info>
 
                              <Name>* Azimut (business)</Name>
 
                              <Area xsi:nil="true"/>
 
                              <Location>Within city</Location>
 
                              <Desc>This 3 star hotel is located within the city of St Petersburg.</Desc>
 
                              <Address>43/1 Lermoutovsky Prospect, St Petersburg, 190103</Address>
 
                          </Info>
 
                        </Data>
 
                        <Phones>
 
                          <Phone>812 7402640</Phone>
 
                        </Phones>
 
                        <Fax>812 2518890</Fax>
 
                        <Images/>
 
                    </Hotel>
 
                    <Hotel Id="159535" Apartment="false">
 
                        <CityId>58166</CityId>
 
                        <CountryId>643</CountryId>
 
                        <Latitude>59.935011</Latitude>
 
                        <Longitude>30.309284</Longitude>
 
                        <Rating>5</Rating>
 
                        <Floors xsi:nil="true"/>
 
                        <Data>
 
                          <Info>
 
                              <Name>W St.petersburg</Name>
 
                              <Area xsi:nil="true"/>
 
                              <Location>City centre</Location>
 
                              <Desc>This 5 star hotel is located in the city centre of St Petersburg
 
                                    and was established in 2011. It is close to the St.Isaac's Cathedral
 
                                    and the nearest station is Admiralteyskaya station. The Hotel has
 
                                    a restaurant, 2 bars, a conference room, a coffee shop, an indoor
 
                                    swimming pool and a fitness centre/gym. All 137 rooms are equipped
 
                                    with minibar, hairdryer, safe, trouser press and air conditioning.</Desc>
 
                              <Address>6 Voznesensky Prospect, St. Petersburg, 190000, St Petersburg, Russia</Address>
 
                          </Info>
 
                        </Data>
 
                        <Phones/>
 
                        <Fax>+7 812 6106160</Fax>
 
                        <Images>
 
                          <Image>
 
                              <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/ext.jpg</Path>
 
                              <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/ext-t.jpg</Icon>
 
                          </Image>
 
                          <Image>
 
                              <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/unknown.jpg</Path>
 
                              <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/unknown-t.jpg</Icon>
 
                          </Image>
 
                          <Image>
 
                              <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/bed room.jpg</Path>
 
                              <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/bed room-t.jpg</Icon>
 
                          </Image>
 
                        </Images>
 
                    </Hotel>
 
                    ...
 
                  </Hotels>
 
              </HotelStatic>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:hotelsResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
 
 
Элемент '''Hotel'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Атрибут Id
 
| Обязательный. Идентификатор отеля в системе Nemo.
 
| Целое число.
 
|-
 
| CityId
 
| Обязательный. Идентификатор города.
 
| Целое число.
 
|-
 
| CountryId
 
| Обязательный. Идентификатор страны .
 
| Целое число.
 
|-
 
| Latitude
 
| Необязательный. Широта.
 
| Вещественное число.
 
|-
 
| Longitude
 
| Необязательный. Долгота.
 
| Вещественное число.
 
|-
 
| Rating
 
| Необязательный. Рейтинг.
 
| Вещественное число.
 
|-
 
| Floors
 
| Необязательный. Количество этажей
 
| Целое число.
 
|-
 
| Data
 
| Необязательный.
 
| Набор элементов Info.
 
|-
 
| Phones
 
| Необязательный. Массив телефонов.
 
| Набор элементов Phone.
 
|-
 
| Fax
 
| Необязательный. Факс.
 
| Строка в произвольном формате.
 
|-
 
| Images
 
| Необязательный. Маcсив изображений.
 
| Набор элементов Image.
 
|}
 
  
Элемент '''Info'''
+
<?xml version="1.0"?>
{| style="width: 800px" class="wikitable"
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|-
+
  <soap:Header/>
! scope="col" width="200" | Элемент
+
  <soap:Body>
! scope="col" width="300" | Описание
+
    <m:NewAccountResponse xmlns:m="http://DOMEN_NAME">
! scope="col" width="300" | Допустимые значения
+
      <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="m:outInvoice">
|-
+
        <m:NoDoc>00015365</m:NoDoc>
| Name
+
        <m:DateInvoice>2015-02-04T00:00:00</m:DateInvoice>
| Обязательный. Наименование отеля.
+
        <m:ExternalUserId>00017483</m:ExternalUserId>
| Строка в произвольном формате.
+
        <m:TicketsSum>
|-
+
          <m:Price>10040</m:Price>
| Area
+
          <m:Discount>0</m:Discount>
| Необязательный. Описание места расположения отеля.
+
          <m:Charge>0</m:Charge>
| Строка в произвольном формате.
+
          <m:Sum>10040</m:Sum>
|-
+
        </m:TicketsSum>
| Location
+
      </m:return>
| Необязательный. Район города.
+
    </m:NewAccountResponse>
| Строка в произвольном формате.
+
  </soap:Body>
|-
+
</soap:Envelope>
| Desc
 
| Необязательный. Описание отеля.
 
| Строка в произвольном формате.
 
|-
 
| Address
 
| Необязательный. Адрес отеля.
 
| Строка в произвольном формате.
 
|}
 
  
Элемент '''Phones'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Phone
 
| Обязательный. Телефон.
 
| Строка в произвольном формате.
 
|}
 
  
Элемент '''Image'''
+
</pre>
{| style="width: 800px" class="wikitable"
+
</div></div>
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Path
 
| Необязательный. Путь к полному изображению.
 
| Строка в произвольном формате.
 
|-
 
| Icon
 
| Необязательный. Путь к миниатюре, иконке.
 
| Строка в произвольном формате.
 
|}
 
</div>
 
</div>
 
  
====== Ошибки ======
+
-->
 
 
==API бронирования, аннуляции, войдирования авиабилетов==
 
==API бронирования, отмены отелей==
 
==API Выгрузки статистики продаж через API==
 
==Выгрузка информации о продажах в формате Nemo XML==
 
==Выгрузка информации о продажах в формате СОФИ XML==
 
==Фиксация оплаты внешним запросом==
 
==Выгрузка заказов по критериям в формате Nemo XML==
 
==Выгрузка определенного заказа по критериям в формате Nemo XML==
 
==API универсального платежного шлюза==
 
==API Синхронизации пользователей и субагентов==
 
==API Кросс­авторизации==
 
==Передача параметров в форму поиска==
 
==Проверка в сторонней системе возможности тикетинга==
 
==API загрузки счетов из сторонней системы==
 
==API загрузки сальдо компаний из СОФИ==
 

Текущая версия на 14:43, 28 ноября 2018

API Авиабилетов

Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.

API Поиска авиабилетов

Это сервис внутри Nemo, который позволяет получить результаты поиска.

Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Администрирование»«Веб-служба. Авторизация».

Подробнее можно узнать в специальной статье Веб-служба поиска авиабилетов

API Бронирования авиабилетов

Сервис позволяет забронировать/войдировать авиабилет с использованием API, описание подключения, запроса, ответов находится в этой статье Веб-служба бронирования

API Выписки авиабилетов

Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. Веб-служба выписки

API Оплаты

Сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. Агентские АПИ оплаты

API Дополнительных запросов авиабилетов

К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. Дополнительные запросы АПИ авиабилетов

Используемые параметры

Параметры, используемые в запросах

Имя элемента Обязательный Тип Описание
BookFlight да сложный Контейнер для тела запроса бронирования
FlightId да числоId перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности)
CurrencyCode нетстрокаТрёх буквенный код валюты (обязателен для комиссии в валюте)
Agency да сложный Информация об агентстве
Name да строка Название агентства
Telephone нет сложный Контактный телефон агентства
Typeда строка Тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий, A - агентство
PhoneNumber да строка Номер телефона
CountryAccessCode нет строка Код страны
AreaCityCode нет строкаКод региона/города
Addressда сложный Адрес агентства
Cityда строка Город, в котором расположено агентство
StreetAddress нет сложный Адрес агентства в городе (улица, дом, корпус, офис и т.д.)
PostalCode нет строка Почтовый код, индекс.
CountryCode нет строка Код страны (RU, UA, US и т.д.)
Travellers да сложный Контейнер для информации о пассажирах (для которых будет производится поиск перелёта, бронирование)
Traveller да сложный Информация о пассажире
TypeдастрокаТип пассажира возможные значения: ADT - взрослые, CNN - дети, UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом
IsContact нетбулевский Индикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false.
LinkedTo нет целое число Номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)
Num да число Номер пассажира.
PreferedPlace нет сложный Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры Smoking и Location игнорируются и могут быть не указаны.
SmokingAllowed нет булевский true - место для курящих, false - место для некурящих. По умолчанию false.
Location нет строка Расположение места, возможные значения: W - у окна (Window); M - где-то в середине ряда (Middle); NPW - возле прохода (NearPassengerWay); NS - нет предпочтения (NotSpecified).
RowNumberнетстрока Номер ряда
PlaceNumber нет строка Номер места
SegNumber да строка Номер сегмента
DocumentInfo да сложный Паспортные данные
DocType да строка Тип документа, обязательный.
DocNum да строка Номер документа
CountryCode да строка Страна выдачи, двух буквенный код(RU, US и т.д.)
DocElapsedTimeда строка Срок истечения срока действия паспорта в фирмате dd.mm.yyyy (например 31.12.2012)
VisaInfo нет сложный Информация о визе
Num да строка Номер визы
IssueDate да строка Дата выдачи визы в формате dd.mm.yyyy
IssueCountry да строка Страна выдачи визы
IssuePlace да строка Место выдачи визы
BirthCountry нет строка Страна рождения (IATA код страны)
BirthCity нетстрокаГород рождения (название)
ArrAddress нет сложный Адрес прибытия, для въезжающих в США (не граждан США) информация является обязательной. Если она не заполняется при оформлении брони, то её всё равно придётся заполнять при посадке на самолёт.
CountryCode да строка IATA код страны
State да строка Штат или область въезда
PostalCode да строка Почтовый код
City да строка Город
StreetAddress да строка Адрес: улица, номер дома, квартиры и тп
DocStringFormats нет сложный Список форматов строк паспортных данных, которые будут отправлены в дополнение к стандартным.
DocStringFormat да строка Формат данных, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID. Установка данных в формате DOCS как правило необходима для последующей выписки в BSP среде. Установка FOID - всреде ТКП.
PersonalInfo да сложный Персональные данные пассажира
DateOfBirthда строка Дата рождения в формате dd.mm.yyyy (например 31.12.2000)
Nationality да строка Национальность/гражданство, двух буквенный код страны (RU, UA, US и т.д.)
Gender да строка Пол пассажира, обязательный, возможные значения: M - мужской(Male); F - женский(Female).
FirstName да строка Имя пассажира
LastName да строка Фамилия пассажира
BMiddleName да строка Отчество пассажира
Meal нетстрока Код типа питания, возможные значения: 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 - Восточное вегетарианское питание.
LoyaltyCard нет сложный Карточка часто летающего пассажира
OpCode да строка IATA код компании авиаперевозчика
Number да строка Номер карточки
ContactInfoнет сложный Контактная информация для пассажира
EmailID нет строка Контактный email
Telephone нет сложный Контактный телефон пассажира, описание аналогично описанию телефона агентства
CancelBookдасложныйКонтейнер для тела запроса отмены брони
BookIDдачислоНомер брони, которая будет отменяться (для которой будет производится выписка, отмена выписки)
GetAirRulesдасложныйКонтейнер для тела запроса поиска тарифных правил
AirAvailдасложныйКонтейнер для тела запроса проверки доступности перелёта
TicketingдасложныйКонтейнер для тела запроса выписки брони
ValCompanyнетстрокаВалидирующий перевозчик, на бланке которого выписывается билет
ComissionнетсложныйКомиссия
Amountнетчисло с плавающей точкойЗначение комиссии в валюте, если указано, то комиссия в процентах игнорируется
PercentнетчислоКомиссия в процентах
VoidTicketдасложныйКонтейнер для тела запроса отмены выписки брони
SearchдасложныйКонтейнер для тела запроса поиска
ODPairsдасложныйКонтейнер для информации о перелёте
TypeдастрокаТип перелёта, возможные значения: OW - в одну сторону, RT - туда-обратно, CR - сложный маршрут
DirectнетбулевскийИндикатор, указывающий какие перелёты искать, только прямые или с пересадками, возможные значения: false - с пересадками, true - только прямые. Если не указан, значение по умолчанию false.
AroundDatesнетчислоВключает поиск по окружным датам, количество дней +/- от даты заезда/возвращения. Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT). Возможные значения: 0, 1, 2, 3
ODPairдасложныйКонтейнер для информации о сегменте перелёта. Может повторяться 1-6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается
DepDateдастрокаДата вылета, Формат ГГГГ-MM-DDTЧЧ:ММ:СС
DepAirpдастрокаТрёх буквенный код города отправления или конкретного аэропорта в городе отправления.
ArrAirpдастрокаТрёх буквенный код города прибытия или конкретного аэропорта в городе прибытия.
CountдачислоЧисло пассажиров данного типа. Общее количество пассажиров всех типов должно быть не более 9.
RestrictionsнетсложныйКонтейнер дополнительной информации для поиска.
ClassPrefнетстрокаПредпочитаемый класс перелёта, возможные значения: All - все, Economy - эконом, Business - бизнес, First - первый. Если не указан, то по умолчанию All.
OnlyAvailнетбулевскийИскать только доступные, возможные значения: true - только доступные, false - все. Если не указан, то по умолчанию false.
AirVPrefsнетсложныйОбёртка для списка авиакомпаний, по которым будет или не будет проводиться поиск.
AirVPrefдасложныйИнформация об авиакомпании.
IncludeнетбулевскийИндикатор, показывающий включить или исключить в результатах поиска перелёты данной авиакомпании: true - включить, false - исключить. Если не указан, то по умолчанию false.
IncludePrivateFareнетбулевскийВключать приватные цены в результат или нет, возможные значения: true - включать, false - не включать. Если не указан, то по умолчанию false.
ServiceTypesнетсложный хмлКонтейнер массива используемых веб-сервисов при поиске.
ServiceTypeнетстрокаТип веб-сервиса(поставщика). При указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса. Возможные значения: Sirena2000 - поиск в Сирене; SirenaSchedule - поиск в Сирене по расписанию; SabreLFS - поиск в Сэйбр LFS; SabreBFM - поиск в Сэйбр BFM; SabreSchedule - поиск Сэйбр по расписанию; Galileo - поиск в Галилео; AmadeusMPTBS - поиск в Амадеус.

Параметры, используемые в ответах

Имя элемента Обязательный Тип Описание
BookFlightResult да сложный Контейнер для тела ответа бронирования
ID да числоНомер бронирования в системе Nemo.
Status да строка Статус брони, возможные значения: booked - забронировано, canceled - бронь отменена, ticket - выписана; UNDEFINED - статус не определён.
Code да строка Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила
QueryPlace нет сложный Очередь, в которую помещено бронирование
Number да число Номер очереди
Flight да сложный Перелёт, по которому была сделана бронь (Результаты проверки доступности для перелёта)
Agency да сложный Информация об агентстве
ItinReceiptsнет сложный Маршрут квитанция. Содержит строку в кодировки Encoding (как правило в base64), представляющую маршрут квитанцию в формате Format.
Encoding да строка Кодировка
Format да строкаФормат
Travellersда сложный Контейнер для информации о пассажирах
Traveller да сложный Информация о пассажире
Ticket нет сложный Билет пассажира.
TickectNum да строка Номер билета
Seatsнет сложный Контейнер мест пассажира.
Seat да сложный Место в самолёте
Number да строкаНомер места(ряд+номер в ряду)
Characteristic нетстрока Характеристика места в соответствии со стандартом EDIFACT. См справочник “Таблица характеристик мест”.
SmokingPreference нет строка Статус курения на этом месте, если Y - место для курящих, если N - место для некурящих.
SegmentNumber да число Номер сегмента
PersonalInfo да сложный Личные данные
LoyaltyCard нет сложный Карточка часто летающего пассажира
ContactInfo нет сложный Контактная информация для пассажира
FareStored нет срока: Yes/No Указывает установлена ли / гарантируется ли цена у поставщика. Если параметр отсутствует в ответе, то по умолчанию значение “Yes”.
CancelBookResultдасложныйКонтейнер для тела ответа отмены брони
BookIDдачислоНомер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась)
ResultдасложныйРезультат отмены (войдирования)
SuccessдабулевскийИндикатор, показывающий успешно или нет прошла отмена, возможные значения: true - успешно отменена (войдирование); false - не отменена
GetAirRulesResultдасложныйКонтейнер для тела ответа поиска тарифных правил
FlightIdдачислоНомер перелёта, для которого найдены тарифные правила (будет проводилась проверка доступности)
RulesдасложныйКонтейнер для правил
RuleдасложныйПравило
TarrifдастрокаКод тарифа, для которого правило применяется
NameдастрокаИмя правила
RuleTextдастрокаТекст правила
AirAvailResultдасложныйКонтейнер для тела ответа помещения брони в очередь
IsAvailдабулевскийИндикатор, показывающий доступность перелёта, возможные значения: true - доступен; false - недоступен
VoidTicketResultдасложныйКонтейнер для тела ответа отмены выписки брони
SearchResultнетсложныйКонтейнер тела ответа для результатов поиска.
FlightsдасложныйКонтейнер для перелётов
FlightнетсложныйПредставляет информацию о перелёте. Отсутствует если перелётов не найдено (используется в поисковом ответе)
WebServiceдастрокаВеб-сервис (поставщик) от которого был получен перелёт.
ValCompanyнетстрокаIATA код авиакомпании. Валидирующий перевозчик, на бланках которого должен выписываться билет.
SegmentsдасложныйКонтейнер для сегментов перелёта
SegmentдасложныйПредставляет информацию о сегменте
SegNumдачислоНомер сегмента в перелёте
DepAirpдастрокаIATA код аэропорта отправления
DepTerminalнетстрокаКод терминала отправления
ArrAirpдастрокаIATA код аэропорта прибытия
ArrTerminalнетстрокаКод терминала прибытия
OpAirlineдастрокаКод авиакомпании, выполняющей рейс
MarkAirlineдастрокаКод авиакомпании, продающей билет
FlightNumberдачислоНомер рейса
AircraftTypeдастрокаКод типа самолёта
DepDateTimeдастрокаДата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС
ArrDateTimeдастрокаДата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС
StopNumдачислоЧисло остановок
MealдастрокаТип питания, возможные значения: UNDEFINED - неизвестно; N - Нет питания; P - Алкогольные напитки в продаже; B - Завтрак; O - Холодная еда; C - Бесплатные алкогольные напитки; K - Континтальный завтрак; D - Обед; F - Еда в продаже; G - Еда/напитки в продаже; H - Горячая еда; L - Ланч; M - Еда; R - Освежающие еда/напитки бесплатно; V - Освежающие еда/напитки за отдельную плату; S - Закуска
BookingCodesдасложныйКонтейнер для классов перелёта
BookingCodeдастрокаКод класса перелёта. Если производится поиск по расписанию, то может встречаться несколько раз.
FlightTimeнетчислоВремя перелёта в минутах
TimeZoneнет сложныйИнформация о временных зона прибытия и отправления
DepartureдачислоЧасовой пояс отправления, UTC (смещение относительно Гринвича)
ArrivalдачислоЧасовой пояс прибытия, UTC (смещение относительно Гринвича)
ETicketдабулевский Индикатор электронного билета, возможные значения: true - билет является электронным, false - билет не является электронным.
BaggageнетсложныйИнформация о багаже
MeasureдастрокаМера веса. K - килограммы, PC - сумки/клади
ValueдастрокаКоличество багажа
PricingInfoнетсложныйКонтейнер для информации о ценах. Отсутствует в случае, если производится поиск по расписанию.
RefundableдабулевскийИндикатор показывающий является ли билет возвратным или нет, возможные значения: true - возвратный (нет штрафов за возврат), false - невозвратный (могут быть штрафы за возврат)
PassengerFareдасложныйИнформация о ценах для конкретного типа пассажиров.
QuantityдачислоЧисло пассажиров данного типа
BaseFareдасложныйЦена в базовой валюте(за одного пассажира)
EquiveFareнетсложныйЦена в эквивалентной валюте(за одного пассажира), при поиске цены не возвращается
TotalFareнетсложныйПолная стоимость для пассажиров данного типа включая таксы (за одного пассажира), при поиске цены не возвращается
CurrencyдастрокаТрёх буквенный код валюты.
Amountдачисло с плавающей точкойЗначение стоимости.
TaxesнетсложныйКонтейнер для такс, при поиске цены не возвращается
TaxдасложныйОдна такса
CurCodeдастрокаТрёх буквенный код валюты для таксы
TaxCodeдастрокаКод таксы
Amountдачисло с плавающей точкойЗначение таксы
TariffsдасложныйКонтейнер для тарифов
TariffдасложныйКонтейнер для одного тарифа
CodeдастрокаКод тарифа
SegNumдачислоНомер сегмента для которого применяется тариф, если тариф применяется для всех сегментов, то возвращается 0.
FareCalcнетстрокаСтрока расчёта цены
LastTicketDateTimeдастрокаДата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если бронирование не будет аннулировано или выписано до этого времени, то могут быть применены штрафы.

API Отелей

Агентский API Отелей - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.

Подробнее можно узнать в нашей специальной статье Агентский АПИ отелей


Выгрузки статистики продаж через API (Метапоиск)

Метапоисковая система (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.

В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) за определенный период бронирования заказов в виде файла данных в формате XML.

Можно получить список заказов с их статусом (забронирован, выписан, аннулирован), сделанных через метапоисковую систему.

Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками Взаимодействие с метапоисковиками

Выгрузка информации о заказах

Выгрузка заказов — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье Выгрузка

API Синхронизации пользователей и субагентов

Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей. Модуль является компонентом, включаемым и отключаемым из административной части.

О механизме авторизации B2B-пользователей, синхронизации учетных записей можно прочитать в статье Синхронизация пользователей

API Кросс­авторизации

Авторизация пользователей из внешних систем — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п)

Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу:

http://hostname/authorization_reol.wsdl

Запрос
?xml version ='1.0' encoding ='UTF-8' ?>
<definitions name='Authorization'
 targetNamespace='http://example.org/Authorization'
 xmlns:tns=' http://example.org/Authorization '
 xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
 xmlns:xsd='http://www.w3.org/2001/XMLSchema'
 xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
 xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
 xmlns='http://schemas.xmlsoap.org/wsdl/'>
 
<message name='getAuthorizationRequest'>
 <part name='login' type='xsd:string'/>
 <part name='pass' type='xsd:string'/>
</message>
<message name='getAuthorizationResponse'>
 <part name='session_id' type='xsd:string'/>
 <part name='user_id' type='xsd:string'/>
 <part name='login' type='xsd:string'/>
 <part name='status' type='xsd:string'/>
</message>
 
<portType name='AuthorizationPortType'>
 <operation name='getAuthorization'>
  <input message='tns:getAuthorizationRequest'/>
  <output message='tns:getAuthorizationResponse'/>
 </operation>
</portType>
 
<binding name='AuthorizationBinding' type='tns:AuthorizationPortType'>
 <soap:binding style='rpc'
  transport='http://schemas.xmlsoap.org/soap/http'/>
 <operation name='getAuthorization'>
  <soap:operation soapAction='urn:xmethods-delayed-quotes#getAuthorization'/>
  <input>
   <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
  </input>
  <output>
   <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
  </output>
 </operation>
</binding>
 
<service name='AuthorizationService'>
 <port name='AuthorizationPort' binding='AuthorizationBinding'>
  <soap:address location='http://nemo.local/controllers/authorization/auth_server.php'/>
 </port>
</service>
</definitions>

Передача параметров в форму поиска (FastSearch)

В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.

Примеры FastSearch запросов и используемые переменные подробно описаны в статье FastSearch - передача параметров в форму

FastSearch так же работает и для отелей, подробности в статье Fast Search для отелей