Мы используем файлы cookie, чтобы подбирать для вас подходящий контент, а также дать вам возможность делиться информацией в социальных сетях. Мы передаем информацию о ваших действиях на сайте партнерам Google: социальным сетям и компаниям, занимающимся рекламой и веб-аналитикой. Условия использования описаны в нашей Политике конфиденциальности
Ок, я согласен
Close
Описание
API-протокола
3t.integration.1.1
Интеграция с третьими системами
Описание функций протокола
Содержание
Введение
Данный документ содержит функции протокола "3t.integration.1.1" (далее Протокол), предназначенных для интеграции с третьими системами.
В документа предоставлены функции, входящие в состав Протокола.

Обмен данными через протокол происходит в формате JSON.

Все функции содержат обработку ошибок и, в случае их возникновения, возвращают отрицательный код ошибки и user-friendly сообщение.

Все функции содержат валидацию передаваемых параметров и, в случае некорректной их передачи, возвращаю отрицательный код ошибки и user-friendly сообщение о параметрах функции и их типах.

Набор входных и исходящих параметров может меняться. Все параметры, которые уже описаны в протоколе - останутся, но возможно добавление новых параметров.

1
Авторизация
BASE_DOMAIN во всех ссылках подставляется как домен тестового или реального продакшн сервера, домен тестового сервера terma-test.cloud-research.one, домен реального сервера terma-travel.com

Обращение к функции авторизации:
https://BASE_DOMAIN/api/sign/in
Функция принимает параметры:
login — логин пользователя
pass — пароль пользователя

https://BASE_DOMAIN/api/sign/in?login=login&pass=password

В ответе будет cookie с ID сессии который нужно передавать в следующих запросах.
Логин делается один раз, пока какая-то из функций API не вернет ошибку ret: -900100, которая говорит о том, что произошла ошибка проверки авторизации и нужно сделать /sign/in повторно.

Данные, полученные пользователем после успешной авторизации используются при дальнейшей работе с Протоколом.

При успешной авторизации сервер возвращает данные пользователя в системе. Для дальнейшей работы с Протоколом необходимо использовать параметр base_url. Этот параметр используется при обращении к функциям Протокола, требующими авторизации.
Пример возвращаемого результата:
{
"ret":1,
"user":{"id":6200,"login":"galina_m","access_type":1,"api_access_type":0,"api_access_tags":["in.r"],"profile":null,"partner":{"id":571,"type":3,"name":"NEVA","is_debtstop":false}},
"base_url":"/6200/",
"logged_in":"2013-02-21T23:21:56+01:00"
}

2
Получение справочников
Для получения списков всех необходимых для дальнейшей работы справочников используется функция:
https://BASE_DOMAIN/api/1000/integration/init
где 1000 — base_url, получаемый из функции авторизации

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

Вызывать данную функцию нужно НЕ ЧАЩЕ чем один раз в день, т.к. содержит большой объем возвращаемой информации которая НЕ ОБНОВЛЯЕТСЯ в течение 1 дня.

Например:
Вызываем функцию первый раз 15 августа 2012 года в 10:30:00 утра.
При последующих вызовах функции в этот же день в объектах last и last_at будут содержаться данные:
last: 12345678
last_at: "2012-08-15T10:30:00"

Описание параметров см. ниже, в пункте 2.2.

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

2.2
Список возвращаемых объектов
Каждый объект справочника (кроме ret, partnet, last, last_at) представляет собой массив, первый элемент которого содержит имена возвращаемых полей данных.

ret — служебный параметр, содержащий в себе код возвращаемого результата. Будет полезен в случае возникновения ошибки при отрабатывании функции.

partner — id партнера в базе данных.
last — id последнего обновления.

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

last_at — дата последнего обновления.

countries:
id — id страны
name — название страны

regions
:
id — id региона
name — название региона
country — id страны, к которой относится регион (из объекта countries)

cities
:
id — id города
name — название города
region — id региона, к которому относится город (из объекта regions)
place_type — id типа города (из объекта place_types)

place_types
:
id — id типа города
name — тип города (Unknown, Hotel, Airport, Rail Station)

hotel_categories
:
id — id категории отеля
name — название категории отеля

hotels
:
id — id отеля
name — название отеля
city — id города (из объекта cities)
category — id категории отеля (из объекта hotel_categories)

rooms
— типы номеров:
id — id типа номера
name — название типа номера

accomodations
— типы размещений в номерах:
id — id типа размещения
name — название типа размещения

meals
— типы питания:
id — id типа питания
name — название типа питания

service_types
— типы предоставляемых сервисов:
id — id типа сервиса
name — название типа сервиса

services
— список предоставляемых сервисов:
id — id сервиса
name — название сервиса
type — id типа сервиса (из объекта service_types)

flights
— список рейсов:
id — id рейса
name — название рейса
transport_company - id транспортной компании
transport_type - id типа транспорта
src_city - город отправления (вылета)
src_port - точка отправления (терминал, вокзал и т.п.)
src_time - время отправления (вылета)
dst_city - город прибытия (прилёта)
dst_port - точка прибытия (терминал, вокзал и т.п.)
dst_time - время прибытия (прилёта)
return_id - ID обратного рейса
is_return - является ли данный рейс обратным

spos
— список СПО:
id — id СПО
number — номер СПО
name — название СПО
issue_date — дата добавления СПО
valid_from — дата, с которой действует СПО
valid_days — количество дней, в течение которых действует СПО

tours
— список туров
id — id тура
name — название тура

transfers
- список трансферов
id - id трансфера
is_individual - трансфер индивидуальны / групповой
is_one_way - трансфер ONE / TWO WAY

transport_types
:
id - id типа транспорта
short_name - короткое название типа транспорта
name - название транспорта

transport_companies
:
id - id транспортной компании
name - название транспортной компании

ports
:
id - id порта
city - город порта
short_name - короткое название порта
name - название порта

hotels_options
- это хэш-объект, ключи которого представляют собой ID отеля (hotel_id). Каждое значение тоже является хэш-объектом, имеющим следующую структуру:
1. procedures - представляет собой массив, первый элемент которого содержит заголовок с именами столбцов возвращаемых данных.
Данный массив возвращает информацию по количеству процедур для каждого типа питания:
meal - ID типа питания
procedures - количество процедур предоставляемых отелем в рамках данного типа питания
nights_min - минимальное количество ночей в туре, при котором можно забронировать данный тип питания
examinations - количество осмотров врача для данного типа питания

2. cancelation_fees - представляет собой массив, первый элемент которого содержит заголовок с именами столбцов возвращаемых данных.
Данный массив возвращает информацию по условиям отмены
days - количество дней, которое означает за сколько дней до заезда будут наложены штрафные санкции.
fee_percents - процент от стоимости заявки, который должен быть оплачен при отмене заявки за определенное количество дней, значение 0.2 означает 20%.

3. notes - текстовая строка, возвращает дополнительную информацию по отелю

