ICS Avia API v 1.5
описание взаимодействия
Общие сведения
Данные от системы запрашиваются и передаются по протоколу HTTP.
Для передачи параметров можно использовать метод GET или POST.
Данные к пользователю передаются в виде XML документов в кодировке UTF-8.
Полную выгрузку билетов можно получить отдельным XML файлом.
ВНИМАНИЕ! Для работы с уже созданными заявками используйте методы
работы с заявками из ICS Tour API.
Список методов
Методы
getAirCompany
URL: http://api.icstrvl.ru/tour-api/avia/getAirCompany.xml
список авиакомпаний с доступными билетами
Аргументы
Название |
Тип |
Обязательный |
Описание |
cntDep |
целое число |
да |
Страна вылета [список: getCountryDep] |
cityDep |
целое число |
нет |
Город вылета [список: getCityDep] |
cntArr |
целое число |
да |
Страна прилета [список: getCountryArr] |
cityArr |
целое число |
нет |
Город прилета [список: getCityArr] |
class |
целое число |
нет |
Класс перелета [список: getServiceClass] |
rt |
логическое |
да |
Перелет туда и обратно |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов |
ch |
целое число |
нет |
Количество детей |
Метод позволяет получить список авиакомпаний, на которые есть билеты,
соответствующие заданным условиям.
Возвращает XML типа:
<result>
<companies>
<company name="Название авиакомпании" id="Идентификатор авиакомпании"/>
</companies>
</result>
getAirCompanyList
URL: http://api.icstrvl.ru/tour-api/avia/getAirCompanyList.xml
список авиакомпаний
Метод позволяет получить список всех авиакомпаний.
Возвращает XML типа:
<result>
<carriers>
<carrier id="Идентификатор авиакомпании" name="Название авиакомпании"/>
</carriers>
</result>
getAirportList
URL: http://api.icstrvl.ru/tour-api/avia/getAirportList.xml
список аэропортов
Метод позволяет получить список всех аэропортов.
Возвращает XML типа:
<result>
<cities>
<city city_id="Идентификатор города" iata="код IATA" country_id="Идентификатор страны" country_name="Название страны" id="Идентификатор аэропорта" city_name="Название города" name="Название аэропорта"/>
</cities>
</result>
getCityArr
URL: http://api.icstrvl.ru/tour-api/avia/getCityArr.xml
список городов прилета
Аргументы
Название |
Тип |
Обязательный |
Описание |
cntDep |
целое число |
да |
Страна вылета [список: getCountryDep] |
cityDep |
целое число |
нет |
Город вылета [список: getCityDep] |
cntArr |
целое число |
да |
Страна прилета [список: getCountryArr] |
rt |
логическое |
да |
Перелет туда и обратно |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов |
ch |
целое число |
нет |
Количество детей |
Метод позволяет получить список городов прилета, в которые есть билеты,
соответствующие заданным условиям.
Возвращает XML типа:
<result>
<cities_arr>
<city name="Название города" id="Идентификатор города"/>
</cities_arr>
</result>
getCityDep
URL: http://api.icstrvl.ru/tour-api/avia/getCityDep.xml
список городов вылета
Аргументы
Название |
Тип |
Обязательный |
Описание |
cntDep |
целое число |
да |
Страна вылета [список: getCountryDep] |
rt |
логическое |
да |
Перелет туда и обратно |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов |
ch |
целое число |
нет |
Количество детей |
Метод позволяет получить список городов вылета, из которых есть билеты,
соответствующие заданным условиям.
Возвращает XML типа:
<result>
<cities_dep>
<city id="Идентификатор города" name="Название города"/>
</cities_dep>
</result>
getCityList
URL: http://api.icstrvl.ru/tour-api/avia/getCityList.xml
список городов
Метод позволяет получить список всех городов.
Возвращает XML типа:
<result>
<cities>
<city name="Название города" id="Идентификатор города" iata="код IATA" country_id="Идентификатор страны"/>
</cities>
</result>
getCountryArr
URL: http://api.icstrvl.ru/tour-api/avia/getCountryArr.xml
список стран прилета
Аргументы
Название |
Тип |
Обязательный |
Описание |
cntDep |
целое число |
да |
Страна вылета [список: getCountryDep] |
cityDep |
целое число |
нет |
Город вылета [список: getCityDep] |
rt |
логическое |
да |
Перелет туда и обратно |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов |
ch |
целое число |
нет |
Количество детей |
Метод позволяет получить список стран прилета, в которые есть билеты,
соответствующие заданным условиям.
Возвращает XML типа:
<result>
<countries_arr>
<country id="Идентификатор страны" name="Название страны"/>
</countries_arr>
</result>
getCountryDep
URL: http://api.icstrvl.ru/tour-api/avia/getCountryDep.xml
список стран вылета
Аргументы
Название |
Тип |
Обязательный |
Описание |
rt |
логическое |
да |
Перелет туда и обратно |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов |
ch |
целое число |
нет |
Количество детей |
Метод позволяет получить список стран вылета, из которых есть билеты,
соответствующие заданным условиям.
Возвращает XML типа:
<result>
<countries_dep>
<country name="Название страны" id="Идентификатор страны"/>
</countries_dep>
</result>
getCountryList
URL: http://api.icstrvl.ru/tour-api/avia/getCountryList.xml
список стран
Метод позволяет получить список всех стран.
Возвращает XML типа:
<result>
<countries>
<country name="Название страны" id="Идентификатор страны"/>
</countries>
</result>
getDateArr
URL: http://api.icstrvl.ru/tour-api/avia/getDateArr.xml
Список дат возврата
Аргументы
Название |
Тип |
Обязательный |
Описание |
cntDep |
целое число |
да |
Страна вылета [список: getCountryDep] |
cityDep |
целое число |
нет |
Город вылета [список: getCityDep] |
cntArr |
целое число |
да |
Страна прилета [список: getCountryArr] |
cityArr |
целое число |
нет |
Город прилета [список: getCityArr] |
dateDep |
дата, формат YYYY-MM-DD |
да |
Дата вылета [список: getDateDep] |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов |
ch |
целое число |
нет |
Количество детей |
Метод позволяет получить возможные даты возврата, на которые есть билеты,
соответствующие заданным условиям.
Возвращает XML типа:
<result>
<dates_arr>
<date value="Дата возврата"/>
</dates_arr>
</result>
getDateDep
URL: http://api.icstrvl.ru/tour-api/avia/getDateDep.xml
список дат вылета
Аргументы
Название |
Тип |
Обязательный |
Описание |
cntDep |
целое число |
да |
Страна вылета [список: getCountryDep] |
cityDep |
целое число |
нет |
Город вылета [список: getCityDep] |
cntArr |
целое число |
да |
Страна прилета [список: getCountryArr] |
cityArr |
целое число |
нет |
Город прилета [список: getCityArr] |
rt |
логическое |
да |
Перелет туда и обратно |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов |
ch |
целое число |
нет |
Количество детей |
Метод позволяет получить возможные даты вылета, на которые есть билеты,
соответствующие заданным условиям.
Возвращает XML типа:
<result>
<dates_dep>
<date value="Дата вылета"/>
</dates_dep>
</result>
getSchedule
URL: http://api.icstrvl.ru/tour-api/avia/getSchedule.xml
расписание рейсов
Аргументы
Название |
Тип |
Обязательный |
Описание |
cnt |
целое число |
нет |
Страна |
city |
целое число |
нет |
Город |
ap |
целое число |
нет |
Аэропорт |
iata |
строка |
нет |
IATA код (аэропорт или город) |
Метод позволяет получить расписание рейсов.
Возвращает XML типа:
<result>
<schedule>
<flight company="авиакомпания (идентификатор)" pair="идентификатор второго рейса в паре" id="идентификатор рейса" cnt2="страна прилета (идентификатор)" cnt1="страна вылета (идентификатор)" num="номер рейса" cnt1name="страна вылета (идентификатор)" cnt2name="страна прилета (название)" company_name="авиакомпания (название)">
<period date1="Начало действия периода" date2="Окончание действия периода">
<dow ap2="аэропорт прилета (идентификатор)" time2="время прилета" ap1="аэропорт вылета (идентификатор)" num="номер дня недели (1..7)" time1="время вылета" ap2iata="аэропорт прилета (код IATA)" ap2name="аэропорт прилета (название)" ap1iata="аэропорт вылета (код IATA)" ap1name="аэропорт вылета (название)" name="название дня недели"/>
</period>
</flight>
</schedule>
</result>
getServiceClass
URL: http://api.icstrvl.ru/tour-api/avia/getServiceClass.xml
доступные классы обслуживания
Аргументы
Название |
Тип |
Обязательный |
Описание |
cntDep |
целое число |
да |
Страна вылета [список: getCountryDep] |
cityDep |
целое число |
нет |
Город вылета [список: getCityDep] |
cntArr |
целое число |
да |
Страна прилета [список: getCountryArr] |
cityArr |
целое число |
нет |
Город прилета [список: getCityArr] |
airCompany |
целое число |
нет |
Авиакомпания [список: getAirCompany] |
rt |
логическое |
да |
Перелет туда и обратно |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов |
ch |
целое число |
нет |
Количество детей |
Метод позволяет получить список классов бронирования, на которые есть билеты,
соответствующие заданным условиям.
Возвращает XML типа:
<result>
<classes>
<class id="Идентификатор класса" name="Название класса"/>
</classes>
</result>
getServiceClassList
URL: http://api.icstrvl.ru/tour-api/avia/getServiceClassList.xml
список классов обслуживания
Метод позволяет получить список классов обслуживания.
Возвращает XML типа:
<result>
<classes>
<class name="Название класса" id="Идентификатор класса"/>
</classes>
</result>
getTicketStatuses
URL: http://api.icstrvl.ru/tour-api/avia/getTicketStatuses.xml
список статусов билетов
Возвращает XML типа:
<result>
<ticket_statuses>
<ticket_status persons="Максимальное количество людей в туре, которое если не указано, то не ограничено" id="Идентификатор статуса" name="Название статуса"/>
</ticket_statuses>
</result>
getTickets
URL: http://api.icstrvl.ru/tour-api/avia/getTickets.xml
список билетов
Аргументы
Название |
Тип |
Обязательный |
Описание |
cntDep |
целое число |
да |
Страна вылета [список: getCountryDep] |
cityDep |
целое число |
нет |
Город вылета [список: getCityDep] |
cntArr |
целое число |
да |
Страна прилета [список: getCountryArr] |
cityArr |
целое число |
нет |
Город прилета [список: getCityArr] |
dateDep |
дата, формат YYYY-MM-DD |
нет |
Дата вылета c [список: getDateDep] |
dateArr |
дата, формат YYYY-MM-DD |
нет |
Дата возврата c [список: getDateArr] |
dateDepEnd |
дата, формат YYYY-MM-DD |
нет |
Дата вылета по, но не более месяца от "Даты вылета с" (только если указана дата вылета с) |
dateArrEnd |
дата, формат YYYY-MM-DD |
нет |
Дата возврата по, но не более месяца от "Даты возврата с" (только если указана дата возврата с) |
airCompany |
целое число |
нет |
Авиакомпания [список: getAirCompany] |
class |
целое число |
нет |
Класс перелета [список: getServiceClass] |
rt |
логическое |
да |
Перелет туда и обратно |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов(может быть от 0 до 2) |
ch |
целое число |
нет |
Количество детей |
Метод позволяет получить цены на билеты в соответствии с указанными условиями.
Стоимость указана в валюте, название валюты указано в
tickets.currency.
Текущий курс валют компании можно получить, используя метод
getCurrencyRate.
Если не задана конкретная дата вылета, то показываются все билеты на один
месяц вперед.
Возвращает XML типа:
<result>
<tickets currency="Валюта, в которой указаны цены">
<ticket adult_cost="Цена за взрослого" id="Идентификатор билета" infant_cost="Цена за инфанта" kid_cost="Цена за ребенка" baggage_weight="Допустимый вес багажа" total="Цена билета" class="Класс перелета" status="Статус билета">
<flight time2="Время прилета" city2_iata="Код IATA города прилета" city2="Город прилета" ac="Авиакомпания" ap2_iata="Код IATA аэропорта прилета" ap2="Аэропорт прилета" time1="Время вылета" num="Номер рейса" date="Дата" ap1="Аэропорт вылета" city1_iata="Код IATA города вылета" ap1_iata="Код IATA аэропорта вылета" city1="Город вылета"/>
<flight_back time2="Время прилета" city2_iata="Код IATA города прилета" city2="Город прилета" ac="Авиакомпания" ap2="Аэропорт прилета" ap2_iata="Код IATA аэропорта прилета" num="Номер рейса" date="Дата" ap1="Аэропорт вылета" time1="Время вылета" city1="Город вылета" ap1_iata="Код IATA аэропорта вылета" city1_iata="Код IATA города вылета"/>
</ticket>
</tickets>
</result>
makeOrder
URL: http://api.icstrvl.ru/tour-api/avia/makeOrder.xml
сделать заказ
Аргументы
Название |
Тип |
Обязательный |
Описание |
aid |
строка |
да |
Идентификатор сессии |
ticket_id |
строка |
да |
Id билета [список: getTickets] |
manager |
строка |
да |
Менеджер агентства |
payment_type |
целое число |
да |
Тип оплаты: 1 - наличный расчет, 2 - безналичный расчет |
data |
строка в формате JSON |
да |
Данные для бронирования |
comment |
строка |
нет |
Комментарии к заказу |
check_only |
целое число |
нет |
Если передан этот параметр, то бронирование производится не будет (для отладки) |
ad |
целое число |
да |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов (максимально - 2) |
ch |
целое число |
нет |
Количество детей |
Метод позволяет бронировать авиабилеты, которые можно найти с помощью метода
getTickets или
searchTickets.
Информация, необходимая для бронирования тура, передается в параметре
data, которая представляет собой строку формата JSON.
Описание данных для бронирования, параметр data
{
"clients": [
# Массив объектов, которые содержат данные о туристах в заявке
# количество элементов в массиве должно соответствовать количеству
# туристов в туре, TOUR.accomodation.adults.n + TOUR.accomodation.kids.n
#
{
"surname": "Фамилия туриста латинскими буквами",
"name": "Имя туриста латинскими буквами",
"patronymic": "Отчество туриста латинскими буквамиш, требуется только при бронировании внутри России",
"birth_date": "Дата рождения туриста, формат YYYY-MM-DD",
"gender": "Пол туриста (MR - мужской, MRS - женский)",
"citizenship": "Идентификатор гражданства туриста",
"passport_serial": "Серия паспорта обязательна и учитывается только для российского гражданства, для других будет проигнорирована.",
"passport": "Номер паспорта",
"passport_begin": "Дата начала действия паспорта, формат YYYY-MM-DD",
"passport_end": "Дата окончания действия паспорта, формат YYYY-MM-DD",
},
...
],
}
Обязательным является только массив clients.
Для того, что бы получить доступ к этому методу, необходим идентификатор
сессии, который можно получить в методе
authorize.
После того как получен ответ от метода makeOrder, запрос на бронирование
авиабилета поставлен в очередь. Его статус в очереди можно проверить с помощью
метода checkBooking, передав
в него полученный от системы book_id. То есть билет бронируется
не сразу, а в течении некоторого времени. Идентификатор брони можно получить
с помощью метода checkBooking.
ВНИМАНИЕ! Для работы с уже созданными заявками используйте методы
работы с заявками из ICS Tour API.
Возвращает XML типа:
<result>
<booking book_id="Идентификатор номера бронирования в очереди">
<price packet_price="Цена билета" total="Стоимость билета для агентства" commission="Процент комиссии" commission_amount="Сумма комиссии"/>
</booking>
</result>
Если передан параметр check_only, то бронирование производиться
не будет.
В параметре book_id будет не идентификатор бронирования, а слово
tested.
Так же в случае передачи параметра
check_only в тег
booking
будет добавлен тег
test_letter, который содержит заголовок
(
test_letter.subject), получателя (
test_letter.to)
и тело (
test_letter.body)
письма, которое получает агентство при бронировании. Само письмо не отсылается.
searchTickets
URL: http://api.icstrvl.ru/tour-api/avia/searchTickets.xml
поиск билетов
Аргументы
Название |
Тип |
Обязательный |
Описание |
arrival |
строка |
нет |
Откуда - id или IATA код |
departure |
строка |
нет |
Куда - id или IATA код |
date |
дата, формат YYYY-MM-DD |
нет |
Дата вылета нижняя граница |
date2 |
дата, формат YYYY-MM-DD |
нет |
Дата вылета верхняя граница |
search_by |
строка |
нет |
Задает тип объектов, которые задаются в arrival и departure. По умолчанию city. Возможные варианты: country - страна, city - город, airport - аэропорт |
company |
целое число |
нет |
Авиакомпания |
class |
целое число |
нет |
Класс перелета [список: getServiceClass] |
rt |
логическое |
нет |
Перелет туда и обратно |
ad |
целое число |
нет |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов(может быть от 0 до 2) |
ch |
целое число |
нет |
Количество детей |
Метод позволяет осуществлять поиск билетов.
Значения вылета и прилета могут задаватся как идентификаторами, так и кодами IATA.
Результаты могут быть ограничены по дате вылета.
Стоимость указана в валюте, название валюты указано в ticket.currency.
Текущий курс валют компании можно получить, используя метод getCurrencyRate.
Возвращает XML типа:
<result>
<tickets found="Количество найденных результатов">
<ticket baggage_weight="Норма провоза багажа" currency="Валюта, в которой указаны цены" kid_cost="Цена за ребенка" infant_cost="Цена за инфанта" adult_cost="Цена за взрослого" id="Идентификатор билета" status="Статус билета" class="Класс перелета" total="Цена билета">
<flight city2="Город прилета" ap2_iata="Код IATA аэропорта прилета" ap2="Аэропорт прилета" id="Идентификатор рейса" time2="Время прилета" ac_id="Авиакомпания - идентификатор" city2_iata="Код IATA города прилета" time1="Время вылета" num="Номер рейса" date="Дата" ap1="Аэропорт вылета" city1_iata="Код IATA города вылета" city1="Город вылета" ap1_iata="Код IATA аэропорта вылета" ac_name="Авиакомпания - название"/>
<flight_back time2="Время прилета" id="Идентификатор рейса" city2_iata="Код IATA города прилета" city2="Город прилета" ac="Авиакомпания - идентификатор" ap2="Аэропорт прилета" ap2_iata="Код IATA аэропорта прилета" ac_name="Авиакомпания - название" ap1="Аэропорт вылета" num="Номер рейса" date="Дата" time1="Время вылета" city1="Город вылета" ap1_iata="Код IATA аэропорта вылета" city1_iata="Код IATA города вылета"/>
</ticket>
</tickets>
</result>
searchTickets2
URL: http://api.icstrvl.ru/tour-api/avia/searchTickets2.xml
поиск билетов (новая версия)
Аргументы
Название |
Тип |
Обязательный |
Описание |
from |
строка |
нет |
Откуда - id или IATA код |
to |
строка |
нет |
Куда - id или IATA код |
date |
дата, формат YYYY-MM-DD |
нет |
Дата вылета нижняя граница |
date2 |
дата, формат YYYY-MM-DD |
нет |
Дата вылета верхняя граница |
date_back |
дата, формат YYYY-MM-DD |
нет |
Дата вылета обратно нижняя граница |
date_back2 |
дата, формат YYYY-MM-DD |
нет |
Дата вылета обратно верхняя граница |
company |
строка |
нет |
Авиакомпания |
class |
строка |
нет |
Класс перелета (Y, C или F) [список: getServiceClass] |
rt |
логическое |
нет |
Перелет туда и обратно |
ad |
целое число |
нет |
Количество взрослых |
inf |
целое число |
нет |
Количество инфантов(может быть от 0 до 2) |
ch |
целое число |
нет |
Количество детей |
rub |
целое число |
нет |
Если установлен, то стоимость показывается в рублях, если нет, то в валюте страны |
Метод позволяет осуществлять поиск билетов.
Значения вылета и прилета могут задаватся как идентификаторами, так и кодами IATA.
Результаты могут быть ограничены по дате вылета.
Стоимость указана в валюте, название валюты указано в ticket.currency.
Текущий курс валют компании можно получить, используя метод getCurrencyRate.
Возвращает XML типа:
<result>
<tickets found="Количество найденных результатов">
<ticket id="Идентификатор билета" adult_cost="Цена за взрослого" infant_cost="Цена за инфанта" baggage_weight="Норма провоза багажа" kid_cost="Цена за ребенка" currency="Валюта, в которой указаны цены" total="Цена билета" class="Класс перелета" status="Статус билета">
<flight time1="Время вылета" num="Номер рейса" date="Дата" ap1="Аэропорт вылета" city1_iata="Код IATA города вылета" city1="Город вылета" ap1_iata="Код IATA аэропорта вылета" ac_name="Авиакомпания - название" city2="Город прилета" ap2_iata="Код IATA аэропорта прилета" ap2="Аэропорт прилета" id="Идентификатор рейса" time2="Время прилета" ac_id="Авиакомпания - идентификатор" city2_iata="Код IATA города прилета"/>
<flight_back city2_iata="Код IATA города прилета" id="Идентификатор рейса" time2="Время прилета" ap2_iata="Код IATA аэропорта прилета" ap2="Аэропорт прилета" ac="Авиакомпания - идентификатор" city2="Город прилета" ac_name="Авиакомпания - название" city1_iata="Код IATA города вылета" ap1_iata="Код IATA аэропорта вылета" city1="Город вылета" time1="Время вылета" num="Номер рейса" date="Дата" ap1="Аэропорт вылета"/>
</ticket>
</tickets>
</result>
Получение списка билетов
Список билетов в виде XML можно получить по данной ссылке: http://api.icstrvl.ru/tour-api/data/online_tickets.xml
Данные обновляются раз в 20 минут.
Файл содержит описание ценовых предложений по авиабилетам, актуальных на
время выгрузки, указанное в атрибуте time тега tickets
(время московское). В предложении указан рейс или рейсы (билет в обе стороны),
даты вылета, статус данного предложения, стоимость за одного взрослого,
ребенка и инфанта.
Если описание содержит только тег flight, то это билет в одну сторону,
если так же присутствует тег flight_back,
то это билет туда и обратно.
Описание XML:
<tickets time="Время формирования, формат YYYY-MM-DD HH:MM:SS">
<ticket status_id="Идентификатор статуса ценового предложения" available="если 1 - бронирование возможно, 0 - бронирование невозможно" status="Текстовое название статуса" id="Идентификатор ценового предложения, который может быть использован при бронировании" class="Класс обслуживание">
<flight company="Название авиакомпании" num="Номер рейса" date="Дата вылета">
<departure city="Город вылета" ap_iata="IATA код аэропорта вылета" city_iata="IATA код города вылета" city_id="Идентификатор города вылета" ap="Аэропорт вылета">Время вылета</departure>
<arrival city_id="Идентификатор города прилета" city_iata="IATA код города прилета" ap="Аэропорт прилета" city="Город прилета" ap_iata="IATA код аэропорта прилета">Время прилета</arrival>
</flight>
<flight_back num="Номер обратного рейса, если билет в одну сторону, то данный тег отсутствует" date="Дата вылета" company="Название авиакомпании">
<departure city_iata="IATA код города вылета" city_id="Идентификатор города вылета" ap="Аэропорт вылета" ap_iata="IATA код аэропорта вылета" city="Город вылета">Время вылета</departure>
<arrival city_iata="IATA код города прилета" city_id="Идентификатор города прилета" ap="Аэропорт прилета" ap_iata="IATA код аэропорта прилета" city="Город прилета">Время прилета</arrival>
</flight_back>
<price currentcy="В какой валюте даны цены">
<adult>Стоимость одного взрослого</adult>
<kid>Стоимость одного ребенка</kid>
<infant>Стоимость одного инфанта</infant>
</price>
</ticket>
</tickets>