ICS Tour API v1.20
описание взаимодействия

Общие сведения

Данные от системы запрашиваются и передаются по протоколу HTTP.
Для передачи параметров можно использовать метод GET или POST.
Данные к пользователю передаются в виде XML документов в кодировке UTF-8.

Описание взаимодействия шлюза по продажам авиабилетов можно найти здесь.

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

Список методов для поиска тура

Список методов для работы с заявками

Методы

authenticate

URL: http://api.icstrvl.ru/tour-api/authenticate.xml
Проверка подлиности идентификатора сессии
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
Метод для проверки подлиности ключа сессии.
Возвращает XML типа:
<result>
<agency id="Идентификатор агентства" title="Название агентства"/>
</result>

authorize

URL: http://api.icstrvl.ru/tour-api/authorize.xml
авторизация для работы с заявками
Аргументы
Название Тип Обязательный Описание
login строка да Логин агентства
password строка да Пароль агентства
Метод возвращает строку - идентификатор сессии, которую нужно использовать в методах, которые работают с заявками.
Возвращает XML типа:
<result>
<sessionId>Строка - идентификатор сессии</sessionId>
<login>Строка - логин агентства</login>
<agency>Строка - Название агентства</agency>
<INN>Строка - ИНН агентства</INN>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/authorize.xml?login=xxx&password=zzz

cancelOrder

URL: http://api.icstrvl.ru/tour-api/cancelOrder.xml
аннулирование заявки
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
id строка да Id заявки на бронирование

Метод позволяет аннулировать заявку на тур.

Доступ к методу предоставляется по запросу.

Возвращает XML типа:
<result>
<canceling id="Идентификатор заявки">
<status name="краткое название статуса: ok - прошло удачно, failed - аннуляция невозможна">расшифровка названия статуса</status>
<reason>причина в отказе аннуляции</reason>
<penalty currency="валюта штрафа">сумма штрафа</penalty>
</canceling>
</result>

cancelOrderPenalty

URL: http://api.icstrvl.ru/tour-api/cancelOrderPenalty.xml
проверка возможности аннулирования заявки и штрафы
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
id строка да Id заявки на бронирование

Метод позволяет унать возможна ли аннуляция заявки и какие будут за это штрафы.

Доступ к методу предоставляется по запросу.

Возвращает XML типа:
<result>
<canceling id="Идентификатор заявки">
<status name="краткое название статуса: possible - аннулирование возможно, forbidden - аннулирование запрещено, impossible - невозможно аннулирование">Расшифровка названия статуса</status>
<reason>Причина отказа в аннуляции</reason>
<penalty currency="Валюта штрафа">Сумма штрафа</penalty>
</canceling>
</result>

checkBooking

URL: http://api.icstrvl.ru/tour-api/checkBooking.xml
проверка статуса бронирования и получение идентификатора заявки на бронирование
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
book_id целое число да Идентификатор бронирования
Метод предназначен для того, чтобы получить идентификатор заявки на бронирование в системе оператора, после того как получен идентификатор бронирования из метода makeOrder.
Возвращает XML типа:
<result>
<order status="Статус бронирования" create_time="Время создания заявки" order_id="Идентификатор заявки на бронирование" book_id="Идентификатор бронирования"/>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/checkBooking.xml?aid=SESSION_ID&book_id=BOOKING_ID

getAvailableDates

URL: http://api.icstrvl.ru/tour-api/getAvailableDates.xml
список возможных дат вылета
Аргументы
Название Тип Обязательный Описание
city целое число нет Город вылета [список: getDepartures]
cnt целое число да Страна [список: getCountries]
program целое число, может быть несколько нет Курортная программа [список: getPrograms]
resort целое число, может быть несколько нет Курорт [список: getResorts]
tour_type целое число нет Тип тура [список: getTourTypes]
Метод возвращает список дат, на которые имеются туры.
Обязательный параметр - только страна, также поиск дат может быть ограничен городом вылета, курортом, типом тура, курортной программой.
Возвращает XML типа:
<result>
<dates>
<date>Дата в формате YYYY-MM-DD</date>
</dates>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getAvailableDates.xml?cnt=455

getAvailableDurations

URL: http://api.icstrvl.ru/tour-api/getAvailableDurations.xml
список возможных продолжительностей туров
Аргументы
Название Тип Обязательный Описание
city целое число нет Город вылета [список: getDepartures]
cnt целое число да Страна [список: getCountries]
program целое число, может быть несколько нет Курортная программа [список: getPrograms]
resort целое число, может быть несколько нет Курорт [список: getResorts]
tour_type целое число нет Тип тура [список: getTourTypes]
Метод возвращает продолжительности, на которые имеются туры.
Обязательный параметр - только страна, также поиск дат может быть ограничен городом вылета, курортом, типом тура, курортной программой.
Возвращает XML типа:
<result>
<durations>
<duration>количество ночей, целое число</duration>
</durations>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getAvailableDurations.xml?cnt=455

getCatalog

URL: http://api.icstrvl.ru/tour-api/getCatalog.xml
список записей справочника
Аргументы
Название Тип Обязательный Описание
name строка да Название справочника
Метод возвращает список записей справочника.
Доступные справочники:
Возвращает XML типа:
<result>
<catalog desc="Краткое пояснение" name="Имя каталога">
<item id="Идентификатор записи">Название</item>
</catalog>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getCatalog.xml?name=RoomStatus

getCountries

URL: http://api.icstrvl.ru/tour-api/getCountries.xml
страны
Аргументы
Название Тип Обязательный Описание
city целое число нет Город вылета [список: getDepartures]
Возвращает список стран, в которые есть актуальные туры. Если передан идентификатор города вылета, то список стран ограничивается теми странами, в которые возможен вылет из данного города.
Возвращает XML типа:
<result>
<countries city="Идентификатор города вылета">
<country position="Позиция для сортировки" id="Идентификатор страны" name="Название страны"/>
</countries>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getCountries.xml?city=538625

