Изменения

Перейти к навигации Перейти к поиску

Frontend API

7722 байта добавлено, 14:14, 27 февраля 2019
Нет описания правки
Формат запросов имеет вид
<pre>http(s)://host/api/{component}/{module}/{action} + /{parameter1}/{parameter2}... (где параметры необязательны)</pre>
Пример:
http://demo.nemo.travel/api/flights/search/formData
 
Примечание: для изменения языка в ответах запросов нужно использовать GET параметр <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">apilang=xx</syntaxhighlight>, где <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">xx</syntaxhighlight> это 2-х буквенный код языка.
 
Пример: http://demo.nemo.travel/api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00?apilang=en
= Описание запросов =
*Request
** URI /api/flights/utils/sunInfo/{dep_airport}/{depDateTimeLocal}/{arr_airport}/{arrDateTimeLocal}
*** Пример: /api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T1828T20:30:00
*Response:
** [[#flights.utils.sunInfo|flights.utils.sunInfo]] (Информация о солнечной стороне)
** [[#utils.system.info|system.info]] (Служебная информация)
== Модуль Отели (hotels) ==
* Request
** URI /api/hotels/search/request/{searchId?} (получение данных запроса поиска с идентификатором {searchId}или создание нового запроса на поиск)
** POST request="[[#hotels.search.request|hotels.search.request]]" (Параметры запроса поиска)
* Response:
== Модуль Заказов (order) ==
 
=== Модуль аутентификации ===
 
Внимание, для сохранения статуса авторизованного пользователя запросы должны быть отправлены с поддержкой cookie
 
(Параметр withCredentials = true у объекта XmlHttpRequest в случае использования JS)
 
==== Запрос аутентификации пользователя====
 
* Request
** URI /api/order/auth/request
** POST request="[[#order.auth.request|order.auth.request]]" (Параметры запроса аутентификации)
* Response:
** [[#order.auth.response|order.auth.response]] (Результат аутентификации)
** [[#system.info|system.info]] (Служебная информация)
 
==== Запрос восстановления пароля====
 
* Request
** URI /api/order/auth/sendPasswordLink
** POST request="[[#order.auth.sendPasswordLink|order.auth.sendPasswordLink]]" (Параметры запроса восстановления пароля)
* Response:
** [[#order.auth.sendPasswordLinkResponse|order.auth.sendPasswordLinkResponse]] (Информация о результате операции)
** [[#system.info|system.info]] (Служебная информация)
 
==== Запрос регистрации====
 
* Request
** URI /api/order/auth/registration
** POST request="[[#order.auth.registration|order.auth.registration]]" (Параметры запроса регистрации)
* Response:
** [[#order.auth.registrationResponse|order.auth.registrationResponse]] (Информация о результате регистрации)
** [[#system.info|system.info]] (Служебная информация)
 
==== Запрос на получение параметров капчи====
 
* Request
** URI /api/order/auth/captchaParams
* Response:
** [[#order.auth.captchaParamsResponse|order.auth.captchaParamsResponse]] (Информация о параметрах капчи)
** [[#system.info|system.info]] (Служебная информация)
 
==== Запрос проверки состояния заказа====
 
* Request
** URI /api/order/auth/status
** POST request="[[#order.auth.status|order.auth.status]]" (Параметры запроса проверки состояния заказа)
* Response:
** [[#order.auth.statusResponse|order.auth.statusResponse]] (Информация о состоянии заказа)
** [[#system.info|system.info]] (Служебная информация)
=== Модуль Протокорзина (reminder) ===
"aroundDates": 0,
"serviceClass": "All",
"airlines": [ { "IATA": "UT" } ],
"delayed": false
"priceRefundType": null
}
}
|Предпочитаемые авиакомпании
|[]
|...|-|:: Массив IATA|IATA код кодов авиакомпании|string|Строка из 2 знаков (букв латинского алфавита и цифр)
|-
|
|boolean
|Логический тип
|-
|
: priceRefundType
|Признак возвратности тарифа, где
: AnyLowest - наименьшие цены (по умолчанию)
: Refundable - наименьшие цены с возможностью безвозмездного возврата
: Both - совокупность поисковых выдач поиска для минимальных и минимальных возвратных цен
|string
|Строка, принимающая одно из значений:
: AnyLowest
: Refundable
: Both
: Null
|-
|}
</div>
=== Вспомогательные функции (utils) === <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Получение данных по солнечной стороне (sunInfo) ====<pre id="flights.utils.sunInfo">flights.utils.sunInfo = </pre><div class="mw-collapsible-content"><pre>{ "info": { "sunPercentLeft": 0, "sunPercentRight": 0 }, "message": "Солнце не будет мешать во время полета"}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|sunPercentLeft|Процент времени от общей длительности перелета нахождения солнца с левой стороны борта самолета|number|Целое положительно число не большее 100|-|sunPercentRight|Процент времени от общей длительности перелета нахождения солнца с правой стороны борта самолета|number|Целое положительно число не большее 100|-|message|Сообщение с информацией о проценте времени нахождения солнца с определенной стороны|string|Строка|}</div></div> == Отели (hotels) == === Поиск (search) ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
== Заказы (order) ==
=== Протокорзина Аутентификация (reminderauth) ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Информация о заказах пользователя Данные запроса аутентификации(ordersrequest) ====<pre id="order.reminderauth.ordersrequest">order.reminderauth.orders request = </pre>
<div class="mw-collapsible-content">
<pre>
[ { "idlogin": 296944"test", "typepassword": "oneFlighttest", "products": [}</pre> { | border="status1": cellpadding="completed10", cellspacing="type0": "flight", "depAirpIATA": "VKO",!Параметр!Описание!Тип!Значения|-|login|Логин пользователя|string "arrAirpIATA": "LED",|строка "beginDateTime": "2015|-09|password|Пароль пользователя|string|строка|-29T10:00:00", |}</div></div> <div class="endDateTime": "2015toccolours mw-09collapsible mw-29T11:30:00", collapsed"totalPricestyle="width: { "amount"800px; margin-bottom: 485, "currency": "RUB10px;"> },==== Данные результата аутентификации(response) ==== <pre id="description": order.auth.response">order.auth..response = </pre><div class="mw-collapsible-content"> } ],<pre> "orderPrice": { "amountsuccess": 485,true "currency": "RUB" } }]
</pre>
{| border="1" cellpadding="10" cellspacing="0"
!Значения
|-
|idsuccess|Идентификатор заказаРезультат аутентификации|numberBoolean|Целое положительное числоЛогический тип
|-
|type}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Данные запроса восстановления пароля(sendPasswordLink) ====<pre id="order.auth.sendPasswordLink">order.auth.sendPasswordLink = </pre><div class="mw-collapsible-content"> <pre>{ "login": "test"}</pre>{|тип заказаborder="1" cellpadding="10" cellspacing="0"!Параметр!Описание|String!Тип|Строка !Значения
|-
|productslogin|Массив продуктовЛогин пользователя|[]string|...строка
|-
|}: status</div>|Статус</div>|String|Строка, принимающая одно из следующих значений<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Результат запроса восстановления пароля(sendPasswordLinkResponse) ====: pending <pre id="order.auth.sendPasswordLinkResponse">order.auth.sendPasswordLinkResponse = </pre><div class="mw-collapsible- ожидает бронирования,content"> <pre>{ "success": booked - забронирован, ожидает оплатыtrue, "message": completed - оплаченный"Письмо со ссылкой на восстановление пароля отправлено вам на почту"}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения
|-
|success: type|Результат аутентификации|Тип продуктаBoolean|StringЛогический тип|Строка, принимающая одно из следующих значений:-: flight - перелет,|message|Сообщение: hotel - отель,|string: train - поездка на поезде|строка
|-
|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Данные запроса регистрации пользователя(registration) ====<pre id="order.auth.registration">order.auth.registration = </pre><div class="mw-collapsible-content"> <pre>{ "booking_name": depAirpIATA"tst",|Для перелёта "booking_lastname": "tst", "registration_email": "tst@mute- код аэропорта вылетаlab.com", "registration_password": "tst", "booking_phone": "89271111111", "subscribe": true, "capture": "tst"}</pre>{|Stringborder="1" cellpadding="10" cellspacing="0"|Строка из 2 знаков (букв латинского алфавита и цифр)!Параметр!Описание!Тип!Значения
|-
|: arrAirpIATAbooking_name|Для перелёта - код аэропорта прилетаИмя пользователя|Stringstring|Строка из 2 знаков (букв латинского алфавита и цифр)строка
|-
|: beginDateTimebooking_lastname|Дата начала услугиФамилия пользователя|Stringstring|Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)строка
|-
|: endDateTimeregistration_email|Дата завершения услугиАдрес электронной почты пользователя|Stringstring|Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)строка
|-
|: totalPriceregistration_password|Цена услугиПароль|{}string|...строка
|-
|:: amountbooking_phone|Сумма Телефон пользователя|numberstring|Дробное числострока
|-
|:: currencysubscribe|Код валютыПризнак согласия на получение информации о лучших предложениях|stringBoolean|Строка в формате ISO 4217(трёхбуквенный алфавитный код)Логический тип
|-
|: descriptioncapture|Описание продуктаКод проверки с контрольного изображения
|string
|Строка|-|orderPrice|Цена заказа|{}|Формат аналогичен totalPriceстрока
|-
|}
</div>
</div>
 
 
== Информация о системе (system) ==
 
=== Служебная информация (info) ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Получение данных о валютах Результат запроса регистрации пользователя(currencyRatesregistrationResponse) ====<pre id="systemorder.infoauth.currencyRatesregistrationResponse">systemorder.infoauth.currencyRates registrationResponse = </pre>
<div class="mw-collapsible-content">
<pre>
{
"ratessuccess": [true, { "currencymessage": "EUR"Письмо с регистрационными данными отправлено на Ваш электронный адрес. Для подтверждения регистрации перейдите, пожалуйста, "rateпо ссылке в письме.": 0.015983249554467, "titleredirectUrl": "Евро"null }, </pre>{ | border="currency": 1"USDcellpadding=", 10"ratecellspacing=": 0.017322646415338,"!Параметр!Описание!Тип!Значения|-|success|Результат регистрации|Boolean|Логический тип|-|message|Сообщение|string|строка "title": "Американский Доллар"|- },|redirectUrl {|Ссылка для перехода "currency": "RUB",|string "rate": 1,|строка "title": "Российский Рубль"|- |}, {</div></div>  <div class="toccolours mw-collapsible mw-collapsed"currencystyle="width: 800px; margin-bottom:10px;"GBP",>==== Данные результата запроса о параметрах капчи(captchaParamsResponse) ==== <pre id="rateorder.auth.captchaParamsResponse": 0>order.auth.011694224105772,captchaParamsResponse = </pre> <div class="title": "Британский фунтmw-collapsible-content">  },<pre> { "currencyimage": "CZK"data:image/jpeg;base64, "rate": 0JBJ435346....44018540609305, "title": "Чешская крона" }, </pre>{ | border="currency": 1"LVLcellpadding=", 10"ratecellspacing=": 0.0169, "title": "Латвийский Лат" },!Параметр {!Описание "currency": "JPY",!Тип "rate": 2.0694507677662,!Значения "title": "Японская Йена"|- },|image {|Ссылка на изображение "currency": "CNY",|string "rate": 0.10767415217373,|строка "title": "Китайский Юань"|- |}, {</div></div>  <div class="toccolours mw-collapsible mw-collapsed"currencystyle="width: 800px; margin-bottom:10px;"UAH",>==== Данные запроса о состоянии заказа(status) ==== <pre id="rateorder.auth.status": 0>order.auth.40708159136336,status = </pre> <div class="title": "Гривнаmw-collapsible-content">  }<pre> ],{ "conversionEnabledbooking_id": true445469, "roundingFunctionpassenger_lastname": "ceilIvanov", "backendCurrencyListaccess_code": [ "RUB8Z273L" ]
}
</pre>
!Значения
|-
|ratesbooking_id|Массив данных о валютахИдентификатор заказа|[]string|...строка, может содержать цифры от 0 до 9 и дефис
|-
|: currencypassenger_lastname|Код валютыФамилия одного из пассажиров|Stringstring|Строка в формате ISO 4217(трёхбуквенный алфавитный код)строка
|-
|: rateaccess_code|Код валюты|Numeric|Число от 0 до 1|-|: title|Название валюты|String|Строка|-|conversionEnabled|Флаг допустимости пересчета цен в результатах поиска|boolean|Логический тип |-|roundingFunction|Тип округления|String|Строка, принимающая следующие значения:: 'ceil' - всегда вверх;: 'floor' - всегда вниз;: 'round' - математическое|-|backendCurrencyList|список валют, допустимых для бэкендных расчетовдоступа к заказу|[]string|Массив кодов валютстрока
|-
|}
</div>
</div>
 
 
 
== Трэвел-политики (travelPolicies) ==
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Получение данных Данные результата запроса о трэвел-политиках состоянии заказа(travelPoliciesstatusResponse) ====<pre id="travelPoliciesorder.auth.statusResponse">travelPolicies order.auth.statusResponse = </pre>
<div class="mw-collapsible-content">
<pre>
[ { "idsuccess": 184true, "namemessage": {null, "enredirectUrl": "First rule", "default"http: "Правило первое//nemotravel/poffice__bookinfo?booking_id=452434" }, </pre>{| border="rules1": { cellpadding="isDirect10": true, cellspacing="arrAirports0": [ "LED",!Параметр "KBP"!Описание ],!Тип "depAirports": [!Значения "MOW",|- "KBP"|success ],|Признак успешности получения ответа "arrCountries": [|Boolean "RU",|Логический тип "UA"|- ],|message "depCountries": [|Сообщение "RU",|string "UA"|строка ],|- "airlines": [|redirectUrl "SU",|Ссылка для перехода "PS"|string ],|строка "serviceClass": [|- "E",|} "B",</div> "F"</div> ], "zones": [=== Протокорзина (reminder) === "EU", <div class="AStoccolours mw-collapsible mw-collapsed" ], "tariffsstyle="width:800px; margin-bottom: [ "QWE10px;"> ],==== Информация о заказах пользователя (orders) ==== <pre id="bookingClassorder.reminder.orders": [>order.reminder.orders = </pre> <div class="Tmw-collapsible-content",> "Q" ]<pre> },[ "restrictions": { "priceMaxid": {296944, "amounttype": "100000oneFlight", "currencyproducts": "RUB"[ }, "priceDiffMax": { "amountstatus": "20completed", "currencytype": "PCTflight" } } }, { "iddepAirpIATA": 185, "nameVKO": {, "defaultarrAirpIATA": "Правило второеLED" }, "rulesbeginDateTime": { "isDirect"2015-09-29T10: false, "arrAirports"00: [ "LED00" ], "depAirports": [ "MOW" ], "arrCountriesendDateTime": [], "depCountries"2015-09-29T11: [], "airlines"30: [], "serviceClass00": [], "zones": [ "EU" ], "tariffstotalPrice": [],{ "bookingClassamount": [] }485, "restrictionscurrency": { "priceMaxRUB": { "amount": "90000"}, "currencydescription": "RUB..." } ], "priceDiffMaxorderPrice": { "amount": ""485, "currency": "PCTRUB" } } } ]
</pre>
{| border="1" cellpadding="10" cellspacing="0"
|-
|id
|Идентификатор правилазаказа|number|Целое положительное число|-|type|тип заказа
|String
|Строка
|-
|nameproducts|Данные о названиях правила на разных языкахМассив продуктов|{}|Объект или null. Ключами являются коды языков либо default - название по умолчанию|-|rules|Правила политики|{}[]
|...
|-
|
: isDirectstatus|Флаг обязательного прямого перелетаСтатус|booleanString|Логический тип Строка, принимающая одно из следующих значений:: pending - ожидает бронирования,: booked - забронирован, ожидает оплаты,: completed - оплаченный
|-
|
: arrAirportstype|Массив IATA кодов аэропортов прибытияТип продукта|[]String|...Строка, принимающая одно из следующих значений:: flight - перелет,: hotel - отель,: train - поездка на поезде
|-
|
: depAirportsdepAirpIATA|Массив IATA кодов аэропортов Для перелёта - код аэропорта вылета|[]String|...Строка из 2 знаков (букв латинского алфавита и цифр)|-|: arrAirpIATA|Для перелёта - код аэропорта прилета|String|Строка из 2 знаков (букв латинского алфавита и цифр)
|-
|
: arrCountriesbeginDateTime|Массив кодов стран прибытияДата начала услуги|[]String|...Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
|-
|
: depCountriesendDateTime|Массив кодов стран вылетаДата завершения услуги|[]String|...Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
|-
|
: airlinestotalPrice|Массив IATA кодов авиакомпанийЦена услуги|[]{}
|...
|-
|
: serviceClass: amount|Массив однобуквенных кодов сервисных классовСумма |[]number|... Дробное число
|-
|
: zones: currency|Массив кодов географических зон перелетаКод валюты|[]string|... Строка в формате ISO 4217(трёхбуквенный алфавитный код)
|-
|
: tariffsdescription|Массив кодов тарифовОписание продукта|[]string|... Строка
|-
|: bookingClass|Массив однобуквенных кодов допустимых классов бронирования|[]|... |-|restrictionsorderPrice|Ограничения по ценеЦена заказа
|{}
|...|-|: priceMax|Верхняя планка цены|{}|... |-|: priceDiffMax| Максимальная разбежка с минимальной ценой|{}|... |-|:: amount|Сумма |number|Дробное число|-|:: currency|Код валюты|string|Строка в формате ISO 4217(трёхбуквенный алфавитный код)Формат аналогичен totalPrice
|-
|}
</div>
== Информация о системе (system) ==
== Вспомогательные функции = Служебная информация (utilsinfo) ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Получение данных по солнечной стороне (sunInfo) ====<pre id="flights.utils.sunInfo">flights.utils.sunInfo = </pre><div class="mw-collapsible-content"><pre>{ "info": { "sunPercentLeft": 0, "sunPercentRight": 0 }, "message": "Солнце не будет мешать во время полета" }</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|sunPercentLeft|Процент времени от общей длительности перелета нахождения солнца с левой стороны борта самолета|number|Целое положительно число не большее 100|-|sunPercentRight|Процент времени от общей длительности перелета нахождения солнца с правой стороны борта самолета|number|Целое положительно число не большее 100|-|message|Сообщение с информацией о проценте времени нахождения солнца с определенной стороны|string|Строка|}</div></div> == Служебная информациявалютах (systemcurrencyRates) == <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">=== Служебная информация (info) ===<pre id="utils.system.info.currencyRates">system.info .currencyRates = </pre>
<div class="mw-collapsible-content">
<pre>
{
"responcerates": [ { "currency": "EUR", "timestamprate": 14337547180.9557015983249554467, "title": "Евро" }, { "currency": "USD", "responceTimerate": 0.10900616645813017322646415338, "title": "Американский Доллар" }, { "currency": "RUB", "rate": 1, "usertitle": "Российский Рубль" }, { "currency": "GBP", "userIDrate": 35990.011694224105772, "agencyIDtitle": 3598"Британский фунт" }, { "statuscurrency": "managerCZK", "isB2Brate": true0.44018540609305, "settingstitle": "Чешская крона" }, { "currency": "LVL", "rate": 0.0169, "currentLanguagetitle": "ruЛатвийский Лат" }, { "currentCurrencycurrency": "USDJPY", "rate": 2.0694507677662, "agencyCurrencytitle": "USDЯпонская Йена" }, { "googleMapsApiKeycurrency": "nullCNY", "rate": 0.10767415217373, "googleMapsClientIdtitle": "nullКитайский Юань" }, { "currency": "UAH", "rate": 0.40708159136336, "title": "Гривна" } ], "conversionEnabled": true, "roundingFunction": "ceil", "backendCurrencyList": [ "RUB" ]}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|responce|Ограничения на максимальные значения параметров|{}|...|-|: timestamp|Текущая временная метка с сервера|number|Вещественное число
|-
|: responceTime|Время ответа|number|Вещественное число|-|userrates|Служебная информация Массив данных о пользователевалютах|{}[]
|...
|-
|
: userIDcurrency|ID пользователяКод валюты|numberString|Целое положительное числоСтрока в формате ISO 4217(трёхбуквенный алфавитный код)
|-
|
: agencyIDrate|ID агентстваКод валюты|numberNumeric|Целое положительное числоЧисло от 0 до 1
|-
|
: statustitle|Статус пользователяНазвание валюты|stringString|Строка|-|conversionEnabled|Флаг допустимости пересчета цен в результатах поиска|boolean|Логический тип |-|roundingFunction|Тип округления|String
|Строка, принимающая следующие значения:
: guest'ceil' - всегда вверх;: admin'floor' - всегда вниз;: user: expert: manager: company_user: company_expert: company_manager'round' - математическое
|-
|: isB2BbackendCurrencyList| Признак типа B2Bсписок валют, допустимых для бэкендных расчетов| boolean[]| логический типМассив кодов валют
|-
|}</div></div>   == Трэвел-политики (travelPolicies) == <div class="toccolours mw-collapsible mw-collapsed" style="width: settings800px; margin-bottom:10px;">==== Получение данных о трэвел-политиках (travelPolicies) ====| Настройки пользователя<pre id="travelPolicies">travelPolicies = </pre><div class="mw-collapsible-content"> <pre>[ { "id": 184,| "name": {}|... "en": "First rule", "default": "Правило первое"|- },| "rules": { "isDirect":true, "arrAirports": currentLanguage[| Текущий язык "LED", "KBP" ],|string "depAirports": [|Строка из 2 латинских букв "MOW",|- "KBP"| ], "arrCountries":[ "RU", "UA" ], "depCountries": currentCurrency[| Текущая валюта "RU", "UA" ],|string "airlines": [|Строка из 3 латинских букв "SU",|- "PS"| ], "serviceClass":[ "E", "B", "F" ], "zones": agencyCurrency[| Валюта агентства "EU", "AS"|string ],|Строка из 3 латинских букв "tariffs": [|- "QWE"| ], "bookingClass":[ "T", "Q" ] }, "restrictions": googleMapsApiKey{| Api ключ для доступа к google maps "priceMax": {|string "amount": "100000",|Строка "currency": "RUB"|- },| "priceDiffMax": { "amount":"20", "currency": googleMapsClientId"PCT" }| CliendId для доступа к google maps }|string },|Строка {|- "id": 185,| "name": { "default": promoCode"Правило второе"| Информация о промокоде },| "rules": {}|... "isDirect": false, "arrAirports": [ "LED" ], "depAirports": [|- "MOW"| ], "arrCountries":[], "depCountries": code[],| код "airlines": [],|string "serviceClass": [],|Строка "zones": [|- "EU"| ], "tariffs":[], "bookingClass": promoAction[] },| информация о промоакции "restrictions": {| "priceMax": {}|... "amount": "90000",|- "currency": "RUB"| }, "priceDiffMax":{ "amount":"", "currency": name"PCT" } } } ]</pre>{| Название акцииborder="1" cellpadding="10" cellspacing="0"!Параметр!Описание|string!Тип|Строка!Значения|-|::: descriptionid| Описание акцииИдентификатор правила|stringString
|Строка
|-
|name|Данные о названиях правила на разных языках|{}|Объект или null. Ключами являются коды языков либо default - название по умолчанию|-|rules|Правила политики|{}|...|-|::: hasFullDescisDirect| Флаг наличия подробного описанияобязательного прямого перелета|boolean|логический Логический тип|-|: arrAirports|Массив IATA кодов аэропортов прибытия|[]|...|-|: depAirports|Массив IATA кодов аэропортов вылета|[]|...|-|: arrCountries|Массив кодов стран прибытия|[]|...|-|: depCountries|Массив кодов стран вылета|[]|...|-|: airlines|Массив IATA кодов авиакомпаний|[]|...|-|: serviceClass|Массив однобуквенных кодов сервисных классов|[]|... |-|: zones|Массив кодов географических зон перелета|[]|... |-|: tariffs|Массив кодов тарифов|[]|... |-|: bookingClass|Массив однобуквенных кодов допустимых классов бронирования|[]|... |-|restrictions|Ограничения по цене|{}|...|-|: priceMax|Верхняя планка цены|{}|... |-|: priceDiffMax| Максимальная разбежка с минимальной ценой|{}|...
|-
|
:: amount|Сумма |number|Дробное число|-|:: fullDescURLcurrency| Ссылка для получения подробного описанияКод валюты
|string
|Строкав формате ISO 4217(трёхбуквенный алфавитный код)
|-
|}
</div>
</div>

Навигация

'