Открыть главное меню

Изменения

Агентский API Отели

55 360 байт добавлено, 18:45, 6 мая 2019
Нет описания правки
{{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}}
 
[[Категория:Агентский API]]
[[Категория:Интеграция]]
[[Файл:Nemo-logo.png‎|right]]
'''Агентский API ОтелейОтели''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
== Динамические данные ===== Поиск ===
Сервис предназначен для получения списка отелей, удовлетворяющих условиям запроса. В условия запроса входят: идентификатор города, где будет вестись поиск; дата заезда и дата выезда; информация о количестве людей и способе их размещения в комнатах. Так же указываются дополнительные необязательные поля фильтров.
Для получения списка доступных городов, воспользуйтесь запросом на выгрузку статики (см. ССЫЛКА). Список допустимых отелей для фильтра также доступен через сервис (см. ССЫЛКА). Рекомендуется выгрузить все данные по отелям, городам и странам в локальную базу, для экономии времени и запросов.
'''WSDL ''' (тестовый сервер): [http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch]
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<prediv 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%3DHotelsSearch">
<soapenv:Header/>
<soapenv:Body>
<!--Zero or more repetitions:-->
<Person Id="1" Type="ADT" Age="30"/>
<Person Id="12" Type="CLD" Age="10"/>
</Persons>
<!--Optional:-->
</soapenv:Body>
</soapenv:Envelope>
</presyntaxhighlight>
Элемент '''HotelSearch'''
Элемент HotelSearch.
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Room.'''{| border="0" cellpaddingstyle="0width: 800px" cellspacingclass="0wikitable"
|-
| style! scope="col"width:208px="200" | Элемент | style! scope="col"width:208px="300" | Описание | style! scope="col"width:208px="300" | Допустимые значения 
|-
| style="width:208px" | Persons | style="width:208px" | Обязательный. Содержит данные о клиентах в номерах. | style="width:208px" | Элемент Person 
|-
| style="width:208px" | DoubleBed | style="width:208px" | Необязательный. Может быть использован только если сумма количества детей и взрослых равна 2-м, а также 
Если в запросе сумма детей и взрослых не равна 2, то данный элемент будет проигнорирован.
 | style="width:208px" | true/false &nbsp; 
true означает, что номер должен иметь двуспальную кровать
 
&nbsp;
 
|}
&nbsp; Элемент '''Person.'''{| border="0" cellpaddingstyle="0width: 800px" cellspacingclass="0wikitable"
|-
| style! scope="col"width:208px="200" | Элемент | style! scope="col"width:208px="300" | Описание | style! scope="col"width:208px="300" | Допустимые значения 
|-
| style="width:208px" | Атрибут Id | style="width:208px" | Уникальный идентификатор. См. результаты бронирования. | style="width:208px" | Целое число 
|-
| style="width:208px" | Атрибут Type | style="width:208px" | Тип клиента. 
Если не указан, будет определен по возрасту Age.
 | style="width:208px" | Константы: 
ADT - взрослый
 
CLD - ребенок 2-12 лет
 
INF - младенец до 2х лет
 
|-
| style="width:208px" | Атрибут Age | style="width:208px" | Возраст. Обязателен для детей (CLD). | style="width:208px" | Целое число. Количество лет. 
|}
&nbsp; &nbsp; Элемент '''Filters.'''{| border="0" cellpaddingstyle="0width: 800px" cellspacingclass="0wikitable"
|-
| style! scope="col"width:208px="200" | Элемент | style! scope="col"width:208px="300" | Описание | style! scope="col"width:208px="300" | Допустимые значения 
|-
| style="width:208px" | Hotels | style="width:208px" | Необязательный. Набор&nbsp; идентификаторов отелей в системе Nemo. 
Результаты поиска будут ограничены только этими отелями. Данная опция может существенно ускорить поиск - рекомендуется всегда устанавливать при поиске конкретных отелей.
| Элемент Id – целое число
|}
Элемент '''Source'''{| style="width:208px800px" class="wikitable" | -! scope="col" width="200" | Элемент Id – целое ! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.
|}
</div>
</div>
&nbsp;<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Ответ ====
<div class="mw-collapsible-content">
Система по заданным параметрам ищет отели и возвращает результаты поиска. Все результаты поиска хранятся в базе Nemo определенный срок и доступны для бронирования по идентификатору CacheId.
Каждый отель содержит:
* Набор номеров &lt;Rooms&gt;. Типы номеров (одноместный, двухместный и т.д.)&nbsp;: устанавливается автоматически по количеству клиентов из запроса.
* Сервисы &lt;Services&gt;. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться.
* Категория &lt;Categories&gt;. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий.
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #Набор номеров &lt;Rooms&gt;. Типы номеров (одноместный, двухместный и т.д.)&nbspF9F9F9;border: устанавливается автоматически по количеству клиентов из запроса.1px dashed #Сервисы &lt2F6FAB;Services&gtpadding: 10px 5px;. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться.#Категория &ltmargin: 10px 0;Categories&gt;. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий."><pre><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
<SOAP-ENV:Body>
<ns1:searchResponse>
</Hotel>
...
</Hotels>
</HotelSearch>
</Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</presyntaxhighlight><pre />Элемент Hotel.
Элемент '''Hotel'''{| borderstyle="0width: 800px" cellpaddingclass="0" cellspacing="0wikitable"
|-
| style! scope="col"width:208px="200" | Элемент | style! scope="col"width:208px="300" | Описание | style! scope="col"width:208px="300" | Допустимые значения 
|-
| style="width:208px" | Атрибут Id | style="width:208px" | Обязательный. Идентификатор отеля как одного из результатов поиска в системе Nemo. | style="width:208px" | Целое число. 
|-
| style="width:208px" | Supplier | style="width:208px" | Обязательный. Тип поставщика, в котором найден отель. | style="width:208px" | Строка. 
Возможные значения:
 
GTA
 
HOTELBEDS
 
DOTW
 
SERHS
 
MIKI
 
TRAVCO
 
ACADEM
 
TOURICO
|-
| CityId
| Обязательный. Идентификатор города в системе Nemo.
| Целое число.
|-
| CacheId
| Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.
| Целое число.
|-
| Name
| Обязательный. Название отеля.
| Строка в произвольном формате.
|-
| Services
| Обязательный. Услуги в отеле.
| Элемент Service
|-
| Rooms
| Обязательный. Комнаты в отеле.
| Элемент Room
|-
| Categories
| Обязательный. Категории, доступные для бронирования в отеле.
| Элемент Category
|}
Элемент '''Service'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Атрибут Id
| Обязательный. Идентификатор услуги.
| Целое число
|-
| Атрибут Status
| Обязательный. Доступность отеля. ОК означает доступен (мгновенное подтверждение).
RQ - недоступен (по запросу).
| ОК/RQ
|-
| Desc
| Необязательный. Описание отеля.
| Строка в произвольном формате.
|-
| Meal
| Обязательный. Питание для данного сервиса.
| Строка в произвольном формате.
|-
| style="width:208px" Price| Необязательный. Указывает на стоимость номера с данной услугой.CityId| Вещественное число.Атрибут Currency - код валюты.|}
Элемент '''Room'''{| style="width:208px800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор города комнаты в системе Nemoотеле.| Целое число.|-| Type| Обязательный. Тип номера.| Строка.Возможные значения:SNGL – одноместныйDBL – двухместный с двухспальной кроватьюTWIN – двухместный с двумя кроватямиTRIP – трёхместныйQUAD – четырёхместный|}
Элемент '''Category'''{| style="width:208px800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор категории.| Целое число.|-| Rooms| Обязательный. Массив комнат с соответствием услуг.| Целое число.|-| Room| Атрибут: Count
|-Обязательный.| style="width:208px" | CacheIdКоличество комнат данного типа.
| style="widthАтрибут:208px" | Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.Id
| style="width:208px" | Целое числоОбязательный. Идентификатор комнаты из атрибута Id в элементе Hotel-> Rooms-> Room.
|-| style="widthАтрибут:208px" | NameServiceId
- Идентификатор услуги из атрибута Id элемента Service.| style="width:208px" | Обязательный. Название отеляЦелое число.
| style="width:208px" | Строка в произвольном форматеЦелое число.
Целое число.
|-
| style="width:208px" TotalPrice| Обязательный. Суммарная стоимость бронируемого сочетания “Комнаты - услуги”.| Вещественное число.Атрибут Currency - код валюты.|}</div>Services</div>
| style="width:208px" | Обязательный. Услуги в отеле.=== Ошибки ====
| style="width:208px" | = Расширенная информация по одному отелю ==Элемент ServiceСервис получения дополнительной информации об отеле требует указания идентификатора отеля в системе Nemo и категории.
|'''WSDL''' (тестовый сервер): http://tst.nemo-| styleibe.com/wsdev/wsdl.php?for="width:208px" | RoomsHotelExtInfo
| <div class="toccolours mw-collapsible mw-collapsed" style="width:208px1000px">==== Запрос ====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" | Обязательныйxmlns:ver="http://tst. Комнаты в отелеnemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelExtInfo"> <soapenv:Header/> <soapenv:Body> <ver:extInfo> <RequestBin> <Request> <HotelExtInfo> <Item> <CacheId>1867246</CacheId> <!--Optional:--> <CategoryId>1</CategoryId> </Item> </HotelExtInfo> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:extInfo> </soapenv:Body></soapenv:Envelope></syntaxhighlight>
Элемент '''Item'''{| style="width:208px800px" class=" wikitable"| -! scope="col" width="200" | Элемент Room! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| CacheId| Обязательный. Идентификатор результата поиска.| Целое число|-| CategoryId| ID выбранной категории.| Целое число|}
Элемент '''Source'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| ClientID
| Обязательный. ID клиента в системе Nemo.
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| Целое число.
|-
| style=APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "width:208pxАдминистрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.| }</div>Categories</div>
| <div class="toccolours mw-collapsible mw-collapsed" style="width:208px1000px">==== Ответ ====<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%3DHotelExtInfo" xmlns:xsi=" | http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:extInfoResponse> <ResponseBin> <Response> <HotelExtInfo> <CategoryId>1</CategoryId> <PriceInfo> <PriceBreakDown>Обязательный <Date> <From>2013-10-15</From> <To>2013-10-18</To> <Price Currency="RUB">12455. Категории, доступные для бронирования в отеле64</Price> </Date> <Date> <From>2013-10-15</From> <To>2013-10-18</To> <Price Currency="RUB">12455.64</Price> </Date> </PriceBreakDown> <Netto Currency="EUR">1821</Netto> <Gross xsi:nil="true"/> </PriceInfo> </HotelExtInfo> </Response> </ResponseBin> </ns1:extInfoResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight>
Элемент '''HotelExtInfo'''{| style="width:208px800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope=" col" width="300" | Допустимые значения|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|-| PriceInfo| Обязательный. Элемент содержащий информацию о цене| см. Элемент CategoryPriceInfo|}
Элемент '''PriceInfo'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| style="width:208px; height:35px" |
PriceBreakDown
| style="width:208px; height:35px" |
Необязательный. Информация о ценах, расписанная по каждому дню.
| style="width:208px; height:35px" |
Список элементов Date
|-
| Netto
| Обязательный. Стоимость от поставщика.
| Вещественное число.
Атрибут Currency - код валюты.
|-
| Gross
| Обязательный. Общая стоимость.
| Вещественное число.
Атрибут Currency - код валюты.
|}
&nbsp;Элемент '''Date'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| From| Обязательный. Дата начала действия тарифа| Формат гггг-мм-дд|-| To| Обязательный. Дата окончания действия тарифа| Формат гггг-мм-дд|-| Price| Цена за одну ночь.| Вещественное число.Атрибут Currency - код валюты.|}</div></div>
Элемент Service.==== Ошибки ====
{| border="0" cellpadding="0" cellspacingШтрафы за аннуляцию ="0"|-| style="width:208px" | Элемент
| style="width:208px" | ОписаниеВсегда в явном виде нужно указывать пользователю информацию о штрафах за аннуляцию до бронирования.
| style="width:208px" | Допустимые значенияШтрафы получаются по каждой услуге отдельным запросом. Нужно указать тип услуги, идентификатор результата поиска и выбранную категорию.
|-| styleВнимание. Для отелей из Hotelbeds (Supplier="width:208px" | Атрибут IdHOTELBEDS) штрафы до бронирования получить невозможно.
| style="width'''WSDL''' (тестовый сервер): http:208px" | Обязательный//tst.nemo-ibe. Идентификатор услугиcom/wsdev/wsdl.php?for=Penalty
| <div class="toccolours mw-collapsible mw-collapsed" style="width:208px1000px">==== Запрос ====<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" | styleЭлемент! scope="col"width:208px="300" | ОписаниеАтрибут Status! scope="col" width="300" | Допустимые значения|-| Type| Обязательный. Тип объекта.| HOTELS|-| CacheId| Обязательный. Идентификатор результата поиска в системе Nemo.| Целое число|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|}
Элемент '''Source'''{| style="width:208px800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.| -| APIKey| Обязательный. Доступность отеляAPIKey - секретный ключ доступа к API Nemo. ОК означает доступен (мгновенное подтверждение)Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div></div>
RQ <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>| style <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="widthRUB">67260.46</Money> </Charge> <Charge> <DateFrom>2013-08-01 17:59:00</DateFrom> <DateTo>2013-09-22 00:00:208px00</DateTo> <Money Currency="RUB" | >12455.64</Money> </Charge> </CancelCharges> <ModifyCharges/> </Penalty> </Response> </ResponseBin> </ns1:penaltyResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>ОК</RQsyntaxhighlight>
Элемент '''Penalty'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| ItemDateBegin
| Обязательный. Дата начала услуги (дата заселения в отель).
| Формат гггг-мм-дд чч:мм:сс
|-
| CancelCharges
| Необязательный. Содержит информацию о штрафах за аннуляцию.
| Элемент Charge
|-
| style="width:208px" ModifyCharges| Необязательный. Содержит информацию о штрафах за модификацию.| Элемент ChargeDesc|}
| style="width:208px" | НеобязательныйШтрафы разбиваются по временным интервалам. Описание отеля. | style="width:208px" | Строка в произвольном форматеНа каждом интервале указывается значение штрафа.
Элемент '''Charge'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| DateFrom
| Обязательный. Дата/время начала интервала.
| Формат гггг-мм-дд чч:мм:сс
|-
| DateTo
| Необязательный. Дата/время окончания интервала.
| Формат гггг-мм-дд чч:мм:сс
|-
| style="widthMoney| Обязательный. Сумма штрафа.| Вещественное число.Атрибут:208px" Currency - код валюты.| }</div>Meal</div>
| style="width:208px" | Обязательный. Питание для данного сервиса.=== Ошибки ====
| == Бронирование ==<div class="toccolours mw-collapsible mw-collapsed" style="width:208px1000px">==== Запрос ====<div class="mw-collapsible-content" | >Строка Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в произвольном форматебудущем при сохранении совместимости.
|Сейчас же необходимо указывать только 1 услугу-| style="width:208px" | Priceотель (элемент Item) в запросе на бронирование.
| style="widthДля успешного запроса нужно указать:208px" | Необязательный#Услугу. Указывает В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата.#Информация о клиентах. Все клиенты перечисляются в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиента), также добавляются в описание услуги.#Заказчик. Указатель на стоимость номера с данной услугойодну персону.
| style="width'''WSDL''' (тестовый сервер): http:208px" | Вещественное число//tst.nemo-ibe.com/wsdev/wsdl.php?for=Booking
Атрибут Currency <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;
|}
Данные об услугах записываются в элементы &nbsplt;Item&gt;.
Элемент Room.'''Item'''{| style="width: 800px" class="wikitable"|-{! scope="col" width="200" | borderЭлемент! scope="0col" cellpaddingwidth="0300" cellspacing| Описание! scope="0col"width="300" | Допустимые значения|-| HotelBookData| Обязательный. В зависимости от типа объекта бронирования. В данный момент возможно указать только данные для отеля.| &nbsp;
|-
| stylePersons| Необязательный. Привязка клиентов к услуге. Если не указаны, будут привязаны все из указанных в главном элементе Booking.| [<Person Number=''"width:208px1" '' />]| Элемент}
| style="width<u>Бронирование отеля.</u>Для бронирования отеля необходимы следующие параметры:208px" | Описание# ID результата поиска - один отель# ID выбранной категории этого отеля# Распределение клиентов по комнатам.
Элемент '''HotelBookData'''{| style="width:208px800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| CacheId| Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.| Целое число|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|-| Rooms| Обязательный. Распределение клиентов по комнатам.| Список элементов Room|-| Room| Атрибут IdИд комнаты из результата поиска
Элемент Persons
| Целое число
|-
| style="width:208px" Persons| Обязательный.Список людей| Список элементов Person|-| Person| Обязательный.Атрибут IdNumberНомер пассажира из Booking ->Persons->Person->Number| Целое число|}
| style="width:208px" | <u>Информация о клиентах.</u>ОбязательныйДля успешного завершения бронирования нужно указать как минимум одного клиента. Идентификатор комнаты Максимальное число клиентов в отелетекущей версии не ограничено.
| style="widthНабор обязательных данных может меняться в зависимости от типов услуг в бронировании. Рекомендуемый набор обязательных параметров:208px" | Целое число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 - женщина.
|-
| style="width:208px" Document| Документ| Элемент DocumentType|}
| style="width:208px" | Обязательный. Тип номераДля некоторых услуг может потребоваться информация о документах.
Элемент '''Document'''{| style="width:208px800px" class="wikitable" | -! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут Type| Обязательный. Тип документа.| P - загранпаспортC - внутренний гражданский паспортB - свидетельство о рождении|-| Series| Необязательный. Серия документа. Можно указать слитно с номером в Number.| Строка в произвольном формате|-| Number| Обязательный. Номер документа.| Строкав произвольном формате|-| IssueDate| Необязательный. Дата выдачи документа.| Формат гггг-мм-дд|-| ExpiryDate| Необязательный. Возможные значения:Дата истечения срока действия документа.| Формат гггг-мм-дд|}
SNGL – одноместныйЭлемент '''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>
DBL – двухместный с двухспальной кроватью<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>
TRIP – трёхместный QUAD – четырёхместныйСтруктура ответа очень похожа на запрос. Выделяются те же основные элементы.
Элемент '''Booking'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Items
| Обязательный. Содержит элемент(ы) Item.
| Элемент Item
|-
| Persons
| Обязательный. Здесь перечислены все клиенты заказа.
| Элемент Person
|}
&nbsp;В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
Элемент Category.'''Item'''{| style="width: 800px" class="wikitable"|-{! scope="col" width="200" | borderЭлемент! scope="0col" cellpaddingwidth="0300" cellspacing| Описание! scope="col" width="0300"| Допустимые значения|-| Атрибут Id| Обязательный.Номер заказа в системе Nemo.| Целое число|-| Type| Обязательный.Тип объекта бронирования.| HOTELS|-| Status| Обязательный. Статус объекта бронирования .| booked - забронированcancelled - аннулированpending confirmation - в процессе подтвержденияpending – произошла попытка бронирования, которое не было завершеноwaiting – ожидается результат запроса на бронирование|-| Prices| Обязательный. Данные о ценах.| см. Элемент Prices|-| Dates| Обязательный. Данные о датах.| см. Элемент Dates|-| Statuses| Обязательный. Различные дополнительные статусы заказанной услуги.| см. Элемент Statuses|-| Persons| Обязательный. Содержит клиентов привязанных к услуге.| элементы Person
|-
| style="width:208px" Hotel| Необязательный. Элемент с данными об отеле.| см. элемент Hotel (результат поиска отеля)Элемент|}
| style="widthИнформация о цене услуги вынесена в отдельную ветку:208px" | Описание | style="width:208px" | Допустимые значения
Элемент '''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 - код валюты.
|-
| styleTotalPrice| Обязательный. Итоговая стоимость.="width:208px" Price + Charges + Commission| Вещественное число.Атрибут IdCurrency - код валюты.|}
| style="widthИнформация о датах услуги также вынесена в отдельную ветку:208px" | Обязательный. Идентификатор категории. | style="width:208px" | Целое число.
Элемент '''Dates'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| BookingDate
| Обязательный. Дата бронирования.
| Формат гггг-мм-дд чч:мм:сс
|-
| UpdateDate
| Необязательный. Дата обновления.
| Формат гггг-мм-дд чч:мм:сс
|-
| CancelDate
| Необязательный. Дата аннуляции.
| Формат гггг-мм-дд чч:мм:сс
|-
| PenaltyDate
| Необязательный. Дата наступления штрафов.
| Формат гггг-мм-дд чч:мм:сс
|-
| style="widthAutoCancelDate| Необязательный. Дата автоаннулирования.| Формат гггг-мм-дд чч:208px" мм:сс| Rooms}
| style="widthДополнительные статусы:208px" | Обязательный. Массив комнат с соответствием услуг. | style="width:208px" | Целое число.
Элемент '''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 - доставлен
|-
| style="width:208px" InvoiceStatus| Необязательный.Статус счета.| Целое числоRoom1 - счет выставлен.2 - счет не выставлен.|}
| style="width:208px" | Информация о клиентах заказа полностью повторяет структуру запроса.Атрибут: &nbsp;Count</div></div>
Обязательный.==== Ошибки ====
Количество комнат данного типа== Подтверждение бронирования ==<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">==== Запрос ====<div class="mw-collapsible-content">Подтверждение бронирования заказа.
&nbsp;'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=ConfirmBooking
Атрибут<syntaxhighlight lang="xml" line enclose="div" style="font-size: &nbsp9pt;Idbackground: #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| Обязательный. Идентификатор комнаты из атрибута Id заказа в элементе Hotel-> Rooms-> Roomсистеме Nemo.| Целое число|}
&nbsp;Элемент '''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:&nbsp; ServiceId&nbsp; 1000px">==== Ответ ====<div class="mw-collapsible- Идентификатор услуги из атрибута Id элемента Service.content">
| <syntaxhighlight lang="xml" line enclose="div" style="widthfont-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin:208px10px 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>
&nbsp;==== Ошибки ====
&nbsp;== Выгрузка актуальных данных по заказу(ам) ==Используется для экспорта бронирований и для обновления данных в локальной клиентской базе.
&nbsp;'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Export
&nbsp<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.| Целое число.|}
&nbsp;Элемент '''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>
&nbsp<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>
&nbsp;Формат ответа аналогичен результату бронирования.</div></div>
&nbsp;==== Ошибки ====
&nbsp== Аннуляция заказа =='''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" | styleЭлемент! scope="col"width:208px="300" | ОписаниеTotalPrice | style! scope="col"width:208px="300" | Допустимые значения|-| ClientID| Обязательный. Суммарная стоимость бронируемого сочетания “Комнаты ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб- услуги”служба. Авторизация".| Целое число.| style="width:208px" -| APIKeyВещественное число| Обязательный. APIKey - секретный ключ доступа к API NemoАтрибут Currency Можно посмотреть/добавить в "Администрирование" ⇨ "Веб- код валютыслужба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.
|}
</div>
</div>
&nbsp;==== Ответ ====см. результаты бронирования.
==== Ошибки ====
* '''You can cancel only booked order''' - возникает при попытке аннулировать незабронированный заказ.
* '''Invalid Booking Id N''' - заказ с номером N отсутствует.
=== Дополнительная информация по одному отелю ======= Запрос ======== Ответ ======== Ошибки ======= Штрафы за аннуляцию ======= Запрос ======== Ответ ======== Ошибки ======= Бронирование ======= Запрос ======== Ответ ======== Ошибки ======= Выгрузка актуальных данных по заказу(ам) ======= Запрос ======== Ответ ======== Ошибки ======= Аннуляция заказа ======= Запрос ======== Ответ ======== Ошибки ====== Статические данные ==
Для работы с веб-сервисом Nemo необходимо выгрузить статичные данные. Это данные о странах, городах и отелях.
=== Страна ===
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CountryStatic
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<prediv 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%3DCountryStatic">
<soapenv:Header/>
<soapenv:Body>
</soapenv:Body>
</soapenv:Envelope>
</presyntaxhighlight>
Элемент '''Request'''
|}
Элемент '''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">
==== Ответ ====
<prediv class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:countriesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</presyntaxhighlight>
Элемент '''CountryStatic'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Country'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Info'''
{| style="width: 800px" class="wikitable"
|-
| Строка в произвольном формате.
|}
</div>
</div>
==== Ошибки ====
=== Город ===
Параметры поиска всех услуг требуют указания ID города. Города выгружаются по каждой стране следующим запросом:
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CityStatic
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<prediv class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic">
<soapenv:Header/>
<soapenv:Body>
</soapenv:Body>
</soapenv:Envelope>
</presyntaxhighlight>
Элемент '''CityStatic'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''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">
==== Ответ ====
<prediv 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%3DCityStatic">
<SOAP-ENV:Body>
<ns1:citiesResponse>
<CityStatic>
<Cities>
<City Id="1">
<Name>Кабул</Name>
<CountryId>4</CountryId>
</City>
...
</Cities>
</CityStatic>
</Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</presyntaxhighlight>
Элемент '''CityStatic'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''City'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="300" | Допустимые значения
|-
| Атрибут '''Id'''
| Обязательный. Идентификатор города.
| Целое число
| См. описание элемента Data в ответе получения информации о стране.
|}
</div>
</div>
==== Ошибки ====
=== Статика по отелям и апартаментам ===
Этот запрос будет использоваться для выгрузки статичной информации по одному или нескольким отелям.
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelStatic
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<prediv class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStatic">
<soapenv:Header/>
<soapenv:Body>
</soapenv:Body>
</soapenv:Envelope>
</presyntaxhighlight>
Элемент '''Hotels'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''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">
==== Ответ ====
<prediv 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%3DHotelStatic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:hotelsResponse>
<Area xsi:nil="true"/>
<Location>City centre</Location>
<Desc>This 5 star hotel is located in the city centre of St Petersburg and was established in 2011. It is close to the St.Isaac's Cathedral and the nearest station is Admiralteyskaya station. The Hotel has a restaurant, 2 bars, a conference room, a coffee shop, an indoor swimming pool and a fitness centre/gym. All 137 rooms are equipped with minibar, hairdryer, safe, trouser press and air conditioning.</Desc>
<Address>6 Voznesensky Prospect, St. Petersburg, 190000, St Petersburg, Russia</Address>
</Info>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</presyntaxhighlight>
Элемент '''Hotel'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Info.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Phones.'''
{| style="width: 800px" class="wikitable"
|-
| Строка в произвольном формате.
|}
 Элемент '''Image.'''
{| style="width: 800px" class="wikitable"
|-
| Строка в произвольном формате.
|}
</div>
</div>
==== Ошибки ====
 
==См. также==
* [[Агентский интерфейс прикладного программирования (Агентский API)]]
* [[Схема использования агентского API (workflow)]]
* [[Агентский API Авиабилеты]]
* [[Агентский API Оплата]]
'