getCurrencyRate

URL: http://api.icstrvl.ru/tour-api/getCurrencyRate.xml
курсы валют
Возвращает текущие курсы
Возвращает XML типа:
<result>
<rates date="Дата обновления курса">
<item cur2="Валюта 2" cur1="Валюта 1">Значение курса</item>
</rates>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getCurrencyRate.xml

getDepartures

URL: http://api.icstrvl.ru/tour-api/getDepartures.xml
все города вылета
Возвращает XML типа:
<result>
<cities>
<city id="Идентификатор города вылета" name="Название города вылета"/>
</cities>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getDepartures.xml

getHotelCategories

URL: http://api.icstrvl.ru/tour-api/getHotelCategories.xml
список возможных категорий отеля
Возвращает XML типа:
<result>
<categories>
<category id="Идентификатор категории отеля" name="Название категории"/>
</categories>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getHotelCategories.xml

getHotelInfo

URL: http://api.icstrvl.ru/tour-api/getHotelInfo.xml
получение информации об отеле
Аргументы
Название Тип Обязательный Описание
id целое число да Идентификатор отеля
Возвращает XML типа:
<result>
<hotel category_name="Название категории отеля, строка" name="Название отеля" resort="Идентификатор курорта" category="Количество звезд отеля, целое число">
<description>Описание отеля, CDATA</description>
<main_image image_url="URL основного изображения отеля" preview_image_url="URL основного изображения отеля, уменьшенный вариант"/>
<image position="Порядок показа изображения в списке" preview_image_url="URL дополнительного изображения отеля, уменьшенный вариант" image_url="URL дополнительного изображения отеля"/>
<.../>
<image image_url="URL дополнительного изображения отеля" preview_image_url="URL дополнительного изображения отеля, уменьшенный вариант" position="Порядок показа изображения в списке"/>
</hotel>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getHotelInfo.xml?id=817581

getHotelPrices

URL: http://api.icstrvl.ru/tour-api/getHotelPrices.xml
получение ценовых предложений по отелю
Аргументы
Название Тип Обязательный Описание
city целое число да Город вылета [список: getDepartures]
hotel целое число да Отель [список: getHotels]
duration целое число да Продолжительность тура
date дата, формат YYYY-MM-DD да Дата вылета
ad целое число да Количество взрослых
ch целое число нет Количество детей
chage целое число, может быть несколько нет Возраст детей
infant целое число нет Инфант
warranty целое число нет Только туры на гарантии, по умолчанию: 0
smpl целое число нет Если параметр установлен, то будут искаться туры только с единственным проживанием в составе
Метод возвращает все цены в отеле на указанную дату, продолжительность и проживание (количество взрослых и детей).

Ценовые предложения сгруппированы по типам комнат.

Возвращает XML типа:
<result>
<hotel cat_name="Название категории отеля" id="Идентификатор отеля" country="Идентификатор страны" currency="Название валюты страны" country_name="Название страны" resort="Идентификатор курорта" cat="Идентификатор категории отеля" name="Название отеля" resort_name="Название курорта">
<roomType name="Название типа комнаты" id="Идентификатор типа комнаты">
<tour date="Дата вылета, формат YYYY-MM-DD" id="Идентификатор тура" ticket_status_econom="Идентификатор статуса билета эконом-класса" price_rur="Стоимость пакета в рублях по курсу на день поиска" nights="Количество ночей" ch_age="Возраст детей" ad="Количество взрослых" ch="Количество детей" ticket_status_business="Идентификатор статуса билета бизнес-класса" program="Идентификатор курортной программы" can_book="Возможность бронирования тура на момент поиска: 1 - да, 0 - нет" price="Стоимость пакета в валюте страны">
<hotel_part hotel_cat="Идентификатор категории отеля" hotel_cat_name="Название категории отеля" date2="Дата окончания проживания в данном отеле" type="Тип проживания, MAIN - основное" status="Идентификатор статуса данного отеля" hotel_name="Название отеля" meal="Идентификатор типа питания в данном отеле" resort_name="Название региона" room="Название типа комнаты в отеле" duration="Количество ночей в этом отеле" meal_name="Название типа питания" date1="Дата начала проживания в данном отеле" resort="Идентификатор региона" hotel_id="Идентификатор отеля"/>
<tarif>название тарифа</tarif>
<isFlightIncluded>Включен или нет перелет, true - да, false - нет, если нет тега, то не включен</isFlightIncluded>
<isInsuranceIncluded>Включена или нет страховка, true - да, false - нет, если нет тега, то не включена</isInsuranceIncluded>
<isTransferIncluded>Включен или нет трансфер, true - да, false - нет, если нет тега, то не включен</isTransferIncluded>
<isInnerFlightIncluded>Включен или нет внутренний перелет, true - да, false - нет, если нет тега, то не включен</isInnerFlightIncluded>
<isAccommodationIncluded>Включено или нет проживание, true - да, false - нет, если нет тега, то не включено</isAccommodationIncluded>
</tour>
</roomType>
</hotel>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getHotelPrices.xml?ad=2&hotel=4704692573&city=538625&date=2024-04-29&duration=7

getHotelStatuses

URL: http://api.icstrvl.ru/tour-api/getHotelStatuses.xml
список статусов проживания
Возвращает XML типа:
<result>
<hotel_statuses>
<hotel_status id="Идентификатор статуса" can_book="Возможность бронирования тура с таким статусом, 1 - можно, 0 - нет" name="Название статуса"/>
</hotel_statuses>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getHotelStatuses.xml

getHotels

