Документация API к системе russhotels.ru
Адрес API серверов:
Продакт: https://russhotels.ru
Тест: https://test.api.russhotels.ru/
Документация состоит из описания бизнес-процессов и технической части
ИЗМЕНЕНИЯ 24 декабря 2021
hotel/view объявлен устаревшим. Hotel/index возвращает аналогичные данные и позволяет делать меньшее кол-во запросов при интеграции (используя offset и limit = 1000)
ИЗМЕНЕНИЯ 7 ноября 2021
Клиенты теперь могут видеть города и гостиницы респ. Беларусь (country id 15)
ИЗМЕНЕНИЯ 18 ноября 2020
В типы мест размещения добавили количество фактических спальных мест для взрослых sleeping_place
ИЗМЕНЕНИЯ 12 ноября 2020
При запросе изменений, которые произошли в заявке можно не передавать номер лога, если заявка требует подтверждение Клиента.
Для удобства отслеживания обновлений по заявкам добавлено поле last_modified, оно показывает когда последний раз обновлялась заявки или её дочерние объекты (услуги, комментарии, фин. документы и тд). Так же добавлен поисковый фильтр по этому параметру(поля start_last_modified_date и end_last_modified_date)
ИЗМЕНЕНИЯ 6 октября 2020
Модернизирован метод Поиска hotel/index. Теперь можно для фильтрации передавать массив типов размещения. Раньше можно было передавать один тип размещения. Так же добавлен фильтр на гостиницы(hotels)
ИЗМЕНЕНИЯ 2 сентября 2020
Модернизирован метод списка гостиниц
В него добавлены временные метки обновления городов, по ним так же можно производить фильтрацию. Так же добавлены координаты для гостиниц.
ИЗМЕНЕНИЯ 3 августа 2020
Модернизирован метод Создания заявки request/create-with-service
Теперь Кураторы от клиента могут указывать контактным лицом по заявке любого своего сотрудника, заполняя поля contact_name, contact_phone и contact_email.
ИЗМЕНЕНИЯ 20 июня 2020
Модернизирован метод Поиска hotel/index. Теперь в нём можно искать предложения на конкретные даты. Расширены возможности по ограничению географии (поиск по нескольким городам, поиск по координатам).
Добавлены пометки является ли предложение бронируемым Онлайн и добавлена информация по условиям отмены бронирования. На 20 июня условия прописываются во всех предложениях фиксировано и все предложения являются оффлайн : online=0
ИЗМЕНЕНИЯ 1 мая 2020
Поля price_netto_client и discount_client можно использовать для самостоятельного расчёта сумм, но необходимо иметь ввиду следующее:
- price_netto_client - полная сумма за услугу, discount_client - скидка\комиссия клиенту-агенту(не конечному гостю, а заказчику этой услуги у компании Сусанин).
- discount_client - может интерпретироваться по разному, поэтому конечным юридическим документом по-прежнему является счёт
- В случае если услуга штрафная (is_penalty = 1), то в счёте будет только сумма price_netto_client
ИЗМЕНЕНИЯ 20 января 2020
На продакшн сервере hotel/view теперь требует обязательной авторизации. Для гостя доступ закрыт
ИЗМЕНЕНИЯ 14 декабря 2019
Поля price_netto_client и discount_client объявлены устаревшими, для получения сумм необходимо использовать Счёт из выходных документовВ услуги добавлено поле is_penalty явно указывающее на наличие Штрафа
Бизнес-процессы
Для клиента бизнес процесс выглядит следующим образом:
- Поиск предложения
- Создание заявки
- Обработка заявки
- Менеджер берёт в работу заявку
- Если происходят изменения важной для клиента информации, то требуется подтверждение клиента.
- Когда происходит фактическое бронирование заявки в гостинице, тогда у заявки статус меняется на Забронирован (бронирование происходит в рамках SLA, подписанного между клиентом и компанией)
- Получение финансовых документов (счет + ваучер)
Подробнее в следующих разделах
1. Поиск необходимых предложений.
Для поиска предложений можно использовать метод hotel/index , он показывает гостиницы по определённым параметрам (фильтрация номеров в этом методе не доступна), а так же позволяет искать предложения с заданными датами.
Если клиент хочет кешировать предложения и хранить на своей стороне, то в данном методе есть параметр last_modified, который позволяет фильтровать выдачу по дате последнего обновления.
В связи со спецификой нашей работы мы приняли решение не тарифицировать заранее ранний заезд и поздний выезд, поэтому предварительный расчет будет как за полные сутки. Так же мы заранее не тарифицируем высокие сезоны. Точная цена будет сообщена только после создания бронирования через метод Создания заявки
Фотографии для гостиниц и номеров в данный момент мы не предоставляем!
2. Бронирование предложения
Для бронирования необходимо использовать метод создания. В него передаются данные по гостям, те же параметры проживания из пункта 1 и id выбранного номера из пункта 1.
3. Взаимодействие по заявке
3.1 Коммуникация
Вся коммуникация по заявке может происходить целиком через API, с помощью:
- Статусов заявки
- Комментариев клиента и ТФ Сусанин
- Email уведомлений, которые система Russhotels может отправлять на адрес, указанный как контактный e-mail
При создании заявки статус будет Новый, когда менеджер возьмёт в работу заявку, статус изменится на Принят. Когда на стороне Сусанина внесены изменения в данные клиента (финансовые, даты\время заезда\выезда, гостей) статус автоматически меняется на Изменён и заявка ожидает принятия изменений, подробнее об этом механизме будет написано далее. Когда бронирование подтверждено в гостинице, то статус будет Забронирован. При аннуляции заявки будет соответствующих статус Аннулирован. Для завершенной заявки статус будет Выполнен. Подробнее про статусы можно прочитать в разделе
3.2 Создание
При создании заявки у неё статус Новый. После создания к ней добавляется тег «Создана клиентом», чтобы явно можно без просмотра лога увидеть, что заявка создана Клиентом (тег не удаляемый). Подробнее можно прочитать в разделе тегов. Заявки так же могут создаваться менеджером компании Сусанин.
3.3 Подтверждение
Когда менеджер берёт в работу заявку, он изменяет статус на Принят.
Подтверждением заявки является статус Забронирован, он означает что заявка забронирована, набор услуг и цены подтверждены и зафиксированы.
3.4 Изменение
Как до бронирования так и после менеджер Сусанина может менять любую информацию, но при изменении данных клиента автоматически создаётся тег «Необходимо подтверждение клиента» и меняется статус на Изменён. При наличии статуса и тега менеджер Сусанина не может забронировать заявку и поменять статус.
Все действия по заявке фиксируются в логе заявки
В списке заявок вы будете видеть статус Изменен. Чтобы узнать какие изменения нужно подтвердить смотрите Экшн сводки по изменениям Если нужно детальное представление , с временными метками, пользователями, то только лог.
Если Клиент согласен с изменениями , то отправляет на экшн набор логов, с которыми согласен или просто безусловное согласие с последними изменениями (временные метки учитываются, если вдруг менеджер Сусанина в момент принятия решения внесёт какую-то правку). Так же удаляется тег о необходимости подтверждения и создаётся новый тег «Акцепт клиентом». В комментарий заявки записывается на какие изменения Клиент согласен (номера логов). В логе так же всё фиксируется. Менеджер Сусанина может перевести заявку в статус Забронирован.
Если Клиент не согласен, то на экш отправляется сообщение об отказе. Или через комментарии заявки идёт обсуждение до достижения консенсуса. Если отказ от изменений высылается на экшн, Заявка автоматически аннулируется
В случае если ответа от Клиента нет, то заявка так и продолжает висеть в статусе Изменён.
3.5 Повторные изменения
Если менеджер Сусанина вновь меняет ваши данные, то весь цикл пункта 3.4 повторяется
Почему возможны изменения в забронированной заявке? ответ: - Клиент до заезда меняет гостей, которые должны были проживать - Клиентом дозаказывается услуга, например питание. Клиентом меняется номер. - Клиент по какой-либо причине просит уменьшить размер комиссии; - Гость не заехал - Заехал раньше, а раннего заезда не было, попросил выставить на фирму ранний заезд - Выехал раньше\позже - Гость пользовался мини-баром - и тд
3.6 Документы
Документы клиенту становятся доступными, как только менеджер откроет к ним доступ (к каждой заявке) или когда у Заявки будет статус Выполнен.
Обратите внимание! Информация в финансовых документах не зафиксирована, а собирается динамически на основании текущей информации заявки.
3.7 Аннуляция
Клиент может аннулировать заявку только в статусе Новый. Если менеджер Сусанина взял заявку в работу, то аннулировать её можно только через менеджера.
3.8 Штрафы и отмена
Общие условия отмены указаны при поиске предложения: за 48 часов до заезда - без штрафа, Менее 48 часов - на усмотрение гостиницы.
Когда заявка создана, перед фактическим бронированием менеджер компании Сусанин сообщает условия отмены. Для этого могут использоваться поля дата наступления штрафных санкций, размер штрафных санкций, Примечание клиенту, если есть дополнительные условия
Формат
Отправляемые данные могут быть как в XML так и в JSON.
Чтобы отправлять данные в формате JSON должен быть установлен заголовок Content-Type: application/json
Чтобы отправлять данные в формате XML должен быть установлен заголовок Content-Type: application/xml или text/xml
Ответ по умолчанию приходит в JSON формате, чтобы получать ответ в XML укажите заголовок: Accept: application/xml
Авторизация
Адрес: /api/site/login
Метод запрос: POST
Данные:
[
"username":"admin",
"password":"111111"
]
Возвращаемые данные:
[
'token'=>'0FbEBD-Mo5EzAu9o51684F6hPk7ufCLR',
'expired'=>'2018-09-22T10:10:11+05:00'
]
Полученный токен используется при работе. Отправляется заголовком способом авторизации Bearer
JSON
POST https://russhotels.ru/api/request/index Accept: application/json Cache-Control: no-cache Content-Type: application/json; charset=utf-8 Authorization: Bearer Ciuw2qcWDXbQJIv2tYiB2IeeM9_JEoOc
XML
POST https://russhotels.ru/api/request/index Accept: application/xml Cache-Control: no-cache Content-Type: text/xml; charset=utf-8 Authorization: Bearer Ciuw2qcWDXbQJIv2tYiB2IeeM9_JEoOc
Hotel Гостиницы
Валюта / Цены
Все цены в системе указаны в Рублях РФ
Доступные отели и города / list
Описание: НЕ ТРЕБУЕТ АВТОРИЗАЦИИ. Список городов и гостиниц.
Адрес: /api/hotel/list
Метод запрос: POST\GET
Данные:
filter - GETпараметр, фильтр выдачи. Только гостиницы = 1, Только города = 2, всё = 3. По умолчанию 3.
last_modified - GET временная метка unixtime последнего обновления гостиницы\цен и тд.
Возвращаемые данные: Набор городов и\или отелей доступный пользователю для поиска. Города без разделения на тип поселения. Набор отелей без разделения на тип:гостиница,хостел, гостевой дом и тд.
Данную выдачу можно использовать для виджетов с автодополнением, у нас используется на главной странице поиска https://russhotels.ru
{
"value": "2546",//ид сущности, в данном случае города
"unic_id": "city-2546",//уникальное значение, которое можно использовать для списков
"name": "Бутурлино",//название нас. пункта
"city_country": "Российская Федерация",//страна нахождения нас. пункта
"address": "",//адрес для нас. пунктов всегда пустой
"type": "город",//тип строкой
"code_type": 202,//тип кодом
"country_id": "1",//страна кодом
"geo_lat": null,
"geo_lon": null,
"last_modified": 1599032229//Временная метка последнего обновления города(гостиниц в нём)
},
{
"value": "3",//ид гостиницы
"unic_id": "hotel-3",
"name": "Филтон",//название гостиницы
"city_country": "Тюмень",//название нас. пункта, где находится гостиница
"address": "ул. Привокзальная, д. 30",//адрес гост.
"type": "отель",//тип строкой. Здесь не пишется точный тип гостиницы (хостел, гостевой дом и тд).
"code_type": 30,//тип кодом
"city_id": "1",//город кодом
"geo_lat": "57.0453509",
"geo_lon": "28.9159137",
"last_modified": 1550419710б //временная метка последнего обновления отеля\номеров\цен
},
Просмотр отеля / view
УСТАРЕЛ!
Используйте hotel/index. Он возвращает данных в том же формате, обёрнутые в массив (для получения гостиницы в теле передайте json {«hotels»:[86]}
Описание: Просмотр конкретной гостиницы (на тестовом сервере авторизация не требуется)
Адрес: /api/hotel/view?id=86
Метод запрос: GET\POST
Данные: id - номер гостиницы. Параметр можно передавать как в URI, так и в теле запроса
Возвращаемые данные: Модель гостиницы с номерами и ценами
Поиск отелей\Предложений / index
Описание: НЕ ТРЕБУЕТ АВТОРИЗАЦИИ. Поиск гостиниц и их предложений.
Адрес: /api/hotel/index
Метод запрос: POST
Данные:
limit - количество гостиниц в выдаче, по умолчанию 20, максимум = 1000
offset - смещение поисковой выдачи, по умолчанию 0
Ограничение географии:
city_name - имя города, можно передавать часть имени, например чер
cities - массив id, ограничение по городам,. Пример: «cities»:[2, 180]. См список городов и отелей или справочник городов
hotels - массив id, ограничение по отелям,. Пример: «hotels»:[5, 10]. См список городов и отелей
search - строка для поиска по названию гостиниц, адресам и псевдонимам.
Так же доступна фильтрация по координатам, предложения по отелям можно искать в определённом квадрате или круге. (Если указать оба, то поиск будет производится в координатах круга)
Гео координаты передаются в формате double.
geo_lat_center - координата широты центра круга.
geo_lon_center - координата долготы центра круга.
radius - радиус круга в км.
geo_lat_1 - широта 1 точки области.
geo_lon_1 - долгота 1 точки области.
geo_lat_2 - широта 2 точки области.
geo_lon_2 - долгота 2 точки области.
Актуальность:
last_modified - Фильтрация по времени обновлению отеля. Временная метка Unixtime, новее которой отели нужно показывать. Может использоваться для показа отелей, в которых были произведены изменения с указанного времени.
Параметры предложений:
room_placement_type - массив или int , id типа размещения в номере
date_from - дата заезда. Временная метка Unixtime.
date_to - дата выезда. Временная метка Unixtime, должна быть позже даты заезда
arrival_time - Время заезда в формате HH:MM, всегда указывается местное время отеля. (На данный момент по большинству отелей мы не тарифицируем нестандартные заезд\выезд, поэтому данные параметры не влияют на цену предложения)
departure_time - Время выезда в формате HH:MM, всегда указывается местное время отеля.
Параметры передавать в теле запроса. Параметры комбинируется через условие And
Примеры: Поиск можно осуществлять по заданному городу\городам (с помощью ид или search строки). Так же можно задавать параметры предложений, тогда в выдаче будут не все номера, а только запрошенные.
Все возвращаемые данные: Набор моделей гостиниц с номерами и ценами. Пример смотреть в экшене View. Если запрос на предложение на конкретные даты, то стоимость будет указана за весь период проживания, иначе будет стоимость за сутки проживания.
Найти предложения с 20 июня 2020 по 22 июня 2020 на двухместные номера в Спб:
{
"cities":[4],
"date_from":1592611200,
"date_to":1592784000,
"room_placement_type":[2,8]
"limit":1
}
Ответ:
Чтобы получить предложения по заданному радиусу:
{
"date_from":1592611200,
"date_to":1592784000,
"room_placement_type":1,
"radius":2,
"geo_lat_center":59.7244060,
"geo_lon_center":30.3857930
}
Ответ:
Чтобы получить все гостиницы Рэдиссон в Москве, нужно передать:
{
"cities":[2],//ид городов можно взять из экшена list
"search":"Рэдиссон",
"last_modified": 1533496165
}
Ответ:
Request Заявки
Создание
Адрес: /api/request/create-with-service
Метод запрос: POST
Данные:
{
"room":6,//Обязательный. номер комнаты в гостинице
"guests":[//Обязательный. набор гостей
{
"lastname":"Петров",
"name":"Иван"
},
{
"lastname":"Петрова",
"name":"Василина",
"category": 2,//категория , справочник предоставим позже
"nationality": 2 //национальность, справочник предоставим позже
}
],
"guest_check_in":1564444800,//Обязательно. дата заезда в unixtime
"guest_check_out":1564704000,//Обязательно. дата выезда в unixtime
"unstandart_check_in":1,//не стандартное время заезда, 1\0
"unstandart_check_out":1,//не стандартное время выезда, 1\0
"check_in":"09:00",//время заезда, строка. Учитывается только если нестандартное время заезда = 1
"check_out":"09:00",//время выезда, строка. Учитывается только если нестандартное время выезда = 1
"comments": "В номере должен быть заполнен мини-бар", //комментарий к заявке. Будет создан сразу после создания заявки
"reserve_limit": "Лимит на номер 5000руб без учета завтрака" //лимит на проживание, строка. Можно задавать просто сумму в руб.
"contact_name": "Николай Иванович",//ТОЛЬКО ДЛЯ КУРАТОРА! контактное имя, если отличается от имени текущего пользователя
"contact_phone": "+7-888-999-66-55",//ТОЛЬКО ДЛЯ КУРАТОРА! телефон контактного лица, если отличается от имени текущего пользователя
"contact_email": "booking-no-reply@susanin.ru",//ТОЛЬКО ДЛЯ КУРАТОРА! email контактного лица, если отличается от имени текущего пользователя
}
Поля contact_name, contact_phone и contact_email может изменять только Куратор. Иначе значения будут присвоены текущего пользователя.
Возвращаемые данные: Заявка целиком, подробнее в просмотре заявки
Поиск
Адрес: /api/request/index
Метод запрос: POST
Данные:
id - массив id заявок
start_create_date- минимальное время в unixtime, в которое создана заявка
end_create_date - максимальное время в unixtime, в которое создана заявка
start_last_modified_date- минимальное время в unixtime, в которое обновлена заявка
end_last_modified_date - максимальное время в unixtime, в которое обновлена заявка
cities- массив id городов,
guests- тип string. имя гостя\пассажира,
manager- id менеджера компании Сусанин,
client- id пользователя клиента (Вас). Если заявка заведена компанией Сусанин, то может отличаться от id вашего пользователя,
status- массив id статусов заявок,
Параметры не обязательные, по умолчанию возвращаются все доступные пользователю заявки.
Будьте внимательны, ответ сервера может быть очень большим.
Пример:
{
"id":[34579,34513],
"start_create_date":1548979200,
"end_create_date":1552000000,
"cities": [2],
"guests":"ваган",
"manager":379,
"client":100
}
Возвращаемые данные:
Массив заявок. Формат в просмотре заявки. Отличие будет только в отсутствии документов и комментариев, в списке заявок их не будет
Просмотр заявки
Описание: Возвращает информацию по заявке + всем услугам + комментариям + тегам + гостям + выходным документам.
Адрес: /api/request/view?id=1
Метод запрос: GET\POST
Данные: id - номер заявки
Возвращаемые данные:
Выходные документы / Сумма заказа
Описание: В выходных документах доступны Ваучеры по заказу и Счета (как правило 1 счет и 1 ваучер на услугу).
Суммы по заказу необходимо брать именно из Счета, потому что он является первичным документом для бухгалтерии.
Для ваучера доступна только ссылка на скачивание.
Для счета помимо ссылки на печатный вид документа доступна его детализация построчно. Комиссия\скидка всегда будет со знаком минус: «price»: -955
Чтобы получить итоговую сумму, нужно сложить суммы позиций счета(items)
Если заявка аннулирована, то документы доступны не будут
Компания «Сусанин» работает по УСН, все суммы БЕЗ НДС
Адрес запроса: используйте просмотр заявки раздел в выдаче output_docs
Генерация документов заявки
Описание: Генерирует печатный документ по указанному ид.
Метод запроса: GET
Адрес запроса: /api/request/generate-doc?id=1189957
Данные: id - ид документа
Ответ: Ответом возвращается файл.
Обновление
Описание: Обновление информации о Заказе. Клиенту доступно изменение статуса, изменение контактной информации. Остальная информация меняется через обновление услуги, которая содержится в заказе.
Адрес: /api/request/update?id=72312
Метод запрос: POST
Данные:
uri параметром id - номер обновляемой заявки
и обновляемые данные в теле запроса:
{
'status' => 5, //ид статуса
'client' => 123, //ид пользователя
'contact_name' => 'ФИО контактного лица',
'contact_phone' => 'Телефон контактного лица',
'contact_email' => 'Email контактного лица',
}
Возвращаемые данные: заявка в таком же виде, как при запросе к view
Обновление услуги
Описание: В зависимости от типа услуги разные URL для изменения услуг.
Услуги есть 3х типов:
- Услуга проживание (/service-residence/update)
- Услуга Трансфер (/service-transfer/update description coming soon)
- ORM Услуга (Различные мероприятия, доп. питание, конференц-залы, аренда чего-то и тд) (/service/update description coming soon)
Обновление услуги Проживание
Адрес: /api/service-residence/update?id=1
Метод запрос: POST
Данные: uri параметром id - номер обновляемой услуги (не номер заявки)
В теле запроса:
{
"check_in": "14:00", //время заезда, учитывается только при нестандартном заезде\выезде
"check_out": "12:00",//время выезда
"unstandart_check_in": "0", //не стандартное время заезда
"unstandart_check_out": "0", //не стандартное время заезда
"food": "1", //тип необходимого питания, справочники внизу документации
"reserve_limit": null, //лимит на проживание
"guest_check_in": "1555527600",//дата заезда в unixtime
"guest_check_out": "1555614000",//дата выезда в unixtime
}
Возвращаемые данные: все данные текущей модели с комментариями и гостями
[
{
"id": "181506",
"status": "1",
"placement": "34",
"hotel_room": "6",
"check_in": "12:02",
"check_out": "12:00",
"unstandart_check_in": "1",
"unstandart_check_out": "0",
"request_for_rest": null,
"food": "1",
"description_client": "",
"reserve_limit": "Лимит на каждый номер 5000руб",
"reserve_number": "ФИО",
"penalty_until": "1566067646",
"penalty_amount": "100%",
"calc_client": "",
"price_netto_client": null,
"discount_client": null,
"created_at": "1566067646",
"updated_at": "1566560181",
"request": "181530",
"guest_check_in": "1564444800",
"guest_check_out": "1564704000",
"serviceResidenceGuests": [
{
"id": "153616",
"name": "Иван Петров",
"service": "181506",
"request": "181530",
"category": "1",
"nationality": "1"
},
{
"id": "153617",
"name": "Василина Петрова",
"service": "181506",
"request": "181530",
"category": "2",
"nationality": "2"
}
],
"comments0": []
}
]
Обновление гостя
Адрес: /api/service-residence-guest/update?id=1
Метод запрос: POST
Данные:
в uri параметр id - номер гостя
[
"name": "Иван Иванович",//ФИО одной строкой
"category": 2,//Категория, справочник есть в доке ниже
"nationality": 2, //Национальность, справочник есть в доке ниже
]
Возвращаемые данные: модель гостя с новыми данными
[
"service": 1,
"request": 1,
"name": "Иван Иванович",
"category": 2,
"nationality": 2,
"id": 1,
]
Добавление гостей
Адрес: /api/service-residence-guest/create?request=1&service=1
Метод запрос: POST
Данные:
В uri request - id заявки , service - id услуги
[
"name": "Василий Иванович",
"category": 2,
"nationality": 3,
]
Возвращаемые данные: модель созданного гостя
[
"service": 1,
"request": 1,
"name": "Василий Иванович",
"category": 2,
"nationality": 3,
"id": 1,
]
Удаление гостя
Адрес: /api/service-residence-guest/delete?id=1
Метод запрос: POST
Данные:
В uri id - номер гостя
Возвращаемые данные: номер удалённого гостя
Добавление комментария
Адрес: /api/request/add-comment?request=1
Метод запрос: POST
Данные:
в uri параметр request- номер заявки
В теле:
[
"message": "Текст коммента",
]
Возвращаемые данные: подробная модель заявки
Изменение статуса \ Аннуляция
Описание: Для клиентов метод предоставляет возможность аннулировать заявку и отменить ошибочную аннуляцию. Аннуляция возможна только если статус заказа = 1, иначе система выдаст ошибку о невозможности смены статуса; аннуляция заказа в таком случае производится менеджером Сусанина. Уведомить менеджера о необходимости аннуляции заказа можно через отправку комментария или любым иным способом коммуникации.
Адрес: /api/request/change-status
Метод запрос: POST
Данные:
[
'status'=>5,
]
Возвращаемые данные: новый статус
[
"status": "5",
]
Подтверждение изменений
Согласие
Описание: Подтверждение определённых или всех изменений произошедший в заявке, которые осуществили менеджеры компании Сусанин.
Адрес метода: /accept-changes?id=181585
Данные:
id - заявки, обязательный,
log_id - набор ид логов через запятую, с которым производится согласие
Метод: POST\GET
Возвращаемые данные: подробная модель заявки
Отказ
Описание: Подтверждение определённых или всех изменений произошедший в заявке, которые осуществили менеджеры компании Сусанин.
Адрес метода: /reject-changes?id=181580&comment=Не ясны изменения, ответа нет.
Данные:
id - заявки. Обязательный
comment - комментарий, не обязательно.
Метод: POST\GET
Возвращаемые данные: подробная модель заявки
Удаление
Клиентам удаление заявок запрещено. В случае ошибочного создания заявки или дублирования - используйте статус Аннулирован.
Логи
Описание: Получает все логи по заявке.
Адрес: /api/request/log?id=181558
Метод запрос: POST/GET
Данные: id - номер заявки
Возвращаемые данные:
Лог. Просмотр изменений
Описание: Возвращает изменения по заявке за определённый период (период указывается в границах логов, передаются ид лога отсчета и окончания)
Адрес: /api/request/get-changes?id=181558&start_id=2402
Метод запрос: POST/GET
Данные: id* - номер заявки
start_id - Номер лога, с которого вычисляются изменения. Номера логов можно посмотреть в экшне логов. Если заявка имеет тег «Требуется подтверждение клиента», то можно не передавать номер лога, запрос вернёт только изменения , которые необходимо подтвердить
end_id - опционально. Номер лога, по который вычисляются изменения. По умолчанию вычисляется до последнего лога заявки.
Возвращаемые данные:
Согласие с изменениями в заявке
Описание: Используется для подтверждения изменений по заявке. После отправки удаляется тег «Необходимо подтверждение клиента», добавляется тег «Акцепт клиентом» и автоматически создаётся комментарий о принятии изменений Клиентом. В случае указания набора логов, в комментарии будет указано с какими изменениями согласен Клиент.
Адрес: /api/request/accept-changes?id=181585
Метод запрос: GET
Данные: id* - номер заявки
log_id - номера логов через запятую. Необязательное
Возвращаемые данные: подробная модель заявки
Отказ от изменений в заявке
Описание: Используется для отказа клиента от изменений в заявке. После отказа заявка автоматически аннулируется.
Адрес: /api/request/reject-changes?id=181580&comment=Не ясны изменения, ответа нет.
Метод запрос: GET
Данные: id* - номер заявки
comment - Опционально. Комментарий о причине отказа.
Возвращаемые данные: подробная модель заявки
Справочники
Статусы заявок
- Новый - заявка только создана
- Принят - менеджер принял заявку в работу
- Забронирован - от гостиницы получили подтверждение о бронировании
- Изменен - в заявке есть серьезные изменения\изменения информации клиента. В таком статусе от клиента требуется активное участие, например подтверждение изменений
- Аннулирован - заявка аннулирована
- Выполнен - заявка завершена
- Отказ - отель не подтверждает бронь, нет номеров и тд.
Описание: Справочник статусов заявок. Подробнее в общей статье о статусах
Адрес: /api/request-status/index
Метод запрос: POST
Возвращаемые данные:
Категории гостей
- Мужчина
- Женщина
- Ребенок
- Младенец
Описание: Справочник категорий гостей
Адрес: /api/service-residence-guest/category
Метод запрос: POST/GET
Возвращаемые данные:
{
"1": "Мужчина",
"2": "Женщина",
"3": "Ребенок",
"4": "Младенец"
}
Типы размещения в номере
Описание: Справочник типов размещения в номерах гостиниц
Адрес: /api/hotel-placement-type/index
Метод запрос: POST/GET
Возвращаемые данные:
Типы гостиниц
Описание: Справочник типов гостиниц
Адрес: /api/hotel-type/index
Метод запрос: POST/GET
Возвращаемые данные:
Гражданство гостей
Описание: Справочник национальностей (гражданства)
Адрес: /api/service-residence-guest/nationality
Метод запрос: POST/GET
Возвращаемые данные:
Теги
Описание: Справочник тегов , пометки к заявкам и услугам.
Адрес: /api/tag/index
Метод запрос: POST/GET
Возвращаемые данные:
Страны
Описание: Справочник стран
Адрес: /api/country/index
Метод запрос: GET/POST
Возвращаемые данные:
Города
Описание: Справочник городов
Адрес: /api/city/index?country=1
Метод запрос: GET
Параметры:
country* - параметр, ид страны
Возвращаемые данные:
Типы питания
Описание: Справочник типов питания
Адрес: /api/food-type
Метод запрос: POST/GET
Возвращаемые данные: