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

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(API бронирования, аннуляции, войдирования авиабилетов)
(Динамические данные)
Строка 1576: Строка 1576:
 
</div>
 
</div>
 
</div>
 
</div>
 
 
 
==== Штрафы за аннуляцию ====
 
 
Всегда в явном виде нужно указывать пользователю информацию о штрафах за аннуляцию до бронирования.
 
 
Штрафы получаются по каждой услуге отдельным запросом. Нужно указать тип услуги, идентификатор результата поиска и выбранную категорию.
 
 
Внимание. Для отелей из Hotelbeds (Supplier=HOTELBEDS) штрафы до бронирования получить невозможно.
 
 
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Penalty
 
 
<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%3DPenalty">
 
  <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'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Type
 
| Обязательный. Тип объекта.
 
| HOTELS
 
|-
 
| CacheId
 
| Обязательный. Идентификатор результата поиска в системе Nemo.
 
| Целое число
 
|-
 
| CategoryId
 
| Обязательный. Идентификатор категории.
 
| Целое число
 
|}
 
 
Элемент '''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%3DPenalty">
 
  <SOAP-ENV:Body>
 
    <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'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| ItemDateBegin
 
| Обязательный. Дата начала услуги (дата заселения в отель).
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| CancelCharges
 
| Необязательный. Содержит информацию о штрафах за аннуляцию.
 
| Элемент Charge
 
|-
 
| ModifyCharges
 
| Необязательный. Содержит информацию о штрафах за модификацию.
 
| Элемент Charge
 
|}
 
 
Штрафы разбиваются по временным интервалам. На каждом интервале указывается значение штрафа.
 
 
Элемент '''Charge'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| DateFrom
 
| Обязательный. Дата/время начала интервала.
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| DateTo
 
| Необязательный. Дата/время окончания интервала.
 
| Формат гггг-мм-дд чч:мм:сс
 
|-
 
| Money
 
| Обязательный. Сумма штрафа.
 
| Вещественное число.
 
Атрибут: Currency - код валюты.
 
|}
 
</div>
 
</div>
 
 
 
 
==== Бронирование ====
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
===== Запрос =====
 
<div class="mw-collapsible-content">
 
Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.
 
 
Сейчас же необходимо указывать только 1 услугу-отель (элемент Item) в запросе на бронирование.
 
 
Для успешного запроса нужно указать:
 
#Услугу. В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата.
 
#Информация о клиентах. Все клиенты перечисляются в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиента), также добавляются в описание услуги.
 
#Заказчик. Указатель на одну персону.
 
 
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Booking
 
 
<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%3DBooking">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
    <ver:booking>
 
      <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'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Items
 
| Обязательный. Массив элементов Item.
 
| Элемент Item
 
|-
 
| Customer
 
| Обязательный. Элемент установки заказчика.
 
| &nbsp;
 
|-
 
| Persons
 
| Обязательный. Массив клиентов.
 
| &nbsp;
 
|}
 
 
Данные об услугах записываются в элементы &lt;Item&gt;.
 
 
Элемент '''Item'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| HotelBookData
 
| Обязательный. В зависимости от типа объекта бронирования. В данный момент возможно указать только данные для отеля.
 
| &nbsp;
 
|-
 
| Persons
 
| Необязательный. Привязка клиентов к услуге. Если не указаны, будут привязаны все из указанных в главном элементе Booking.
 
| [<Person Number=''"1"'' />]
 
|}
 
 
<u>Бронирование отеля.</u>
 
Для бронирования отеля необходимы следующие параметры:
 
# ID результата поиска - один отель
 
# ID выбранной категории этого отеля
 
# Распределение клиентов по комнатам.
 
 
Элемент '''HotelBookData'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| CacheId
 
| Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.
 
| Целое число
 
|-
 
| CategoryId
 
| Обязательный. Идентификатор категории.
 
| Целое число
 
|-
 
| Rooms
 
| Обязательный. Распределение клиентов по комнатам.
 
| Список элементов Room
 
|-
 
| Room
 
| Атрибут Id
 
Ид комнаты из результата поиска
 
 
Элемент Persons
 
| Целое число
 
|-
 
| Persons
 
| Обязательный.
 
Список людей
 
| Список элементов Person
 
|-
 
| Person
 
| Обязательный.
 
Атрибут Number
 
Номер пассажира из Booking ->Persons->Person->Number
 
|
 
Целое число
 
|}
 
 
<u>Информация о клиентах.</u>
 
Для успешного завершения бронирования нужно указать как минимум одного клиента. Максимальное число клиентов в текущей версии не ограничено.
 
 
Набор обязательных данных может меняться в зависимости от типов услуг в бронировании. Рекомендуемый набор обязательных параметров: Lastname, Name, DateOfBirth. Остальные обязательные параметры будут устанавливаться индивидуально при подключении к сервису.
 
 
Элемент '''Person'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Атрибут Number
 
| Обязательный. Номер клиента, необходим для правильной привязки к услугам.
 
| Целое число
 
|-
 
| Type
 
| Обязательный.
 
Тип пассажира.
 
| Строка.
 
Возможные значения:
 
ADT
 
CLD
 
INF
 
|-
 
| Lastname
 
| Фамилия.
 
| Строка в произвольном формате.
 
|-
 
| Name
 
| Имя.
 
| Строка в произвольном формате.
 
|-
 
| Middlename
 
| Отчество.
 
| Строка в произвольном формате.
 
|-
 
| DateOfBirth
 
| Дата рождения.
 
| Формат гггг-мм-дд.
 
|-
 
| Phone
 
| Телефон.
 
Рекомендуемый формат:
 
+79871234567
 
| Строка
 
|-
 
| Email
 
| Электронный адрес.
 
| Строка
 
|-
 
| Gender
 
| Пол.
 
| MR - мужчина,
 
MS - женщина.
 
|-
 
| Document
 
| Документ
 
| Элемент Document
 
|}
 
 
Для некоторых услуг может потребоваться информация о документах.
 
 
Элемент '''Document'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Атрибут Type
 
| Обязательный. Тип документа.
 
| P - загранпаспорт
 
C - внутренний гражданский паспорт
 
B - свидетельство о рождении
 
|-
 
| Series
 
| Необязательный. Серия документа. Можно указать слитно с номером в Number.
 
| Строка в произвольном формате
 
|-
 
| Number
 
| Обязательный. Номер документа.
 
| Строка в произвольном формате
 
|-
 
| IssueDate
 
| Необязательный. Дата выдачи документа.
 
| Формат гггг-мм-дд
 
|-
 
| ExpiryDate
 
| Необязательный. Дата истечения срока действия документа.
 
| Формат гггг-мм-дд
 
|}
 
 
Элемент '''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">
 
После выполнения запроса сразу поступит информация о бронировании. В первую очередь нужно внимательно проверить статусы &lt;Status&gt; всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска RQ (по запросу), то статус скорее всего будет не равен «booked». Через некоторое время проверять реальный статус бука отправляя запрос на чтение данных о бронировании.
 
 
<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%3DBooking"
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <SOAP-ENV:Body>
 
    <ns1:bookingResponse>
 
      <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>
 
 
Структура ответа очень похожа на запрос. Выделяются те же основные элементы.
 
 
Элемент '''Booking'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Items
 
| Обязательный. Содержит элемент(ы) Item.
 
| Элемент Item
 
|-
 
| Persons
 
| Обязательный. Здесь перечислены все клиенты заказа.
 
| Элемент Person
 
|}
 
 
В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
 
 
Элемент '''Item'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Атрибут Id
 
| Обязательный.
 
Номер заказа в системе Nemo.
 
| Целое число
 
|-
 
| Type
 
| Обязательный.
 
Тип объекта бронирования.
 
| HOTELS
 
|-
 
| Status
 
| Обязательный. Статус объекта бронирования .
 
| booked - забронирован
 
cancelled - аннулирован
 
pending confirmation - в процессе подтверждения
 
pending – произошла попытка бронирования, которое не было завершено
 
waiting – ожидается результат запроса на бронирование
 
|-
 
| Prices
 
| Обязательный. Данные о ценах.
 
| см. Элемент Prices
 
|-
 
| Dates
 
| Обязательный. Данные о датах.
 
| см. Элемент Dates
 
|-
 
| Statuses
 
| Обязательный. Различные дополнительные статусы заказанной услуги.
 
| см. Элемент Statuses
 
|-
 
| Persons
 
| Обязательный. Содержит клиентов привязанных к услуге.
 
| элементы Person
 
|-
 
| Hotel
 
| Необязательный. Элемент с данными об отеле.
 
| см. элемент Hotel (результат поиска отеля)
 
|}
 
 
Информация о цене услуги вынесена в отдельную ветку:
 
 
Элемент '''Prices'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="200" | Элемент
 
! scope="col" width="300" | Описание
 
! scope="col" width="300" | Допустимые значения
 
|-
 
| Price
 
| Обязательный. Базовая цена услуги.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|-
 
| Charges
 
| Необязательный. Сумма дополнительных сборов.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|-
 
| Commission
 
| Необязательный. Сумма комиссий (вычитается из общей стоимости).
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|-
 
| Penalty
 
| Необязательный. Сумма штрафов.
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|-
 
| TotalPrice
 
| Обязательный. Итоговая стоимость.
 
= Price + Charges + Commission
 
| Вещественное число.
 
Атрибут Currency - код валюты.
 
|}
 
 
Информация о датах услуги также вынесена в отдельную ветку:
 
 
Элемент '''Dates'''
 