URL: http://api.icstrvl.ru/tour-api/getHotels.xml
список отелей
Аргументы
Название Тип Обязательный Описание
city целое число нет Город вылета [список: getDepartures]
cnt целое число да Страна [список: getCountries]
program целое число, может быть несколько нет Курортная программа [список: getPrograms]
resort целое число, может быть несколько нет Курорт [список: getResorts]
tour_type целое число нет Тип тура [список: getTourTypes]
category целое число нет Категория отеля [список: getHotelCategories]
Возвращает XML типа:
<result>
<hotels>
<hotel category="Количество звезд отеля, целое число" resort="Идентификатор курорта" category_name="Название категории отеля, строка" name="Название отеля" id="Идентификатор отеля"/>
</hotels>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getHotels.xml?cnt=455

getMealBasis

URL: http://api.icstrvl.ru/tour-api/getMealBasis.xml
список типов питания
Аргументы
Название Тип Обязательный Описание
cnt целое число нет Страна [список: getCountries]
Возвращает все возможные типы питания, но если передан необязательный параметр cnt (страна), то будут возвращены только те типы питания, которые доступны в данной стране.
Возвращает XML типа:
<result>
<meals>
<meal parent="Идентификатор типа питания, подтипом которого является данное питание, показывается только если указан параметр cnt" name="Название типа питания" id="Идентификатор типа питания"/>
</meals>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getMealBasis.xml

getMeals

URL: http://api.icstrvl.ru/tour-api/getMeals.xml
список всех типов питания
Аргументы
Название Тип Обязательный Описание
cnt целое число нет Страна [список: getCountries]
Возвращает все возможные типы питания. доступны в данной стране.
Возвращает XML типа:
<result>
<meals>
<meal name="Название типа питания" id="Идентификатор типа питания"/>
</meals>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getMeals.xml

getMinHotelPrices

URL: http://api.icstrvl.ru/tour-api/getMinHotelPrices.xml
получение минимальных цен на отели страны
Аргументы
Название Тип Обязательный Описание
city целое число да Город вылета [список: getDepartures]
cnt целое число да Страна [список: getCountries]
duration целое число да Продолжительность тура
date дата, формат YYYY-MM-DD да Дата вылета
ad целое число да Количество взрослых
ch целое число нет Количество детей
resort целое число, может быть несколько нет Курорт [список: getResorts]
hotel целое число, может быть несколько нет Отель [список: getHotels]
chage целое число, может быть несколько нет Возраст детей
infant целое число нет Инфант
warranty целое число нет Только туры на гарантии, по умолчанию: 0
smpl целое число нет Если параметр установлен, то будут искаться туры только с единственным проживанием в составе
Метод позволяет получить минимальные цены на все отели страны по всем имеющимся питаниям на определенную дату вылета, продолжительность и проживание (количество взрослых и детей).

Ценовые предложения сгруппированны по отелям.

Возвращает XML типа:
<result>
<hotels currency="Название валюты страны">
<hotel cat_name="Название категории отеля" resort="Идентификатор курорта" name="Название отеля" cat="Идентификатор категории отеля" id="Идентификатор отеля">
<tour ticket_status_econom="Идентификатор статуса билета эконом-класса" price_rur="Стоимость пакета в рублях по курсу на день поиска" id="Идентификатор тура" date="Дата вылета, формат YYYY-MM-DD" nights="Количество ночей" ch_age="Возраст детей" infant="Количество инфантов" ad="Количество взрослых" ticket_status_business="Идентификатор статуса билета бизнес-класса" program="Идентификатор курортной программы" ch="Количество детей" can_book="Возможность бронирования тура на момент поиска: 1 - да, 0 - нет" price="Стоимость пакета в валюте страны">
<hotel_part duration="Количество ночей в этом отеле" meal_name="Название типа питания" resort_name="Название региона" room="Название типа комнаты в отеле" meal="Идентификатор типа питания в данном отеле" hotel_id="Идентификатор отеля" resort="Идентификатор региона" date1="Дата начала проживания в данном отеле" hotel_cat_name="Название категории отеля" date2="Дата окончания проживания в данном отеле" hotel_cat="Идентификатор категории отеля" hotel_name="Название отеля" status="Идентификатор статуса данного отеля" type="Тип проживания, MAIN - основное"/>
<tarif>название тарифа</tarif>
<isFlightIncluded>Включен или нет перелет, true - да, false - нет, если нет тега, то не включен</isFlightIncluded>
<isInsuranceIncluded>Включена или нет страховка, true - да, false - нет, если нет тега, то не включена</isInsuranceIncluded>
<isTransferIncluded>Включен или нет трансфер, true - да, false - нет, если нет тега, то не включен</isTransferIncluded>
<isInnerFlightIncluded>Включен или нет внутренний перелет, true - да, false - нет, если нет тега, то не включен</isInnerFlightIncluded>
<isAccommodationIncluded>Включено или нет проживание, true - да, false - нет, если нет тега, то не включено</isAccommodationIncluded>
</tour>
</hotel>
</hotels>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getMinHotelPrices.xml?ad=2&cnt=455&city=538625&date=2024-04-29&duration=7

getOrderDocument

URL: http://api.icstrvl.ru/tour-api/getOrderDocument.xml
скачать документ по заявке
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
id целое число да Идентификатор документа, полученный из метода getOrderInfo

getOrderInfo