Параметр LAST должен сохраняться в вашей системе для того, чтобы периодически забирать обновления с момента их последнего получения.
Пример возвращаемого результата:
{
"ret":14,
"partner":571,
"last":51069100,
"last_at":"2013-02-21T09:54:46",
"countries":[["id","name"],[54,"POLAND"],[94,"CZECH REPUBLIC"]],
"region":[["id","name","country"],[14,"POLAND",54],[71,"ANKARA",48]],
"place_types":[["id","name"],[0,"Unknown"],[1,"Hotel"],[2,"Airport"],[3,"Rail Station"]],
"cities":[["id","name","region",”place_type"],[301,"FRANTISKOVY LAZNE-HOTEL",141,1],[302,"PODEBRADY-HOTEL",125,1]],
"hotel_categories":[["id","name"],[11,"3*"],[12,"2*"]],
"hotels":[["id","name","city","category"],[1458,"BRISTOL - LIVIA",332,13],[1461,"BRISTOL - PALACE",332,14]],
"rooms":[["id","name"],[713,"APARTMENT - 1-2 Pax"],[41,"SUITE"]],
"accommodations":[["id","name"],[3,"1 ADL"],[2065,"1 ADL  + 1 CHD ( 0-14 )"]],
"meals":[["id","name"],[22,"BB"],[122,"BB ( 1-3 nights )"]],
"service_types":[["id","name"],[1,"TRANSFER"],[2,"EXCURSION"]],
"services":[["id","name","type"],[1981,"FREE-EXCURSION MARIANSKE LAZNE",2],[2057,"GROUP EXCURSION - PRAGUE CITY",2]],
“transfers”: [["id","is_individual","is_one_way"],[2109,1,1],[2110,0,1]]
"flights":[["id","name","transport_company","transport_type","src_city","src_port","src_time","dst_city", "dst_port", "dst_time","return_id","is_return"],[852,"OK909 / SU3308",391,185,17,551,null,340,1,null,853,0]]
“transport_types”: [["id","short_name","name"],[29,"","IL-86"],[30,null,"Airplane"]]
“transport_companies”: [["id","name"],[391,"CSA"],[392,"AEROFLOT"]]
“ports”: [["id","city","short_name","name"],[548,299,"KVA","LETISTE "],[549,338,"T1","TERMINAL 1"]]
"spos":[["id","number","name","issue_date","valid_from","valid_days"],[6508,4492,"Kempinski Praha / 21.11.11 –31.03.2013","2011-11-21","2011-11-21",497],[6586,4558,"Bohemia ML 2012 / 16.04.12 – 15.04.13","2011-06-08","2011-12-01",512]],
"tours":[["id","name"],[106,"SPA"],[109,"PRAHA "]]
"hotels_options":{"1458":{"procedures":[["meal","procedures"],[23,0],[21,0],[22,0],[58,17],[57,17],[56,17]],"cancellation_fees":[["days","fee_percents"],[28,0.1],[15,0.2],[6,0.3],[2,0.5]],"notes":"Stay with treatment only from 7 nights.}, "1461":{"procedures":[["meal","procedures"],[23,0],[21,0],[22,0],[58,17],[57,17],[56,17]],"cancellation_fees":[["days","fee_percents"],[28,0.1],[15,0.2],[6,0.3],[2,0.5]],"notes":"Stay with treatment only from 7 nights.\n15 - 17 spa procedures per week."}
}

3
Получение обновлений
Данная функция позволяет получать все изменения к справочникам, полученным через функцию init (см.пункт 2)

Для получения обновлений используется функция:
https://BASE_DOMAIN/api/1000/integration/updates
где 1000 — base_url, получаемый из функции авторизации
Функция принимает параметр last — id последней обновленной записи.
Параметр можно передавать двумя способами:
https://BASE_DOMAIN/api/1000/integration/updates/00000000
или
https://BASE_DOMAIN/api/1000/integration/updates?last=00000000
Параметр last является не обязательным.
Если не указать параметр, функция вернет все обновления из базы данных с момента создания первой записи.

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

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

last: значение, переданное как параметр функции получения апдейтов

last_at:null
пустые значения объектов справочников

Пример использования.
При вызове функции без параметра last:
https://BASE_DOMAIN/api/1000/integration/updates
возвращаются значения объектов:
last: 29441954
last_at: "2010-11-09T13:52:31"
это означает что id последней записи — 29441954, обновленной 9 ноября 2011 года в 13:52:31. Из этих объектов видно, что это не последнее обновление и нам следует еще раз вызвать функцию получения апдейтов с установленным параметром last:

https://BASE_DOMAIN/api/1000/integration/updates/29441954
Функция возвращает значения объектов:
last: 38153081
last_at: "2010-10-30T15:22:02"
Из этих объектов мы опять же видим, что еще не получили последнее обновление и еще раз нужно повторить вызов функции получения апдейтов со значением параметра last — 38153081.

Вызов функции стоит повторять до тех пор, пока она не вернет параметры: last — аналогичный переданному при вызове функции, last_at со значением равным null и пустыми справочниками.

Например при вызове функции
https://BASE_DOMAIN/api/1000/integration/updates/99999999
если все обновления уже были получены, в результате должны быть установлены объекты:
last: 99999999
last_at: null
Справочники при этом будут пустыми.

3.2
Список возвращаемых объектов

Структура данных, возвращаемых функцией получения апдейтов, аналогична структуре данных, возвращаемой функцией получения справочников init (см.п. 2.2).

Если объекты, возвращаемые функцией получения апдейтов имеют записи с целочисленным значением id и данными, равными null, — это означает что запись с соответствующим id была удалена.

При получении таких записей важна проверка на наличие такой записи в вашей базе данных.

Функции инициализации и получения апдейтов являются, в некотором роде, взаимозаменяемыми. Т.е. можно получить все актуальные на текущий день справочники через функцию инициализации и использовать возвращенный параметр last для получения дальнейших апдейтов.

Параметр LAST должен сохраняться в вашей системе для того, чтобы периодически забирать обновления с момента их последнего получения.
Пример возвращения результата с обновленными и удаленными записями:
Из примера:

- удален регион с id 192;

- удален отель с id 2885;

- добавлено новое СПО с id 9181.

Для остальных справочников изменений с момента последнего обновления и по текущий момент не было.
{
"ret":14,
"partner":100,
"last":51064306,
"last_at":"2013-02-10T21:00:00",
"countries":[["id","name"]],
"regions":[["id","name","country"],[192,null,null]],
"cities":[["id","name","region"]],
"hotel_categories":[["id","name"]],
"hotels":[["id","name","city","category"],[2885,null,null,null]],
"rooms":[["id","name"]],
"accommodations":[["id","name"]],
"meals":[["id","name"]],
"service_types":[["id","name"]],
"services":[["id","name","type"]],
"flights":[["id","name"]],
"spos":[["id","number","name","issue_date","valid_from","valid_days"],[9181,6943,"Lindner Hotel Prague Castle (7+nights) / SPECIAL OFFER 02.04.13 - 30.04.13","2013-02-21","2013-02-20",70]]
}

4
Получение цен
Для получения цен используется функция:
https://BASE_DOMAIN/api/1000/integration/spo_prices
где 1000 — base_url, получаемый из функции авторизации
Фунцкия принимает параметр spo — id СПО, для которого хотим получить цены:
https://BASE_DOMAIN/api/1000/integration/spo_prices/0000
Параметр spo является обязательным.
Параметр spo может быть передан как обычный параметр запроса:
https://BASE_DOMAIN/api/1000/integration/spo_prices?spo=0000

4.1 Использование функции
Функция является веб-сервисом и возвращает актуальные данные на момент вызова.

Кроме самих цен, функция также возвращает данные, связанные с текущим СПО: отели, типы номеров, типы размещений и типы питания.
Например, если вернулись СПО для 5-ти отелей, 7-ми типов номеров, 9-ти размещений и 4-ех типов питания, тогда в объекте отелей будут содержаться данные для пяти отелей, в объекте типов номеров — для семи типов номеров, в объекте размещений — для девяти размещений и в объекте типов питания — для четырех типов питания.

Структура данных в объектах отелей, типов номеров, размещений и питания аналогична структуре соответствующих данных, возвращаемых функциями init и updates.

4.2
Список возвращаемых объектов
Функция возвращает следующие объекты:

ret служебный параметр, содержащий в себе код возвращаемого результата

partner id партнера

spos СПО, для которого запрашивали цены:
id — id СПО
number — номер СПО
name — название СПО
issue_date — дата добавления СПО
valid_from — дата, с которой действует СПО
valid_days — количество дней, в течение которых СПО действует

hotels список отелей, связанных с СПО:
id — id отеля
name — название отеля
city — id города (из объекта cities)
category — id категории отеля (из объекта hotel_categories)

countries:
id — id страны
name — название страны

regions:
id — id региона
name — название региона

cities:
id — id города
name — название города
region — id региона, к которому относится город (из объекта regions)
country — id страны, к которой относится регион (из объекта countries)

hotel_categories:
id — id категории отеля
name — название категории отеля

rooms — типы номеров:
id — id типа номера
name — название типа номера

accomodations типы размещений в номерах:
id — id типа размещения
name — название типа размещения

meals — типы питания:
id — id типа питания
name — название типа питания

spo_prices цены:
spo — id СПО (из объекта spo)
hotel — id отеля (из объекта hotels)
room — id типа номера (из объекта rooms)
accommodation — id типа размещения (из объекта accomodations)
meal — id типа питания (из объекта meals)
checkin_from — начальная дата чекина (заселения)
checkin_days — количество дней чекина (заселения)
order_nights_from — минимальное количество ночей
order_nights_till — максимальное количество ночей
cost — стоимость проживания в евро

tours типы туров:
id — id тура
name — название тура

tours_hotels — связи отелей с турами:
tour — id тура
hotel — id отеля

Стоимость Cost указана за ночь за номер (с учетом размещения, питания и т.д.). Пример, если в объекте spo_prices пришли данные:

[ 0000, 3627, 3, 3, 58, "2012-12-22", 25, 1, 366, 50]

в соответствии с СПО 0000 для отеля «ANGLICKY DVUR» для типа номера «SGL», размещения в номере «1 AD», типа питания «FBT» при заселении в период с "2012-12-22" по "2012-12-22 + 25 дней" на количество ночей от 1 до 366 цена за ночь будет составлять 50 евро.
Пример возвращаемого результата:
{ 

"ret":7, 

"partner":100, 

"spo":[["id","number","name","issue_date","valid_from","valid_days"],[9181,6943,"Lindner Hotel Prague Castle (7+nights) / SPECIAL OFFER 02.04.13 - 30.04.13","2013-02-21","2013-02-20",70]], 

"hotels":[["id","name","city","category"],[3578,"LINDNER HOTEL PRAGUE CASTLE",323,13]], 

"countries":[["id","name"],[94,"CZECH REPUBLIC"]], 

"regions":[["id","name"],[103,"PRAGUE REGION"]], 

"cities":[["id","name","region","country"],[323,"PRAGUE - HOTEL",103,94]], 

"hotel_categories":[["id","name"],[13,"5*"]], 

"rooms":[["id","name"],[51,"DBL - Superior"]], 

"accommodations":[["id","name"],[3,"1 ADL"],[5,"2 ADL"]], 

"meals":[["id","name"],[22,"BB"]], 

"spo_prices":[["id","spo","hotel","room","accommodation","meal","checkin_from","checkin_days","order_nights_from","order_nights_till","cost"],[12564771,9181,3578,51,2135,22,"2013-04-23",8,7,366,1000],[12564770,9181,3578,51,6,22,"2013-04-23",8,7,366,2000]], 

"tours":[["id","name"],[109,"PRAHA "]], 

"tours_hotels":[["tour","hotel"],[109,3578]] 

} 
Добавлено с 20.9.2017
free_nights - информация о бесплатных ночах в отеле
hotel - ID отеля
date_from - начиная с какой даты проживания
date_last - заканчивая какой датой проживания
free_night - какая по счету ночь бесплатная (каждая, например каждая 7-я)

пример
hotel date_from date_last free_night
1472 2017-05-01 2017-08-20 7

- для проживания в отеле DVORAK (ID 1472), в период с 1 мая 2017 по 20 августа 2017 (включительно), каждая 7-я ночь - бесплатна

discount_for_period - скидка по длительности проживания
hotel - ID отеля
date_from - начиная с какой даты проживания действует скидка
date_last - заканчивая какой датой проживания действует скидка
nights - минимальное количество ночей проживания для скидки
discount - скидка (от 0 до 1, 0.15 = 15%)

пример
hotel date_from date_last nights discount
1718 2017-05-11 2017-08-16 7 0.1428
1718 2017-05-11 2017-08-16 8 0.1250

- при проживании в отеле SAVOY WESTEND (ID 1718), в период с 11 мая 2017 по 16 августа 2017 (включительно), при бронировании от 7 ночей скидка 14.28%,при проживании от 8 ночей скидка 12.50%

если например бронируется проживание с 10 по 20 августа (10 ночей, выезд 20 августа), то ночи с 10 по 16 (7 ночей) будут посчитаны со скидкой 14.28%

если бронируется проживание с 9 по 19 августа (10 ночей, выезд 19 августа), то ночи с 9 по 16 (8 ночей) будут посчитаны со скидкой 12.50%

non_refundable_rates - безвозвратный платеж (раннее бронирование)
hotel - ID отеля date_from - начиная с какой даты заезда действует скидка date_last - заканчивая какой датой заезда действует скидка min_days_to_checkin - минимальное количество дней от сегодня (дата бронирования) до даты заезда для скидки
min_nights - минимальное количество ночей проживания для скидки discount - скидка (от 0 до 1, 0.15 = 15%)

пример
hotel date_from date_last min_days_to_checkin min_nights discount
1478 2017-07-14 2017-12-07 14 7 0.15

- для отеля OLYMPIA (ID 1478), если бронируется проживание не менее 7 ночей в период заезда с 17 июля по 7 декабря, при этом до даты заезда более 14 дней, то будет действовать скидка на всю стоимость проживания 15%

- при отмене заявки стоимость не возвращается

meals_options - дополнительные параметры и ограничения для типов питания
hotel - ID отеля
meal - ID типа питания
nights_min - минимальное количество ночей проживания
nights_max - максимальное количество ночей проживания

пример
hotel meal nights_min nights_max1674 58 14 0
- для отеля THERMAL (ID 1674), забронировать питание FBT (58) можно только при проживании от 14 ночей

5
Получение цен на сервисы
Для получения цен на сервисы используется функция:
https://BASE_DOMAIN/api2/1000/services/prices
где 1000 — base_url, получаемый из функции авторизации

5.1 Использование функции
Функция является веб-сервисом и возвращает актуальные данные на момент вызова.

Кроме самих цен, функция также возвращает данные, связанные с сервисом: города, даты, количество дней, количество детей и их возраст.

5.2
Список возвращаемых объектов
Функция возвращает следующие объекты:

ret служебный параметр, содержащий в себе код возвращаемого результата
id id цены на сервис
service - id сервиса
city_from - id города откуда сервис
city_to - id города, в который сервис
date - дата с которой действует цена
days -количество дней, когда действует цена
people_min - минимальное количество людей
people_max - максимальное количество людей
base_price - основная цена
adult_price - цена на взрослого
child_1_age_min - минимальный возраст 1 ребенка
chil_1_age_max - максимальный возраст 1 ребенка
child_1_price - цена на 1 ребенка
child_2_age_min - минимальный возраст 2 ребенка
child_2_age_max - максимальный возраст 2 ребенка
child_2_price - цена на 2 ребенка
Пример возвращаемого результата:
ret: 746,
services_prices: 
[["id","service","city_from","city_to","date","days","people_min","people_max","base_price","adult_price","child_1_age_min","child_1_age_max","child_1_price","child_2_age_min","child_2_age_max","child_2_price"],[137,2079,323,null,"2013-05-16",169,1,99,0,19,0,0,19,0,0,19]
partner: 571,
generated_at: "2013-10-10T13:32:49.426Z",
time: "2013-10-10T13:31:30.761Z"

6
Получение данных о наличии мест и стопов
Для получения цен используется функция:
https://BASE_DOMAIN/api/1000/integration/rooms_available
где 1000 — base_url, получаемый из функции авторизации
Функция принимает параметры:
hotel — id отеля
room — id типа номера
date — дата, на которую хотим получить наличие мест (без времени)
days — количество дней, на которые хотим получить данные о наличии мест

Для получения стопов используется функция:
https://BASE_DOMAIN/api2/hotels/stopsale - устаревшая
https://BASE_DOMAIN/api/1000/integration/hotels/stopsale/list

Параметры можно передавать двумя способами:
https://BASE_DOMAIN/api/1000/integration/rooms_available/0000/4/2012-09-29/1
или
https://BASE_DOMAIN/api/1000/integration/rooms_available?hotel=0000&room=4&date=2012-09-29&days=1

Для первого варианта порядок передачи параметров важен:
https://BASE_DOMAIN/api/1000/integration/rooms_available/hotel/room/date/days
Все параметры обязательны.

Для получения данных по всем типам номеров можно передать параметр room=0.

6.1 Использование функции
Функция является веб-сервисом и возвращает актуальные данные на момент вызова.

6.2
Список возвращаемых объектов
Функция возвращает следующие объекты:

ret служебный параметр, содержащий в себе код возвращаемого результата

partner id партнера

time дата и время обращения к функции

rooms_available — информация о наличии мест в отеле:
date — дата, на которую есть места
hotel — id отеля
room — id типа номера
count — количество свободных номеров данного типа
Пример возвращаемого результата:
{
"ret":3,
"partner":100,
"time":"2013-02-22T12:30:25",
"rooms_available":[["date","hotel","room","count"],["2013-04-01",1478,27,1],["2013-04-01",1478,28,3],["2013-04-02",1478,27,3],["2013-04-04",1478,27,2],["2013-04-04",1478,28,3],["2013-04-05",1478,27,1]]
}

7
Получение данных о наличии мест и стоимости для списка отелей
Для получения наличия мест и стоимости проживания используется функция:
https://BASE_DOMAIN/api/1000/integration/rooms_available_with_prices
где 1000 — base_url, получаемый из функции авторизации

Функция принимает параметры:
hotels — список id отелей через запятую
date — дата заселения (без времени)
days — количество дней (ночей) проживания
adults — количество взрослых
children — количество детей

Все параметры обязательны.

7.1 Использование функции
Пример использования функции:
https://BASE_DOMAIN/api/1000/integration/rooms_available_with_prices?hotels=1478,1718&date=2012-10-08&days=4&adults=2&children=0

Параметр hotels содержит список отелей через запятую, также может содержать id одного отеля.

7.2
Список возвращаемых объектов
Функция возвращает следующие объекты:

ret служебный параметр, содержащий в себе код возвращаемого результата

prices — информация о стоимости проживания в отелях:
hotel — id отеля
room — id типа номера
accommodation — id типа размещения
meal — id типа питания
spo — id СПО
date_from — дата, с которой действует цена
days — количество дней, которые действует цена
night_cost — стоимость проживания за ночь

rooms_available — информация о наличии мест в отелях:
hotel — id отеля
room — id типа номера
day_offset — день по счету от начальной даты
rooms_available — количество доступных номеров

tours типы туров:
id — id тура
name — название тура

tours_hotels — связи отелей с турами:
tour — id тура
hotel — id отеля

По rooms_available, например, мы хотим узнать стоимость проживания и наличие мест с 2012-10-08 на 4 дня для отеля 1718.

В массиве rooms_available для этого отеля и типа номера запись с day_offset равной 0 — это значит, что на дату 2012-10-08 доступно то количество номеров, которое содержится в rooms_available.

В записи где day_offset равен 3 — это значит, что на дату 2012-10-11 доступно то количество номеров, которое содержится в rooms_available.

Каждая запись показывает количество свободных номеров на 1 день.
Пример возвращаемого результата:
{
"ret":2,
"prices":[["hotel","room","accommodation","meal","spo","cost"],[1710,42,6,58,8053,1000],[1710,42,6,63,8053,2000.3]],
"rooms_available":[["hotel","room","day_offset","rooms_available"],[1710,288,0,1],[1710,288,1,1],[1710,288,2,1],[1710,288,3,1]],
"tours_hotels":[["tour","hotel"],[106,1710],[110,1710]
]}
Добавлено с 1.7.2017
free_nights - информация о бесплатных ночах в отеле
hotel - ID отеля
date_from - начиная с какой даты проживания
date_last - заканчивая какой датой проживания
free_night - какая по счету ночь бесплатная (каждая, например каждая 7-я)

пример
hotel date_from date_last free_night
1472 2017-05-01 2017-08-20 7

- для проживания в отеле DVORAK (ID 1472), в период с 1 мая 2017 по 20 августа 2017 (включительно), каждая 7-я ночь - бесплатна

discount_for_period - скидка по длительности проживания
hotel - ID отеля
date_from - начиная с какой даты проживания действует скидка
date_last - заканчивая какой датой проживания действует скидка
nights - минимальное количество ночей проживания для скидки
discount - скидка (от 0 до 1, 0.15 = 15%)

пример
hotel date_from date_last nights discount
1718 2017-05-11 2017-08-16 7 0.14281718 2017-05-11 2017-08-16 8 0.1250

- при проживании в отеле SAVOY WESTEND (ID 1718), в период с 11 мая 2017 по 16 августа 2017 (включительно), при бронировании от 7 ночей скидка 14.28%,при проживании от 8 ночей скидка 12.50%

если например бронируется проживание с 10 по 20 августа (10 ночей, выезд 20 августа), то ночи с 10 по 16 (7 ночей) будут посчитаны со скидкой 14.28%

если бронируется проживание с 9 по 19 августа (10 ночей, выезд 19 августа), то ночи с 9 по 16 (8 ночей) будут посчитаны со скидкой 12.50%

non_refundable_rates - безвозвратный платеж (раннее бронирование)
hotel - ID отеля
date_from - начиная с какой даты заезда действует скидка
date_last - заканчивая какой датой заезда действует скидк
min_days_to_checkin - минимальное количество дней от сегодня (дата бронирования) до даты заезда для скидки
min_nights - минимальное количество ночей проживания для скидк
discount - скидка (от 0 до 1, 0.15 = 15%)

пример
hotel date_from date_last min_days_to_checkin min_nights discount
1478 2017-07-14 2017-12-07 14 7 0.15

- для отеля OLYMPIA (ID 1478), если бронируется проживание не менее 7 ночей в период заезда с 17 июля по 7 декабря, при этом до даты заезда более 14 дней, то будет действовать скидка на всю стоимость проживания 15%
- при отмене заявки стоимость не возвращается

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

8
Расчет стоимости заявки
Для расчета стоимости заявки используется функция:
https://BASE_DOMAIN/api/1000/booking/calc
где 1000 — base_url, получаемый из функции авторизации

Функция принимает параметр строковый booking_info, содержащий json с данными по заявке:
https://BASE_DOMAIN/api/1000/booking/calc?booking_info={"v":"1.0","people":[{"id":12,"sex":"Male","name":"Ivan Ivanoff","birthday":"1970-01-01","passport":{"serie":"MK","number":112233}}],"orders":[{"type":"Hotel","hotel_id":1483,"room_id":4,"placement_id":5,"date":"2012-10-22","nights":7,"meal_id":22,"people_by_rooms":[[12]]},{"type":"Transfer","transfer_id":2111,"dates":["2012-10-22","2012-10-29"],"route":[338,332],"people":[12]}]}

8.1 Использование функции
Функция является веб-сервисом и просчитывает стоимость сформированной заявки.

Для того, чтобы просчитать стоимость заявки необходимо отправить функцию POST и передать в параметре booking_info json в формате:


{
  "v":"1.0",
  "people":[
      {
	"id":12,
	"sex":"Male",
	"name":"Ivan Ivanoff",
	"birthday":"1970-01-01",
	"passport":{"serie":"MK","number":112233}
      }
  ],
  "orders":[
    {
      "type":"Hotel",
      "hotel_id":1483,
      "room_id":4,
      "placement_id":5,
      "date":"2012-10-22",
      "nights":7,
      "meal_id":22,
      "people_by_rooms":[[12]]
    },
    {
      "type":"Transfer",
      "transfer_id":2111,
      "dates":["2012-10-22","2012-10-29"],
      "route":[338,332],
      "people":[12]
    }
  ]
 "notes": "Coments"
}
Обозначения передаваемых параметров:
v — версия, неизменяемый
people — массив туристов:
id — id туриста в вашей системе
sex — пол. Возможны варианты: Male, Female, Child
name — ФИО
birthday — дата рождения
passport — паспортные данные:
serie — серия
number — номер

orders — массив сервисов. Доступно 2 вида сервисов:
Hotel
type — название типа сервиса (Hotel**)
hotel_id — id отеля
room_id — id типа номера
placement_id — id размещения
date — дата чекина
nights — количество ночей
d — id типа питания
*people_by_rooms — размещение людей в номере (массив).

Transfer
type - название типа сервиса (Transfer**)
transfer_id — id трансфера
dates — массив дат (например для oneway будет одна дата, twoway - две)
route — масиив id городов (город отправления, город(а) назначения)
people — массив id туристов в вашей системе для конкретного трансфера

Service
type - название типа сервиса (Service**)
service_id — id сервиса
route - город отправления
service_price_id - id сервиса
dates — массив дат (первая дата — прилёт, вторая - отлёт)
people — массив id туристов в вашей системе для конкретного рейса

Notes
notes — текстовый комментарий ко всей заявке:

Пример:
{"route":[323],"dates":["2014-01-15","2014-01-15"],"service_id":2058,"service_price_id":7765,"type":"Service","people":[1]}]}

*Параметр people_by_rooms представляет собой двумерный массив. Например, если в заявке двухкомнатный номер, тогда этот параметр указывает на размещение людей в комнатах: [[12,13],[14]] - что означает в первой комнате 2 туриста с ID 12 и 13, во второй комнате 1 турист с ID 14.

**Названия типов сервисов должны начинаться с заглавной буквы.
Пример сервиса:
{
id: 1686405,
type: "Service",
active_status: 1,
confirmation_status: 3,
service_id: 2058,
dates:  [ "2014-01-15",
"2014-01-15" ],
people:  [1516458]}

Пример рейса:
{
	"type":"Flight",
	"flight_id":866,
	"date":"2012-10-22",
	"people":[12,203]
}
Внимание!
Перед просчетом стоимости заявки желательно проверить есть ли на желаемый период наличие мест в данном отеле с сочетаниями вариантов размещения, питания и типом номера. При некорректной передаче размещения, питания и типа номера возникает ошибка "Cannot calculate price for hotel: Hotel_name".

8.2
Список возвращаемых объектов
Функция возвращает следующие объекты:

ret служебный параметр, содержащий в себе код возвращаемого результата или код ошибки

cost — просчитаная стоимость заявки

Примеры некоторых ошибок.
Если какой-либо из название какого-либо параметра передано не правильно, тогда код ошибки будет содержать -2100 с сообщением
"Wrong structure"
и подсказкой какая структура json ожидается.

Если для отеля в параметрах для id (кроме people.id) передан несуществующий id, тогда сообщение об ошибке будет содержать сообщение
"Cannot calculate price for hotel:"
где после двоеточия может содержаться название отеля, для которого неправильно передан параметр. Если название отеля пустой, значит неправильно передан id отеля.

Если подобная ошибка вернулась для отеля, тогда в первую очередь стоит проверить корректные ли данные о размещении, питании и типе номера переданы в функцию.

Если есть расхождения в цене, которая ожидалась от вернувшейся при просчете стоимости заявки, в первую очередь стоит проверить правильность переданных для трансферов данных.
"Cannot calculate price for transfer:"
где после двоеточия содержится название трансфера, для которого неправильно передан параметр. Если нет названия - неправильно передан id трансфера.

Если подобная ошибка возникла в первую очередь необходимо проверить корректные ли данные для трансфера.
Для трансферов по Праге используются трасферы (например, PRAGUE-HOTEL - PRAGUE-AIRPORT) -
GROUP ONE WAY PACKAGE,
GROUP TWO WAY PACKAGE,
NDIVIDUAL ONE WAY PACKAGE,
INDIVIDUAL TWO WAY PACKAGE.

Для трансферов по другим городам Чехии используются трансферы: GROUP ONE WAY,
GROUP TWO WAY,
INDIVIDUAL ONE WAY,
INDIVIDUAL TWO WAY.
Пример возвращаемого результата:
{
"ret":1,
"cost":198.0
}

Пример возвращаемой ошибки или предупреждения:
{
"ret":-9200,
"msg":"(26) Cannot calculate price for hotel: \"ANGLICKY DVUR\"."
}
или
{
"ret":-100,
"msg":"Error parsing JSON structure",
"data":"{\"v\":\"1.0\",\"tour\":106,\"people\":[{\"id\":1,\"sex\":\"Male\",\"name\":\"Ivanov Ivan\",\"birthday\":2013-02-01\",\"passport\":{\"serie\":null,\"number\":null}}],\"orders\":[{\"people_by_rooms\":[[1]],\"date\":\"2013-03-13\",\"nights\":3,\"hotel_id\":3627,\"room_id\":3,\"placement_id\":3,\"meal_id\":58,\"type\":\"Hotel\"}]}"
}
Пример подсчета стоимости проживания:
1. Есть СПО:
СПО 7000 - действует с 01/04/2013 - 31/03/2014.
СПО 7521 - действует с 01/07/2013 - 31/03/2014.

2. Клиент заказывает гостиницу с 15/06/13 - 05/07/13

3. Стоимость рассчитывается таким образом:

3.1. Выбираем все актуальные СПО по данному отелю.

3.2. На даты 15/06/2013 - 30/06/2013 - действует СПО 7000.

3.3. Поэтому на даты 15/06/2013 - 30/06/2013 - выбираем СПО 7000.

3.4. На даты 01/07/2013 - 05/07/2013 - действует СПО 7000 и СПО 7521.

3.5. Поэтому на даты 01/07/2013 - 05/07/2013 - выбираем СПО с большим ID, т.е СПО 7521.

3.6. Стоимость будет рассчитана таким образом:

16*167.09 [СПО 7000] + 4*156.31 [СПО 7521].
Обновление с 1.7.2017
В JSON объект параметров booking_info добавлен параметр
non_refundable - если установлен в true, то будет считаться как "раннее бронирование", безвозвратный платеж

при отмене заявки стоимость не возвращается

заявка должна быть сразу оплачена, сроки просьба уточнять у менеджеров, сейчас это 7 дней с момента бронирования

9
Отправка
заявки
Для отправки заявки используется функция:
https://BASE_DOMAIN/api/1000/booking/add
где 1000 — base_url, получаемый из функции авторизации
https://BASE_DOMAIN/api/1000/booking/add?booking_info={"v":"1.0","people":...
Функция принимает параметр строковый booking_info, который должен содержать те же данные, используемые для просчета стоимость заявки (см.пункт 8):

9.1 Использование функции
Функция просчета стоимости и отправки заявки тесно связаны.

При просчете стоимости посылаемые данные кешируются.

После просчета при вызове функции отправки заявки закешированные данные сверяются с отправляемыми и, если они не совпадают, функция вернет ошибку: "Save error". Это значит, что необходимо повторно расчитать стоимость заявки с обновленными или новыми данными и только после этого можно отправлять заявку.

Алгоритм калькуляции-сохранения является в некотором роде неделимым.

Невозможно сохранить заявку без предварительно просчета ее стоимости!

9.2
Список возвращаемых объектов
Функция возвращает следующие объекты:

ret служебный параметр, содержащий в себе код возвращаемого результата или код ошибки
booking_id — id заявки, созданной в системе Terma Travel.
Пример возвращаемого результата:
Пример возвращаемого результата:
{
"ret":1,
"booking_id":254625}
Обновление с 1.7.2017
В JSON объект параметров booking_info добавлен параметр
non_refundable - если установлен в true, то будет считаться как "раннее бронирование", безвозвратный платеж.

при отмене заявки стоимость не возвращается
заявка должна быть сразу оплачена, сроки просьба уточнять у менеджеров, сейчас это 7 дней с момента бронирования

9.3
Отправка заявки с оплатой в отеле
Для отправки заявки с оплатой в отеле используется функция:
/api/_BASE_URL_/integration/booking/pay_in_hotel/add
(_BASE_URL_ - это base_url, получаемый из функции авторизации)
с параметрами GET или POST:

  • booking_info - json обьект с параметрами бронирования, описан в п.8, в дополнение, в объекте booking_info обязательно должен быть параметр "cost", число, конечная цена для клиента при оплате в отеле
  • number - номер кредитной карты
  • month - месяц кредитной карты
  • year - год кредитной карты
  • name - имя на кредитной карте

возвращаемые параметры:
ret - должен быть 1 при успешном создании заявки
booking_id - целое число, ID созданной заявки
Пример использования:
(id отеля специально указан не верный)
/api/_BASE_URL_/integration/booking/pay_in_hotel/add?booking_info={"cost":853,"v":"1.0","people":[{"id":1,"sex":"Male","name":"Milan Frost","birthday":"1980-01-01","passport":{"serie":"","number":""}}],"orders":[{"type":"Hotel","hotel_id":0,"room_id":3,"placement_id":3,"meal_id":58,"date":"2018-03-13","nights":7,"people_by_rooms":[[1]]}]}&number=4111111111111111&month=1&year=2020&name=Milan%20Frost

10
Получение списка заявок
Для получения списка отправленных заявок используется функция:
https://BASE_DOMAIN/api/1000/bookings/list
где 1000 — base_url, получаемый из функции авторизации

Функция принимает параметры:
booking_period_from — стартовая дата создания заявки в системе Terma Travel;
booking_period_days — количество дней, на которое хотим просмотреть заявки.
Параметр booking_period_from является обязательным.
https://BASE_DOMAIN/api/1000/bookings/list?booking_period_from=2012-11-01&booking_period_days=30

10.1 Использование функции
Функция возвращает список всех актуальных заявок, созданных авторизованным партнером.

10.2
Список возвращаемых объектов
Функция возвращает следующие объекты:
ret служебный параметр, содержащий в себе код возвращаемого результата или код ошибки
bookings — список заявок, созданных в системе Terma Travel авторизованным партнером:
id — id заявки в системе Terma Travel
date — дата заезда
nights — количество ночей
Пример возвращаемого результата:
{
"ret":4,
"bookings":[["id","booking_date","start_date","nights"],[239251,"2012-11-01","2012-11-18",14],[239242,"2012-11-01","2012-11-10",21],[239094,"2012-11-01","2012-11-04",7]]}

11
Получение информации по заявке
Для информации по заявке используется функция:
https://BASE_DOMAIN/api2/1000/booking/info?id=123456
где 1000 — base_url, получаемый из функции авторизации

Функция принимает параметр 123456 — id заявки в системе Terma Travel.

11.1 Использование функции
Функция возвращает всю информацию по заявке, созданную авторизованным партнером.

11.2
Список возвращаемых объектов
v — версия, неизменяемый

booking_id id заявки в системе Terma Travel

partner_name имя партнера

user_name имя пользователя под которым залогинен партнер

tour — id тура

tour_name — название тура

payment_status — статус оплаты (см. пункт 13)

confirmation_status — статус заявки (см. пункт 13)

payment_date — дата оплаты заявки

payment_guranteed - гарантия оплаты заявки (см. пункт 5)

request_to_cancel — показывает был ли запрос на удаление заявки. Если не было запроса параметр вернет null, если был — дату, когда был отправлен запрос на удаление заявки.

modified — дата последнего обновления заявки

notes — комментарий по заявке

comments — ответ на комментарий (notes)

people — массив туристов:
id — id туриста в вашей системе
sex — пол. Возможны варианты: Male, Female, Child
name — ФИО
birthday — дата рождения
passport — паспортные данные:
serie — серия
number — номер

orders — массив сервисов.
Доступно 4 вида сервисов:

Hotel
id — id ордера
type — название типа сервиса (Hotel**)
active_status — статус сервиса
confirmation_status — статус подтверждения
hotel_id — id отеля
hotel_name — название отеля
hotel_category — категория отеля
hotel_city — город отеля
room_id — id типа номера
placement_id — id размещения
meal_id — id типа питания
date — дата чекина
nights — количество ночей
people_by_rooms — размещение людей в номере (массив)
cost — стоимость отеля
cost_explain — формула по которой просчиталась стоимость

Service
id — id ордера
type - название типа сервиса (Service**)
active_status — статус сервиса
confirmation_status — статус подтверждения
service_id — id сервиса
service_name — название сервиса
dates — массив дат (первая дата — прилёт, вторая - отлёт)
people — массив id туристов в вашей системе для конкретного сервиса
route — город отправления
cost — стоимость отеля

Flight
id — id ордера
type - название типа сервиса (Flight**)
active_status — статус сервиса
confirmation_status — статус подтверждения
flight_id — id рейса
flight_name — название рейса
dates — массив дат (первая дата — прилёт, вторая - отлёт)
people — массив id туристов в вашей системе для конкретного рейса
cost — стоимость отеля

Transfer
id — id ордера
type - название типа сервиса (Transfer**)
active_status — статус сервиса
confirmation_status — статус подтверждения
transfer_id — id трансфера
transfer_name — название трансфера
dates — массив дат (например для oneway будет одна дата, twoway - две)
route — масиив id городов (город отправления, город(а) назначения)
people — массив id туристов в вашей системе для конкретного трансфера
cost — стоимость отеля
Пример возвращаемого результата:
{
"v":2,
"booking_id":316162,
"partner_name":"NEVA",
"user_name":"galina_m",
"tour":106,
"tour_name":"SPA",
"payment_status":2,
"confirmation_status":2,
"payment_date":"2014-08-02",
"payment_guranteed":null,
"request_to_cancel":null,
"modified":"2014-06-04T09:59",
"notes":"",
"comments":"",
"people":[
{"id":1579488,"sex":"Male","name":"drth sh","birthday":"1990-01-09","passport":{"serie":"rt","number":"466456"}},
{"id":1579489,"sex":"Female","name":"sth sth","birthday":"1990-01-10","passport":{"serie":"bh","number":"46346"}}
],
"orders":[
{"id":1759272,"type":"Hotel","active_status":1,"confirmation_status":2,"hotel_id":1478,"hotel_name":"OLYMPIA KV","hotel_category":14,"hotel_city":332,"room_id":27,"placement_id":5,"meal_id":58,"date":"2014-08-04","nights":6,"people_by_rooms":{"1140453":[1579488,1579489]},"cost":1423.2,"cost_explain":"6*237.20 [N7809: Std]"},
{"id":1759273,"type":"Flight","active_status":1,"confirmation_status":3,"flight_id":856,"flight_name":"SU457","date":"2014-08-04","people":[1579488,1579489],"cost":0},
{"id":1759275,"type":"Transfer","active_status":1,"confirmation_status":3,"transfer_id":2111,"transfer_name":"GROUP TWO WAY","dates":["2014-08-04","2014-08-04"],"route":[338,332],"people":[1579488,1579489],"cost":116},
{"id":1759277,"type":"Service","active_status":1,"confirmation_status":3,"service_id":3395,"service_name":"GROUP EXCURSION-SWITZERLAND-per person in DBL room","dates":["2014-08-08","2014-08-08"],"people":[1579488,1579489],"route":[332],"cost":264},
{"id":1759274,"type":"Flight","active_status":1,"confirmation_status":3,"flight_id":859,"flight_name":"SU142","date":"2014-08-10","people":[1579488,1579489],"cost":0},{"id":1759276,"type":"Transfer","active_status":1,"confirmation_status":3,"transfer_id":3656,"transfer_name":"DE GROUP TWO WAY","dates":["2014-08-10","2014-08-10"],"route":[338,332],"people":[1579488,1579489],"cost":0}
]
,"time":"2014-06-04T13:27:16.540Z"
}

12
Редактирование заявки
Для обновления информации по заявке используется функция:
https://BASE_DOMAIN/api/1000/booking/update
где 1000 — base_url, получаемый из функции авторизации
Функция принимает параметры:
id — id заявки в системе Terma Travel
booking_info — формат данных аналогичен передаваемым в запросе на отправку заявки (см. пункт 7.1)
https://BASE_DOMAIN/api/1000/booking/update?id=241388&booking_info={"v":"1.0","people":[{"id":12,"sex":"Male","name":"Ivan Ivanoff","birthday":"1970-01-01","passport":{"serie":"MK","number":112233}}],"orders":[{"type":"Hotel","hotel_id":14...

12.1 Использование функции
Для редактирования заявки необходимо передать всю информация, не только редактируемую!
Например, если для заявки 123456 необходимо исправить только фамилию одного из туристов, в параметре booking_info необходимо передать заново всю информацию для параметров people и orders (см. пункт 7.1).
Если передать только информацию о туристе с исправленной фамилией, остальные данные по другим туристам и сервисам для данной заявки БУДУТ ПОТЕРЯНЫ.

12.2
Список возвращаемых объектов
При успешном обновлении заявки функция вернет:
ret = 1
При возникновении ошибки параметр ret вернет код ошибки и user-friendly сообщение.
Пример возвращаемого результата:
{
"ret":1,
"booking_id":254625
}

13
Отмена заявки
Для отмены заявки используется функция:
https://BASE_DOMAIN/api/1000/booking/cancel
где 1000 — base_url, получаемый из функции авторизации
Функция принимает параметры:
id — id заявки в системе Terma Travel
https://BASE_DOMAIN/api/1000/booking/cancel?id=123456

13.1 Использование функции
Заявка не удаляется из системы, меняется только ее статус.

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

13.2
Список возвращаемых объектов
При успешном обновлении заявки функция вернет:
ret = 0

При возникновении ошибки параметр ret вернет код ошибки и user-friendly сообщение.
Пример возвращаемого результата:
{
"ret":0
}

14
Функция проставления гарантии оплаты
Для того, чтобы проставить гарантию оплаты по заявке необходимо использовать функцию:
https://BASE_DOMAIN/api2/1000/booking/set_payment_guarantee
где 1000 — base_url, получаемый из функции авторизации

Функция принимает параметры:
id — id заявки в системе Terma Travel
https://BASE_DOMAIN/api/1000/booking/set_payment_guarantee?id=123456

14.1 Использование функции
Используется для установки гарантии оплаты для заявки.

14.2
Список возвращаемых объектов
ret служебный параметр, содержащий в себе код возвращаемого результата или код ошибки

booking_id — id заявки

payment_guaranteed — дата установки гарантии оплаты
Пример возвращаемого результата:
{
ret: 1,
booking_id: 276719,
payment_guaranteed: "2013-10-10T16:04:06.653Z",
time: "2013-10-10T14:02:48.041Z"
}

15
Получение списка статусов
Для получения списка статусов используется функция:
https://BASE_DOMAIN/api/1000/const/statuses

15.1 Использование функции
Используется для получения статусов по заявке и сервисам.

Список статусов достаточно получит единожды, потому что информация о статусах не меняется.

Если будет проведено какое-либо изменение в статусах все партнеры будут информированы об этом.

15.2
Список возвращаемых объектов
ret служебный параметр, содержащий в себе код возвращаемого результата или код ошибки

confirmation_statuses — список статусов заявок.

payment_statuses — список статусов оплаты.

active_statuses — список статусов сервисов.

Для каждого объекта АПИ вернет параметры id и name.
Пример возвращаемого результата:
Active - активна; Cancel penalty - отменена со штрафом; Passive - не используется; Cancelled - отменена.
{
"ret":3,
"confirmation_statuses":[["id","name"],[0,"Not confirmed"],[1,"Waiting"],[2,"Confirmed"],[3,"No answer"]],
"payment_statuses":[["id","name"],[1,"Paid"],[2,"Unpaid"],[3,"Cancelled"],[4,"Penalty"],[5,"Paid penalty"]],
"active_statuses":[["id","name"],[1,"Active"],[2,"Cancel penalty"],[3,"Passive"],[4,"Cancelled"]],
"currencies":[["id","name"],[5,"USD"],[8,"EUR"],[9,"CZK"]]
}

16
Получение списка номеров в отеле
Для получения списка номеров для отеля используется функция:
https://BASE_DOMAIN/api/1000/hotels/list_with_rooms
где 1000 — base_url, получаемый из функции авторизации

16.1 Использование функции
Фунция возвращает список номеров для отелей и дополнительно справичники по отелям и номерам.

16.2
Список возвращаемых объектов
ret служебный параметр, содержащий в себе код возвращаемого результата или код ошибки

hotels — список отелей
id
name
city – id города

rooms — список номеров
id
name

hotels_rooms — список отелей и доступных для отеля номеров
hotels_id – id отеля
room_id – id номера
Пример возвращаемого результата:
{
"ret":3,
"hotels":{"fields":["id","name","city"],"data":[[1458,"BRISTOL - LIVIA",332],[1461,"BRISTOL - PALACE",332]]},
"rooms":{"fields":["id","name"],"data":[[15,"SUITE - One Bedroom"],[6,"SUITE - Two Bedrooms"]]},
"hotels_rooms":{"fields":["hotel_id","room_id"],"data":[[1458,6],[1458,15]]}
}

17
Получение ваучера в PDF
Для получения ваучера по заявке в PDF используется функция:
https://BASE_DOMAIN/api2/1000/booking/voucher?id=XXXXXX
где 1000 — base_url, получаемый из функции авторизации,
XXXXXX - номер заявки

17.1 Использование функции
Функция возвращает ваучер в PDF

17.2
Список возвращаемых объектов
Список возвращаемых объектов
PDF - файл

18
Получение счета в PDF
Для получения ваучера по заявке в PDF используется функция:
https://BASE_DOMAIN/api2/1000/booking/invoice?id=XXXXXX
где 1000 — base_url, получаемый из функции авторизации,
XXXXXX - номер заявки

18.1 Использование функции
Функция возвращает счет в PDF

18.2
Список возвращаемых объектов
Список возвращаемых объектов
PDF - файл

19
Обработка ошибок
В случае возникновения ошибки служебный параметр ret будет иметь отрицательное значение и сообщение об ошибке:
{
"ret":-5,
"msg":"Invalid JSON structure"
}


В случае, если у вашей компании нет доступа к информации, возвращаемой функцией, функция вернет в параметре ret значение -1:
{
"ret":-1
}


20
Список изменений
15.03.2013
обновлена функция "rooms_available with prices"
23.09.2013
обновлена функция "init" (объекты: ports, transport_types, flights, transport_companies, transfers)
26.09.2013
обновлены функции:
/booking/calc
/booking/add
/booking/update
/booking/info
10.10.2013
Добавлена функция services/prices
10.10.2013
Добавлена возможность проставлять гарантию оплаты
/booking/set_payment_guarantee
Добавлено поле добавлено новое поле "payment_guranteed" в ответ на
строчка в /booking/info
10.10.2013
Добавлено параметр "hotel_name" в функции /booking/info
в блоке "orders" для записей с типом "type":"Hotel" есть поле "hotel_name"
14.10.2013
Добавлено параметры в функции
/booking/info
в блоке "orders" для записей с типом "type":"Hotel" есть поле "hotel_category", "hotel_city"
05.10.2013
Добавлена функция передачи стопов https://BASE_DOMAIN/api2/hotels/stopsale
15.11.2013
Получение ваучера в PDF (пункт 17)
19. 11.2013
Изменение параметров для функции booking/calc для Service
06.03.2014
Изменение функции
https://BASE_DOMAIN/api/1000/integration/init
Добавлена таблица "place_types".
В таблицу "cities" добавлено поле place_type (int)
16.05.2014
Добавлена функция получения счета в PDF (пункт 18)
26.08.2014
В функцию
/api/1000/integration/init?version=2 добавлен новый параметр version=2.
В данной версии таблица "accommodations" переименована на "placements"
08.04.2015
Изменение функции
https://BASE_DOMAIN/api/1000/integration/init
Добавлен объект hotels_options
1.7.2017
Внесены изменения в функцию
/integration/rooms_available_with_prices
добавлена информация о скидках
free_nights
discount_for_period
non_refundable_rates
Внесены изменения в функции
/booking/calc и /booking/add
добавлен параметр non_refundable для просчета/бронирования заявок по безвозвратному платежу (раннее бронирование)
20.9.2017
Добавлена информация по скидкам в функцию /integration/spo_prices
free_nights
discount_for_period
non_refundable_rates
meals_options
Добавлена фильтрация результатов в функции /integration/rooms_available_with_prices
в соответствии с минимальным количеством ночей проживания по питанию
30.1.2018
Добавлена функция
https://BASE_DOMAIN/api/1000/integration/hotels/stopsale/list
.
Подписка на новости

© 2019 Terma Travel Technologies
Подписка на новости

© 2019 Terma Travel Technologies
Человек, зарегестрируйтесь, пожалуйста.
Это быстро и бесплатно
и вы получите доступ к описанию протокола API 3t