{| style="width: 800px" class="wikitable"
 
|-
 
! 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 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;">
 
<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'''
 
{| 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>
 
 
 
==== Выгрузка актуальных данных по заказу(ам) ====
 
Используется для экспорта бронирований и для обновления данных в локальной клиентской базе.
 
 
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Export
 
 
<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%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'''
 
{| 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>
 
 
<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%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>
 
 
Формат ответа аналогичен результату бронирования.
 
</div>
 
</div>
 
 
 
 
==== Аннуляция заказа ====
 
'''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'''
 
{| 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>
 
 
===== Ответ =====
 
см. результаты бронирования.
 
  
 
=== Статические данные ===
 
=== Статические данные ===

Версия 18:09, 29 января 2015

Содержание

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

Подключение

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

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

После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.

WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights

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

Запрос
 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
 2    <soapenv:Header/>
 3    <soapenv:Body>
 4       <ver:search>
 5          <RequestBin>
 6             <Request>
 7                <SearchFlights LinkOnly="?">
 8                <!--LinkOnly — Позволяет управлять выдачей результатов. true — вернуть только ссылку на результаты поиска, 
 9                 без перелётов (занимает меньше времени), false — полная выдача, ссылки и перелёты.-->
10                   <ODPairs Type="?" Direct="?" AroundDates="?">
11                   <!--Type — тип перелёта, возможные значения: OW — туда, RT — туда-обратно, CR — сложный маршрут. Для перелета 
12                    туда-обратно или сложного маршрута необходимо добавить еще один или несколько тэгов ODPair, примеры далее-->
13                   <!--Direct — искать только прямые перелёты, возможные значения: true/false-->
14                   <!--AroundDates — поиск по окружным датам, количество дней +/- от даты заезда/возвращения, значения: 0, 1, 3.
15                    Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT)-->
16                      <!--Zero or more repetitions:-->
17                      <ODPair>
18                         <DepDate>?</DepDate>
19                         <!--DepDate — дата вылета, в формате ГГГГ-MM-ДД-->
20                         <DepAirp CodeType="IATA">?</DepAirp>
21                         <!--DepAirp — аэропорт вылета, IATA код-->
22                         <ArrAirp CodeType="IATA">?</ArrAirp>
23                         <!--ArrAirp — аэропорт прилёта, IATA код-->
24                      </ODPair>
25                   </ODPairs>
26                   <Travellers>
27                      <!--Zero or more repetitions:-->
28                      <Traveller Type="?" Count="?"/>
29                      <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, 
30                       INF — младенцы, INS — младенцы с местом-->
31 	             <!--Count — количество пассажиров-->
32                   </Travellers>
33                   <Restrictions>
34                      <ClassPref>?</ClassPref> <!--необязательный-->
35                      <!--ClassPref — предпочитаемый класс поиска, возможные значения: economy, business, first.
36                       Если не заполнять, то будет произведен поиск эконом класса-->
37                      <OnlyAvail>?</OnlyAvail> <!--необязательный-->
38                      <!--OnlyAvail — искать только доступные, возможные значения: true/false-->
39                      <AirVPrefs>
40                         <!--Zero or more repetitions:-->
41                         <AirVPref Code="?" Include="?" Type="IATA"/> <!--необязательный-->
42                         <!--Code — код авиакомпании, SU, FV и т.п.-->
43 		        <!--Include — включить или исключить авиакомпанию из результатов: true — включить, false — исключить-->
44 	             </AirVPrefs>
45                      <IncludePrivateFare>?</IncludePrivateFare> <!--необязательный-->
46                      <!--IncludePrivateFare — искать цены для агентства, если true — то включаем приватные, false — публичные-->
47                      <CurrencyCode>?</CurrencyCode> <!--необязательный-->
48                      <!--CurrencyCode — код валюты, например: RUB, EUR--> 
49                   </Restrictions>
50                </SearchFlights>
51             </Request>
52             <Source>
53                <ClientId>?</ClientId>
54                <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе 
55                 "Администрирование" ? "Веб-служба. Авторизация".-->
56                <APIKey>?</APIKey>
57                <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе 
58                 "Администрирование" ? "Веб-служба. Авторизация".-->
59                <Language>?</Language>
60                <!--Language — язык, например: RU-->
61                <Currency>?</Currency>
62                <!-- Currency — валюта, например: RUB, EUR-->
63                <ShowNames>?</ShowNames>
64                <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент.  -->
65             </Source>
66          </RequestBin>
67       </ver:search>
68    </soapenv:Body>
69 </soapenv:Envelope>
Ответ
  1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2    <SOAP-ENV:Body>
  3       <ns1:searchResponse>
  4          <ResponseBin>
  5             <Response>
  6                <SearchFlights>
  7                   <Flights SearchId="?" ResultURL="?">
  8                   <!--SearchId — номер процесса поиска в Nemo-->
  9                   <!--ResultURL — ссылка на страницу просмотра результатов на сайте агентства-->
 10                      <Flight FlightId="?">
 11                      <!--FlightId — Id перелёта в системе Nemo-->
 12                         <WebService>?</WebService>
 13                         <!--WebService — поставщик перелёта-->
 14                         <ValCompany>?</ValCompany>
 15                         <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
 16                         <URL>?</URL>
 17                         <!--URL — ссылка на бронирование конкретного перелета-->
 18                         <Segments>
 19                            <Segment SegNum="?" SegGroupNum="?">
 20                            <!--SegNum — номер сегмента в перелёте-->
 21 		           <!--SegGroupNum – номер плеча перелёта-->
 22                               <DepAirp CodeType="IATA" Name="?">?</DepAirp>
 23                               <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево. Name - название аэропорта отправления-->
 24                               <DepTerminal>?</DepTerminal>
 25                               <!--DepTerminal — терминал пункта отправления, если пустое значение, 
 26                                то в аэропорту всего 1 терминал-->
 27                               <ArrAirp CodeType="IATA" Name="?">?</ArrAirp>
 28                               <!--ArrAirp — аэропорт прибытия. Name - название аэропорта прибытия-->
 29                               <ArrTerminal>?</ArrTerminal>
 30                               <!--ArrTerminal — терминал пункта прибытия, если пустое значение, 
 31                                то в аэропорту всего 1 терминал-->
 32                               <OpAirline>?</OpAirline>
 33                               <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
 34                               <OpAirlineName>?</OpAirlineName>
 35                               <!--OpAirlineName — название авиакомпании перевозчика, например: Аэрофлот - Российские авиалинии -->
 36                               <MarkAirline>?</MarkAirline>
 37                               <!--MarkAirline — авиакомпания, продающая перелёт-->
 38                               <MarkAirlineName>?</MarkAirlineName>
 39                               <!--MarkAirlineName — название авиакомпании, продающей перелёт-->
 40                               <FlightNumber>?</FlightNumber>
 41                               <!--FlightNumber — номер рейса-->
 42                               <AircraftName>?</AircraftName>
 43                               <!--AircraftName — название воздушного судна. Например: Airbus 320-->
 44                               <AircraftType>?</AircraftType>
 45                               <!--AircraftType — тип воздушного судна, код-->
 46                               <DepDateTime>?</DepDateTime>
 47                               <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 48                               <ArrDateTime>?</ArrDateTime>
 49                               <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 50                               <StopNum>?</StopNum>
 51                               <!--StopNum — количество остановок-->
 52                               <BookingCodes>
 53                                  <BookingCode ClassType="?">
 54                                  <!--ClassType — класс перелета, например: economy-->
 55                                     <BookingCode>?</BookingCode>
 56                                     <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс 
 57                                      может записываться разными литерами, например: L-->
 58                                  </BookingCode>
 59                               </BookingCodes>
 60                               <FlightTime>?</FlightTime>
 61                               <!--FlightTime — время перелёта в минутах-->
 62                               <TimeZone Departure="?" Arrival="?"/>
 63                               <!--Departure временная зона аэропорта отправления-->
 64 			      <!--Arrival — временная зона аэропорта прибытия-->
 65                               <ETicket>?</ETicket>
 66                               <!--ETicket — признак электронного билета, значения: true / false-->
 67                            </Segment>
 68                         </Segments>
 69                         <PricingInfo Refundable="?">
 70                         <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
 71                            <PassengerFare Type="?" Quantity="?">
 72                            <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, 
 73                             INF — младенцы, INS — младенцы с местом-->
 74 		           <!--Quantity — количество пассажиров данного типа-->
 75                               <BaseFare Currency="?" Amount="?"/>
 76                               <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
 77                               <EquiveFare Currency="?" Amount="?"/>
 78                               <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи). 
 79                                Currency — код валюты, Amount — значение цены-->
 80                               <TotalFare Currency="?" Amount="?"/>
 81                               <!--TotalFare — суммарная стоимость, в эквивалентной валюте. 
 82                                Currency — код валюты, Amount — значение цены-->
 83                               <Taxes>
 84                                  <Tax CurCode="?" TaxCode="?" Amount="?"/>
 85                                  <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
 86                               </Taxes>
 87                               <Tariffs>
 88                                  <Tariff Code="?" SegNum="?"/>
 89                                  <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
 90                               </Tariffs>
 91                               <FareCalc>?</FareCalc>
 92                               <!--FareCalc — строка расчёта цены-->
 93                               <LastTicketDateTime>?</LastTicketDateTime>
 94                               <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 95                            </PassengerFare>
 96                         </PricingInfo>
 97                         <Commission/>
 98                         <Charges Currency="?">?</Charges>
 99                         <!--Charges — сборы, Currency — код валюты-->
100                         <TotalPrice Currency="?">?</TotalPrice>
101                         <!--TotalPrice — итоговая цена, Currency — код валюты-->
102                      </Flight>
103                      <Flight>...</Flight>
104                      ....................
105                      <Flight>...</Flight>
106                   </Flights>
107                   <Errors>
108                      <Error Code="?">
109                      <!--Code — код ошибки в системе Nemo-->
110                         <ServiceErrorMessage>?</ServiceErrorMessage>
111                         <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика-->
112                         <Message>?</Message>
113                         <!--Message — сообщение об ошибке от системы Nemo-->
114                      </Error>
115                   </Errors>
116                </SearchFlights>
117             </Response>
118          </ResponseBin>
119       </ns1:searchResponse>
120    </SOAP-ENV:Body>
121 </SOAP-ENV:Envelope>

В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом:

  • Если текущий домен агентства/субагентства есть в настройках (АдминистрированиеНастройки агентстваДоменное имя сайта для загрузки настроек), то этот домен используется в ссылках.
  • Если текущего домена нет в настройках, то используется первый домен из настроек.
  • Если в настройках не прописано ни одного домена, то используется текущий домен.

На поиск действуют ограничения заданные в настройках агентства, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетов.

  • Если дата поиска меньше ближайшей разрешенной даты для поиска билетов, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая
  • Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых
  • Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей
  • Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
  • Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов

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

Односторонний перелет

Пример одностороннего перелета: Москва — Мадрид, 1 взрослый, 1 ребенок, эконом класс, предпочитаемая авиакомпания — Аэрофлот.

Запрос
 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
 2    <soapenv:Header/>
 3    <soapenv:Body>
 4       <ver:search>
 5          <RequestBin>
 6             <Request>
 7                <SearchFlights LinkOnly="false">
 8                   <ODPairs Type="OW" Direct="false" AroundDates="0">
 9                      <!--Zero or more repetitions:-->
10                      <ODPair>
11                         <DepDate>2014-03-20</DepDate>
12                         <DepAirp CodeType="IATA">MOW</DepAirp>
13                         <ArrAirp CodeType="IATA">MAD</ArrAirp>
14                      </ODPair>
15                    </ODPairs>
16                   <Travellers>
17                      <!--Zero or more repetitions:-->
18                      <Traveller Type="ADT" Count="1"/>
19                      <Traveller Type="CNN" Count="1"/>
20                   </Travellers>
21                   <Restrictions>
22                      <ClassPref>economy</ClassPref>
23                      <OnlyAvail>false</OnlyAvail>
24                      <AirVPrefs>
25                         <!--Zero or more repetitions:-->
26                         <AirVPref Code="SU" Include="true" Type="IATA"/>
27                      </AirVPrefs>
28                      <IncludePrivateFare>false</IncludePrivateFare>
29                      <CurrencyCode>RUB</CurrencyCode>
30                   </Restrictions>
31                </SearchFlights>
32             </Request>
33             <Source>
34                <ClientId>---</ClientId>
35                <APIKey>---</APIKey>
36                <Language>RU</Language>
37                <Currency>RUB</Currency>
38                <ShowNames>true</ShowNames>
39             </Source>
40          </RequestBin>
41       </ver:search>
42    </soapenv:Body>
43 </soapenv:Envelope>
Ответ
  1 <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">
  2    <SOAP-ENV:Body>
  3       <ns1:searchResponse>
  4          <ResponseBin>
  5             <Response>
  6                <SearchFlights>
  7                   <Flights SearchId="13949" ResultURL="http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D13949">
  8                      <Flight FlightId="168090001">
  9                         <WebService>SABRE</WebService>
 10                         <ValCompany/>
 11                         <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090001</URL>
 12                         <Segments>
 13                            <Segment SegNum="1" SegGroupNum="0">
 14                               <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp>
 15                               <DepTerminal/>
 16                               <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp>
 17                               <ArrTerminal/>
 18                               <OpAirline>SU</OpAirline>
 19                               <OpAirlineName>Аэрофлот - Российские авиалинии</OpAirlineName>
 20                               <MarkAirline>SU</MarkAirline>
 21                               <MarkAirlineName>Аэрофлот - Российские авиалинии</MarkAirlineName>
 22                               <FlightNumber>2500</FlightNumber>
 23                               <AircraftName>Airbus 320</AircraftName>
 24                               <AircraftType>320</AircraftType>
 25                               <DepDateTime>2014-03-20T08:05:00</DepDateTime>
 26                               <ArrDateTime>2014-03-20T10:15:00</ArrDateTime>
 27                               <StopNum>0</StopNum>
 28                               <BookingCodes>
 29                                  <BookingCode ClassType="economy">
 30                                     <BookingCode>E</BookingCode>
 31                                  </BookingCode>
 32                               </BookingCodes>
 33                               <FlightTime>310</FlightTime>
 34                               <TimeZone Departure="4" Arrival="1"/>
 35                               <ETicket>true</ETicket>
 36                            </Segment>
 37                         </Segments>
 38                         <PricingInfo Refundable="false">
 39                            <PassengerFare Type="ADT" Quantity="1">
 40                               <BaseFare Currency="EUR" Amount="165"/>
 41                               <EquiveFare Currency="RUB" Amount="8250"/>
 42                               <TotalFare Currency="RUB" Amount="10535"/>
 43                               <Taxes>
 44                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 45                                  <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 46                               </Taxes>
 47                               <Tariffs/>
 48                               <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 49                               <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 50                            </PassengerFare>
 51                            <PassengerFare Type="CNN" Quantity="1">
 52                               <BaseFare Currency="EUR" Amount="124"/>
 53                               <EquiveFare Currency="RUB" Amount="6200"/>
 54                               <TotalFare Currency="RUB" Amount="8485"/>
 55                               <Taxes>
 56                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 57                                  <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 58                               </Taxes>
 59                               <Tariffs/>
 60                               <FareCalc>MOW SU MAD169.08NUC169.08END ROE0.731857</FareCalc>
 61                               <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 62                            </PassengerFare>
 63                         </PricingInfo>
 64                         <Commission/>
 65                         <Charges Currency="RUB">0</Charges>
 66                         <TotalPrice Currency="RUB">19020</TotalPrice>
 67                      </Flight>
 68                      <Flight FlightId="168090002">
 69                         <WebService>SABRE</WebService>
 70                         <ValCompany/>
 71                         <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090002</URL>
 72                         <Segments>
 73                            <Segment SegNum="1" SegGroupNum="0">
 74                               <DepAirp CodeType="IATA">SVO</DepAirp>
 75                               <DepTerminal/>
 76                               <ArrAirp CodeType="IATA">MAD</ArrAirp>
 77                               <ArrTerminal/>
 78                               <OpAirline>SU</OpAirline>
 79                               <MarkAirline>SU</MarkAirline>
 80                               <FlightNumber>2604</FlightNumber>
 81                               <AircraftType>320</AircraftType>
 82                               <DepDateTime>2014-03-20T20:30:00</DepDateTime>
 83                               <ArrDateTime>2014-03-20T22:40:00</ArrDateTime>
 84                               <StopNum>0</StopNum>
 85                               <BookingCodes>
 86                                  <BookingCode ClassType="economy">
 87                                     <BookingCode>E</BookingCode>
 88                                  </BookingCode>
 89                               </BookingCodes>
 90                               <FlightTime>310</FlightTime>
 91                               <TimeZone Departure="4" Arrival="1"/>
 92                               <ETicket>true</ETicket>
 93                            </Segment>
 94                         </Segments>
 95                         <PricingInfo Refundable="false">
 96                            <PassengerFare Type="ADT" Quantity="1">
 97                               <BaseFare Currency="EUR" Amount="165"/>
 98                               <EquiveFare Currency="RUB" Amount="8250"/>
 99                               <TotalFare Currency="RUB" Amount="10535"/>
100                               <Taxes>
101                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
102                                  <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
103                               </Taxes>
104                               <Tariffs/>
105                               <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
106                               <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
107                            </PassengerFare>
108                            <PassengerFare Type="CNN" Quantity="1">
109                               <BaseFare Currency="EUR" Amount="124"/>
110                               <EquiveFare Currency="RUB" Amount="6200"/>
111                               <TotalFare Currency="RUB" Amount="8485"/>
112                               <Taxes>
113                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
114                                  <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
115                               </Taxes>
116                               <Tariffs/>
117                               <FareCalc>MOW SU MAD169.08NUC169.08END ROE0.731857</FareCalc>
118                               <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
119                            </PassengerFare>
120                         </PricingInfo>
121                         <Commission/>
122                         <Charges Currency="RUB">0</Charges>
123                         <TotalPrice Currency="RUB">19020</TotalPrice>
124                      </Flight>
125                      <Flight FlightId="168090003">
126                         <WebService>SABRE</WebService>
127                         <ValCompany/>
128                         <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090003</URL>
129                         <Segments>
130                            <Segment SegNum="1" SegGroupNum="0">
131                               <DepAirp CodeType="IATA">SVO</DepAirp>
132                               <DepTerminal/>
133                               <ArrAirp CodeType="IATA">BCN</ArrAirp>
134                               <ArrTerminal/>
135                               <OpAirline>SU</OpAirline>
136                               <MarkAirline>SU</MarkAirline>
137                               <FlightNumber>2638</FlightNumber>
138                               <AircraftType>321</AircraftType>
139                               <DepDateTime>2014-03-20T09:10:00</DepDateTime>
140                               <ArrDateTime>2014-03-20T10:40:00</ArrDateTime>
141                               <StopNum>0</StopNum>
142                               <BookingCodes>
143                                  <BookingCode ClassType="economy">
144                                     <BookingCode>E</BookingCode>
145                                  </BookingCode>
146                               </BookingCodes>
147                               <FlightTime>270</FlightTime>
148                               <TimeZone Departure="4" Arrival="1"/>
149                               <ETicket>true</ETicket>
150                            </Segment>
151                            <Segment SegNum="2" SegGroupNum="0">
152                               <DepAirp CodeType="IATA">BCN</DepAirp>
153                               <DepTerminal/>
154                               <ArrAirp CodeType="IATA">MAD</ArrAirp>
155                               <ArrTerminal/>
156                               <OpAirline>UX</OpAirline>
157                               <MarkAirline>SU</MarkAirline>
158                               <FlightNumber>3403</FlightNumber>
159                               <AircraftType>738</AircraftType>
160                               <DepDateTime>2014-03-20T12:05:00</DepDateTime>
161                               <ArrDateTime>2014-03-20T13:25:00</ArrDateTime>
162                               <StopNum>0</StopNum>
163                               <BookingCodes>
164                                  <BookingCode ClassType="economy">
165                                     <BookingCode>E</BookingCode>
166                                  </BookingCode>
167                               </BookingCodes>
168                               <FlightTime>80</FlightTime>
169                               <TimeZone Departure="1" Arrival="1"/>
170                               <ETicket>true</ETicket>
171                            </Segment>
172                         </Segments>
173                         <PricingInfo Refundable="false">
174                            <PassengerFare Type="ADT" Quantity="1">
175                               <BaseFare Currency="EUR" Amount="165"/>
176                               <EquiveFare Currency="RUB" Amount="8250"/>
177                               <TotalFare Currency="RUB" Amount="13681"/>
178                               <Taxes>
179                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
180                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
181                                  <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
182                                  <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
183                                  <Tax CurCode="RUB" TaxCode="JD" Amount="675"/>
184                                  <Tax CurCode="RUB" TaxCode="QV" Amount="186"/>
185                               </Taxes>
186                               <Tariffs/>
187                               <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
188                               <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
189                            </PassengerFare>
190                            <PassengerFare Type="CNN" Quantity="1">
191                               <BaseFare Currency="EUR" Amount="124"/>
192                               <EquiveFare Currency="RUB" Amount="6200"/>
193                               <TotalFare Currency="RUB" Amount="11631"/>
194                               <Taxes>
195                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
196                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
197                                  <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
198                                  <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
199                                  <Tax CurCode="RUB" TaxCode="JD" Amount="675"/>
200                                  <Tax CurCode="RUB" TaxCode="QV" Amount="186"/>
201                               </Taxes>
202                               <Tariffs/>
203                               <FareCalc>MOW SU X/BCN SU MAD169.08NUC169.08END ROE0.731857</FareCalc>
204                               <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
205                            </PassengerFare>
206                         </PricingInfo>
207                         <Commission/>
208                         <Charges Currency="RUB">0</Charges>
209                         <TotalPrice Currency="RUB">25312</TotalPrice>
210                      </Flight>
211                      .........
212                      <Flight>...</Flight>
213                   </Flights>
214                   <Errors xsi:nil="true"/>
215                </SearchFlights>
216             </Response>
217          </ResponseBin>
218       </ns1:searchResponse>
219    </SOAP-ENV:Body>
220 </SOAP-ENV:Envelope>

Перелет туда-обратно

Пример перелета туда-обратно: Москва — Париж, 2 взрослых, бизнес класс. Выдача с именами авиакомпаний, воздушных судов, аэропортов.

Запрос
 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
 2  <soapenv:Header/>
 3    <soapenv:Body>
 4       <ver:search>
 5          <RequestBin>
 6             <Request>
 7                <SearchFlights LinkOnly="false">
 8                   <ODPairs Type="RT" Direct="false" AroundDates="0">
 9                      <!--Zero or more repetitions:-->
10                      <ODPair>
11                         <DepDate>2014-12-20</DepDate>
12                         <DepAirp CodeType="IATA">MOW</DepAirp>
13                         <ArrAirp CodeType="IATA">PAR</ArrAirp>
14                      </ODPair>
15                       <ODPair>
16                         <DepDate>2014-12-21</DepDate>
17                         <DepAirp CodeType="IATA">PAR</DepAirp>
18                         <ArrAirp CodeType="IATA">MOW</ArrAirp>
19                      </ODPair>
20                    </ODPairs>
21                   <Travellers>
22                      <!--Zero or more repetitions:-->
23                      <Traveller Type="ADT" Count="2"/>
24                   </Travellers>
25                   <Restrictions>
26                      <ClassPref>business</ClassPref>
27                      <OnlyAvail>false</OnlyAvail>
28                      <AirVPrefs/>
29                      <IncludePrivateFare>false</IncludePrivateFare>
30                      <CurrencyCode>RUB</CurrencyCode>
31                   </Restrictions>
32                </SearchFlights>
33             </Request>
34             <Source>
35                <ClientId>---</ClientId>
36                <APIKey>---</APIKey>
37                <Language>RU</Language>
38                <Currency>RUB</Currency>
39                <ShowNames>true</ShowNames>
40             </Source>
41          </RequestBin>
42       </ver:search>
43    </soapenv:Body>
44 </soapenv:Envelope>
Ответ
  1 <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">
  2     <SOAP-ENV:Body>
  3       <ns1:searchResponse>
  4          <ResponseBin>
  5             <Response>
  6                <SearchFlights>
  7                   <Flights SearchId="190484987" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190484987">
  8                      <Flight FlightId="372384680001">
  9                         <WebService>SABRE</WebService>
 10                         <ValCompany/>
 11                         <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190484987%26flight%3D372384680001%26utm_source%3Dalias1</URL>
 12                         <Segments>
 13                            <Segment SegNum="1" SegGroupNum="0">
 14                               <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp>
 15                               <DepTerminal xsi:nil="true"/>
 16                               <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</ArrAirp>
 17                               <ArrTerminal xsi:nil="true"/>
 18                               <OpAirline>JU</OpAirline>
 19                               <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 20                               <MarkAirline>JU</MarkAirline>
 21                               <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 22                               <FlightNumber>657</FlightNumber>
 23                               <AircraftName>Airbus 319</AircraftName>
 24                               <AircraftType>319</AircraftType>
 25                               <DepDateTime>2014-12-20T05:05:00</DepDateTime>
 26                               <ArrDateTime>2014-12-20T06:05:00</ArrDateTime>
 27                               <StopNum>0</StopNum>
 28                               <BookingCodes>
 29                                  <BookingCode ClassType="business">
 30                                     <BookingCode>W</BookingCode>
 31                                  </BookingCode>
 32                               </BookingCodes>
 33                               <FlightTime>180</FlightTime>
 34                               <TimeZone Departure="3" Arrival="1"/>
 35                               <ETicket>true</ETicket>
 36                            </Segment>
 37                            <Segment SegNum="2" SegGroupNum="0">
 38                               <DepAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</DepAirp>
 39                               <DepTerminal xsi:nil="true"/>
 40                               <ArrAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</ArrAirp>
 41                               <ArrTerminal xsi:nil="true"/>
 42                               <OpAirline>JU</OpAirline>
 43                               <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 44                               <MarkAirline>JU</MarkAirline>
 45                               <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 46                               <FlightNumber>314</FlightNumber>
 47                               <AircraftName>Airbus 320</AircraftName>
 48                               <AircraftType>320</AircraftType>
 49                               <DepDateTime>2014-12-20T17:10:00</DepDateTime>
 50                               <ArrDateTime>2014-12-20T19:50:00</ArrDateTime>
 51                               <StopNum>0</StopNum>
 52                               <BookingCodes>
 53                                  <BookingCode ClassType="business">
 54                                     <BookingCode>W</BookingCode>
 55                                  </BookingCode>
 56                               </BookingCodes>
 57                               <FlightTime>160</FlightTime>
 58                               <TimeZone Departure="1" Arrival="1"/>
 59                               <ETicket>true</ETicket>
 60                            </Segment>
 61                            <Segment SegNum="3" SegGroupNum="1">
 62                               <DepAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</DepAirp>
 63                               <DepTerminal xsi:nil="true"/>
 64                               <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</ArrAirp>
 65                               <ArrTerminal xsi:nil="true"/>
 66                               <OpAirline>JU</OpAirline>
 67                               <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 68                               <MarkAirline>JU</MarkAirline>
 69                               <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 70                               <FlightNumber>311</FlightNumber>
 71                               <AircraftName>Airbus 320</AircraftName>
 72                               <AircraftType>320</AircraftType>
 73                               <DepDateTime>2014-12-21T10:10:00</DepDateTime>
 74                               <ArrDateTime>2014-12-21T12:30:00</ArrDateTime>
 75                               <StopNum>0</StopNum>
 76                               <BookingCodes>
 77                                  <BookingCode ClassType="business">
 78                                     <BookingCode>W</BookingCode>
 79                                  </BookingCode>
 80                               </BookingCodes>
 81                               <FlightTime>140</FlightTime>
 82                               <TimeZone Departure="1" Arrival="1"/>
 83                               <ETicket>true</ETicket>
 84                            </Segment>
 85                            <Segment SegNum="4" SegGroupNum="1">
 86                               <DepAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</DepAirp>
 87                               <DepTerminal xsi:nil="true"/>
 88                               <ArrAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</ArrAirp>
 89                               <ArrTerminal xsi:nil="true"/>
 90                               <OpAirline>JU</OpAirline>
 91                               <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 92                               <MarkAirline>JU</MarkAirline>
 93                               <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 94                               <FlightNumber>656</FlightNumber>
 95                               <AircraftName>Airbus 319</AircraftName>
 96                               <AircraftType>319</AircraftType>
 97                               <DepDateTime>2014-12-21T23:20:00</DepDateTime>
 98                               <ArrDateTime>2014-12-22T04:10:00</ArrDateTime>
 99                               <StopNum>0</StopNum>
100                               <BookingCodes>
101                                  <BookingCode ClassType="business">
102                                     <BookingCode>W</BookingCode>
103                                  </BookingCode>
104                               </BookingCodes>
105                               <FlightTime>170</FlightTime>
106                               <TimeZone Departure="1" Arrival="3"/>
107                               <ETicket>true</ETicket>
108                            </Segment>
109                         </Segments>
110                         <PricingInfo Refundable="true">
111                            <PassengerFare Type="ADT" Quantity="2">
112                               <BaseFare Currency="EUR" Amount="620"/>
113                               <EquiveFare Currency="RUB" Amount="34720"/>
114                               <TotalFare Currency="RUB" Amount="44430"/>
115                               <Taxes>
116                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
117                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
118                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
119                                  <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
120                                  <Tax CurCode="RUB" TaxCode="RI" Amount="428"/>
121                                  <Tax CurCode="RUB" TaxCode="RI" Amount="428"/>
122                                  <Tax CurCode="RUB" TaxCode="UH" Amount="304"/>
123                                  <Tax CurCode="RUB" TaxCode="LG" Amount="185"/>
124                                  <Tax CurCode="RUB" TaxCode="LG" Amount="185"/>
125                                  <Tax CurCode="RUB" TaxCode="RS" Amount="224"/>
126                                  <Tax CurCode="RUB" TaxCode="RS" Amount="224"/>
127                                  <Tax CurCode="RUB" TaxCode="RF" Amount="55"/>
128                                  <Tax CurCode="RUB" TaxCode="RF" Amount="55"/>
129                                  <Tax CurCode="RUB" TaxCode="FR1" Amount="434"/>
130                                  <Tax CurCode="RUB" TaxCode="FR4" Amount="714"/>
131                                  <Tax CurCode="RUB" TaxCode="QX3" Amount="1546"/>
132                                  <Tax CurCode="RUB" TaxCode="IZ4" Amount="224"/>
133                               </Taxes>
134                               <Tariffs>
135                                  <Tariff Code="WRTRU" SegNum="4"/>
136                               </Tariffs>
137                               <FareCalc>MOW JU X/BEG JU PAR401.57JU X/BEG JU MOW401.57NUC803.14END ROE0.771963</FareCalc>
138                               <LastTicketDateTime>2014-12-20T04:05:00</LastTicketDateTime>
139                            </PassengerFare>
140                         </PricingInfo>
141                         <Commission/>
142                         <Charges Currency="RUB">0</Charges>
143                         <TotalPrice Currency="RUB">88860</TotalPrice>
144                      </Flight>
145                      .........
146                      <Flight>...</Flight>
147                   </Flights>
148                   <Errors xsi:nil="true"/>
149                </SearchFlights>
150             </Response>
151          </ResponseBin>
152       </ns1:searchResponse>
153    </SOAP-ENV:Body>
154 </SOAP-ENV:Envelope>

Сложный маршрут

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

Запрос
 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
 2     <soapenv:Header/>
 3    <soapenv:Body>
 4       <ver:search>
 5          <RequestBin>
 6             <Request>
 7                <SearchFlights LinkOnly="false">
 8                   <ODPairs Type="CR" Direct="false" AroundDates="0">
 9                      <!--Zero or more repetitions:-->
10                      <ODPair>
11                         <DepDate>2014-12-20</DepDate>
12                         <DepAirp CodeType="IATA">PRG</DepAirp>
13                         <ArrAirp CodeType="IATA">MOW</ArrAirp>
14                      </ODPair>
15                       <ODPair>
16                         <DepDate>2014-12-23</DepDate>
17                         <DepAirp CodeType="IATA">MOW</DepAirp>
18                         <ArrAirp CodeType="IATA">MIL</ArrAirp>
19                      </ODPair>
20                      <ODPair>
21                         <DepDate>2014-12-27</DepDate>
22                         <DepAirp CodeType="IATA">MIL</DepAirp>
23                         <ArrAirp CodeType="IATA">MAD</ArrAirp>
24                      </ODPair>
25                    </ODPairs>
26                   <Travellers>
27                      <!--Zero or more repetitions:-->
28                      <Traveller Type="ADT" Count="1"/>
29                      <Traveller Type="INF" Count="1"/>
30                   </Travellers>
31                   <Restrictions>
32                      <ClassPref>economy</ClassPref>
33                      <OnlyAvail>false</OnlyAvail>
34                      <AirVPrefs/>
35                      <IncludePrivateFare>false</IncludePrivateFare>
36                      <CurrencyCode>RUB</CurrencyCode>
37                   </Restrictions>
38                </SearchFlights>
39             </Request>
40             <Source>
41                <ClientId>134</ClientId>
42                <APIKey>93632C10DA299034C03D742FB160C2D6</APIKey>
43                <Language>RU</Language>
44                <Currency>RUB</Currency>
45                <ShowNames>true</ShowNames>
46             </Source>
47          </RequestBin>
48       </ver:search>
49    </soapenv:Body>
50 </soapenv:Envelope>
Ответ
  1 <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">
  2    <SOAP-ENV:Body>
  3       <ns1:searchResponse>
  4          <ResponseBin>
  5             <Response>
  6                <SearchFlights>
  7                   <Flights SearchId="190491108" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190491108">
  8                      <Flight FlightId="372394480001">
  9                         <WebService>SABRE</WebService>
 10                         <ValCompany/>
 11                         <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190491108%26flight%3D372394480001%26utm_source%3Dalias1</URL>
 12                         <Segments>
 13                            <Segment SegNum="1" SegGroupNum="0">
 14                               <DepAirp CodeType="IATA" Name="Прага">PRG</DepAirp>
 15                               <DepTerminal xsi:nil="true"/>
 16                               <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp>
 17                               <ArrTerminal xsi:nil="true"/>
 18                               <OpAirline>LX</OpAirline>
 19                               <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 20                               <MarkAirline>LX</MarkAirline>
 21                               <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 22                               <FlightNumber>1485</FlightNumber>
 23                               <AircraftName>Avro RJ100</AircraftName>
 24                               <AircraftType>AR1</AircraftType>
 25                               <DepDateTime>2014-12-20T10:05:00</DepDateTime>
 26                               <ArrDateTime>2014-12-20T11:30:00</ArrDateTime>
 27                               <StopNum>0</StopNum>
 28                               <BookingCodes>
 29                                  <BookingCode ClassType="economy">
 30                                     <BookingCode>K</BookingCode>
 31                                  </BookingCode>
 32                               </BookingCodes>
 33                               <FlightTime>85</FlightTime>
 34                               <TimeZone Departure="1" Arrival="1"/>
 35                               <ETicket>true</ETicket>
 36                            </Segment>
 37                            <Segment SegNum="2" SegGroupNum="0">
 38                               <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
 39                               <DepTerminal xsi:nil="true"/>
 40                               <ArrAirp CodeType="IATA" Name="Домодедово, Москва">DME</ArrAirp>
 41                               <ArrTerminal xsi:nil="true"/>
 42                               <OpAirline>LX</OpAirline>
 43                               <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 44                               <MarkAirline>LX</MarkAirline>
 45                               <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 46                               <FlightNumber>1326</FlightNumber>
 47                               <AircraftName>Airbus 321</AircraftName>
 48                               <AircraftType>321</AircraftType>
 49                               <DepDateTime>2014-12-20T12:20:00</DepDateTime>
 50                               <ArrDateTime>2014-12-20T17:50:00</ArrDateTime>
 51                               <StopNum>0</StopNum>
 52                               <BookingCodes>
 53                                  <BookingCode ClassType="economy">
 54                                     <BookingCode>K</BookingCode>
 55                                  </BookingCode>
 56                               </BookingCodes>
 57                               <FlightTime>210</FlightTime>
 58                               <TimeZone Departure="1" Arrival="3"/>
 59                               <ETicket>true</ETicket>
 60                            </Segment>
 61                            <Segment SegNum="3" SegGroupNum="1">
 62                               <DepAirp CodeType="IATA" Name="Домодедово, Москва">DME</DepAirp>
 63                               <DepTerminal xsi:nil="true"/>
 64                               <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp>
 65                               <ArrTerminal xsi:nil="true"/>
 66                               <OpAirline>LX</OpAirline>
 67                               <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 68                               <MarkAirline>LX</MarkAirline>
 69                               <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 70                               <FlightNumber>1325</FlightNumber>
 71                               <AircraftName>Airbus 321</AircraftName>
 72                               <AircraftType>321</AircraftType>
 73                               <DepDateTime>2014-12-23T09:05:00</DepDateTime>
 74                               <ArrDateTime>2014-12-23T10:50:00</ArrDateTime>
 75                               <StopNum>0</StopNum>
 76                               <BookingCodes>
 77                                  <BookingCode ClassType="economy">
 78                                     <BookingCode>V</BookingCode>
 79                                  </BookingCode>
 80                               </BookingCodes>
 81                               <FlightTime>225</FlightTime>
 82                               <TimeZone Departure="3" Arrival="1"/>
 83                               <ETicket>true</ETicket>
 84                            </Segment>
 85                            <Segment SegNum="4" SegGroupNum="1">
 86                               <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
 87                               <DepTerminal xsi:nil="true"/>
 88                               <ArrAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</ArrAirp>
 89                               <ArrTerminal xsi:nil="true"/>
 90                               <OpAirline>LX</OpAirline>
 91                               <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 92                               <MarkAirline>LX</MarkAirline>
 93                               <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 94                               <FlightNumber>1628</FlightNumber>
 95                               <AircraftName>Avro RJ100</AircraftName>
 96                               <AircraftType>AR1</AircraftType>
 97                               <DepDateTime>2014-12-23T12:25:00</DepDateTime>
 98                               <ArrDateTime>2014-12-23T13:20:00</ArrDateTime>
 99                               <StopNum>0</StopNum>
100                               <BookingCodes>
101                                  <BookingCode ClassType="economy">
102                                     <BookingCode>K</BookingCode>
103                                  </BookingCode>
104                               </BookingCodes>
105                               <FlightTime>55</FlightTime>
106                               <TimeZone Departure="1" Arrival="1"/>
107                               <ETicket>true</ETicket>
108                            </Segment>
109                            <Segment SegNum="5" SegGroupNum="2">
110                               <DepAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</DepAirp>
111                               <DepTerminal xsi:nil="true"/>
112                               <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp>
113                               <ArrTerminal xsi:nil="true"/>
114                               <OpAirline>LX</OpAirline>
115                               <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
116                               <MarkAirline>LX</MarkAirline>
117                               <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
118                               <FlightNumber>1639</FlightNumber>
119                               <AircraftName>Avro RJ100</AircraftName>
120                               <AircraftType>AR1</AircraftType>
121                               <DepDateTime>2014-12-27T07:05:00</DepDateTime>
122                               <ArrDateTime>2014-12-27T08:05:00</ArrDateTime>
123                               <StopNum>0</StopNum>
124                               <BookingCodes>
125                                  <BookingCode ClassType="economy">
126                                     <BookingCode>K</BookingCode>
127                                  </BookingCode>
128                               </BookingCodes>
129                               <FlightTime>60</FlightTime>
130                               <TimeZone Departure="1" Arrival="1"/>
131                               <ETicket>true</ETicket>
132                            </Segment>
133                            <Segment SegNum="6" SegGroupNum="2">
134                               <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
135                               <DepTerminal xsi:nil="true"/>
136                               <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp>
137                               <ArrTerminal xsi:nil="true"/>
138                               <OpAirline>LX</OpAirline>
139                               <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
140                               <MarkAirline>LX</MarkAirline>
141                               <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
142                               <FlightNumber>2026</FlightNumber>
143                               <AircraftName/>
144                               <AircraftType>32A</AircraftType>
145                               <DepDateTime>2014-12-27T12:30:00</DepDateTime>
146                               <ArrDateTime>2014-12-27T14:50:00</ArrDateTime>
147                               <StopNum>0</StopNum>
148                               <BookingCodes>
149                                  <BookingCode ClassType="economy">
150                                     <BookingCode>V</BookingCode>
151                                  </BookingCode>
152                               </BookingCodes>
153                               <FlightTime>140</FlightTime>
154                               <TimeZone Departure="1" Arrival="1"/>
155                               <ETicket>true</ETicket>
156                            </Segment>
157                         </Segments>
158                         <PricingInfo Refundable="false">
159                            <PassengerFare Type="ADT" Quantity="1">
160                               <BaseFare Currency="CZK" Amount="8440"/>
161                               <EquiveFare Currency="RUB" Amount="17305"/>
162                               <TotalFare Currency="RUB" Amount="31456"/>
163                               <Taxes>
164                                  <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
165                                  <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
166                                  <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/>
167                                  <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
168                                  <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
169                                  <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/>
170                                  <Tax CurCode="RUB" TaxCode="RI" Amount="378"/>
171                                  <Tax CurCode="RUB" TaxCode="RI" Amount="378"/>
172                                  <Tax CurCode="RUB" TaxCode="UH" Amount="284"/>
173                                  <Tax CurCode="RUB" TaxCode="CZ" Amount="1159"/>
174                                  <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
175                                  <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
176                                  <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
177                                  <Tax CurCode="RUB" TaxCode="EX" Amount="56"/>
178                                  <Tax CurCode="RUB" TaxCode="IT1" Amount="707"/>
179                                  <Tax CurCode="RUB" TaxCode="VT" Amount="142"/>
180                                  <Tax CurCode="RUB" TaxCode="HB" Amount="364"/>
181                                  <Tax CurCode="RUB" TaxCode="MJ" Amount="67"/>
182                               </Taxes>
183                               <Tariffs>
184                                  <Tariff Code="KNC29F3S" SegNum="2"/>
185                                  <Tariff Code="VNC28G2S" SegNum="6"/>
186                                  <Tariff Code="KNN2SSR" SegNum="5"/>
187                               </Tariffs>
188                               <FareCalc>PRG LX X/ZRH LX MOW28.06LX ZRH*LX MIL31.13LX ZRH31.13*LX MAD175.52 1S129.53NUC395.37END ROE21.3469</FareCalc>
189                               <LastTicketDateTime>2014-12-20T11:05:00</LastTicketDateTime>
190                            </PassengerFare>
191                            <PassengerFare Type="INF" Quantity="1">
192                               <BaseFare Currency="CZK" Amount="3333"/>
193                               <EquiveFare Currency="RUB" Amount="6835"/>
194                               <TotalFare Currency="RUB" Amount="6835"/>
195                               <Taxes/>
196                               <Tariffs>
197                                  <Tariff Code="KNC29F3S/IN90" SegNum="2"/>
198                                  <Tariff Code="VNC28G2S/IN90" SegNum="6"/>
199                                  <Tariff Code="KNN2SSR/IN90" SegNum="5"/>
200                               </Tariffs>
201                               <FareCalc>PRG LX X/ZRH LX MOW2.80LX ZRH*LX MIL3.11LX ZRH3.11*LX MAD17.55 1S129.53NUC156.10END ROE21.3469</FareCalc>
202                               <LastTicketDateTime>2014-12-20T11:05:00</LastTicketDateTime>
203                            </PassengerFare>
204                         </PricingInfo>
205                         <Commission/>
206                         <Charges Currency="RUB">765.82</Charges>
207                         <TotalPrice Currency="RUB">39056.82</TotalPrice>
208                      </Flight>
209                      .........
210                      <Flight>...</Flight>
211                   </Flights>
212                   <Errors xsi:nil="true"/>
213                </SearchFlights>
214             </Response>
215          </ResponseBin>
216       </ns1:searchResponse>
217    </SOAP-ENV:Body>
218 </SOAP-ENV:Envelope>


API Поиска отелей

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

Динамические данные

Поиск

Сервис предназначен для получения списка отелей, удовлетворяющих условиям запроса. В условия запроса входят: идентификатор города, где будет вестись поиск; дата заезда и дата выезда; информация о количестве людей и способе их размещения в комнатах. Так же указываются дополнительные необязательные поля фильтров.

Для получения списка доступных городов, воспользуйтесь запросом на выгрузку статики (см. ССЫЛКА). Список допустимых отелей для фильтра также доступен через сервис (см. ССЫЛКА). Рекомендуется выгрузить все данные по отелям, городам и странам в локальную базу, для экономии времени и запросов.

WSDL (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch

Запрос
 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
 3   <soapenv:Header/>
 4   <soapenv:Body>
 5     <ver:search>
 6       <RequestBin>
 7         <Request>
 8           <HotelSearch>
 9             <CityId>22046</CityId>
10             <DateBegin>2013-10-15</DateBegin>
11             <DateEnd>2013-10-18</DateEnd>
12             <Rooms>
13               <!--Zero or more repetitions:-->
14               <Room>
15                 <Persons>
16                   <!--Zero or more repetitions:-->
17                   <Person Id="1" Type="ADT" Age="30"/>
18                   <Person Id="2" Type="CLD" Age="10"/>
19                 </Persons>
20                 <!--Optional:-->
21                 <DoubleBed>false</DoubleBed>
22               </Room>
23               <Room>
24                 <Persons>
25                   <!--Zero or more repetitions:-->
26                   <Person Id="1" Type="ADT" Age="30"/>
27                 </Persons>
28               </Room>
29             </Rooms>
30             <!--Optional:-->
31             <Filters>
32               <Hotels>
33                 <!--Zero or more repetitions:-->
34                 <!--<Id>123</Id>-->
35               </Hotels>
36             </Filters>
37           </HotelSearch>
38         </Request>
39         <Source>
40           <ClientId></ClientId>
41           <APIKey></APIKey>
42           <Language>ru</Language>
43           <Currency>RUB</Currency>
44         </Source>
45       </RequestBin>
46     </ver:search>
47   </soapenv:Body>
48 </soapenv:Envelope>

Элемент HotelSearch

Элемент Описание Допустимые значения
CityId Обязательный. Идентификатор города в системе Nemo. Целое число
DateBegin Обязательный. Дата заселения. Формат гггг-мм-дд.
DateEnd Обязательный. Дата выезда. Формат гггг-мм-дд.
Rooms Обязательный. Содержит массив запрашиваемых номеров/апартаментов. Элемент Room. Максимум 4 элемента Room.
Filters Необязательный. Содержит различные фильтры поиска отелей. Элемент Hotels.

Элемент Room

Элемент Описание Допустимые значения
Persons Обязательный. Содержит данные о клиентах в номерах. Элемент Person
DoubleBed Необязательный. Может быть использован только если сумма количества детей и взрослых равна 2-м, а также

Если в запросе сумма детей и взрослых не равна 2, то данный элемент будет проигнорирован.

true/false

true означает, что номер должен иметь двуспальную кровать

Элемент Person

Элемент Описание Допустимые значения
Атрибут Id Уникальный идентификатор. См. результаты бронирования. Целое число
Атрибут Type Тип клиента.

Если не указан, будет определен по возрасту Age.

Константы:

ADT - взрослый CLD - ребенок 2-12 лет INF - младенец до 2х лет

Атрибут Age Возраст. Обязателен для детей (CLD). Целое число. Количество лет.

Элемент Filters

Элемент Описание Допустимые значения
Hotels Необязательный. Набор идентификаторов отелей в системе Nemo.

Результаты поиска будут ограничены только этими отелями. Данная опция может существенно ускорить поиск - рекомендуется всегда устанавливать при поиске конкретных отелей.

Элемент Id – целое число

Элемент Source

Элемент Описание Допустимые значения
ClientID Обязательный. ID клиента в системе Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Целое число.
APIKey Обязательный. APIKey - секретный ключ доступа к API Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Латинские буквы и цифры. Всего 32 символа.
Ответ

Система по заданным параметрам ищет отели и возвращает результаты поиска. Все результаты поиска хранятся в базе Nemo определенный срок и доступны для бронирования по идентификатору CacheId.

Структура ответа - это набор уникальных отелей. У каждого указан Id - это идентификатор из базы Nemo. По нему можно получить дополнительную статичную информацию из путеводителя Nemo.

Каждый отель содержит:

  • Набор номеров <Rooms>. Типы номеров (одноместный, двухместный и т.д.) : устанавливается автоматически по количеству клиентов из запроса.
  • Сервисы <Services>. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться.
  • Категория <Categories>. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий.
 1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
 3   <SOAP-ENV:Body>
 4     <ns1:searchResponse>
 5       <ResponseBin>
 6         <Response>
 7           <HotelSearch>
 8             <Hotels>
 9               <Hotel Id="1872666">
10                 <Supplier>GTA</Supplier>
11                 <CityId>22046</CityId>
12                 <DateBegin>2013-10-15</DateBegin>
13                 <DateEnd>2013-10-18</DateEnd>
14                 <CacheId>1872666</CacheId>
15                 <Name>ADLON KEMPINSKI</Name>
16                 <Categories>
17                   <Category Id="1">
18                     <Rooms>
19                       <Room Count="1" Id="1" ServiceId="1"/>
20                       <Room Count="1" Id="2" ServiceId="2"/>
21                     </Rooms>
22                     <TotalPrice Currency="RUB">74733.84</TotalPrice>
23                   </Category>
24                 </Categories>
25                 <Services>
26                   <Service Id="1" Status="OK">
27                     <Desc>Standard Twin</Desc>
28                     <Meal>Full Breakfast</Meal>
29                     <Price/>
30                   </Service>
31                   <Service Id="2" Status="OK">
32                     <Desc>Standard Twin</Desc>
33                     <Meal>Full Breakfast</Meal>
34                     <Price/>
35                   </Service>
36                 </Services>
37                 <Rooms>
38                   <Room Id="1" Type="TWIN"/>
39                   <Room Id="2" Type="SNGL"/>
40                 </Rooms>
41               </Hotel>
42 		...
43             </Hotels>
44           </HotelSearch>
45         </Response>
46       </ResponseBin>
47     </ns1:searchResponse>
48   </SOAP-ENV:Body>
49 </SOAP-ENV:Envelope>

Элемент Hotel

Элемент Описание Допустимые значения
Атрибут Id Обязательный. Идентификатор отеля как одного из результатов поиска в системе Nemo. Целое число.
Supplier Обязательный. Тип поставщика, в котором найден отель. Строка.

Возможные значения: GTA HOTELBEDS DOTW SERHS MIKI TRAVCO ACADEM TOURICO

CityId Обязательный. Идентификатор города в системе Nemo. Целое число.
CacheId Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo. Целое число.
Name Обязательный. Название отеля. Строка в произвольном формате.
Services Обязательный. Услуги в отеле. Элемент Service
Rooms Обязательный. Комнаты в отеле. Элемент Room
Categories Обязательный. Категории, доступные для бронирования в отеле. Элемент Category

Элемент Service

Элемент Описание Допустимые значения
Атрибут Id Обязательный. Идентификатор услуги. Целое число
Атрибут Status Обязательный. Доступность отеля. ОК означает доступен (мгновенное подтверждение).

RQ - недоступен (по запросу).

ОК/RQ
Desc Необязательный. Описание отеля. Строка в произвольном формате.
Meal Обязательный. Питание для данного сервиса. Строка в произвольном формате.
Price Необязательный. Указывает на стоимость номера с данной услугой. Вещественное число.

Атрибут Currency - код валюты.

Элемент Room

Элемент Описание Допустимые значения
Атрибут Id Обязательный. Идентификатор комнаты в отеле. Целое число.
Type Обязательный. Тип номера. Строка. Возможные значения:

SNGL – одноместный DBL – двухместный с двухспальной кроватью TWIN – двухместный с двумя кроватями TRIP – трёхместный QUAD – четырёхместный

Элемент Category

Элемент Описание Допустимые значения
Атрибут Id Обязательный. Идентификатор категории. Целое число.
Rooms Обязательный. Массив комнат с соответствием услуг. Целое число.
Room Атрибут: Count

Обязательный. Количество комнат данного типа.

Атрибут: Id

Обязательный. Идентификатор комнаты из атрибута Id в элементе Hotel-> Rooms-> Room.

Атрибут: ServiceId

- Идентификатор услуги из атрибута Id элемента Service.

Целое число.

Целое число.

Целое число.

TotalPrice Обязательный. Суммарная стоимость бронируемого сочетания “Комнаты - услуги”. Вещественное число.

Атрибут Currency - код валюты.


Расширенная информация по одному отелю

Сервис получения дополнительной информации об отеле требует указания идентификатора отеля в системе Nemo и категории.

WSDL (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelExtInfo

Запрос
 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelExtInfo">
 3   <soapenv:Header/>
 4   <soapenv:Body>
 5     <ver:extInfo>
 6       <RequestBin>
 7         <Request>
 8           <HotelExtInfo>
 9             <Item>
10               <CacheId>1867246</CacheId>
11               <!--Optional:-->
12               <CategoryId>1</CategoryId>
13             </Item>
14           </HotelExtInfo>
15         </Request>
16         <Source>
17           <ClientId></ClientId>
18           <APIKey></APIKey>
19           <Language>ru</Language>
20           <Currency>RUB</Currency>
21         </Source>
22       </RequestBin>
23     </ver:extInfo>
24   </soapenv:Body>
25 </soapenv:Envelope>

Элемент Item

Элемент Описание Допустимые значения
CacheId Обязательный. Идентификатор результата поиска. Целое число
CategoryId ID выбранной категории. Целое число

Элемент Source

Элемент Описание Допустимые значения
ClientID Обязательный. ID клиента в системе Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Целое число.
APIKey Обязательный. APIKey - секретный ключ доступа к API Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Латинские буквы и цифры. Всего 32 символа.
Ответ
 1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelExtInfo" 
 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 4   <SOAP-ENV:Body>
 5     <ns1:extInfoResponse>
 6       <ResponseBin>
 7         <Response>
 8           <HotelExtInfo>
 9             <CategoryId>1</CategoryId>
10             <PriceInfo>
11               <PriceBreakDown>
12                 <Date>
13                   <From>2013-10-15</From>
14                   <To>2013-10-18</To>
15                   <Price Currency="RUB">12455.64</Price>
16                 </Date>
17                 <Date>
18                   <From>2013-10-15</From>
19                   <To>2013-10-18</To>
20                   <Price Currency="RUB">12455.64</Price>
21                 </Date>
22               </PriceBreakDown>
23               <Netto Currency="EUR">1821</Netto>
24               <Gross xsi:nil="true"/>
25             </PriceInfo>
26           </HotelExtInfo>
27         </Response>
28       </ResponseBin>
29     </ns1:extInfoResponse>
30   </SOAP-ENV:Body>
31 </SOAP-ENV:Envelope>

Элемент HotelExtInfo

Элемент Описание Допустимые значения
CategoryId Обязательный. Идентификатор категории. Целое число
PriceInfo Обязательный. Элемент содержащий информацию о цене см. Элемент PriceInfo

Элемент PriceInfo

Элемент Описание Допустимые значения

PriceBreakDown

Необязательный. Информация о ценах, расписанная по каждому дню.

Список элементов Date

Netto Обязательный. Стоимость от поставщика. Вещественное число.

Атрибут Currency - код валюты.

Gross Обязательный. Общая стоимость. Вещественное число.

Атрибут Currency - код валюты.

Элемент Date

Элемент Описание Допустимые значения
From Обязательный. Дата начала действия тарифа Формат гггг-мм-дд
To Обязательный. Дата окончания действия тарифа Формат гггг-мм-дд
Price Цена за одну ночь. Вещественное число.

Атрибут Currency - код валюты.

Статические данные

Для работы с веб-сервисом Nemo необходимо выгрузить статичные данные. Это данные о странах, городах и отелях.

Страна

WSDL (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CountryStatic

Запрос
 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic">
 3    <soapenv:Header/>
 4    <soapenv:Body>
 5       <ver:countries>
 6          <RequestBin>
 7             <Request>
 8                <CountryStatic>
 9                </CountryStatic>
10             </Request>
11             <Source>
12                <ClientId></ClientId>
13                <APIKey></APIKey>
14                <Language>ru</Language>
15                <Currency>RUB</Currency>
16             </Source>
17          </RequestBin>
18       </ver:countries>
19    </soapenv:Body>
20 </soapenv:Envelope>

Элемент Request

Элемент Описание Допустимые значения
CountryStatic Пустой элемент

Элемент Source

Элемент Описание Допустимые значения
ClientID Обязательный. ID клиента в системе Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Целое число.
APIKey Обязательный. APIKey - секретный ключ доступа к API Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Латинские буквы и цифры. Всего 32 символа.
Ответ
 1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic" 
 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 4    <SOAP-ENV:Body>
 5       <ns1:countriesResponse>
 6          <ResponseBin>
 7             <Response>
 8                <CountryStatic>
 9                   <Countries>
10                      <Country Id="4">
11                         <Code>AF</Code>
12                         <Continent>asia</Continent>
13                         <Data>
14                            <Info Language="RU">
15                               <Name>Афганистан</Name>
16                            </Info>
17                            <Info Language="EN">
18                               <Name>Afghanistan</Name>
19                            </Info>
20                         </Data>
21                      </Country>			
22                   </Countries>
23                </CountryStatic>
24             </Response>
25          </ResponseBin>
26       </ns1:countriesResponse>
27    </SOAP-ENV:Body>
28 </SOAP-ENV:Envelope>

Элемент CountryStatic

Элемент Описание Допустимые значения
Countries Обязательный Набор элементов Country

Элемент Country

Элемент Описание Допустимые значения
Атрибут Id Обязательный. Идентификатор страны (ISO). Целое число
Code Обязательный. Код страны ISO. Строка из 2-х латинских букв
Continent Обязательный. Название континента. Строка.
Data Обязательный. Информация требующая перевода. Набор элементов Info.

Элемент Info

Элемент Описание Допустимые значения
Атрибут Language Обязательный. Язык в котором представлена информация. Строка из 2-х латинских букв.
Name Обязательный. Наименование страны. Строка в произвольном формате.


Город

Параметры поиска всех услуг требуют указания ID города. Города выгружаются по каждой стране следующим запросом:

WSDL (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CityStatic

Запрос
 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic">
 3    <soapenv:Header/>
 4    <soapenv:Body>
 5       <ver:cities>
 6          <RequestBin>
 7             <Request>
 8                <CityStatic>
 9                   <CountryId>4</CountryId>
10                </CityStatic>
11             </Request>
12             <Source>
13                <ClientId></ClientId>
14                <APIKey></APIKey>
15                <Language>ru</Language>
16                <Currency>RUB</Currency>
17             </Source>
18          </RequestBin>
19       </ver:cities>
20    </soapenv:Body>
21 </soapenv:Envelope>

Элемент CityStatic

Элемент Описание Допустимые значения
CountryId Обязательный. Идентификатор страны. Целое число

Элемент Source

Элемент Описание Допустимые значения
ClientID Обязательный. ID клиента в системе Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Целое число.
APIKey Обязательный. APIKey - секретный ключ доступа к API Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Латинские буквы и цифры. Всего 32 символа.
Ответ
 1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic">
 3    <SOAP-ENV:Body>
 4       <ns1:citiesResponse>
 5          <ResponseBin>
 6             <Response>
 7                <CityStatic>
 8                   <Cities>
 9                      <City Id="1">
10                         <Name>Кабул</Name>
11                         <CountryId>4</CountryId>
12                         <Data>
13                            <Info Language="EN">
14                               <Name>Kabul</Name>
15                            </Info>
16                            <Info Language="RU">
17                               <Name>Кабул</Name>
18                            </Info>
19                         </Data>
20                      </City>
21                      <City Id="204793">
22                         <Name>Aibak</Name>
23                         <CountryId>4</CountryId>
24                         <Data>
25                            <Info Language="EN">
26                               <Name>Aibak</Name>
27                            </Info>
28                            <Info Language="RU">
29                               <Name>Aibak</Name>
30                            </Info>
31                         </Data>
32                      </City>
33                      <City Id="204785">
34                         <Name>Anar Darah</Name>
35                         <CountryId>4</CountryId>
36                         <Data>
37                            <Info Language="EN">
38                               <Name>Anar Darah</Name>
39                            </Info>
40                            <Info Language="RU">
41                               <Name>Anar Darah</Name>
42                            </Info>
43                         </Data>
44                      </City>
45 			...
46                   </Cities>
47                </CityStatic>
48             </Response>
49          </ResponseBin>
50       </ns1:citiesResponse>
51    </SOAP-ENV:Body>
52 </SOAP-ENV:Envelope>

Элемент CityStatic

Элемент Описание Допустимые значения
Cities Обязательный. Массив городов. Набор элементов City

Элемент City

Элемент Описание Допустимые значения
Атрибут Id Обязательный. Идентификатор города. Целое число
Name Название города.
Data Названия городов на разных языках. В данный момент поддерживаются названия на русском и английском. См. описание элемента Data в ответе получения информации о стране.


Статика по отелям и апартаментам

Этот запрос будет использоваться для выгрузки статичной информации по одному или нескольким отелям.

WSDL (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelStatic

Запрос
 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStatic">
 3    <soapenv:Header/>
 4    <soapenv:Body>
 5       <ver:hotels>
 6          <RequestBin>
 7             <Request>
 8                <HotelStatic>
 9                   <CityId>58166</CityId>
10                </HotelStatic>
11             </Request>
12             <Source>
13                <ClientId></ClientId>
14                <APIKey></APIKey>
15                <Language>ru</Language>
16                <Currency>RUB</Currency>
17             </Source>
18          </RequestBin>
19       </ver:hotels>
20    </soapenv:Body>
21 </soapenv:Envelope>

Элемент Hotels

Элемент Описание Допустимые значения
CityId Обязательный. Идентификатор города из которого необходимо получить отели. Целое число

Элемент Source

Элемент Описание Допустимые значения
ClientID Обязательный. ID клиента в системе Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Целое число.
APIKey Обязательный. APIKey - секретный ключ доступа к API Nemo.

Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".

Латинские буквы и цифры. Всего 32 символа.
Ответ
 1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
 2 xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStatic" 
 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 4    <SOAP-ENV:Body>
 5       <ns1:hotelsResponse>
 6          <ResponseBin>
 7             <Response>
 8                <HotelStatic>
 9                   <Hotels>
10                      <Hotel Id="271714" Apartment="false">
11                         <CityId>58166</CityId>
12                         <CountryId>643</CountryId>
13                         <Latitude xsi:nil="true"/>
14                         <Longitude xsi:nil="true"/>
15                         <Rating>3</Rating>
16                         <Floors xsi:nil="true"/>
17                         <Data>
18                            <Info>
19                               <Name>* Azimut (business)</Name>
20                               <Area xsi:nil="true"/>
21                               <Location>Within city</Location>
22                               <Desc>This 3 star hotel is located within the city of St Petersburg.</Desc>
23                               <Address>43/1 Lermoutovsky Prospect, St Petersburg, 190103</Address>
24                            </Info>
25                         </Data>
26                         <Phones>
27                            <Phone>812 7402640</Phone>
28                         </Phones>
29                         <Fax>812 2518890</Fax>
30                         <Images/>
31                      </Hotel>
32                      <Hotel Id="159535" Apartment="false">
33                         <CityId>58166</CityId>
34                         <CountryId>643</CountryId>
35                         <Latitude>59.935011</Latitude>
36                         <Longitude>30.309284</Longitude>
37                         <Rating>5</Rating>
38                         <Floors xsi:nil="true"/>
39                         <Data>
40                            <Info>
41                               <Name>W St.petersburg</Name>
42                               <Area xsi:nil="true"/>
43                               <Location>City centre</Location>
44                               <Desc>This 5 star hotel is located in the city centre of St Petersburg 
45                                     and was established in 2011. It is close to the St.Isaac's Cathedral 
46                                     and the nearest station is Admiralteyskaya station. The Hotel has 
47                                     a restaurant, 2 bars, a conference room, a coffee shop, an indoor 
48                                     swimming pool and a fitness centre/gym. All 137 rooms are equipped 
49                                     with minibar, hairdryer, safe, trouser press and air conditioning.</Desc>
50                               <Address>6 Voznesensky Prospect, St. Petersburg, 190000, St Petersburg, Russia</Address>
51                            </Info>
52                         </Data>
53                         <Phones/>
54                         <Fax>+7 812 6106160</Fax>
55                         <Images>
56                            <Image>
57                               <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/ext.jpg</Path>
58                               <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/ext-t.jpg</Icon>
59                            </Image>
60                            <Image>
61                               <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/unknown.jpg</Path>
62                               <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/unknown-t.jpg</Icon>
63                            </Image>
64                            <Image>
65                               <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/bed room.jpg</Path>
66                               <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/bed room-t.jpg</Icon>
67                            </Image>
68                         </Images>
69                      </Hotel>			
70                      ...
71                   </Hotels>
72                </HotelStatic>
73             </Response>
74          </ResponseBin>
75       </ns1:hotelsResponse>
76    </SOAP-ENV:Body>
77 </SOAP-ENV:Envelope>

Элемент Hotel

Элемент Описание Допустимые значения
Атрибут Id Обязательный. Идентификатор отеля в системе Nemo. Целое число.
CityId Обязательный. Идентификатор города. Целое число.
CountryId Обязательный. Идентификатор страны . Целое число.
Latitude Необязательный. Широта. Вещественное число.
Longitude Необязательный. Долгота. Вещественное число.
Rating Необязательный. Рейтинг. Вещественное число.
Floors Необязательный. Количество этажей Целое число.
Data Необязательный. Набор элементов Info.
Phones Необязательный. Массив телефонов. Набор элементов Phone.
Fax Необязательный. Факс. Строка в произвольном формате.
Images Необязательный. Маcсив изображений. Набор элементов Image.

Элемент Info

Элемент Описание Допустимые значения
Name Обязательный. Наименование отеля. Строка в произвольном формате.
Area Необязательный. Описание места расположения отеля. Строка в произвольном формате.
Location Необязательный. Район города. Строка в произвольном формате.
Desc Необязательный. Описание отеля. Строка в произвольном формате.
Address Необязательный. Адрес отеля. Строка в произвольном формате.

Элемент Phones

Элемент Описание Допустимые значения
Phone Обязательный. Телефон. Строка в произвольном формате.

Элемент Image

Элемент Описание Допустимые значения
Path Необязательный. Путь к полному изображению. Строка в произвольном формате.
Icon Необязательный. Путь к миниатюре, иконке. Строка в произвольном формате.


API бронирования, аннуляции, войдирования авиабилетов

Подключение

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

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

Запрос

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

Ответ

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

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

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

Запрос

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

Ответ

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

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

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

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

Запрос

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

Ответ

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

API бронирования, отмены отелей

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

Выгрузка информации о продажах в формате Nemo XML

Выгрузка информации о продажах в формате СОФИ XML

Фиксация оплаты внешним запросом

Выгрузка заказов по критериям в формате Nemo XML

Выгрузка определенного заказа по критериям в формате Nemo XML

API универсального платежного шлюза

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

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

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

Проверка в сторонней системе возможности тикетинга

API загрузки счетов из сторонней системы

API загрузки сальдо компаний из СОФИ