URL: http://api.icstrvl.ru/tour-api/getOrderInfo.xml
получить информацию по заявке
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
id целое число да Идентификатор заявки, полученный из метода getOrdersList
Метод возвращает информацию по заявке. Требуется авторизация.
Возвращает XML типа:
<result>
<agency>Строка - Название агентства</agency>
<order id="Идентификатор заявки">
<dates begin="Дата начала тура" book="Дата бронирования" end="Дата окончания тура"/>
<clients>
<client id="Идентификатор клиента">
<name>Имя клиента</name>
<birth_date>Дата рождения</birth_date>
<gender>Пол клиента</gender>
<passport begin="Дата начала паспорта" end="Дата окончания паспорта">Номер паспорта</passport>
<citizenship id="Идентификатор">Назавание гражданства</citizenship>
<visa_status id="Идентификатор из справочника VisaStatus">Название статуса визы</visa_status>
</client>
</clients>
<content>
<part date_end="Дата окончания" status_id="Идентификатор статуса" date_begin="Дата начала" clinet="Идентификатор клиента" type="Название типа части тура" description="Описание" status="Название статуса"/>
</content>
<status status="статус заявки в целом">
<room id="Идентификатор из справочника RoomStatus">Название статуса комнаты</room>
<ticket part="ID части тура" id="Идентификатор из справочника TicketStatus">Название статуса билета</ticket>
</status>
<payment currency="название валюты">
<to_pay>Стоимость тура</to_pay>
<paid>Оплачено</paid>
<packet_price>Полная стоимость пакета</packet_price>
<pay_untill>заплатить до</pay_untill>
<surcharges_amount>сумма доплат</surcharges_amount>
<invoice>ссылка на скачивание счета</invoice>
</payment>
<documents status="Статус документов">
<document uploaded="Время последней выгрузки файла, если отсутствует, то либо не загружалось, либо документ обновлен" client="Идентификатор клиента, если документ привязан к конкретному туристу" type="Название типа документа" type_id="Идентификатор типа документа, справочник: DocumentType" size="Размер в байтах" id="Идентификатор файла"/>
</documents>
</order>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getOrderInfo.xml?aid=SESSION_ID&id=ORDER_ID
document.status - возможные значения: status.status - возможные значения: NB! Для некоторых заявок тег, описывающий услугу в составе тура - content.part, может иметь, в зависимости от типа услуг, дополнительные атрибуты.

Перелет: Страховка: Трансфер: Проживание
Добавляются теги:

getOrderMessages

URL: http://api.icstrvl.ru/tour-api/getOrderMessages.xml
получить переписку по заявке
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
id целое число да Идентификатор заявки, полученный из метода getOrdersList
Метод возвращает переписку по заявке. Требуется авторизация.
Возвращает XML типа:
<result>
<agency>Строка - Название агентства</agency>
<messages order="Идентификатор заявки">
<message date="Дата отправки сообщения" id="Идентификатор сообщения" sender="Тип отправителя: manager - менеджер туроператора, agency - менеджер агентства" manager_name="Имя менеджера туроператора, если sender=manager">Текст сообщения</message>
</messages>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getOrderMessages.xml?aid=SESSION_ID&id=ORDER_ID

getOrdersList

URL: http://api.icstrvl.ru/tour-api/getOrdersList.xml
получить список заявок для агентства
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
creationDateFrom дата, формат YYYY-MM-DD нет Дата создания заявки, начало интервала поиска
creationDateTo дата, формат YYYY-MM-DD нет Дата создания заявки, окончание интервала поиска
startDateFrom дата, формат YYYY-MM-DD нет Дата начала действия заявки, начало интервала поиска
startDateTo дата, формат YYYY-MM-DD нет Дата начала действия заявки, окончание интервала поиска
cnt целое число нет Страна заявки [список: getCountries]
Метод возвращает список заявок агентства. Если не указан ни один из необязательных параметров, то будут возвращены 30 заявок, последних по дате бронирования.
Возвращает XML типа:
<result>
<agency>Строка - Название агентства</agency>
<INN>Строка - ИНН агентства</INN>
<orders count="Количество найденных заявок">
<order persons="Количество туристов в заявке" title="Название заявки, как оно выводится в личном кабинете" updated="Время последнего изменения" cnt="Идентификатор страны" nights="Количество ночей в заявке" begin="Дата начала действия заявки" id="Идентификатор заявки" bookdate="Дата бронирования" end="Дата окончания действия заявки"/>
</orders>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getOrdersList.xml?aid=SESSION_ID

getPricesByHotel

URL: http://api.icstrvl.ru/tour-api/getPricesByHotel.xml
поиск минимальных цен в отелях
Аргументы
Название Тип Обязательный Описание
city целое число да Город вылета [список: getDepartures]
cnt целое число да Страна [список: getCountries]
program целое число, может быть несколько нет Курортная программа [список: getPrograms]
resort целое число, может быть несколько нет Курорт [список: getResorts]
hotel целое число, может быть несколько нет Отель [список: getHotels]
tour_type целое число нет Тип тура [список: getTourTypes]
category целое число, может быть несколько нет Категория отеля [список: getHotelCategories]
meal целое число, может быть несколько нет Тип питания [список: getMealBasis]
duration целое число, может быть несколько нет Продолжительность тура
duration_from целое число, может быть несколько нет Задает нижнюю границу продолжительности тура. Отменяет действие параметра duration
duration_to целое число, может быть несколько нет Задает верхнюю границу продолжительности тура. Отменяет действие параметра duration
date1 дата, формат YYYY-MM-DD да Диапазон поиска туров: дата начала
date2 дата, формат YYYY-MM-DD да Диапазон поиска туров: дата окончания
ad целое число да Количество взрослых
ch целое число нет Количество детей
chage целое число, может быть несколько нет Возраст детей
infant целое число нет Инфант: 0 есть, 1 - нет
max_price целое число нет Максимальная цена тура
cur целое число нет Используется только вместе с параметром max_price. Указывает в какой валюте задана максимальная цена тура: 0 - рубли, 1 - валюта страны
warranty целое число нет Если указан, то ищутся только туры с отелями на гарантии и с доступными билетами
smpl целое число нет Если параметр установлен, то будут искаться туры только с единственным проживанием в составе
ground целое число нет Если параметр установлен, то будут искаться туры без перелета (наземное обслуживание), иначе ищутся туры только с перелетом в составе
Возвращает XML типа:
<result>
<hotels country_name="Название страны" currency="Название валюты страны" country_id="Идентификатор страны">
<hotel cat="Название категории отеля" cat_num="Категория отеля" id="Идентификатор отеля" name="Название отеля">
<resort id="Идентификатор курорта">Название курота</resort>
<boardings>
<board id="Идентификатор питания" name="Название питания">
<price duration="Продолжительность" date="Дата">
<min book_id="Идентификатор тура" program="Идентификатор программы тура" room_name="Название комнаты" price="Минимальная стоимость" room="Идентификатор комнаты" ticket_type="Тип билета: gds - динамический билет из GDS, gnd - наземное обслуживание, blk - блочный билет." is_nrf="Является ли тур невозвратным" spo="Идентификатор СПО" room_status="Идентификатор статуса проживания" nights="Количество ночей в отеле" tarif="Название тарифа"/>
<max price="Максимальная стоимость" room="Идентификатор комнаты" program="Идентификатор программы тура" book_id="Идентификатор тура" room_name="Название комнаты" spo="Идентификатор СПО" is_nrf="Является ли тур невозвратным" ticket_type="Тип билета: gds - динамический билет из GDS, gnd - наземное обслуживание, blk - блочный билет." nights="Количество ночей в отеле" room_status="Идентификатор статуса проживания" tarif="Название тарифа"/>
</price>
</board>
</boardings>
</hotel>
</hotels>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getPricesByHotel.xml?ad=2&cnt=816799&page=1&pagesize=50&duration=7&city=538625&date1=2024-06-26&date2=2024-06-29

getPrograms

URL: http://api.icstrvl.ru/tour-api/getPrograms.xml
список всех курортных программ
Аргументы
Название Тип Обязательный Описание
cnt целое число нет Страна [список: getCountries]
city целое число нет Город вылета [список: getDepartures]
tour_type целое число нет Тип тура [список: getTourTypes]
Возвращает XML типа:
<result>
<programs>
<program name="Название программы" id="Идентификатор программы" country="Идентификатор страны"/>
</programs>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getPrograms.xml?cnt=455

getResorts

URL: http://api.icstrvl.ru/tour-api/getResorts.xml
список всех курортов страны
Аргументы
Название Тип Обязательный Описание
city целое число нет Город вылета [список: getDepartures]
cnt целое число нет Страна [список: getCountries]
program целое число, может быть несколько нет Курортная программа [список: getPrograms]
tour_type целое число нет Тип тура [список: getTourTypes]
Возвращает XML типа:
<result>
<resorts>
<resort id="Идентификатор курорта" country="Идентификатор страны" name="Название курорта"/>
</resorts>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getResorts.xml?cnt=455

getSPOList

URL: http://api.icstrvl.ru/tour-api/getSPOList.xml
информация об актуальных СПО
Аргументы
Название Тип Обязательный Описание
city целое число нет Город вылета [список: getDepartures]
cnt целое число нет Страна [список: getCountries]
program целое число нет Программа [список: getPrograms]
Возвращает XML типа:
<result>
<spos>
<spo city="Идентификатор города вылета" last-modified="Дата последнего изменения, формат YYYY-MM-DD HH:MM:SS" country="Идентификатор страны" program="Идентификатор курортной программы" id="Идентификатор СПО" num="Название СПО">
<dates>
<date>Дата вылета, формат YYYY-MM-DD</date>
</dates>
<links>
<html>Ссылка на СПО в формате HTML</html>
<tourml>Ссылка на СПО в формате TourML</tourml>
</links>
</spo>
</spos>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getSPOList.xml?cnt=455

getSPOPartTypes

URL: http://api.icstrvl.ru/tour-api/getSPOPartTypes.xml
список типов частей тура
Возвращает XML типа:
<result>
<spo_part_types>
<spo_part_type id="Идентификатор типа" name="Название типа"/>
</spo_part_types>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getSPOPartTypes.xml

getTicketStatuses

URL: http://api.icstrvl.ru/tour-api/getTicketStatuses.xml
список статусов билетов
Возвращает XML типа:
<result>
<ticket_statuses>
<ticket_status name="Название статуса" id="Идентификатор статуса" persons="Максимальное количество людей в туре, которое если не указано, то не ограничено"/>
</ticket_statuses>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getTicketStatuses.xml

getTourInfo

URL: http://api.icstrvl.ru/tour-api/getTourInfo.xml
информация о составе тура
Аргументы
Название Тип Обязательный Описание
tour_id строка да Id тура [список: getTours]
Возвращает XML типа:
<result>
<tour can_book="Возможность бронирования: 1 - да, 0 - нет" id="Идентификатор тура" date="Дата вылета, формат YYYY-MM-DD" city="Город вылета" currency="Название валюты">
<accomodation>
<name>Название размещения</name>
<adults n="Количество взрослых в туре"/>
<kids age="Возраст ребенка, например, '2-11'" n="Количество взрослых в туре"/>
</accomodation>
<flight infant_price="Сумма доплаты за инфанта" flight="Название рейса" ticket="Статус билета" ticket_name="Название статуса билета" flight_to="Идентификатор прямого рейса" type="Тип рейса: gds - динамический из GDS, blk - блочный." class="Класс перелета" flight_back="Идентификатор обратного рейса">
<schedule baggage_places="Количество мест оплаченного багажа (если есть информация), если значение равно 0, то багаж за доп плату" ap2="Название аэропорта прилета" baggage_weight="Вес оплаченного багажа (если есть информация)" oper_company="Название авиакомпании, которая выполняет рейс" oper_flight="Рейс компании, которая выполняет рейс" flight="Идентификатор рейса" time1="Время вылета" date2="Дата прибытия" time2="Время прилета" ap1="Название аэропорта вылета" oper_company_iata="IATA код авиакомпании, которая выполняет рейс" company="Название авиакомпании" ap1_iata="IATA код аэропорта вылета" next_flight="Идентификатор стыковочного рейса" fake_id="Если присутствует, означает что flight содержит несуществующий идентификатор рейса" ap2_iata="IATA код аэропорта прилета" date="Дата вылета" flight_name="Название рейса">
<meal code="Код питания" description="Описание питания" description_ru="Описание питания на русском"/>
</schedule>
<option class="Класс перелета" id="Идентификатор замены рейса" flight_back="Идентификатор обратного рейса" ticket_name="Название статуса билета" flight_to="Идентификатор прямого рейса" flight="Название рейса на замену" price="Стоимость замены" ticket="Статус билета">
<schedule baggage_places="Количество мест оплаченного багажа (если есть информация), если значение равно 0, то багаж за доп плату" ap2="Название аэропорта прилета" baggage_weight="Вес оплаченного багажа (если есть информация)" oper_company="Название авиакомпании, которая выполняет рейс" oper_flight="Рейс компании, которая выполняет рейс" flight="Идентификатор рейса" time1="Время вылета" date2="Дата прибытия" time2="Время прилета" ap1="Название аэропорта вылета" oper_company_iata="IATA код авиакомпании, которая выполняет рейс" company="Название авиакомпании" ap1_iata="IATA код аэропорта вылета" next_flight="Идентификатор стыковочного рейса" fake_id="Если присутствует, означает что flight содержит несуществующий идентификатор рейса" ap2_iata="IATA код аэропорта прилета" date="Дата вылета" flight_name="Название рейса">
<meal code="Код питания" description="Описание питания" description_ru="Описание питания на русском"/>
</schedule>
</option>
</flight>
<price_info>
<price currency="Название валюты">Базовая стоимость пакета без доплат</price>
<tarif>Название тарифа</tarif>
<type>Тип тарифа. NOR - обычный тариф, NRF - невозвратный тариф</type>
</price_info>
<content>
<part date2="Дата окончания оказания услуги" coverage="Покрытие, только для страховки" id="Идентификатор части тура" name="Название части тура" date1="Дата начала оказания услуги" type="Идентификатор типа услуги" franshise="Франшиза, только для страховки">
<option franshise="Франшиза, только для страховки" price="Стоимость замены" name="Название услуги на замену" id="Идентификатор замены" coverage="Покрытие, только для страховки"/>
<info>
<hotel status="Идентификатор статуса отеля" room="Название типа комнаты отеля" id="Идентификатор отеля"/>
<country id="Идентификатор страны"/>
<resort id="Идентификатор курорта"/>
<meal id="Идентификатор типа питания"/>
</info>
</part>
</content>
<description>Описание тура, CDATA</description>
<route>Маршрут, CDATA</route>
<surcharges>
<surcharge type="Тип доплаты: m - обязательная, o - необязательная" name="Название доплаты" price="Стоимость доплаты в валюте страны, если этот атрибут отсутствует, это означает, что стоимость нужно уточнять у менеджера" id="Идентификатор доплаты"/>
</surcharges>
<extra_services>
<extra_service date1="Дата начала оказания услуги" type="Тип услуги: m - обязательная, o - необязательная, gm - одна из услуг группы должна быть обязательно добавлена в тур (идентификатор группы указан в атрибуте group)" id="Идентификатор дополнительной услуги" date2="Дата окончания оказания услуги" group="Идентификатор группы доп. услуг. Если отсутствует, то дополнительная услуга не принадлежит группе." name="Название дополнительной услуги" price="Стоимость доплаты за услугу в валюте страны"/>
</extra_services>
</tour>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getTourInfo.xml?tour_id=TOUR_ID

Теги surcharges, extra_services могут отсутствовать в зависимости от наличия доплат или дополнительных услуг соответственно.

Тег info внутри тега part появляется только в том случае, если описываемая часть тура является проживанием.

Внимание! Если в тегах option, surcharge или extra_service отсутствует атрибут price, то это означает, что стоимость данной доплаты или услуги нужно уточнять у менеджера.

getTourPrice

URL: http://api.icstrvl.ru/tour-api/getTourPrice.xml
определение окончательной стоимости тура без бронирования
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
tour_id строка да Id тура [список: getTours]
data строка в формате JSON нет Данные для бронирования
infant целое число нет Присутствует ли инфант в заявке
Метод позволяет получить стоимость тура и суммы комиссии для агентства.

Основная информация, необходимая для бронирования тура, передается в параметре data, которая представляет собой строку формата JSON. Описание формата строки аналогично описанию в методе makeOrder, за исключением того, что наличие массива clients не является обязательным.

Возвращает XML типа:
<result>
<tour id="Идентификатор тура" currency="Валюта">
<price commission_amount="Сумма комиссии" packet_price="Цена пакета" commission="Процент комиссии" total="Стоимость тура для агентства"/>
</tour>
</result>

getTourTypes

URL: http://api.icstrvl.ru/tour-api/getTourTypes.xml
список всех типов тура в зависимости от страны и города вылета
Аргументы
Название Тип Обязательный Описание
city целое число нет Город вылета [список: getDepartures]
cnt целое число нет Страна [список: getCountries]
Возвращает XML типа:
<result>
<tour_types>
<tour_type id="Идентификатор типа" name="Название типа"/>
</tour_types>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getTourTypes.xml

getTours

URL: http://api.icstrvl.ru/tour-api/getTours.xml
поиск туров
Аргументы
Название Тип Обязательный Описание
city целое число да Город вылета [список: getDepartures]
cnt целое число да Страна [список: getCountries]
program целое число, может быть несколько нет Курортная программа [список: getPrograms]
resort целое число, может быть несколько нет Курорт [список: getResorts]
hotel целое число, может быть несколько нет Отель [список: getHotels]
tour_type целое число нет Тип тура [список: getTourTypes]
category целое число, может быть несколько нет Категория отеля [список: getHotelCategories]
meal целое число, может быть несколько нет Тип питания [список: getMealBasis]
duration целое число, может быть несколько нет Продолжительность тура
duration_from целое число, может быть несколько нет Задает нижнюю границу продолжительности тура. Отменяет действие параметра duration
duration_to целое число, может быть несколько нет Задает верхнюю границу продолжительности тура. Отменяет действие параметра duration
date1 дата, формат YYYY-MM-DD да Диапазон поиска туров: дата начала
date2 дата, формат YYYY-MM-DD да Диапазон поиска туров: дата окончания
ad целое число да Количество взрослых
ch целое число нет Количество детей
chage целое число, может быть несколько нет Возраст детей
infant целое число нет Инфант: 0 есть, 1 - нет
hotel_nonstop целое число нет Если указан, то ищутся только туры с отелями не в стопе
flight_nonstop целое число нет Если указан, то ищутся только туры, у которых есть доступные билеты
max_price целое число нет Максимальная цена тура
cur целое число нет Используется только вместе с параметром max_price. Указывает в какой валюте задана максимальная цена тура: 0 - рубли, 1 - валюта страны
page целое число нет Страница поиска
pagesize целое число нет Максимальное количество туров на одной странице, по умолчанию 50, максимально 100
warranty целое число нет Если указан, то ищутся только туры с отелями на гарантии и с доступными билетами
smpl целое число нет Если параметр установлен, то будут искаться туры только с единственным проживанием в составе
ground целое число нет Если параметр установлен, то будут искаться туры без перелета (наземное обслуживание), иначе ищутся туры только с перелетом в составе
Возвращает XML типа:
<result>
<tours page="Номер страницы результатов" prev_page="Номер предыдущей страницы результатов" currency="Название валюты страны" next_page="Номер следующей страницы результатов" total="Общее количество найденных туров. Аттрибут доступен только на последней странице поиска">
<tour ticket_status_econom="Идентификатор статуса билета эконом-класса" price_rur="Стоимость пакета в рублях по курсу на день поиска" id="Идентификатор тура" date="Дата вылета, формат YYYY-MM-DD" nights="Количество ночей" infant_price_rur="Стоимость доплаты за инфанта в рублях по курсу на день поиска, если запрошена" ch_age="Возраст детей" ad="Количество взрослых" ticket_status_business="Идентификатор статуса билета бизнес-класса" ch="Количество детей" program="Идентификатор курортной программы" price="Стоимость пакета в валюте страны" can_book="Возможность бронирования тура на момент поиска: 1 - да, 0 - нет" infant_price="Стоимость доплаты за инфанта в валюте страны, если запрошена" ticket_type="Тип билета: gds - динамический билет из GDS, gnd - наземное обслуживание, blk - блочный билет.">
<hotel meal_name="Название типа питания" duration="Количество ночей в этом отеле" name="Название отеля" resort_name="Название региона" room="Название типа комнаты в отеле" cat="Идентификатор категории отеля" meal="Идентификатор типа питания в данном отеле" date1="Дата начала проживания в данном отеле" resort="Идентификатор региона" id="Идентификатор отеля" date2="Дата окончания проживания в данном отеле" cat_name="Название категории отеля" status="Идентификатор статуса данного отеля" type="Тип проживания, MAIN - основное"/>
<tarif till="Дата, до которой действует ранне бронирование" early_booking="Если присутствует, то тариф раннего бронирования">название тарифа</tarif>
<tarif_type>Тип тарифа. NOR - обычный тариф, NRF - невозвратный тариф</tarif_type>
<accommodation>
<name>Название</name>
<adults>Кол-во взрослых</adults>
<kids>Кол-во детей</kids>
<infant>Кол-во инфантов</infant>
</accommodation>
</tour>
</tours>
</result>
Пример:
URL: http://api.icstrvl.ru/tour-api/getTours.xml?ad=2&cnt=816799&page=1&pagesize=50&city=538625&date1=2024-04-27&date2=2024-05-04

makeOrder

URL: http://api.icstrvl.ru/tour-api/makeOrder.xml
бронирование заявки
Аргументы
Название Тип Обязательный Описание
aid строка да Идентификатор сессии
tour_id строка да Id тура [список: getTours]
manager строка да Менеджер агентства
payment_type целое число да Тип оплаты: 1 - наличный расчет, 2 - безналичный расчет
data строка в формате JSON да Данные для бронирования
comment строка нет Комментарии к заказу
check_only целое число нет Если передан этот параметр, то бронирование производится не будет (для отладки)
Метод позволяет бронировать туры, которые можно найти с помощью метода getTours.

Основная информация, необходимая для бронирования тура, передается в параметре data, которая представляет собой строку формата JSON.

Описание данных для бронирования, параметр data

Предположим, что TOUR - это один из тегов tour, которые возвращаются методом getTours. Тогда запись TOUR.flight.option.id будет означать, что нужно взять значение атрибута id, тега option, который является узлом тега flight, который, в свою очередь, является узлом тега tour, который мы получили в выборке метода.

   {
      "change_flight": "Идентификатор замены рейса, берется из TOUR.flight.option.id",
      "change_part": [
      #  Массив объектов, которые указывают какую замену в какой части тура  следует произвести
      #
         {
             "part_id": "Идентификатор части тура, в которой происходит замена, TOUR.content.part.id",
             "change_id": "Идентификатор замены, TOUR.content.part.option.id"
         },
         ...
      ],
      "surcharges": [ "Массив идентификаторов доплат, TOUR.surcharges.surcharge.id" ],
      "extra_charges": [ "Массив идентификаторов дополнительных услуг, TOUR.extra_services.extra_service.id" ],
      "phone": "Телефон для экстренной связи c туристами. Формат: +X(XXX)XXX-XXXX",
      "email": "E-mail адрес для экстренной связи c туристами",
      "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. Все остальные элементы могут быть пустыми или отсутствовать. Например, если при бронировании ни в одной части тура не предполагается производить замену, то массив change_part можно не указывать или передать его пустым, если замена рейса не планируется, то элемент change_flight передавать не надо, и так далее.

После того как получен ответ от метода makeOrder, запрос на бронирование тура поставлен в очередь. Его статус в очереди можно проверить с помощью метода checkBooking, передав в него полученный от системы book_id. То есть тур бронируется не сразу, а в течении некоторого времени. Идентификатор брони можно получить с помощью метода checkBooking.

Возвращает XML типа:
<result>
<booking book_id="Идентификатор номера бронирования">
<price packet_price="Цена пакета" commission_amount="Сумма комиссии" commission="Процент комиссии" total="Стоимость тура для агентства"/>
</booking>
</result>

Если передан параметр check_only, то бронирование производиться не будет. В параметре book_id будет не идентификатор бронирования, а слово tested.

Так же в случае передачи параметра check_only в тег booking будет добавлен тег test_letter, который содержит заголовок (test_letter.subject), получателя (test_letter.to) и тело (test_letter.body) письма, которое получает агентство при бронировании. Само письмо не отсылается.

Получение информации об остановках продаж

Информацию об остановках продаж в отелях можно получать с помощью XML файла, который находится по адресу:

URL: http://api.icstrvl.ru/tour-api/data/stopsales.xml

Данные обновляются не чаще, чем раз в три минуты.
Файл состоит из двух основных частей - тег references - справочник и тег data - данные об остановках.
Таким образом загрузка дополнительных справочников не требуется.
Если в каком либо теге, который описывает запись справочника, стоит атрибут fake равный true, то ID данного элемента используется только внутри этого файла.

Описание XML:
<stopsales generated="Время формирования, формат YYYY-MM-DD HH:MM:SS">
<references>
<states>
<state name="Название страны" id="Идентификатор страны"/>
</states>
<towns>
<town name="Название курорта" id="Идентификатор курорта" state="Страна, к которой относится курорт"/>
</towns>
<categories>
<category name="Название категории отеля" id="Идентификатор категории"/>
</categories>
<hotels>
<hotel id="Идентификатор отеля" name="Название отеля" town="Идентификатор курорта" category="Идентификатор категории отеля"/>
</hotels>
<rooms>
<room id="Идентификатор типа комнаты" name="Название типа комнаты"/>
</rooms>
</references>
<data>
<item dateend="Дата окончания действия остановки продажи (YYYY-MM-DD)" checkin="Всегда true" room="Идентификатор типа комнаты" datebeg="Дата начала действия остановки продажи (YYYY-MM-DD)" hotel="Идентификатор отеля"/>
</data>
</stopsales>

Получение информации о расписании и наличии билетов на рейсах

ВНИМАНИЕ!!! Данное расписание и наличие действительно только для авиабилетов, которые продаются в составе тура.
Если вас интересует описание шлюза продаж чартерных авиабилетов, то его можно найти здесь.

Информацию о рейсах можно получать с помощью XML файла, который находится по адресу:

URL: http://api.icstrvl.ru/tour-api/data/flights.xml

Данные обновляются не чаще, чем раз в двадцать минут.
Файл состоит из двух основных частей: тег references - справочник и тег data - данные об остановках.
Таким образом, загрузка дополнительных справочников не требуется.
Если в каком-либо теге, который описывает запись справочника, стоит атрибут fake, равный true, то ID данного элемента используется только внутри этого файла.

Описание XML:
<flights generated="Время формирования, формат YYYY-MM-DD HH:MM:SS">
<references>
<states>
<state name="Название страны" id="Идентификатор страны"/>
</states>
<towns>
<town id="Идентификатор курорта" name="Название курорта" state="Страна, к которой относится курорт"/>
</towns>
<ports>
<port town="Идентификатор курорта" alias="Код аэропорта" name="Название аэропорта" id="Идентификатор аэропорта"/>
</ports>
<companies>
<company id="Идентификатор авиакомпании" name="Название авиакомпании"/>
</companies>
<transports>
<transport id="Идентификатор типа транспорта" name="Название типа транспорта"/>
</transports>
<classes>
<class id="Идентификатор класса обслуживания" name="Название класса обслуживания"/>
</classes>
<flights>
<flight id="Идентификатор рейса" company="Идентификатор авиакомпании" name="Название рейса" transport="Идентификатор типа транспорта"/>
</flights>
</references>
<data>
<item class="Идентификатор класса обслуживания" date="Дата вылета, YYYY-MM-DD">
<out flight="Идентификатор прямого рейса">
<nights>
<night seats="наличие билетов на данную породолжительность тура" value="продолжительность тура"/>
</nights>
<from port="Идентификатор аэропорта вылета" time="Время вылета"/>
<to port="Идентификатор аэропорта прибытия" time="Время прибытия"/>
</out>
<back flight="Идентификатор обратного рейса">
<from time="Время вылета" port="Идентификатор аэропорта вылета"/>
<to port="Идентификатор аэропорта прибытия" time="Время прибытия"/>
</back>
</item>
</data>
</flights>

Один тег item описывает пару рейсов (прямой и обратный), дату вылета и класс обслуживания.
Тег out внутри описывает прямой рейс.
Тег back описывает обратный рейс в паре.

Не существует отдельно статуса на билет туда и статуса на билет обратно. Статус устанавливается сразу на пару рейсов (прямой и обратный) на каждую из возможных продолжительностей (3, 7, 14 ночей и тд). Теги night внутри описывают возможную продолжительность тура при вылете данными рейсами и наличие билетов при выбранной продолжительности.

Возможные значения:


Тег night присутствует в описании только прямого рейса (out)

Список изменений

Версия 1.20 06.04.2024
Версия 1.19 27.12.2022
Версия 1.18 04.10.2022
Версия 1.17 31.01.2022
Версия 1.16 03.11.2021
Версия 1.15 18.10.2021
Версия 1.14 13.10.2021
Версия 1.13 16.07.2020
Версия 1.12 06.04.2020
Версия 1.11 21.01.2020
Версия 1.10 08.08.2016
Версия 1.9 28.12.2015
Версия 1.8 28.11.2014
Версия 1.7 13.02.2014
Версия 1.6 13.12.2013
Версия 1.5 15.11.2013
Версия 1.4 28.10.2013
Версия 1.3 08.10.2013
Версия 1.2 02.10.2013
Версия 1.1 28.08.2013