АГЕНТСКИЙ API ПЛАТФОРМЫ
(All Powerful Incantation)
Версия от 02.08.2024
ОПИСАНИЕ
ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ КОМАНД ПРОТОКОЛА
ОБЩАЯ СХЕМА ИСПОЛЬЗОВАНИЯ ПРОТОКОЛА
ВИД ОТВЕТА
ПОЛЯ ПРИ КАЖОМ ЗАПРОСЕ
АВТОРИЗАЦИЯ (command = AUTH)
СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ (command = CREATE_USER)*
ПОЛУЧЕНИЕ СПИСКА СТРАН (command = GET_COUNTRIES)
ПОЛУЧЕНИЕ СПИСКА ГОРОДОВ (command = GET_CITIES)
ПОЛУЧЕНИЯ СПИСКА ТИПОВ МЕСТ ПРОВЕДЕНИЯ (command = GET_VENUE_TYPES)
ПОЛУЧЕНИЕ СПИСКА МЕСТ ПРОВЕДЕНИЯ (command = GET_VENUES)
ПОЛУЧЕНИЕ СПИСКА ВИДОВ ПРЕДСТАВЛЕНИЙ (command = GET_KINDS)
ПОЛУЧЕНИЕ СПИСКА ЖАНРОВ (command = GET_GENRES)
ПОЛУЧЕНИЕ СПИСКА МЕРОПРИЯТИЙ (command = GET_ALL_ACTIONS)
ПОЛУЧЕНИЕ СПИСКА МЕРОПРИЯТИЙ (command = GET_ACTIONS_V2)
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О МЕРОПРИЯТИИ, РАСШИРЕННЫЙ МЕТОД (command = GET_ACTION_EXT)
ПОЛУЧЕНИЕ СПИСКА МЕСТ ПО ID СЕАНСА (command = GET_SEAT_LIST)
ПОЛУЧЕНИЕ КООРДИНАТ МЕСТ ПО ID СЕАНСА (command = GET_SCHEMA)
ДОБАВЛЕНИЕ ПРОМОКОДОВ (command = ADD_PROMO_CODES)
РЕЗЕРВИРОВАНИЕ (БРОНИРОВАНИЕ) МЕСТ (command = RESERVATION)
РAЗБРОНИРОВАНИЕ МЕСТ (command = RESERVATION)
РАЗБРОНИРОВАНИЕ ВСЕХ МЕСТ (command = RESERVATION)
ПОЛУЧЕНИЕ СПИСКА ЗАБРОНИРОВАННЫХ МЕСТ (command = GET_CART)
СОЗДАНИЕ ЗАКАЗА (command = CREATE_ORDER)
СОЗДАНИЕ ЗАКАЗА (command = CREATE_ORDER_EXT)*
ОТМЕНА ЗАКАЗА (command = CANCEL_ORDER)*
ОПЛАТА ЗАКАЗА (command = PAY_ORDER)*
ПОЛУЧЕНИЕ ЗАКАЗОВ ПОЛЬЗОВАТЕЛЯ (command = GET_ORDERS)
ПОЛУЧЕНИЕ ЗАКАЗОВ ПОЛЬЗОВАТЕЛЯ (command = GET_ORDERS_EXT)
ПОЛУЧЕНИЕ СПИСКА СЕАНСОВ, ПО КОТОРЫМ БЫЛИ КУПЛЕНЫ БИЛЕТЫ (command = GET_ACTION_EVENTS_GROUPED_BY_TICKETS)
ПОЛУЧЕНИЕ КУПЛЕННЫХ БИЛЕТОВ ПО ID ПРЕДСТАВЛЕНИЯ (command = GET_TICKETS_BY_ACTION_EVENT)
ПОЛУЧЕНИЕ КУПЛЕННЫХ БИЛЕТОВ ПО ID ЗАКАЗА (command = GET_TICKETS_BY_ORDER)
ПОЛУЧЕНИЕ ИНФОРМАЦИИ ПО ПРОДАННЫМ БИЛЕТАМ ЗА КОНКРЕТНЫЙ ДЕНЬ (command = GET_TICKETS_BY_DAY)
ПЕЧАТЬ БИЛЕТОВ (command = PRINT_TICKETS)
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ПОЛЬЗОВАТЕЛЕ (command = GET_USER_INFO)
ОТПРАВКА БИЛЕТОВ НА ПОЧТУ (command = SEND_TICKETS_TO_EMAIL)
УДАЛЕНИЕ (command = DELETE)
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ЗАКАЗЕ (command = GET_ORDER_INFO)
ПОЛУЧЕНИЕ ПОЧТЫ (command = GET_EMAIL)
ОТПРАВКА GCM ТОКЕНА НА СЕРВЕР (command = SET_PUSH_TOKEN)
ПОЛУЧИТЬ НОВОСТИ (command = GET_NEWS)
ПРОВЕРКА КДП (command = CHECK_KDP)
ПОЛУЧЕНИЕ ДАННЫХ ДЛЯ ФИЛЬТРА (command = GET_FILTER)
ПРИВЯЗКА ПОЧТЫ (command = BIND_EMAIL)
ПОДТВЕРЖДЕНИЕ ПОЧТЫ (command = CONFIRM_EMAIL)
ПОЛУЧЕНИЕ КАРТ (МЭК) (command = GET_MECS)
ПОЛУЧЕНИЕ ПРОМОКОДОВ (command = GET_PROMO_CODES)
ВОЗВРАТ БИЛЕТОВ (command = REFUND_TICKETS)*
ПОЛУЧЕНИЕ РЕКОМЕНДУЕМОЙ TICKETRAIN СУММЫ ВОЗВРАТА (command = GET_TR_REFUND_AMOUNT)*
СТАТУС ЗАКАЗА
ПРОТОКОЛ В ФАЙЛЕ docx
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 09.05.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 20.05.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 15.06.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 22.06.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.06.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 08.07.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 22.07.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 16.08.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 02.09.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 25.10.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 25.11.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 15.12.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 27.12.2016
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 04.02.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 05.05.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 18.05.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 08.06.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 06.07.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 13.07.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 22.07.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 09.08.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.08.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 02.10.2017
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 18.02.2018
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 01.03.2018
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 12.03.2018
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 19.08.2018
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 16.10.2018
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 06.12.2018
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 12.12.2018
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.04.2019
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 21.05.2019
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 10.06.2019
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.07.2019
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 13.08.2019
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 24.09.2019
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 11.06.2020
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 14.12.2020
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 16.03.2021
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.03.2021
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 05.06.2021
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 10.11.2021
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 10.01.2022
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 28.04.2022
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 19.07.2022
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 15.09.2022
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 09.01.2023
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 14.02.2023
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 11.04.2024
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 03.05.2024
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 07.06.2024
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 02.08.2024
Для взаимодействия осуществляются HTTPS POST запросы в формате JSON в кодировке UTF-8. Ответ возвращается в формате JSON в кодировке UTF-8.
Чтобы большие ответы в формате JSON приходили в сжатом виде, в заголовке HTTPS POST запроса в поле accept-encoding следует передавать параметр gzip.
URL тестовой зоны https://api.bil24.pro:1240/json
URL реальной зоны https://api.bil24.pro/json
Веб интерфейс для применения команд протокола
API in Swagger
Типы полей:
число int - целое значение в диапазоне от -2 147 483 648 до 2 147 483 647
число Uint - целое беззнаковое значение в диапазоне от 0 до 2 147 483 647
число long - целое значение в диапазоне от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
число Ulong - целое беззнаковое значение в диапазоне от 0 до 9 223 372 036 854 775 807
число cur - вещественное значение, содержащее до 4 знаков после точки, например 134.7445
boolean - литерал принимающий значения true или false
строка - строковое значение неограниченной длины
Как выбрать правильный ТИП ИНТЕРФЕЙСА при использовании API BIL24.
ОБЩАЯ СХЕМА ИСПОЛЬЗОВАНИЯ ПРОТОКОЛА
Команды протокола делятся на сессионные и несессионные.
Список несессионных команд:
1. GET_FILTER
2. GET_CITIES
3. GET_VENUE_TYPES
4. GET_VENUES
5. GET_ALL_ACTIONS
6. GET_ACTIONS_V2
7. GET_ACTION_EXT
8. GET_SEAT_LIST
9. GET_TICKETS_BY_DAY
Нет необходимости выполнять команду AUTH раньше какой-либо из перечисленных команд. Для их выполнения не нужен идентификатор сессии (sessionId).
Для выполнения сессионных команд нужно иметь sessionId. Получить его первоначально нужно с помощью команды AUTH (для билетных систем CREATE_USER). Полученные данные пользователя рекомендуется сохранить и использовать повторно.
Сессия пользователя определяется sessionId и действует бессрочно.
В общем случае, sessionId понадобится перед командой BIND_EMAIL (RESERVATION для билетных систем).
Можно использовать fid, token, userId и sessionId из примеров для запросов при доступе в тестовую зону по адресу https://api.bil24.pro:1240/json.
Интерфейс "Билетная система"
fid: 1184
token: 24d3b97b64dfab187a5f
userId: 18109
sessionId: d6035a755bd0862e713e03f337505bd0
Интерфейс "Браузер"
fid: 1185
token: 2f1173e2b12fd5a111b6
userId: 6104
sessionId: 19c517c212bf173b44558308149db8ca
Посмотреть все события, товары и услуги, подписанные на интерфейс 1185 можно на этом сайте.
Интерфейс "Билетный агент"
fid: 1271
token: 7c696b4af364928202dd
userId: 33922
sessionId: 7c696b4af364928202dd
На все запросы возвращается результат в формате JSON:
{
"resultCode": 0,
"description": "OK"
"command": "COMMAND"
…………………………
}
Поле | Тип | Обязательность | Описание |
resultCode | число int | Обязательное | Результат запроса |
description | строка | Обязательное | Описание |
command | строка | Обязательное | Команда, переданная в запросе |
cause | строка | Необязательное | Причина ошибки |
Данные поля присутствуют в каждом ответе.
Если resultCode не равен 0, то поле description содержит описание ошибки, поле cause может содержать причину ошибки.
Значения поля resultCode:
Значение | Описание |
-1 |
Непредвиденная ошибка (ошибка протокола, ошибка передачи данных, прочие ошибки...), описание смотреть в поле description |
0 |
Результат команды успешен |
1 |
Неверные идентификаторы сессии (userId или sessionId) |
Сообщения для пользователя |
|
101 | Стандартное сообщение. |
102 | Почта не привязана. Проверять при запросах RESERVATION. |
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | команда |
fid | число Ulong | Обязательное | идентификатор интерфейса (frontend id) |
token |
строка |
Обязательное |
токен интерфейса |
locale |
строка |
Необязательное |
предпочитаемый язык данных ответа в формате IETF BCP 47. Если не указано, используется значение ru-RU. |
Полезные инструменты для работы с API BIL24:
- Веб-форма для API BIL24
- Json Editor
Описание: авторизация пользователя. Для интерфейсов Билетный агент и Билетная система вместо данного метода необходимо использовать метод CREATE_USER.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | AUTH |
userId | число Ulong | Обязательное, если есть sessionId | id пользователя в БС |
sessionId | строка | Обязательное, если есть userId | id сессии пользователя |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
frontendType | число Uint | Обязательное | тип интерфейса |
Данные для запроса брать из cookies, если ранее уже выполнялся данный запрос. Если запрос выполняется первый раз, то userId и sessionId в запросе не передавать.
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "AUTH",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "AUTH",
"frontendType": 4,
"resultCode": 0,
"description": "OK"
}
После получения ответа, сохранить данные и использовать в запросах, где необходимы эти поля.
СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ (command = CREATE_USER)*
Описание: метод создает нового пользователя, который в дальнейшем может использоваться для бронирования мест, создания и оплаты заказа и получения билетов.
Используется вместо метода AUTH для интерфейсов Билетный агент и Билетная система.
*только для интерфейсов Билетный агент и Билетная система
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | CREATE_USER |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
Пример запроса:
{
"command": "CREATE_USER",
"fid": 1184,
"token": "24d3b97b64dfab187a5f"
}
Пример ответа:
{
"userId": 18109,
"sessionId": "d6035a755bd0862e713e03f337505bd0",
"command": "CREATE_USER",
"resultCode": 0,
"description": "OK"
}
После получения ответа, сохранить данные и использовать в запросах, где необходимы эти поля.
ПОЛУЧЕНИЕ СПИСКА СТРАН (command = GET_COUNTRIES)
Описание: Получение списка всех стран, присутствующих в системе. Для получения списка только тех стран, в которых есть актуальные события, необходимо использовать метод GET_FILTER.
Использование метода GET_FILTER является предпочтительным.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_COUNTRIES |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
countryList | массив | Обязательное | список стран |
countryList:
Поле | Тип | Обязательность | Описание |
countryId | число Ulong | Обязательное | id страны |
countryName | строка | Обязательное | название страны |
ПОЛУЧЕНИЕ СПИСКА ГОРОДОВ (command = GET_CITIES)
Описание: получение списка всех городов, присутствующих в системе. Для получения списка только тех городов, в которых есть актуальные события, необходимо использовать метод GET_FILTER.
Использование метода GET_FILTER является предпочтительным.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_CITIES |
countryId | число Ulong | Необязательное | id страны, если указан, в ответе будут только города в данной стране |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
cityList | массив | Обязательное | список городов |
cityList:
Поле | Тип | Обязательность | Описание |
countryId | число Ulong | Необязательное | id страны, если указан, в ответе будут только города в данной стране |
cityId | число Ulong | Обязательное | id города в БС |
cityName | строка | Обязательное | наименование города в БС |
Пример запроса:
{
"command": "GET_CITIES",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"cityList": [
{
"cityId": 1,
"cityName": "Сочи"
},
{
"cityId": 2,
"cityName": "Краснодар"
}
],
"command": "GET_CITIES",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ СПИСКА ТИПОВ МЕСТ ПРОВЕДЕНИЯ (command = GET_VENUE_TYPES)
Описание: получение списка всех типов мест проведения, присутствующих в системе.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_VENUE_TYPES |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
venueTypeList | массив | Обязательное | список типов мест проведения |
venueTypeList:
Поле | Тип | Обязательность | Описание |
venueTypeId | число Uint | Обязательное | id типа места проведения |
venueTypeName | строка | Обязательное | наименование типа места проведения |
ПОЛУЧЕНИЕ СПИСКА МЕСТ ПРОВЕДЕНИЯ (command = GET_VENUES)
Описание: получение списка всех мест проведения, присутствующих в системе. Для получения актуальных мест проведения, необходимо использовать метод GET_FILTER.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_VENUES |
countryId | число Ulong | Необязательное | id страны, если указан, в ответе будут только места проведения в данной стране |
cityId | число Ulong | Необязательное | id города, если указан, в ответе будут только места проведения в данном городе, при этом countryId будет проигнорирован |
venueTypeId | число Uint | Необязательное | Тип мест проведения, если не указан, в ответе будут все места проведения в городе |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
venueList | массив | Обязательное | список мест проведения |
venueList:
Поле | Тип | Обязательность | Описание |
countryId | число Ulong | Обязательное | id страны |
cityId | число Ulong | Обязательное | id города |
venueId | число Ulong | Обязательное | id места проведения |
venueName | строка | Обязательное | наименование места проведения |
venueTypeId | число Uint | Обязательное | id типа места проведения |
venueTypeName | строка | Обязательное | наименование типа места проведения |
address | строка | Обязательное | адрес места проведения |
geoLat | строка (##.######) | Обязательное | широта места проведения |
geoLon | строка (##.######) | Обязательное | долгота места проведения |
imageUrl | строка | Обязательное | ссылка на изображение места проведения |
description | строка | Обязательное | описание места проведения |
ПОЛУЧЕНИЕ СПИСКА ВИДОВ ПРЕДСТАВЛЕНИЙ (command = GET_KINDS)
Описание: Получение списка всех видов представлений, присутствующих в системе. Для получения актуальных видов представлений, необходимо использовать метод GET_FILTER. Использование метода GET_FILTER является предпочтительным.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_KINDS |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
kindList | массив | Обязательное | список видов |
kindList:
Поле | Тип | Обязательность | Описание |
kindId | число Uint | Обязательное | id вида |
kindName | строка | Обязательное | наименование вида |
ПОЛУЧЕНИЕ СПИСКА ЖАНРОВ (command = GET_GENRES)
Описание: Получение списка всех жанров, присутствующих в системе. Для получения актуальных жанров, необходимо использовать метод GET_FILTER. Использование метода GET_FILTER является предпочтительным.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_GENRES |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
genreList | массив | Обязательное | список жанров |
genreList:
Поле | Тип | Обязательность | Описание |
genreId | число Uint | Обязательное | id жанра |
genreName | строка | Обязательное | наименование жанра |
ПОЛУЧЕНИЕ СПИСКА МЕРОПРИЯТИЙ (command = GET_ALL_ACTIONS)
Описание: метод возвращает все данные метода GET_FILTER, плюс список всех доступных мероприятий.
Метод позволяет отказаться от использования методов GET_FILTER, GET_ACTIONS_V2 и GET_ACTION_EXT.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_ALL_ACTIONS |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
countryList | массив | Обязательное | список стран |
cityList | массив | Обязательное | список городов |
kindList | массив | Обязательное | список видов |
genreList | массив | Обязательное | список жанров |
actionList | массив | Обязательное | список мероприятий |
countryList:
Поле | Тип | Обязательность | Описание |
countryId | число Ulong | Обязательное | id страны |
countryName | строка | Обязательное | название страны |
cityList:
Поле | Тип | Обязательность | Описание |
countryId | число Ulong | Обязательное | id страны |
cityId | число Ulong | Обязательное | id города |
cityName | строка | Обязательное | название города |
venueList | массив | Обязательное | список мест проведений |
venueList:
Поле | Тип | Обязательность | Описание |
venueId | число Ulong | Обязательное | id места проведения |
venueName | строка | Обязательное | наименование места проведения |
address | строка | Обязательное | адрес места проведения |
geoLat | строка (##.######) | Обязательное | широта места проведения |
geoLon | строка (##.######) | Обязательное | долгота места проведения |
imageUrl | строка | Обязательное | ссылка на изображение места проведения |
kindList:
Поле | Тип | Обязательность | Описание |
kindId | число Uint | Обязательное | id вида |
kindName | строка | Обязательное | наименование вида |
genreList:
Поле | Тип | Обязательность | Описание |
genreId | число Uint | Обязательное | id жанра |
genreName | строка | Обязательное | наименование жанра |
actionList:
Поле | Тип | Обязательность | Описание |
actionId | число Ulong | Обязательное | id представления |
actionName | строка | Обязательное | краткое наименование представления |
fullActionName | строка | Обязательное | полное наименование представления |
kindId | число Uint | Обязательное | id вида |
kindName | строка | Обязательное | наименование вида |
organizerId | число Ulong | Обязательное | id организатора |
organizerName | строка | Обязательное | название организатора |
legalOwnerName | строка | Обязательное | название устроителя |
legalOwnerInn | строка | Обязательное | ИНН устроителя |
legalOwnerPhone | строка | Обязательное | телефон устроителя |
duration | число Uint | Обязательное | продолжительность представления в минутах |
posterName | строка | Обязательное | название постера |
description | строка | Обязательное | описание |
smallPosterUrl | строка | Обязательное | url постера (320 x 335) |
bigPosterUrl | строка | Обязательное | url постера (640 x 670) |
bookletUrl | строка | Необязательное | url буклета представления |
minPrice | число cur | Обязательное | минимальная стоимость билета |
maxPrice | число cur | Обязательное | максимальная стоимость билета |
firstEventDate | строка | Обязательное | первая дата сеанса |
lastEventDate | строка | Обязательное | последняя дата сеанса |
actionEventTime | строка | Необязательное | формат HH:mm Поле присутствует, если сеанс идет в одно и тоже время |
kdp* | boolean | Обязательное | true - у представления есть КДП |
rating | число Uint | Обязательное | рейтинг от 0 до 10 |
age | строка | Обязательное | возрастное ограничение |
genreList | массив | Обязательное | список жанров представления |
actionEventList | массив | Обязательное | список сеансов |
actionEventList:
Поле | Тип | Обязательность | Описание |
actionEventId | число Ulong | Обязательное | id сеанса |
externalEventId | строка | Обязательное | строковый идентификатор сеанса во внешней БС |
gatewayId | число Ulong | Обязательное | id подключения к внешней БС |
ticketRainActionId | число long | Необязательное | идентификатор сеанса в системе TicketRain |
currency | строка | Обязательное | валюта сеанса по ISO 4217 |
day | строка | Обязательное | дата проведения сеанса в формате dd.MM.yyyy |
time | строка | Обязательное | время проведения сеанса в формате HH:mm |
sellEndTime | строка | Обязательное | дата и время окончания продаж в формате ISO-8601 |
countryId | число Ulong | Обязательное | id страны |
cityId | число Ulong | Обязательное | id города |
venueId | число Ulong | Обязательное | id места проведения |
seatingPlanId | число Ulong | Обязательное | id схемы зала |
seatingPlanName | строка | Обязательное | название схемы зала |
placementUrl | строка | Необязательное | ссылка на схему зала. Если поле отсутствует, схема зала без размещения |
eTicket | boolean | Обязательное | false - МЭБ на контроле представления не принимается |
fullNameRequired | boolean | Обязательное | Если true, то полное имя покупателя должно быть обязательно указано при создании заказа |
phoneRequired | boolean | Обязательное | Если true, то номер телефона покупателя должен быть обязательно указано при создании заказа |
fanIdRequired | boolean | Обязательное | fanId покупателя должен быть обязательно указан при создании заказа |
tariffPlanList | массив | Обязательное | Список тарифных планов |
categoryLimitList | массив | Обязательное | список категорий, сгруппированных по лимитам (категории без размещения) |
tariffPlanList:
Поле | Тип | Обязательность | Описание |
tariffPlanId | число Ulong | Обязательное | id тарифного плана |
tariffPlanName | строка | Обязательное | Название тарифного плана |
categoryLimitList:
Поле | Тип | Обязательность | Описание |
remainder | число Uint | Необязательное | Общее ограничение мест по списку категорий. Если параметр отсутствует, смотрим availability |
categoryList | массив | Обязательное | список категорий, объединенных одним лимитом |
categoryList:
Поле | Тип | Обязательность | Описание |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
categoryPriceName | строка | Обязательное | наименование ценовой категории |
price | число cur | Обязательное | стоимость ценовой категории |
tariffIdMap | ассоциативный массив | Обязательное | список тарифов, key - id тарифного плана, value - стоимость |
availability | число int | Обязательное | количество доступных мест в категории |
ПОЛУЧЕНИЕ СПИСКА МЕРОПРИЯТИЙ (command = GET_ACTIONS_V2)
Описание: метод возвращает список представлений по городу. Для интерфейса Билетная система рекомендуется использовать GET_ALL_ACTIONS вместо данного метода.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_ACTIONS_V2 |
cityId | число Ulong | Обязательное | id города |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
actionList | массив | Обязательное | список мероприятий |
actionList:
Поле | Тип | Обязательность | Описание |
actionId | число Ulong | Обязательное | id представления |
actionName | строка | Обязательное | краткое наименование представления |
fullActionName | строка | Обязательное | полное наименование представления |
duration | число Uint | Обязательное | продолжительность представления в минутах |
kindId | число Uint | Обязательное | id вида |
kindName | строка | Обязательное | наименование вида |
posterName | строка | Обязательное | название постера |
smallPosterUrl | строка | Обязательное | url постера (320 х 335) |
bigPosterUrl | строка | Обязательное | url постера (640 х 670) |
minSum | число cur | Обязательное | минимальная стоимость билета |
maxSum | число cur | Обязательное | максимальная стоимость билета |
firstEventDate | строка | Обязательное | первая дата сеанса |
lastEventDate | строка | Обязательное | последняя дата сеанса |
rating | число Uint | Обязательное | рейтинг от 0 до 10 |
genreList | массив | Обязательное | список жанров |
kdp | boolean | Обязательное | true - у представления есть КДП* |
cityId | число Ulong | Обязательное | id города, переданный в запросе |
cityName | строка | Обязательное | наименование города |
actionEventTime | строка | Необязательное | формат HH:mm поле присутствует, если сеанс идет в одно и тоже время |
venueMap | объект | Обязательное | список мест проведений. key - venueId, value - venueName |
genreList:
Поле | Тип | Обязательность | Описание |
genreId | число Uint | Обязательное | id жанра |
genreName | строка | Обязательное | наименование жанра |
* КДП (код доступа к представлению - временное решение).
Перед открытием схемы зала или нажатием кнопки забронировать (в схеме зала без размещения) пользователь должен ввести КДП (метод для проверки КДП - CHECK_KDP)
Пример запроса:
{
"cityId": 1,
"command": "GET_ACTIONS_V2"
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"actionList": [
{
"actionId": 193,
"actionName": "Любовь Успенская",
"fullActionName": "Королева городского романса",
"duration": 120,
"kindId": 0,
"kindName": "События",
"posterName": "Название постера",
"smallPosterUrl": "https://api.bil24.pro:1240/image?type=smallPoster&actionId=193&hash=gznpw8zi9rog7k7e923ko32ap",
"bigPosterUrl": "https://api.bil24.pro:1240/image?type=bigPoster&actionId=193&hash=hwyb7h53x926q0tiiopdgjpp0",
"minSum": 1500,
"firstEventDate": "27.05.2016",
"lastEventDate": "27.05.2016",
"rating": 10,
"kdp": false,
"cityId": 1,
"cityName": "Сочи",
"actionEventTime": "19:30",
"venueMap": {
"1": "Зимний театр"
}
},
{
"actionId": 219,
"actionName": "Кармен",
"fullActionName": "Ледовый мюзикл",
"duration": 180,
"kindId": 0,
"kindName": "События",
"posterName": "Название постера",
"smallPosterUrl": "https://api.bil24.pro:1240/image?type=smallPoster&actionId=219&hash=sc8zn3tgamlvtpdjbgprv3dy2",
"bigPosterUrl": "https://api.bil24.pro:1240/image?type=bigPoster&actionId=219&hash=qwejy8em5q5clku76dyxshd58",
"minSum": 1000,
"firstEventDate": "10.06.2016",
"lastEventDate": "02.10.2016",
"rating": 10,
"kdp": false,
"cityId": 1,
"cityName": "Сочи",
"actionEventTime": "18:30",
"venueMap": {
"7": "ЛД \"Айсберг\""
}
}
],
"command": "GET_ACTIONS_V2",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О МЕРОПРИЯТИИ, РАСШИРЕННЫЙ МЕТОД (command = GET_ACTION_EXT)
Описание: метод возвращает информацию о представлении в конкретном городе, места где оно проводится и сеансы. Для интерфейса Билетная система рекомендуется использовать GET_ALL_ACTIONS вместо данного метода.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_ACTION_EXT |
cityId | число Ulong | Обязательное | id города |
actionId | число Ulong | Обязательное | id представления |
userId* | число Ulong | Необязательное | id пользователя |
* userId - на схеме зала будут окрашены места данного пользователя
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
action | объект | Обязательное | представление |
action:
Поле | Тип | Обязательность | Описание |
actionId | число Ulong | Обязательное | id представления |
actionName | строка | Обязательное | краткое наименование представления |
fullActionName | строка | Обязательное | полное наименование представления |
kindId | число Uint | Обязательное | id вида |
kindName | строка | Обязательное | наименование вида |
cityId | число Ulong | Обязательное | id города |
cityName | строка | Обязательное | название города |
organizerId | число Ulong | Обязательное | id организатора |
organizerName | строка | Обязательное | название организатора |
legalOwnerName | строка | Обязательное | название устроителя |
legalOwnerInn | строка | Обязательное | ИНН устроителя |
legalOwnerPhone | строка | Обязательное | телефон устроителя |
posterName | строка | Обязательное | название постера |
duration | число Uint | Обязательное | продолжительность представления в минутах |
description | строка | Обязательное | описание |
smallPosterUrl | строка | Обязательное | url постера (320 x 335) |
bigPosterUrl | строка | Обязательное | url постера (640 x 670) |
bookletUrl | строка | Необязательное | url буклета представления |
kdp* | boolean | Обязательное | true - у представления есть КДП |
rating | число Uint | Обязательное | рейтинг от 0 до 10 |
age | строка | Обязательное | возрастное ограничение |
genreList | массив | Обязательное | список жанров |
venueList | массив | Обязательное | список мест проведений |
*kdp - Код доступа к представлению (КДП). Если параметр равен true, то забронировать места можно только если ввести КДП
genreList:
Поле | Тип | Обязательность | Описание |
genreId | число Uint | Обязательное | id жанра |
genreName | строка | Обязательное | наименование жанра |
venueList:
Поле | Тип | Обязательность | Описание |
venueId | число Ulong | Обязательное | id места проведения |
venueName | строка | Обязательное | наименование места проведения |
address | строка | Обязательное | адрес места проведения |
geoLat | строка (##.######) | Обязательное | широта места проведения |
geoLon | строка (##.######) | Обязательное | долгота места проведения |
imageUrl | строка | Обязательное | ссылка на изображение места проведения |
description | строка | Обязательное | описание места проведения |
cityPass | boolean | Обязательное | true - место проведение, где действуют скидки и преференции |
actionEventList | массив | Обязательное | список сеансов |
actionEventList:
Поле | Тип | Обязательность | Описание |
actionEventId | число Ulong | Обязательное | id сеанса |
externalEventId | строка | Обязательное | строковый идентификатор сеанса во внешней БС |
gatewayId | число Ulong | Обязательное | id подключения к внешней БС |
ticketRainActionId | число long | Необязательное | идентификатор сеанса в системе TicketRain |
currency | строка | Обязательное | валюта сеанса по ISO 4217 |
day | строка | Обязательное | дата проведения сеанса в формате dd.MM.yyyy |
time | строка | Обязательное | время проведения сеанса в формате HH:mm |
sellEndTime | строка | Обязательное | дата и время окончания продаж в формате ISO-8601 |
seatingPlanId | число Ulong | Обязательное | id схемы зала |
seatingPlanName | строка | Обязательное | название схемы зала |
placementUrl | строка | Необязательное | ссылка на схему зала. если поле отсутствует, схема зала без размещения |
eTicket | boolean | Обязательное | false - МЭБ на контроле представления не принимается |
fullNameRequired | boolean | Обязательное | если true, при создании заказа параметр fullName (полное имя покупателя) является обязательным |
phoneRequired | boolean | Обязательное | если true, при создании заказа параметр phone (номер телефона покупателя) является обязательным |
fanIdRequired | boolean | Обязательное | fanId покупателя должен быть обязательно указан при создании заказа |
tariffPlanList | массив | Обязательное | Список тарифных планов |
categoryLimitList | массив | Обязательное | список категорий, сгруппированных по лимитам (категории без размещения) |
Существует 3 вида схем:
1. Только без размещения. placementUrl будет отсутствовать, смотрим categoryLimitList.
2. Только с размещением. Смотрим placementUrl, categoryLimitList будет пустой.
3. Комбинированная. Смотрим placementUrl и categoryLimitList.
tariffPlanList:
Поле | Тип | Обязательность | Описание |
tariffPlanId | число Ulong | Обязательное | id тарифного плана |
tariffPlanName | строка | Обязательное | название тарифного плана |
categoryLimitList:
Поле | Тип | Обязательность | Описание |
remainder | число Uint | Необязательное | Общее ограничение мест по списку категорий. Если параметр отсутствует, смотрим availability |
categoryList | массив | Обязательное | список категорий, объединенные одним лимитом |
categoryList:
Поле | Тип | Обязательность | Описание |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
categoryPriceName | строка | Обязательное | наименование ценовой категории |
price | число cur | Обязательное | стоимость ценовой категории |
tariffIdMap | ассоциативный массив | Обязательное | список тарифов, key - id тарифного плана, value - стоимость |
availability* | число int | Обязательное | количество доступных мест в категории |
*availability - количество доступных мест в категории. Если remainder отсутствует, то ориентируемся на availability. Если remainder присутствует, то нужно внимательно использовать эти параметры.
К примеру общее ограничение remainder на 3 категории может быть 100, но и в каждой категории availability также может быть 100.
Список сеансов actionEventList возвращается в отсортированном виде по дате проведения.
Пример запроса:
{
"cityId": 1,
"actionId": 80,
"userId": 6104,
"command": "GET_ACTION_EXT",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"action": {
"actionId": 193,
"actionName": "Любовь Успенская",
"fullActionName": "Королева городского романса",
"kindId": 0,
"kindName": "События",
"cityId": 1,
"cityName": "Сочи",
"duration": 120,
"posterName": "Королева городского романса",
"description": ""Настоящая Любовь"",
"smallPosterUrl": "https://api.bil24.pro:1240/image?type=smallPoster&actionId=193&hash=gznpw8zi9rog7k7e923ko32ap",
"bigPosterUrl": "https://api.bil24.pro:1240/image?type=bigPoster&actionId=193&hash=hwyb7h53x926q0tiiopdgjpp0",
"rating": 10,
"kdp": false,
"venueList": [
{
"venueId": 1,
"venueName": "Зимний театр",
"address": "г. Сочи, ул. Театральная, 2",
"geoLat": "43.572313",
"geoLon": "39.730626",
"imageUrl": "https://api.bil24.pro:1240/image?type=venue&id=1&hash=rrre3fih28k8n68kmjwkdhe91",
"description": "У каждого города есть своя "визитная карточка".",
"actionEventList": [
{
"actionEventId": 681,
"day": "27.05.2016",
"time": "19:30",
"placementUrl": "https://api.bil24.pro:1240/image?type=seatingPlan&userId=21173&actionEventId=681",
"eTicket": true,
"categoryLimitList": []
}
]
}
]
},
"command": "GET_ACTION_EXT",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ СПИСКА МЕСТ ПО ID СЕАНСА (command = GET_SEAT_LIST)
Режим ограничения обслуживания команд GET_SEAT_LIST (режим "Опроса", GSL-ограничение).
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_SEAT_LIST |
actionEventId | число Ulong | Обязательное | id сеанса |
availableOnly | boolean | Необязательное | если присутствует и равно true, метод вернет только доступные для продажи места |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
actionEventId | число Ulong | Обязательное | id сеанса |
availableOnly | boolean | Обязательное | если равно true, в ответе только доступные для продажи места |
currency | строка | Обязательное | валюта сеанса по ISO 4217 |
tariffPlanList | массив | Обязательное | список тарифных планов |
categoryList | массив | Обязательное | список ценовых категорий |
categoryLimitList | массив | Необязательное | список категорий, сгруппированных по лимитам (категории без размещения) |
seatList | массив | Обязательное | список мест |
tariffPlanList:
Поле | Тип | Обязательность | Описание |
tariffPlanId | число Ulong | Обязательное | id тарифного плана |
tariffPlanName | строка | Обязательное | название тарифного плана |
categoryList:
Поле | Тип | Обязательность | Описание |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
categoryPriceName | строка | Обязательное | название ценовой категории |
placement | boolean | Обязательное | если true, все места в данной категории имеют координаты |
price | число cur | Обязательное | номинальная стоимость |
tariffIdMap | ассоциативный массив | Обязательное | список тарифов, key - id тарифного плана, value - стоимость |
availability | число int | Обязательное | количество доступных мест в категории |
categoryLimitList:
Поле | Тип | Обязательность | Описание |
remainder | число Uint | Необязательное | Общее ограничение мест по списку категорий. Если параметр отсутствует, смотрим availability |
categoryList | массив | Обязательное | список категорий, объединенные одним лимитом |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
placement | boolean | Обязательное | если true, все места в данной категории имеют координаты |
price | число cur | Обязательное | номинальная стоимость |
placement | boolean | Обязательное | если true, место имеет координаты |
location | объект | Обязательное, если placement = true | координаты места |
available | boolean | Обязательное | если true, место доступно к продаже |
location:
Поле | Тип | Обязательность | Описание |
sector | строка | Обязательное | сектор |
row | строка | Обязательное | ряд |
number | строка | Обязательное | место |
ПОЛУЧЕНИЕ КООРДИНАТ МЕСТ ПО ID СЕАНСА (command = GET_SCHEMA)
Описание: Метод возвращает информацию обо всех местах с размещением, с координатами каждого места, включая координаты x,y. Метод дает возможность построить собственную схему зала. Рекомендуется использовать только если нет возможности
использовать готовые схемы svg, которые можно получить по протоколу.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_SCHEMA |
actionEventId | число Ulong | Обязательное | id сеанса |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
actionEventId | число Ulong | Обязательное | id сеанса |
seatList | массив | Обязательное | список мест с координатами |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места |
sector | строка | Обязательное | сектор |
row | строка | Обязательное | ряд |
number | строка | Обязательное | место |
x | строка | Обязательное | вещественное число, координата по оси X (слева направо) |
y | строка | Обязательное | вещественное число, координата по оси Y (сверху вниз) |
ДОБАВЛЕНИЕ ПРОМОКОДОВ (command = ADD_PROMO_CODES)
Описание: Добавление промокодов для применения пользователем. За один раз можно добавить до 10 промокодов включительно.
Регистр символов промокода значения не имеет. В ответе будет столько же промокодов и в том же регистре, как в запросе, поделенные на 3 группы:
новые промокоды для пользователя, уже существующие у пользователя промокоды и ошибочные промокоды.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | ADD_PROMO_CODES |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
promoCodeList | массив | Обязательное | список промокодов |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
newPromoCodeList | массив | Обязательное | список новых добавленных промокодов |
existPromoCodeList | массив | Обязательное | список уже существующих промокодов |
errorPromoCodeList | массив | Обязательное | список ошибочных промокодов |
РЕЗЕРВИРОВАНИЕ (БРОНИРОВАНИЕ) МЕСТ(command = RESERVATION)
Описание: Перед созданием заказа необходимо забронировать хотя бы одно место.
При получении ошибки в ответе гарантируется, что ни одно место из списка не было забронировано
(транзакционные свойства бронирования). Все места в списке должны принадлежать одному сеансу.
В ответе присутствуют все места корзины, причем новые (последние забронированные) помечены специальным флагом (поле new).
Подробная информация о процессе бронирования в статье РЕЗЕРВИРОВАНИЕ МЕСТ.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | RESERVATION |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
type | строка | Обязательное | RESERVE |
seatList | массив | Необязательное | список мест для резервирования. Может использоваться как для мест с размещением, так и для мест без размещения. |
categoryList | массив | Необязательное | список категорий и количество мест без размещения для резервирования. Используется только для мест без размещения. |
kdp | число int | Необязательное | код доступа к представлению (КДП) |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места (как с размещением, так и без размещения) |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен тарифный план |
expectedPrice | число cur | Необязательное | номинальная стоимость (с учетом выбранного тарифного плана), если указана и не совпадает, бронирование произведено не будет |
fanId | строка | Необязательное | номер ПК болельщика, телефон или email |
categoryList:
Поле | Тип | Обязательность | Описание |
categoryPriceId | число Ulong | Обязательное | id ценовой категории (только для мест без размещения) |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен тарифный план |
expectedPrice | число cur | Необязательное | номинальная стоимость (с учетом выбранного тарифного плана), если указана и не совпадает, бронирование произведено не будет |
quantity | число Uint | Обязательное | количество мест без размещения для резервирования |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
type | строка | Обязательное | RESERVE |
currency | строка | Обязательное если есть забронированные места | валюта корзины по ISO 4217 |
seatList | массив | Обязательное | Список всех забронированных мест пользователя |
cartTimeout | число Uint | Обязательное | Время жизни брони в секундах, через которое вся бронь пользователя снимется |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен тарифный план |
price | число cur | Обязательное | номинальная стоимость (с учетом выбранного тарифного плана) |
placement | boolean | Обязательное | если true, место имеет координаты |
location | объект | Обязательное, если placement = true | координаты места |
new | boolean | Обязательное | если true - место новое в резерве (забронировано только что данной командой) |
location:
Поле | Тип | Обязательность | Описание |
sector | строка | Обязательное | сектор |
row | строка | Обязательное | ряд |
number | строка | Обязательное | место |
Пример запроса:
{
"type": "RESERVE",
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "RESERVATION",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
"seatList": [
{
"seatId": 8759500
},
{
"seatId": 8759501,
"expectedPrice": 100
},
{
"seatId": 8759502,
"tariffPlanId": 120,
"expectedPrice": 50
}
],
"categoryList": [
{
"categoryPriceId": 26811,
"tariffPlanId": 120,
"expectedPrice": 200,
"quantity": 1
},
{
"categoryPriceId": 26811,
"tariffPlanId": 121,
"expectedPrice": 150,
"quantity": 2
}
]
}
Пример ответа:
{
"type": "RESERVE",
"currency": "RUB",
"seatList": [
{
"seatId": 8759500,
"categoryPriceId": 26793,
"price": 100,
"placement": true,
"location": {
"sector": "Партер",
"row": "3",
"number": "1"
},
"new": true
},
{
"seatId": 8759501,
"categoryPriceId": 26793,
"price": 100,
"placement": true,
"location": {
"sector": "Партер",
"row": "3",
"number": "2"
},
"new": true
},
{
"seatId": 8759502,
"categoryPriceId": 26794,
"tariffPlanId": 120,
"price": 50,
"placement": true,
"location": {
"sector": "Партер",
"row": "3",
"number": "3"
},
"new": true
},
{
"seatId": 8760681,
"categoryPriceId": 26812,
"tariffPlanId": 120,
"price": 200,
"placement": false,
"new": true
},
{
"seatId": 8760682,
"categoryPriceId": 26812,
"tariffPlanId": 121,
"price": 150,
"placement": false,
"new": true
},
{
"seatId": 8760683,
"categoryPriceId": 26812,
"tariffPlanId": 121,
"price": 150,
"placement": false,
"new": true
}
],
"cartTimeout": 390,
"command": "RESERVATION",
"resultCode": 0,
"description": "OK"
}
РАЗБРОНИРОВАНИЕ МЕСТ (command = RESERVATION)
Описание: Разбронирование выбранных мест. В ответе присутствуют все оставшиеся после разбронирования места корзины.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | RESERVATION |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
type | строка | Обязательное | UN_RESERVE |
seatList | массив | Необязательное | список мест для разбронирования. Может использоваться как для мест с размещением, так и для мест без размещения. |
categoryList | массив | Необязательное | список категорий и количество мест без размещения для разбронирования. Используется только для разбронирования мест без размещения. |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места (как с размещением, так и без размещения) |
categoryList:
Поле | Тип | Обязательность | Описание |
categoryPriceId | число Ulong | Обязательное | id ценовой категории (только для мест без размещения) |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен тарифный план |
quantity | число Uint | число Uint | количество мест без размещения для разбронирования |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
type | строка | Обязательное | UN_RESERVE |
currency | строка | Обязательное если есть забронированные места | валюта корзины по ISO 4217 |
seatList | массив | Обязательное | Список всех забронированных мест пользователя |
cartTimeout | число Uint | Обязательное | Время жизни брони в секундах, через которое вся бронь пользователя снимется |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен тарифный план |
price | число cur | Обязательное | номинальная стоимость (с учетом выбранного тарифного плана) |
placement | boolean | Обязательное | если true - место с размещением и имеет координаты |
location | объект | Обязательное, если placement = true | координаты места |
new | boolean | Обязательное | для разбронирования всегда false |
location:
Поле | Тип | Обязательность | Описание |
sector | строка | Обязательное | сектор |
row | строка | Обязательное | ряд |
number | строка | Обязательное | место |
Пример запроса:
{
"type": "UN_RESERVE",
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "RESERVATION",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
"seatList": [
{
"seatId": 8759501
},
{
"seatId": 8759502
}
],
"categoryList": [
{
"categoryPriceId": 26811,
"tariffPlanId": 121,
"quantity": 2
}
]
}
Пример ответа:
{
"type": "UN_RESERVE",
"currency": "RUB",
"seatList": [
{
"seatId": 8759500,
"categoryPriceId": 26793,
"price": 100,
"placement": true,
"location": {
"sector": "Партер",
"row": "3",
"number": "1"
},
"new": false
},
{
"seatId": 8760681,
"categoryPriceId": 26812,
"tariffPlanId": 120,
"price": 200,
"placement": false,
"new": false
}
],
"cartTimeout": 200,
"command": "RESERVATION",
"resultCode": 0,
"description": "OK"
}
РАЗБРОНИРОВАНИЕ ВСЕХ МЕСТ (command = RESERVATION)
Описание: Разбронирование всех мест либо всех мест конкретного сеанса. В ответе присутствуют все оставшиеся после разбронирования места корзины.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | RESERVATION |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
type | строка | Обязательное | UN_RESERVE_ALL |
actionEventId | число Ulong | Необязательное | id сеанса |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
type | строка | Обязательное | UN_RESERVE_ALL |
currency | строка | Обязательное если есть забронированные места | валюта корзины по ISO 4217 |
seatList | массив | Обязательное | Список всех забронированных мест пользователя |
cartTimeout | число Uint | Обязательное | Время жизни брони в секундах, через которое вся бронь пользователя снимется |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен тарифный план |
price | число cur | Обязательное | номинальная стоимость (с учетом выбранного тарифного плана) |
placement | boolean | Обязательное | если true, место имеет координаты |
location | объект | Обязательное, если placement = true | координаты места |
new | boolean | Обязательное | для разбронирования всегда false |
location:
Поле | Тип | Обязательность | Описание |
sector | строка | Обязательное | сектор |
row | строка | Обязательное | ряд |
number | строка | Обязательное | место |
Пример запроса:
{
"type": "UN_RESERVE_ALL",
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "RESERVATION",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"type": "UN_RESERVE_ALL",
"currency": "RUB",
"seatList": [],
"cartTimeout": 0,
"command": "RESERVATION",
"resultCode": 0,
"description": "OK"
}
ВНИМАНИЕ! Далее идет описание устаревшей версии команды RESERVATION:
БРОНИРОВАНИЕ МЕСТ В СХЕМЕ ЗАЛА С РАЗМЕЩЕНИЕМ (command = RESERVATION)
Описание: Бронирование мест в схеме зала с размещением.
Перед созданием заказа необходимо забронировать хотя бы одно место.
При получении ошибки в ответе гарантируется, что ни одно место из списка не было забронировано
(транзакционные свойства бронирования).
Если список мест содержит ранее успешно забронированные места, они исключаются из списка.
Все места в списке должны принадлежать одному сеансу.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | RESERVATION |
userId | число Ulong | Обязательное | id пользователя в БС. |
sessionId | строка | Обязательное | id сессии пользователя |
seatList | массив | Обязательное | список id мест для брони |
tariffMap | ассоциативный массив | Необязательное | позволяет забронировать некоторые места из seatList с применением тарифного плана key - id места, value - id тарифного плана |
kdp | число int | Необязательное | код доступа к представлению (КДП) |
type | строка | Обязательное | RESERVE_BY_PLACE |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
type | строка | Обязательное | RESERVE_BY_PLACE |
currency | строка | Обязательное если есть забронированные места | валюта корзины по ISO 4217 |
seatList | Array | массив | Список всех забронированных мест пользователя |
cartTimeout | число Uint | Обязательное | Время жизни брони в секундах через которое вся бронь пользователя снимется |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен тарифный план |
price | число cur | Обязательное | номинальная стоимость (с учетом выбранного тарифного плана) |
placement | boolean | Обязательное | если true, место имеет координаты |
location | Object | Обязательное, если placement = true | координаты места |
available | boolean | Обязательное | true |
location:
Поле | Тип | Обязательность | Описание |
sector | строка | Обязательное | сектор |
row | строка | Обязательное | ряд |
number | строка | Обязательное | место |
Пример запроса:
{
"type": "RESERVE_BY_PLACE",
"seatList": [
100
],
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "RESERVATION",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"type": "RESERVE_BY_PLACE",
"command": "RESERVATION",
"resultCode": 0,
"description": "OK"
}
БРОНИРОВАНЕ МЕСТ В СЗЕМЕ ЗАЛА БЕЗ РАЗМЕЩЕНИЯ (Команда устарела) (command = RESERVATION)
Описание: Бронирование мест в схеме зала без размещения.
Перед созданием заказа необходимо забронировать хотя бы одно место.
При получении ошибки в ответе гарантируется, что ни одно место из списка не было забронировано
(транзакционные свойства бронирования). Бронирование производится указанием ценовой категории и количества мест в
данной категории. При одновременном бронировании мест в нескольких ценовых категориях, все ценовые категории должны
принадлежать одному сеансу. Ценовые категории должны быть без размещения, в противном случае необходимо использовать
метод бронирования мест в схеме зала с размещением.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | RESERVATION |
userId | число Ulong | Обязательное | id пользователя в БС. |
sessionId | строка | Обязательное | id сессии пользователя |
categoryQuantityMap | ассоциативный массив | Обязательное | key - id категории, value - кол-во мест для брони |
tariffMap | ассоциативный массив | Необязательное | позволяет забронировать некоторые категории из categoryQuantityMap с применением тарифного плана key - id категории, value - id тарифного плана |
kdp | число int | Необязательное | код доступа к представлению (КДП) |
type | строка | Обязательное | RESERVE |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
type | строка | Yes | RESERVE |
currency | строка | Обязательное если есть забронированные места | валюта корзины по ISO 4217 |
seatList | массив | Обязательное | Список всех забронированных мест пользователя |
cartTimeout | Uint | Обязательное | Время жизни брони в секундах, через которое вся бронь пользователя снимется |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен тарифный план |
price | Cur | Обязательное | номинальная стоимость (с учетом выбранного тарифного плана) |
placement | boolean | Обязательное | если true, место имеет координаты |
location | Object | Обязательное, если placement = true | координаты места |
available | boolean | Обязательное | true |
location:
Поле | Тип | Обязательность | Описание |
sector | строка | Обязательное | сектор |
row | строка | Обязательное | ряд |
number | строка | Обязательное | место |
Пример запроса:
{
"type": "RESERVE",
"categoryQuantityMap": {
"1072": 1
},
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "RESERVATION",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6",
"kdp": 123
}
Пример ответа:
{
"type": "RESERVE",
"command": "RESERVATION",
"resultCode": 0,
"description": "OK"
}
РАЗБРОНИРОВАНИЕ МЕСТА (устарело) (command = RESERVATION)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | RESERVATION |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
actionEventId | число Ulong | Необязательное | id сеанса, используется для type = UN_RESERVE_ALL |
seatList | массив | Обязательное, если type = UN_RESERVE | список id мест |
type | строка | Обязательное | UN_RESERVE, UN_RESERVE_ALL |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
type | строка | Обязательное | type, переданный в запросе |
currency | строка | Обязательное если есть забронированные места | валюта корзины по ISO 4217 |
seatList | массив | Обязательное | Список всех забронированных мест пользователя |
cartTimeout | число Uint | Обязательное | Время жизни брони в секундах, через которое вся бронь пользователя снимется |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id места |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен тарифный план |
price | число cur | Обязательное | номинальная стоимость (с учетом выбранного тарифного плана) |
placement | boolean | Обязательное | если true, место имеет координаты |
location | объект | Обязательное, если placement = true | координаты места |
available | boolean | Обязательное | true |
location:
Поле | Тип | Обязательность | Описание |
sector | строка | Обязательное | сектор |
row | строка | Обязательное | ряд |
number | строка | Обязательное | место |
Пример 1. запроса снятия брони со всех мест:
{
"type": "UN_RESERVE_ALL",
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "RESERVATION",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример 2. запроса снятия брони со всех мест конкретного сеанса:
{
"type": "UN_RESERVE_ALL",
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"actionEventId": 5,
"command": "RESERVATION"
}
Пример 3. запроса снятия брони со списка мест:
{
"type": "UN_RESERVE",
"seatList": [
4790
],
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "RESERVATION",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"command": "RESERVATION",
"type": "UN_RESERVE",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ СПИСКА ЗАБРОНИРОВАННЫХ МЕСТ (command = GET_CART)
Описание: метод возвращает места, забронированные пользователем, сгруппированные по сеансам.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_CART |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
rawCoordinates | boolean | Необязательное | если присутствует и равно true, то в ответе поля sector, row, number будут иметь стандартные значения (как везде). Рекомендуется всегда передавать true |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
currency | строка | Обязательное | валюта корзины по ISO 4217 |
totalSum | число cur | Обязательное | Общая сумма бронирования |
time | число Uint | Обязательное | Время жизни брони в секундах, через которое вся бронь пользователя снимется |
totalServiceCharge | число cur | Обязательное | сервисный сбор в корзине |
actionEventList | массив | Обязательное | список сеансов, на которые забронированы места |
actionEventList:
Поле | Тип | Обязательность | Описание |
actionEventId | число Ulong | Обязательное | id сеанса |
day | строка | Обязательное | дата проведения сеанса в формате dd.MM.yyyy |
time | строка | Обязательное | время проведения сеанса в формате HH:mm |
actionId | число Ulong | Обязательное | id представления |
actionName | строка | Обязательное | краткое наименование представления |
fullActionName | строка | Обязательное | полное наименование представления |
smallPosterUrl | строка | Обязательное | url постера (320 х 335) |
bigPosterUrl | строка | Обязательное | url постера (640 х 670) |
cityId | число Ulong | Обязательное | id города |
cityName | строка | Обязательное | наименование города |
venueId | число Ulong | Обязательное | id места проведения |
venueName | строка | Обязательное | наименование места проведения |
seatingPlanId | число Ulong | Обязательное | id схемы зала |
seatingPlanName | строка | Обязательное | наименование схемы зала |
seatList | массив | Обязательное | список забронированных мест |
serviceCharge | число cur | Обязательное | сервисный сбор по сеансу |
fullNameRequired | boolean | Обязательное | Если true, то полное имя покупателя должно быть обязательно указано при создании заказа |
phoneRequired | boolean | Обязательное | Если true, то номер телефона покупателя должен быть обязательно указано при создании заказа |
fanIdRequired | boolean | Обязательное | fanId покупателя должен быть обязательно указан при создании заказа |
seatList:
Поле | Тип | Обязательность | Описание |
seatId | число Ulong | Обязательное | id забронированного места |
categoryPriceId | число Ulong | Обязательное | id ценовой категории |
categoryPriceName | строка | Обязательное | наименование ценовой категории места |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен |
tariffPlanName | строка | Необязательное | наименование тарифного плана, присутствует если применен |
sector* | строка | Необязательное | сектор |
row* | строка | Необязательное | ряд |
number* | строка | Необязательное | место |
nominal | число cur | Обязательное | номинальная стоимость |
price | число cur | Обязательное | стоимость |
serviceCharge | число cur | Обязательное | сервисный сбор по месту |
discount | boolean | Обязательное | была ли скидка по месту, если false, то price равен nominal, если true, то discountReason присутствует в ответе |
discountReason | строка | Необязательное | причина скидки, если discount равен true |
*Если схема зала местовая, то поля sector, row, number будут присутствовать в ответе.
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_CART",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"time": 588,
"totalSum": 1200,
"totalServiceCharge": 0,
"actionEventList": [
{
"actionEventId": 344,
"day": "02.06.2016",
"time": "18:00",
"actionName": "SOPRANO ШОУ",
"fullActionName": "Михаил Турецкий представляет вечер любви",
"smallPosterUrl": "https://api.bil24.pro:1240/image?type=smallPoster&actionId=80&hash=r9qfi771jid3pf0or7vxc8xrb",
"bigPosterUrl": "https://api.bil24.pro:1240/image?type=bigPoster&actionId=80&hash=m3b37t9tynyes52fxx7zw6gdl",
"cityId": 1,
"cityName": "Сочи",
"venueId": 10,
"venueName": "Зимний театр",
"serviceCharge": 0,
"seatList": [
{
"seatId": 524692,
"categoryPriceName": "Шестая",
"price": 600,
"sector": "Сектор Партер",
"row": "Ряд 9",
"number": "Место 11",
"serviceCharge": 0
},
{
"seatId": 524691,
"categoryPriceName": "Шестая",
"price": 600,
"sector": "Сектор Партер",
"row": "Ряд 9",
"number": "Место 10",
"serviceCharge": 0
}
]
}
],
"command": "GET_CART",
"resultCode": 0,
"description": "OK"
}
СОЗДАНИЕ ЗАКАЗА (command = CREATE_ORDER)
Описание: cоздание заказа из забронированных мест. Для интерфейса Билетная система вместо данного метода необходимо использовать метод CREATE_ORDER_EXT.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | CREATE_ORDER |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
строка | Необязательное | почта, на которую надо отправить билеты после успешной оплаты (ТОЛЬКО ДЛЯ КАССЫ и ПРИГЛАСИТЕЛЬНЫХ) |
|
phone | строка | Необязательное | номер телефона покупателя |
fullName | строка | Необязательное | Полное имя покупателя, которое отобразится на билете |
successUrl | строка | Обязательное | редирект на successUrl после успешной оплаты |
failUrl | строка | Обязательное | редирект на failUrl после НЕуспешной оплаты |
discount | число cur | Необязательное | скидка в % (ТОЛЬКО ДЛЯ КАСС И ПРИГЛАСИТЕЛЬНЫХ) |
serviceCharge | число cur | Необязательное | сервисный сбор в % (ТОЛЬКО ДЛЯ КАСС) |
cashback | ассоциативный массив | Необязательное | key - id сеанса value - число cur, размер кэшбэка в процентах (ТОЛЬКО ДЛЯ СПЕЦИАЛЬНЫХ ИНТЕРФЕЙСОВ) |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
formUrl | строка | Обязательное | ссылка для оплаты |
orderId | число Ulong | Обязательное | id заказа |
externalOrderId | массив | Обязательное | список строковых идентификаторов заказа во внешних БС |
statusExtStr | строка | Обязательное | статус заказа |
statusExtInt | число int | Обязательное | статус заказа |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"successUrl": "https://site.ru/success.php",
"failUrl": "https://site.ru/fail.php",
"command": "CREATE_ORDER",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"formUrl": "https://test.paymentgate.ru/testpayment/merchants/bil24/mobile_payment_ru.html?mdOrder=b8bb4b76-3a73-4816-92d4-954aa7d01e&pageView=MOBILE",
"statusExtStr": "NEW",
"statusExtInt": 0,
"command": "CREATE_ORDER",
"resultCode": 0,
"description": "OK"
}
СОЗДАНИЕ ЗАКАЗА (command = CREATE_ORDER_EXT)*
Описание: Создание заказа из забронированных мест. Используется вместо метода CREATE_ORDER для интерфейса Билетная система. После создания заказ принимает статус NEW.
*только для интерфейса Билетная система
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | CREATE_ORDER_EXT |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
longReservation | boolean | Необязательное | true - долговременное бронирование |
строка | Необязательное | почта покупателя (информационное поле) | |
phone | строка | Необязательное | номер телефона покупателя |
fullName | строка | Необязательное | полное имя покупателя, которое отобразится на билете |
discountPercent | число cur | Необязательное | скидка в процентах, значение от 0 до 100 включительно |
chargePercent | число cur | Необязательное | сервисный сбор в процентах, значение не меньше 0 |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
orderId | число Ulong | Обязательное | id заказа |
externalOrderId | массив | Обязательное | список строковых идентификаторов заказа в ВБС |
currency | строка | Обязательное | валюта заказа по ISO 4217 |
discount | число cur | Обязательное | скидка в рублях |
serviceCharge | число cur | Обязательное | сервисный сбор (СС) в рублях |
sum | число cur | Обязательное | сумма заказа, номинал, без учета скидки и СС |
totalSum | число cur | Обязательное | общая сумма |
quantity | число Uint | Обязательное | количество билетов в заказе |
orderTimeout | число PInt | Обязательное | квремя жизни заказа в минутах |
Пример запроса:
{
"userId": 18109,
"sessionId": "d6035a755bd0862e713e03f337505bd0",
"command": "CREATE_ORDER_EXT",
"fid": 1184,
"token": "24d3b97b64dfab187a5f"
}
Пример ответа:
{
"orderId": 64,
"discount": 10,
"serviceCharge": 99,
"sum": 1000,
"totalSum": 1089,
"quantity": 5,
"command": "CREATE_ORDER_EXT",
"resultCode": 0,
"description": "OK"
}
ОТМЕНА ЗАКАЗА (command = CANCEL_ORDER)*
Описание: отмена ранее созданного заказа. Отменить можно только заказ со статусом NEW. В результате запроса заказ примет статус CANCELLING или CANCELLED. При попытке отменить заказ не со статусом NEW, ошибки не произойдет, статус заказа не изменится, а в ответе придет актуальный статус заказа.
Когда статус заказа примет значение CANCELLED, места, входящие в заказ, станут свободными.
*только для интерфейса Билетная система
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | CANCEL_ORDER |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
orderId | число Ulong | Обязательное | id заказа |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
orderId | число Ulong | Обязательное | id заказа |
statusExtStr | строка | Обязательное | статус заказа |
statusExtInt | число int | Обязательное | статус заказа |
Пример запроса:
{
"orderId": 64,
"userId": 18109,
"sessionId": "d6035a755bd0862e713e03f337505bd0",
"command": "CANCEL_ORDER",
"fid": 1184,
"token": "24d3b97b64dfab187a5f"
}
Пример ответа:
{
"orderId": 64,
"statusExtStr": "CANCELLED",
"statusExtInt": -2,
"command": "CANCEL_ORDER",
"resultCode": 0,
"description": "OK"
}
ОПЛАТА ЗАКАЗА (command = PAY_ORDER)*
Описание: оплата ранее созданного заказа. Оплатить можно только заказ со статусом NEW.
В результате запроса заказ примет статус PROCESSING или PAID.
При попытке оплатить заказ не со статусом NEW, ошибки не произойдет, статус заказа не изменится, а в ответе придет актуальный статус заказа.
*только для интерфейса Билетная система
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | PAY_ORDER |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
orderId | число Ulong | Обязательное | id заказа |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
orderId | число Ulong | Обязательное | id заказа |
statusExtStr | строка | Обязательное | статус заказа |
statusExtInt | число int | Обязательное | статус заказа |
Пример запроса:
{
"orderId": 64,
"userId": 18109,
"sessionId": "d6035a755bd0862e713e03f337505bd0",
"command": "PAY_ORDER",
"fid": 1184,
"token": "24d3b97b64dfab187a5f"
}
Пример ответа:
{
"orderId": 64,
"statusExtStr": "PAID",
"statusExtInt": 2,
"command": "PAY_ORDER",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ ЗАКАЗОВ ПОЛЬЗОВАТЕЛЯ (command = GET_ORDERS)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_ORDERS |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
timeZone | строка | Необязательное | часовой пояс, в котором возвращается дата создания заказа, если не указан, используется Europe/Moscow |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
orderList | массив | Обязательное | список заказов |
orderList:
Поле | Тип | Обязательность | Описание |
orderId | число Ulong | Обязательное | id заказа в БС |
currency | строка | Обязательное | валюта заказа по ISO 4217 |
date | строка | Обязательное | дата создания заказа в формате datePattern |
datePattern | строка | Обязательное | формат даты |
discount | число cur | Обязательное | скидка в рублях |
serviceCharge | число cur | Обязательное | сервисный сбор в рублях |
sum | число cur | Обязательное | сумма заказа |
quantity | число Uint | Обязательное | количество билетов в заказе |
userMessage | строка | Обязательное | сообщение пользователю от банка |
statusExtStr | строка | Обязательное | статус заказа |
statusExtInt | число int | Обязательное | статус заказа |
formUrl | строка | Необязательное | ссылка для оплаты |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_ORDERS",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"orderList": [
{
"orderId": 64,
"date": "06.08.2015 18:48",
"datePattern": "dd.MM.yyyy HH:mm",
"discount": 0,
"serviceCharge": 0,
"sum": 600,
"quantity": 4,
"statusExtStr": "PAID",
"statusExtInt": 2,
"formUrl": "https://test.paymentgate.ru/testpayment/merchants/bil24/mobile_payment_ru.html?mdOrder=2a2637b4-3d2b-44c4-b29f-4c3b39d17722&pageView=MOBILE",
}
],
"command": "GET_ORDERS",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ ЗАКАЗОВ ПОЛЬЗОВАТЕЛЯ (command = GET_ORDERS_EXT)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_ORDERS_EXT |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
fromDate | строка | Обязательное | дата в формате dd.MM.yyyy HH:mm:ss |
timeZone | строка | Необязательное | часовой пояс, с учетом которого рассчитывается временной интервал, если не указан, используется Europe/Moscow |
rawCoordinates | boolean | Необязательное | если присутствует и равно true, то в ответе поля sector, row, number, categoryName будут иметь стандартные значения (как везде). Рекомендуется всегда передавать true |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
orderList | массив | Обязательное | список заказов |
orderDatePattern | строка | Обязательное | формат даты заказа |
ticketDatePattern | строка | Обязательное | формат даты билета |
orderList:
Поле | Тип | Обязательность | Описание |
orderId | число Ulong | Обязательное | id заказа в БС |
currency | строка | Обязательное | валюта заказа по ISO 4217 |
date | строка | Обязательное | дата создания заказа в формате orderDatePattern |
discount | число cur | Обязательное | скидка в рублях |
serviceCharge | число cur | Обязательное | сервисный сбор в рублях |
sum | число cur | Обязательное | сумма заказа |
quantity | число Uint | Обязательное | количество билетов в заказе |
ticketList | массив | Обязательное | список билетов |
statusExtStr | строка | Обязательное | статус заказа |
statusExtInt | число int | Обязательное | статус заказа |
formUrl | строка | Необязательное | ссылка для оплаты заказа |
Пример запроса:
{
"fromDate": "01.01.2016 00:00:00",
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_ORDERS_EXT",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"orderDatePattern": "dd.MM.yyyy HH:mm:ss",
"ticketDatePattern": "dd.MM.yyyy HH:mm",
"orderList": [
{
"orderId": 3037,
"date": "12.12.2016 13:29:53",
"discount": 0,
"serviceCharge": 30.00,
"sum": 630.00,
"quantity": 2,
"ticketList": [
{
"ticketId": 29965,
"date": "09.01.2017 10:00",
"actionName": "Звёздные войны: Пробуждение силы",
"venueName": "Кинотеатр Люксор",
"sector": "Сектор Партер",
"row": "Ряд 2",
"number": "Место 12",
"categoryName": "Категория: Третья",
"price": 300
},
{
"ticketId": 29966,
"date": "09.01.2017 10:00",
"actionName": "Звёздные войны: Пробуждение силы",
"venueName": "Кинотеатр Люксор",
"sector": "Сектор Партер",
"row": "Ряд 1",
"number": "Место 13",
"categoryName": "Категория: Третья",
"price": 300
}
],
"statusExtStr": "PAID",
"statusExtInt": 2,
},
{
"orderId": 2438,
"date": "30.08.2016 00:14:55",
"discount": 0,
"serviceCharge": 0.00,
"sum": 0.00,
"quantity": 1,
"ticketList": [
{
"ticketId": 29095,
"date": "31.07.2017 09:00",
"actionName": "КЛУБ ЛЮБИМЫХ",
"venueName": "территория Сочи",
"categoryName": "Категория: Золотая",
"price": 0
}
],
"status": 1
}
],
"command": "GET_ORDERS_EXT",
"resultCode": 0,
"description": "OK"
}
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_ACTION_EVENTS_GROUPED_BY_TICKETS |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
list | массив | Обязательное | список сеансов |
dayPattern | строка | Обязательное | шаблон дня сеанса (dd.MM.yyyy) |
timePattern | строка | Обязательное | шаблон времени сеанса (HH:mm) |
list:
Поле | Тип | Обязательность | Описание |
actionEventId | число Ulong | Обязательное | id сеанса |
actionName | строка | Обязательное | краткое наименование представления |
fullActionName | строка | Обязательное | полное наименование представления |
currency | строка | Обязательное | валюта сеанса по ISO 4217 |
day | строка | Обязательное | день сеанса в формате dayPattern |
time | строка | Обязательное | время сеанса в формате timePattern |
bigPosterUrl | строка | Обязательное | ссылка на постер |
smallPosterUrl | строка | Обязательное | ссылка на постер |
cityName | строка | Обязательное | название города |
venueName | строка | Обязательное | наименование места проведения |
quantity | число Uint | Обязательное | количество билетов |
sum | число cur | Обязательное | общая сумма билетов |
ticketsUrl | строка | Обязательное | ссылка на билеты в формате pdf |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_ACTION_EVENTS_GROUPED_BY_TICKETS",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"dayPattern": "dd.MM.yyyy",
"timePattern": "HH:mm",
"list": [
{
"actionEventId": 5,
"actionName": "Балет Спящая красавица",
"day": "28.09.2015",
"time": "11:01",
"bigPosterUrl": "https://api.bil24.pro:1240/image?type=bigPoster&actionId=2&hash=lpmbkeg1lae6najf2zd099kgs"
},
{
"actionEventId": 22,
"actionName": "Кино Эверест",
"day": "30.09.2015",
"time": "15:00",
"bigPosterUrl": "https://api.bil24.pro:1240/image?type=bigPoster&actionId=11&hash=rf8qt7yz5z4s96hmko0kmkuf8"
},
{
"actionEventId": 8,
"actionName": "Концерт группы Scooter",
"day": "12.10.2015",
"time": "21:05",
"bigPosterUrl": "https://api.bil24.pro:1240/image?type=bigPoster&actionId=3&hash=mtpqe8hih74wyla45p983zmt3"
}
],
"command": "GET_ACTION_EVENTS_GROUPED_BY_TICKETS",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ КУПЛЕННЫХ БИЛЕТОВ ПО ID ПРЕДСТАВЛЕНИЯ (command = GET_TICKETS_BY_ACTION_EVENT)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_TICKETS_BY_ACTION_EVENT |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
actionEventId | число Ulong | Обязательное | id сеанса |
sizeQrCode | число Uint | Обязательное | размер Qr кода (задается одна сторона, картинка будет квадратная) |
widthBarCode | число Uint | Обязательное | ширина Bar кода |
heightBarCode | число Uint | Обязательное | высота Bar кода |
type | строка | Обязательное | тип изображения. PNG, JPG |
rawCoordinates | boolean | Необязательное | если присутствует и равно true, то в ответе поля sector, row, number, categoryName будут иметь стандартные значения (как везде). Рекомендуется всегда передавать true |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
datePattern | строка | Обязательное | формат даты в билете (пример: dd.MM.yyyy HH:mm) |
actionId | число Ulong | Обязательное | id представления, переданный в запросе |
actionName | строка | Обязательное | Имя представления |
currency | строка | Обязательное | валюта сеанса по ISO 4217 |
ticketList | массив | Обязательное | список билетов |
ticketList:
Поле | Тип | Обязательность | Описание |
ticketId | число Ulong | Обязательное | id билета |
date | строка | Обязательное | дата представления |
venueName | строка | Обязательное | наименование места проведения |
venueAddress | строка | Обязательное | адрес места проведения |
actionName | строка | Обязательное | название представления |
sector | строка | Необязательное | сектор |
row | строка | Необязательное | ряд |
number | строка | Необязательное | место |
categoryName | строка | Обязательное | информация о категории места |
tariffPlanName | строка | Необязательное | наименование тарифного плана, присутствует если применен |
price | число cur | Обязательное | цена билета |
totalPrice | число cur | Обязательное | цена билета с учетом СС |
serviceCharge | число cur | Обязательное | СС |
qrCodeImg | строка | Обязательное | Qr код в Base64 в формате, переданном в запросе |
barCodeImg | строка | Обязательное | Bar код в Base64 в формате, переданном в запросе |
barCodeNumber | строка | Обязательное | значение штрихкода |
smallPosterUrl | строка | Обязательное | url постера (320х335) |
legalOwnerName | строка | Обязательное | название устроителя |
legalOwnerInn | строка | Обязательное | ИНН устроителя |
legalOwnerPhone | строка | Обязательное | телефон устроителя |
age | строка | Обязательное | Возрастное ограничение |
fullName | строка | Необязательное | полное имя покупателя, которое отобразится на билете |
Пример запроса:
{
"actionEventId": 5,
"sizeQrCode": 500,
"widthBarCode": 500,
"heightBarCode": 100,
"type": "PNG",
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_TICKETS_BY_ACTION_EVENT",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"datePattern": "dd.MM.yyyy HH:mm",
"actionEventId": 5,
"actionName": "Кармен",
"ticketList": [
{
"ticketId": 10075,
"date": "28.09.2015 11:01",
"venueName": "Зимний театр",
"venueAddress": "ул. Театральная, 2",
"actionName": "Кармен",
"sector": "Сектор Партер",
"row": "Ряд 1",
"number": "Место 22",
"categoryName": "Категория Х",
"price": 1000,
"totalPrice": 0,
"serviceCharge": 0,
"qrCodeImg": "iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0AQAAAADjreInAAACwElEQVR42u3dS27jMBBFUe2A+99l7YCdjmjWq6KCbiCjJ1zDA1n2YUaEWB8y1/zVKy53H9d+fX1eV2N9/XXx9/25s34mBI939zqVEse1J9c9xH2h979nDx5v7mPNijUxRv5uz6v91R76Jnj8e/z3/FkfZebk4+S+xuPf6sfMOTPLmml/xONf5WsonaulHUvcYCT+cf2Fx7v5jJ/jf98/xN94vJuv2VCNk/dESvmP/Cse7+ajpkTHLNGyhNY57h4Uj3+F32kjTZWWKFrvy1d4vLeXqHgVyXacMCVbOmSgkWkmPN7b6zpJEqalYNZWXJETCY+39zVI0OVRqyu3MkPmj",
"barCodeImg": "iVBORw0KGgoAAAANSUhEUgAAAfQAAABkAQAAAABYvP/QAAAAYklEQVR42u3LsQ2AIBBG4TMWVzICm+hiJDAabMIIV1KY/GpcwuI1r3n5TFGyK3atLer0njQ1dNk6o5iPJ+qpmUZYXsd323urfCgMj8fj8Xg8Ho/H4/F4PB6Px+PxeDz+Z/4GLPLRZ1RHc5UAAAAASUVORK5CYII="
"barCodeNumber": "0123456789123",
"smallPosterUrl": "https://..."
"legalOwner": "Организатор...",
"age": "18+",
}
],
"command": "GET_TICKETS_BY_ACTION_EVENT",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ КУПЛЕННЫХ БИЛЕТОВ ПО ID ЗАКАЗА (command = GET_TICKETS_BY_ORDER)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_TICKETS_BY_ORDER |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
orderId | число Ulong | Обязательное | id заказа |
sizeQrCode | число Uint | Необязательное | размер Qr кода (задается одна сторона, картинка будет квадратная) |
widthBarCode | число Uint | Необязательное | ширина Bar кода |
heightBarCode | число Uint | Необязательное | высота Bar кода |
type | строка | Необязательное | тип изображения. PNG, JPG |
timeZone | строка | Необязательное | часовой пояс, в котором возвращается дата создания заказа, если не указан, используется Europe/Moscow |
rawCoordinates | boolean | Необязательное | если присутствует и равно true, то в ответе поля sector, row, number, categoryName будут иметь стандартные значения (как везде). Рекомендуется всегда передавать true |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
corderDatePattern | строка | Обязательное | формат даты заказа (например: dd.MM.yyyy HH:mm:ss) |
actionEventDatePattern | строка | Обязательное | формат даты сеанса в билете (например: dd.MM.yyyy HH:mm) |
orderId | число Ulong | Обязательное | id заказа, переданный в запросе |
currency | строка | Обязательное | валюта заказа по ISO 4217 |
date | строка | Обязательное | дата заказа в формате orderDatePattern |
discount | число cur | Обязательное | скидка |
serviceCharge | число cur | Обязательное | сервисный сбор (СС) |
sum | число cur | Обязательное | сумма без СС |
totalSum | число cur | Обязательное | общая сумма |
quantity | число Uint | Обязательное | количество билетов |
statusExtStr | строка | Обязательное | статус заказа |
statusExtInt | число int | Обязательное | статус заказа |
ticketList | массив | Обязательное | список билетов |
ticketList:
Поле | Тип | Обязательность | Описание |
ticketId | число Ulong | Обязательное | id билета |
ticketRainTicketId | число long | Необязательное | id билета в системе TicketRain |
seatId | число Ulong | Обязательное | id места |
date | строка | Обязательное | дата представления в формате actionEventDatePattern |
venueName | строка | Обязательное | наименование места проведения |
venueAddress | строка | Обязательное | адрес места проведения |
actionName | строка | Обязательное | название представления |
sector | строка | Необязательное | сектор |
row | строка | Необязательное | ряд |
number | строка | Необязательное | место |
categoryName | строка | Обязательное | информация о ценовой категории места |
tariffPlanId | число Ulong | Необязательное | id тарифного плана, присутствует если применен |
tariffPlanName | строка | Необязательное | наименование тарифного плана, присутствует если применен/td> |
price | число cur | Обязательное | цена билета |
totalPrice | число cur | Обязательное | цена билета с учетом СС |
serviceCharge | число cur | Обязательное | СС |
qrCodeImg | строка | Обязательное | Qr код в Base64 в формате, переданном в запросе |
barCodeImg | строка | Обязательное | Bar код в Base64 в формате, переданном в запросе |
barCodeNumber | строка | Обязательное | значение штрихкода |
barCodeType | строка | Обязательное | тип штрихкода: EAN_13, ITF, CODE_128A, CODE_128B, CODE_128C, CODE_39 |
smallPosterUrl | строка | Обязательное | url постера (320х335) |
legalOwnerName | строка | Обязательное | название устроителя |
legalOwnerInn | строка | Обязательное | ИНН устроителя |
legalOwnerPhone | строка | Обязательное | телефон устроителя |
age | строка | Обязательное | Возрастное ограничение |
statusInt | число | Обязательное | статус билета |
statusStr | строка | Обязательное | статус билета |
Статус билета:
statusInt | statusStr |
0 | Не использовал |
1 | Вошел |
2 | Вышел |
3 | Вернул билет |
4 | Возврат билета в ВБС |
5 | Впустил контроллер |
Пример запроса:
{
"orderId": 5,
"sizeQrCode": 500,
"widthBarCode": 500,
"heightBarCode": 100,
"type": "PNG",
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_TICKETS_BY_ORDER",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"orderDatePattern": "dd.MM.yyyy HH:mm:ss",
"actionEventDatePattern": "dd.MM.yyyy HH:mm",
"orderId": 5,
"date": "27.09.2015 10:01:01",
"discount": 0,
"serviceCharge": 0,
"sum": 1000,
"totalSum": 1000,
"quantity": 5,
"statusExtStr": "PAID",
"statusExtInt": 2,
"ticketList": [
{
"ticketId": 10075,
"date": "28.09.2015 11:01",
"venueName": "Зимний театр",
"venueAddress": "ул. Театральная, 2",
"actionName": "Кармен",
"sector": "Сектор Партер",
"row": "Ряд 1",
"number": "Место 22",
"categoryName": "Категория Х",
"price": 1000,
"totalPrice": 0,
"serviceCharge": 0,
"qrCodeImg": "iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0AQAAAADjreInAAACwElEQVR42u3dS27jMBBFUe2A+99l7YCdjmjWq6KCbiCjJ1zDA1n2YUaEWB8y1/zVKy53H9d+fX1eV2N9/XXx9/25s34mBI939zqVEse1J9c9xH2h979nDx5v7mPNijUxRv5uz6v91R76Jnj8e/z3/FkfZebk4+S+xuPf6sfMOTPLmml/xONf5WsonaulHUvcYCT+cf2Fx7v5jJ/jf98/xN94vJuv2VCNk/dESvmP/Cse7+ajpkTHLNGyhNY57h4Uj3+F32kjTZWWKFrvy1d4vLeXqHgVyXacMCVbOmSgkWkmPN7b6zpJEqalYNZWXJETCY+39zVI0OVRqyu3MkPmj",
"barCodeImg": "iVBORw0KGgoAAAANSUhEUgAAAfQAAABkAQAAAABYvP/QAAAAYklEQVR42u3LsQ2AIBBG4TMWVzICm+hiJDAabMIIV1KY/GpcwuI1r3n5TFGyK3atLer0njQ1dNk6o5iPJ+qpmUZYXsd323urfCgMj8fj8Xg8Ho/H4/F4PB6Px+PxeDz+Z/4GLPLRZ1RHc5UAAAAASUVORK5CYII="
"barCodeNumber": "0123456789123",
"smallPosterUrl": "https://..."
"legalOwner": "Организатор...",
"age": "18+",
}
],
"command": "GET_TICKETS_BY_ACTION_ORDER",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ ИНФОРМАЦИИ ПО ПРОДАННЫМ БИЛЕТАМ ЗА КОНКРЕТНЫЙ ДЕНЬ (command = GET_TICKETS_BY_DAY)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_TICKETS_BY_DAY |
date | строка | Обязательное | дата в формате dd.MM.yyyy |
timeZone | строка | Необязательное | часовой пояс, с учетом которого рассчитывается временной интервал, если не указан, используется Europe/Moscow |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
date | строка | Обязательное | дата в формате dd.MM.yyyy |
cityList | массив | Обязательное | список городов |
cityList:
Поле | Тип | Обязательность | Описание |
cityId | число Ulong | Обязательное | id города |
actionList | массив | Обязательное | список представлений |
actionList:
Поле | Тип | Обязательность | Описание |
actionId | число Ulong | Обязательное | id представления |
actionEventList | массив | Обязательное | список сеансов |
actionEventList:
Поле | Тип | Обязательность | Описание |
actionEventId | число Ulong | Обязательное | id сеанса |
ticketList | массив | Обязательное | список билетов |
ticketList:
Поле | Тип | Обязательность | Описание |
ticketId | число Ulong | Обязательное | id билета |
seatId | число Ulong | Обязательное | id места |
currency | строка | Обязательное | валюта билета по ISO 4217 |
date | строка | Обязательное | дата продажи в формате dd.MM.yyyy HH:mm:ss |
price | число cur | Обязательное | цена билета |
discount | число cur | Обязательное | скидка |
serviceCharge | число cur | Обязательное | сервисный сбор (СС) |
totalPrice | число cur | Обязательное | цена билета с учетом СС и скидки |
refunded | boolean | Обязательное | true - билет возвращен |
Пример запроса:
{
"date": "08.06.2017",
"command": "GET_TICKETS_BY_DAY",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"date": "07.06.2017",
"cityList": [
{
"cityId": 3,
"actionList": [
{
"actionId": 323,
"actionEventList": [
{
"actionEventId": 1814,
"ticketList": [
{
"ticketId": 30935,
"seatId": 2943773,
"date": "07.06.2017 12:57:01",
"price": 3000,
"discount": 0,
"serviceCharge": 0,
"totalPrice": 3000.00,
"refunded": false
},
]
}
]
}
]
}
],
"command": "GET_TICKETS_BY_DAY",
"resultCode": 0,
"description": "OK"
}
ПЕЧАТЬ БИЛЕТОВ (command = PRINT_TICKETS)
Описание: позволяет создать файл с билетами конкретного пользователя. Билеты помещаются в один файл в переданном порядке.
*только для интерфейсов Билетный агент и Билетная система
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | PRINT_TICKETS |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
ticketIdList | массив | Обязательное | список id билетов (в списке должны быть билеты одного сеанса) |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
mimeType | строка | Обязательное | MIME-тип файла, например application/pdf |
extension | строка | Обязательное | расширение файла, например pdf |
ticketsFile | строка | Обязательное | содержимое файла, закодированное в Base64 |
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ПОЛЬЗОВАТЕЛЕ (command = GET_USER_INFO)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_USER_INFO |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
reservedSeats | число Uint | Обязательное | Количество забронированных мест в корзине |
tickets | число Uint | Обязательное | Количество купленных билетов |
mecs | число Uint | Обязательное | Количество купленных карт |
promoCodes | число Uint | Обязательное | Общее количество промокодов |
activePromoCodes | число Uint | Обязательное | Количество активных промокодов |
orders | число Uint | Обязательное | Общее количество заказов |
activeOrders | число Uint | Обязательное | Количество незавершенных заказов (статусы NEW, PROCESSING, CANCELLING) |
newOrders | число Uint | Обязательное | Количество новых, ожидающих оплаты заказов (статус NEW) |
paidOrders | число Uint | Обязательное | Количество оплаченных заказов (статус PAID) |
cancelledOrders | число Uint | Обязательное | Количество отмененных заказов (статус CANCELLED) |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_USER_INFO",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"seatInReserve": 2,
"orderInWait": 0,
"command": "GET_USER_INFO",
"resultCode": 0,
"description": "OK"
}
ОТПРАВКА БИЛЕТОВ НА ПОЧТУ (command = SEND_TICKETS_TO_EMAIL)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | SEND_TICKETS_TO_EMAIL |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
строка | Обязательное | почтовый адрес | |
ticketIdList | массив | Обязательное | список id билетов |
Пример запроса:
{
"email": "email@list.ru",
"ticketIdList": [
10261
],
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "SEND_TICKETS_TO_EMAIL",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"command": "SEND_TICKETS_TO_EMAIL",
"resultCode": 0,
"description": "OK"
}
Описание: Метод помечает билет/заказ пользователя как удаленный, чтобы на интерфейсах в дальнейшем их не подгружать.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | DELETE |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
id | число Ulong | Обязательное | id элемента, в зависимости от destination |
destination | строка | Обязательное | может принимать значения ORDER, TICKET, TICKETS_BY_ACTION_EVENT |
* destination = TICKETS_BY_ACTION_EVENT - помечаются как удаленные все билеты пользователя на конкретный сеанс.
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
id | число Ulong | Обязательное | id элемента, который передавался в запросе |
destination | строка | Обязательное | destination, который передавался в запросе |
Пример запроса удаления заказа:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"id": 1, //id заказа
"destination": "ORDER"
"command": "DELETE",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа успешного удаления:
{
"command": "DELETE",
"id": 1, //id удаленного заказа
"destination": "ORDER"
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ЗАКАЗЕ (command = GET_ORDER_INFO)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_ORDER_INFO |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
orderId | число Ulong | Обязательное | id заказа |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
orderId | число Ulong | Обязательное | id заказа, переданного в запросе |
currency | строка | Обязательное | валюта заказа по ISO 4217 |
statusExtStr | строка | Обязательное | статус заказа |
statusExtInt | число int | Обязательное | статус заказа |
orderInfoList | массив | Обязательное |
orderInfoList:
Поле | Тип | Обязательность | Описание |
actionId | число Ulong | Обязательное | id представления |
actionName | строка | Обязательное | название представления |
quantity | число Uint | Обязательное | количество билетов |
sum | число cur | Обязательное | общая сумма |
smallPosterUrl | строка | Обязательное | url постера (320х335) |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"orderId": 829,
"command": "GET_ORDER_INFO",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"orderId": 829,
"statusExtStr": "NEW",
"statusExtInt": 0,
"orderInfoList": [
{
"actionId": 80,
"actionName": "В сердце моря",
"quantity": 1,
"sum": 200,
"smallPosterUrl": "https://api.bil24.pro:1240/image?type=smallPoster&actionId=80&hash=q823uap2k22aj0da1hbktd0ch"
}
],
"command": "GET_ORDER_INFO",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ ПОЧТЫ (command = GET_EMAIL)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_EMAIL |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
строка | Обязательное | почта пользователя | |
needSendTicketEmail | boolean | Обязательное | true - отправлять билеты на почту |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_EMAIL",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"email": "westleyy@rambler.ru",
"needSendTicketEmail": true,
"command": "GET_EMAIL",
"resultCode": 0,
"description": "OK"
}
ОТПРАВКА GCM ТОКЕНА НА СЕРВЕР (command = SET_PUSH_TOKEN)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | SET_PUSH_TOKEN |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
pushToken | строка | Обязательное | токен |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"pushToken": "ec7c5ae54051c60a219d672c4b7d743",
"command": "SET_PUSH_TOKEN",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"command": "SET_PUSH_TOKEN",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧИТЬ НОВОСТИ (command = GET_NEWS)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_NEWS |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
time | число long | Обязательное | время новости в мс |
count | число Uint | Обязательное | количество новостей (от 1 до 30) |
cursorMode | строка | Обязательное | forward - новые новости backward - старые новости |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
datePattern | строка | Обязательное | паттерн даты новости |
cursorMode | строка | Обязательное | cursorMode, переданный в запросе |
serverUnixTime | число long | Обязательное | серверное время в мс |
last | boolean | Обязательное | true - последняя новость, false - не посл новость |
newsList | массив | Обязательное | список новостей |
newsList:
Поле | Тип | Обязательность | Описание |
id | число Ulong | Обязательное | id новости |
unixTime | число long | Обязательное | время новости в мс |
date | строка | Обязательное | дата в формате datePattern |
header | строка | Обязательное | Заголовок новости |
fullDescription | строка | Обязательное | Описание новости |
Пример запроса (получить 10 новостей младше текущей даты):
{
"time": 0,
"count": 10,
"cursorMode": "backward",
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_NEWS",
"fid": 11851,
"token": "2f1173e2b12fd5a111b6"
}
Если time = 0, то на сервере используется значение текущего времени
Если cursorMode = forward, то новости приходят отсортированные по возрастанию даты
Если cursorMode = backward, то новости приходят отсортированные по убыванию даты.
Пример ответа:
{
"datePattern": "dd.MM.yyyy HH:mm",
"newsList": [
{
"id": 91,
"unixTime": 1458571320000,
"date": "21.03.2016 17:42",
"header": "Заголовок 1",
"fullDescription": "Описание 1"
},
{
"id": 72,
"unixTime": 1457989200000,
"date": "15.03.2016 00:00",
"header": "Заголовок 2",
"fullDescription": "Описание 2"
}
],
"cursorMode": "backward",
"serverUnixTime": 1459769342975,
"last": false,
"command": "GET_NEWS",
"resultCode": 0,
"description": "OK"
}
ПРОВЕРКА КДП (command = CHECK_KDP)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | CHECK_KDP |
userId | число Ulong | Обязательное | id пользователя в БС |
sessionId | строка | Обязательное | id сессии пользователя |
actionId | число Ulong | Обязательное | id представления |
kdp | число int | Обязательное | КДП |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"actionId": 10,
"kdp": 12345,
"command": "CHECK_KDP",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример положительного ответа:
{
"command": "CHECK_KDP",
"resultCode": 0,
"description": "OK"
}
Пример ответа с неверным КДП:
{
"command": "CHECK_KDP",
"resultCode": 101,
"description": "неверный КДП"
}
ПОЛУЧЕНИЕ ДАННЫХ ДЛЯ ФИЛЬТРА (command = GET_FILTER).
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_FILTER |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
countryList | массив | Обязательное | список стран |
cityList | массив | Обязательное | список городов |
kindList | массив | Обязательное | список видов |
genreList | массив | Обязательное | список жанров |
countryList:
Поле | Тип | Обязательность | Описание |
countryId | число Ulong | Обязательное | id страны |
countryName | строка | Обязательное | название страны |
cityList:
Поле | Тип | Обязательность | Описание |
countryId | число Ulong | Обязательное | id страны |
cityId | число Ulong | Обязательное | id города |
cityName | строка | Обязательное | название города |
venueList | массив | Обязательное | список мест проведений |
venueList:
Поле | Тип | Обязательность | Описание |
venueId | число Ulong | Обязательное | id места проведения |
venueName | строка | Обязательное | наименование места проведения |
address | строка | Обязательное | адрес места проведения |
geoLat | строка (##.######) | Обязательное | широта места проведения |
geoLon | строка (##.######) | Обязательное | долгота места проведения |
imageUrl | строка | Обязательное | ссылка на изображение места проведения |
kindList:
Поле | Тип | Обязательность | Описание |
kindId | число Uint | Обязательное | id вида |
kindName | строка | Обязательное | наименование вида |
genreList:
Поле | Тип | Обязательность | Описание |
genreId | число Uint | Обязательное | id жанра |
genreName | строка | Обязательное | наименование жанра |
Пример запроса:
{
"command": "GET_FILTER",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример ответа:
{
"cityList": [
{
"cityId": 1,
"cityName": "Сочи",
"venueList": [
{
"venueId": 1,
"venueName": "Зимний театр"
},
{
"venueId": 24,
"venueName": "Зеленый театр парка \"Ривьера\""
}
]
},
{
"cityId": 2,
"cityName": "Москва",
"venueList": [
{
"venueId": 4,
"venueName": "Малая Спортивная Арена Лужники"
},
{
"venueId": 20,
"venueName": "SCANDINAVIA CLUB"
}
]
},
],
"kindList": [
{
"kindId": 0,
"kindName": "События"
},
{
"kindId": 1,
"kindName": "Карты (МЭК)"
},
{
"kindId": 2,
"kindName": "Экскурсии"
},
{
"kindId": 3,
"kindName": "Рестораны"
},
{
"kindId": 4,
"kindName": "Отели"
}
],
"command": "GET_FILTER",
"resultCode": 0,
"description": "OK"
}
ПРИВЯЗКА ПОЧТЫ (command = BIND_EMAIL)
Чтобы подтвердить почту, необходимо:
1. выполнить метод BIND_EMAIL. На указанную почту придет код подтверждения.
2. выполнить CONFIRM_EMAIL с кодом, пришедшим на почту. В ответе придут данные аккаунта (userId, sessionId), к которым успешно прикреплена почта. С этими данными необходимо выполнять все последующие запросы.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | BIND_EMAIL |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
строка | Обязательное |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "BIND_EMAIL",
"email": "email@list.ru",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример положительного ответа:
{
"command": "BIND_EMAIL",
"resultCode": 0,
"description": "OK"
}
ПОДТВЕРЖДЕНИЕ ПОЧТЫ (command = CONFIRM_EMAIL)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | CONFIRM_EMAIL |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
code | число Uint | Обязательное | код подтверждения |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
строка | Обязательное | прикрепленный email |
Пример запроса:
{
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "CONFIRM_EMAIL",
"code": 123456,
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример положительного ответа:
{
"command": "CONFIRM_EMAIL",
"userId": 2,
"sessionId": "2e4566051c60a219d672c4b7a12d129",
"email": "email@list.ru",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ КАРТ (МЭК) (command = GET_MECS)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_MECS |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
mecId* | число Ulong | Необязательное | id карты |
sizeQrCode | число Uint | Обязательное | размер Qr кода (задается одна сторона, картинка будет квадратная) |
widthBarCode | число Uint | Обязательное | ширина Bar кода |
heightBarCode | число Uint | Обязательное | высота Bar кода |
rawCoordinates | boolean | Необязательное | если присутствует и равно true, то в ответе поле categoryName будет иметь стандартное значения (как везде). Рекомендуется всегда передавать true |
*mecId - Поле используется для экономии трафика в основном на мобильных фронтендах.
Если передать данное поле в запросе, то в ответ вернутся карты с id большим чем переданный в запросе. Подразумевается, что карты с id <= mecId хранятся локально и не требуются в повторной загрузке.
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
list | массив | Обязательное | массив с данными карт |
list:
Поле | Тип | Обязательность | Описание |
actionEventId | число Ulong | Обязательное | id сеанса |
actionName | строка | Обязательное | краткое наименование представления |
fullActionName | строка | Обязательное | полное наименование представления |
currency | строка | Обязательное | валюта сеанса по ISO 4217 |
bigPosterUrl | строка | Обязательное | ссылка на постер |
smallPosterUrl | строка | Обязательное | ссылка на постер |
cityId | число Ulong | Обязательное | id города |
cityName | строка | Обязательное | название города |
venueName | строка | Обязательное | наименование места проведения |
venueAddress | строка | Обязательное | адрес места проведения |
cityPass | boolean | Обязательное | true - место проведение, где действуют скидки и преференции |
quantity | число Uint | Обязательное | количество карт |
totalSum | число cur | Обязательное | общая сумма карт |
mecList | массив | Обязательное | массив карт по представлению |
mecList:
Поле | Тип | Обязательность | Описание |
mecId | число Ulong | Обязательное | id карты |
categoryName | строка | Обязательное | информация о категории места |
price | число cur | Обязательное | цена билета |
qrCodeImg | строка | Обязательное | Qr код в Base64 в формате, переданном в запросе |
barCodeImg | строка | Обязательное | Bar код в Base64 в формате, переданном в запросе |
barCodeNumber | строка | Обязательное | значение штрихкода |
Пример запроса:
{
"mecId": 5,
"sizeQrCode": 500,
"widthBarCode": 500,
"heightBarCode": 100,
"userId": 6104,
"sessionId": "19c517c212bf173b44558308149db8ca",
"command": "GET_MECS",
"fid": 1185,
"token": "2f1173e2b12fd5a111b6"
}
Пример успешного ответа:
{
"list": [
{
"actionEventId": 1178,
"actionName": "Карта Магнит",
"fullActionName": "Товары и услуги со скидками для сотрудников сети",
"bigPosterUrl": "https://api.bil24.pro:1240/image?type=bigPoster&actionId=156&hash=ixr9rn1fmd1hssxl6k06q3png",
"smallPosterUrl": "https://api.bil24.pro:1240/image?type=smallPoster&actionId=156&hash=k2tlcg2xsq82jynqo9yqkmr1q",
"cityId": 1,
"cityName": "Краснодар",
"venueName": "Розничная сеть Магнит",
"venueAddress": "Краснодар, ул. Солнечная, 15/5",
"cityPass": false,
"quantity": 2,
"totalSum": 4645.00,
"mecList": [
{
"mecId": 29096,
"categoryName": "Категория: Корпоративная",
"price": 245,
"qrCodeImg": "qrCodeImg",
"barCodeImg": "barCodeImg",
"barCodeNumber": "2400107290966"
},
{
"mecId": 29097,
"categoryName": "Категория: Платиновая",
"price": 4400,
"qrCodeImg": "qrCodeImg",
"barCodeImg": "barCodeImg",
"barCodeNumber": "2400107290973"
}
]
},
{
"actionEventId": 1380,
"actionName": "КЛУБ ЛЮБИМЫХ",
"fullActionName": "карта бонусной программы",
"bigPosterUrl": "https://api.bil24.pro:1240/image?type=bigPoster&actionId=201&hash=ohvtolmud5n3eacnl1ho1ysbe",
"smallPosterUrl": "https://api.bil24.pro:1240/image?type=smallPoster&actionId=201&hash=gnoi2lhueiyx5d555gf8ziegt",
"cityId": 2,
"cityName": "Сочи",
"venueName": "территория Сочи",
"venueAddress": "Россия, Краснодарский край, Сочи",
"cityPass": false,
"quantity": 1,
"totalSum": 0.00,
"mecList": [
{
"mecId": 29102,
"categoryName": "Категория: Золотая",
"price": 0,
"qrCodeImg": "qrCodeImg",
"barCodeImg": "barCodeImg",
"barCodeNumber": "2403107291025"
}
]
}
],
"command": "GET_MECS",
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ ПРОМОКОДОВ (command = GET_PROMO_CODES)
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_PROMO_CODES |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
promoPackList | массив | Обязательное | список акционных пакетов пользователя |
promoPackList:
Поле | Тип | Обязательность | Описание |
promoPackId | число Ulong | Обязательное | Идентификатор акционного пакета |
name | строка | Обязательное | Название акционного пакета |
description | строка | Обязательное | Описание акционного пакета |
startTime | строка | Обязательное | Дата начала действия акции |
endTime | строка | Обязательное | Дата окончания действия акции |
activeNow | boolean | Обязательное | если true - акция действует в настоящий момент |
discountPercent | число cur | Обязательное | скидка по акции в процентах |
maxDiscountSum | число cur | Необязательное | Максимальная скидка по промокоду в рублях, если отсутствует - неограничена |
maxTickets | число Uint | Необязательное | Максимальное количество билетов со скидкой по промокоду, если отсутствует - неограничено |
minPrice | число cur | Необязательное | минимальная цена билета для применения промокода, если отсутствует - неограничена |
promoCodeList | массив | Обязательное | Список промокодов в акционном пакете |
promoCodeList:
Поле | Тип | Обязательность | Описание |
code | строка | Обязательное | Значение промокода |
used | boolean | Обязательное | Если true - промокод уже потрачен данным пользователем |
spent | boolean | Обязательное | Если true - промокод уже потрачен любым пользователем (этим или другим) |
Если used или spent равен true, либо activeNow равен false, этот пользователь не может использовать данный промокод
ВОЗВРАТ БИЛЕТОВ (command = REFUND_TICKETS)*
Описание: возврат билетов.
*только для интерфейса Билетная система.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | REFUND_TICKETS |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
ticketIdSet | массив | Обязательное | список id билетов |
ticketIdPriceMap | ассоциативный массив | Обязательное |
key - id билета. value - число, сумма возврата, либо null |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
statusMap | ассоциативный массив | Обязательное | key - id билета, переданного в запросе. value - число, статус возврата |
Статус возврата билетов:
1 - невозможно вернуть
2 - в процессе возврата
3 - билет возвращен
Примечание: повторный запрос на отмену билета не вернет ошибку, а вернет текущий статус билета.
Пример запроса:
{
"userId": 18109,
"sessionId": "d6035a755bd0862e713e03f337505bd0",
"command": "REFUND_TICKETS",
"ticketIdSet": [1, 2, 3],
"fid": 1184,
"token": "24d3b97b64dfab187a5f"
}
Пример положительного ответа:
{
"command": "REFUND_TICKETS",
"statusMap": {
"1" : 1,
"2" : 2,
"3" : 2
}
"resultCode": 0,
"description": "OK"
}
ПОЛУЧЕНИЕ РЕКОМЕНДУЕМОЙ TICKETRAIN СУММЫ ВОЗВРАТА (command = GET_TR_REFUND_AMOUNT)*
Описание: метод возвращает рекомендуемые билетной системой TICKETRAIN суммы возврата в рублях для всех билетов заказа. актуально только для заказов с билетами из TICKETRAIN
*только для интерфейса Билетная система.
Поля запроса:
Поле | Тип | Обязательность | Описание |
command | строка | Обязательное | GET_TR_REFUND_AMOUNT |
userId | число Ulong | Обязательное | id пользователя |
sessionId | строка | Обязательное | id сессии пользователя |
orderId | число Ulong | Обязательное | id заказа |
ticketIdSet | массив | Необязательное | список id билетов |
Состав полей ответа:
Поле | Тип | Обязательность | Описание |
ticketInfoList | массив | Обязательное | список билетов |
ticketInfoList:
Поле | Тип | Обязательность | Описание |
ticketId | число Ulong | Обязательное | id билета |
percent | число cur | Обязательное | процент возвращаемых денег от номинальной стоимости билета |
returnNominal | число cur | Обязательное | возвращаемая сумма (часть номинала) согласно проценту |
serviceFee | число cur | Обязательное | сервисный сбор, взфтый при продаже билета |
Некоторые методы возвращают в своем составе поля статус заказа (statusExtStr и statusExtInt).
statusExtStr | statusExtInt | Описание |
NEW | 0 | Новый заказ/ожидание оплаты |
PROCESSING | 1 | Обработка оплаченного заказа |
PAID | 2 | Завершен |
CANCELLING | -1 | Отмена неоплаченного заказа |
CANCELLED | -2 | Отменен |
Статус заказа может меняться в следующих последовательностях:
NEW → PROCESSING → PAID
NEW → CANCELLING → CANCELLED
В исключительных случаях, из-за ошибок во внешних билетных системах, заказ может быть отменен вручную оператором системы, в этом случае статус заказа изменится так:
PROCESSING → CANCELLED
Статусы PAID и CANCELLED являются окончательными и не могут быть изменены. Получение билетов необходимо производить только после достижения заказом статуса PAID.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 09.05.2016
1. Метод GET_VENUES
- в ответе в объекте Venue добавил параметр cityId,
параметр cityName теперь обязательный в ответе;
- поле fields: CITY_NAME устарело, добавил значение DESCRIPTION.
2. Метод GET_ACTIONS
- в запросе добавил поле dateFrom - необязательное (от какой даты получить представления);
- в ответе добавил поле actionEventTime - необязательное (если сеанс идет всегда в одно время, то поле будет);
- в ответе добавил поле venueName - необязательное (если место проведение всего одно, то поле будет);
- в ответе добавил поле kdp - обязательное (КДП - код доступа к представлению).
*Перед открытием схемы зала или нажатием кнопки забронировать(безместовая схема зала)
пользователь должен ввести КДП (метод для проверки кдп - CHECK_KDP)
3. Метод GET_ORDERS
- в объекте paymentOrder поле type устарело и не используется, вместо него поле gateway;
- описаны все имеющиеся на данный момент paymentOrder.
4. Методе GET_TICKETS_BY_ACTION_EVENT
- в списке билетов добавил поле actionName;
- в списке билетов добавил поле smallPosterUrl.
5. Добавил GET_TICKETS_BY_ORDER
Возвращает все данные билетов по заказу.
6. Добавил метод CHECK_KDP (смотреть пункт 2)
7. Метод CREATE_ORDER
- добавил поля successUrl, failUrl - ОБЯЗАТЕЛЬНЫЕ поля, редиректы после оплаты;
- добавил поле email - необязательный параметр, указывает на то, на какой адрес отправить билеты после оплаты.
8. Добавил метод GET_FILTER
9. Метод GET_ACTION_EVENTS_GROUPED_BY_TICKETS
добавил поля:
fullActionName - полное название представления;
cityName - название города;
venueName - наименование места проведения;
quantity - количество билетов;
sum - сумма билетов.
10. Добавил метод GET_ACTION_EXT
возвращает информацию о мероприятии в конкретном городе,
список мест где оно проводится, в каждом месте проведения список сеансов.
Данный метод сделан для упрощения программирования.
Вместо него надо было выполнить 3 запроса к серверу: GET_VENUES, GET_ACTION, GET_ACTION_EVENTS.
11. Добавил метод GET_CART
возвращает список забронированных мест.
Места сгруппированы по сеансам. Метод GET_SEAT_IN_RESERVE устарел. Попрошу его больше не использовать.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 20.05.2016
1. Изменение в методе GET_ACTIONS (Метод устарел. Смотрим пункт 4)
- добавил обязательное поле kindId в ответе в списке actionList;
- добавил обязательное поле kindName в ответе в списке actionList.
2. Изменение в методе GET_ACTION_EXT
- добавил обязательное поле kindId в ответе в объекте action;
- добавил обязательное поле kindName в ответе в объекте action;
- добавил обязательное поле categoryList в ответе в объекте actionEventList.
3. Изменение в методе GET_ACTION (Метод устарел)
- добавил обязательное поле kindId в ответе в объекте action;
- добавил обязательное поле kindName в ответе в объекте action.
4. Добавил метод GET_ACTIONS_V2
новый метод вместо GET_ACTIONS. Метод позволяет запросить представления только по городу.
Все остальные фильтры (места проведения, виды, дата) на клиенте.
5. Увидел в логах использование на фронтенде 1003 методов CHANGE_PRIVATE_DATA, GET_PRIVATE_DATA.
Методы устарели месяца 4 назад. Попрошу перейти на метод SET_EMAIL, GET_EMAIL.
6. Метод GET_TICKETS_BY_ACTION_EVENT
15.10.2015 устарело поле seatInfo.
7. Метод GET_SEAT_IN_RESERVE устарел. Вместо него GET_CART.
8. Метод RESERVATION (бронирование мест в безместовой схеме зала)
поля quantity, categoryPriceId устарели. Вместо этих полей использовать categoryQuantityMap.
9. Метод GET_ORDERS
поле paymentOrder устарело. Добавил поле formUrl в orderList (поле перенесено из paymentOrder).
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 15.06.2016
1. Если представление требует ввода КДП, то при запросе схемы зала в url надо добавить параметр kdp=КДП.
2. В запросе "Бронирование места в безместовой схеме зала (command = RESERVATION)" добавлен необязательный параметр kdp.
Передавать его, если представление требует ввод КДП.
3. Добавил в методе GET_CART в объекте actionEventList поля cityId и venueId.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 22.06.2016
1. В ответах на запросы GET_TICKETS_BY_ORDER и GET_TICKETS_BY_ACTION_EVENT в списке билетов добавлены два поля legalOwner и age.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.06.2016
1. Метод RESERVATION (type RESERVE, RESERVE_BY_PLACE). Добавил параметр kdp. Если представление требует ввода kdp, то параметр обязателен.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 08.07.2016
1. Добавил полу actionId в ответе на запрос GET_CART в объекте actionEventList.
2. Добавил поле phone в запросе CREATE_ORDER.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 22.07.2016
1. В ответе на запрос GET_CART добавил общий сервисный сбор, по сеансу и по месту.
2. В ответе на запрос GET_ACTION_EXT поле categoryList перенесено в categoryLimitList.
Существует 3 вида схем:
1. Безместовая. placementUrl будет отсутствовать, смотрим categoryLimitList.
2. Местовая. Смотрим placementUrl, categoryLimitList будет пустой.
3. Комбинированная. Смотрим placementUrl и categoryLimitList.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 16.08.2016
1. В ответе на запрос GET_ORDERS добавил поля discount и serviceCharge. Поля в рублях.
2. В запросе CREATE_ORDER добавил поля discount и serviceCharge. Поля в процентах.
3. В ответе на запрос AUTH добавил поле frontendType.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 02.09.2016
1. Добавил методы привязки почты BIND_EMAIL, CONFIRM_EMAIL.
Данные методы временно работают только в тестовой зоне. метод SET_EMAIL устарел и не работает теперь в тестовой зоне.
2. Добавил отдельный метод получения карт GET_MECS.
С учетом появления данного метода карты не отдаются методами GET_ACTION_EVENTS_GROUPED_BY_TICKETS, GET_TICKETS_BY_ACTION_EVENT.
Ограничения по выдаче карт введены пока только в тестовой зоне. Карты не отдаются на немобильные фронтенды как в тестовой так и в реальной зоне.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 25.10.2016
1. Поля email и phone в запросе CREATE_ORDER доступны только для интерфейсов типа КАССА и ПРИГЛАСИТЕЛЬНЫЙ.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 25.11.2016
1. Добавлен метод возврата билетов REFUND_TICKETS.
2. Добавлено поле статус заказа (status) в ответах на запросы CREATE_ORDER и GET_ORDER_INFO.
3. Метод CREATE_ORDER. Поле paid устарело и будет удалено 25.12.2016.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 15.12.2016
1. Добавил метод GET_ORDERS_EXT.
2. Метод GET_TICKETS_BY_ORDER. Добавил поля: orderDatePattern, actionEventDatePattern, totalPrice, serviceCharge. Удалил поле datePattern.
3. Метод GET_TICKETS_BY_ACTION_EVENT. Добавил поля: totalPrice, serviceCharge.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 27.12.2016
1. Добавил в методе CREATE_ORDER поле fullName. Поле необязательное. Содержимое поля отобразится на билете.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 04.02.2017
1. Метод GET_ACTION_EXT. В категорию добавлен параметр availability.
availability - кол-во доступных мест в категории. Если remainder отсутствует, то ориентируемся на availability. Если remainder присутствует, то нужно внимательно использовать эти параметры.
К примеру общее ограничение remainder на 3 категории может быть 100, но и в каждой категории availability также может быть 100.
2. Добавлен новый статус resultCode 102, означающий, что необходимо привязать почту. Проверять данный код необходимо при ответе на запрос RESERVATION.
3. Метод GET_ACTION_EVENTS_GROUPED_BY_TICKETS. Добавлено поле ticketsUrl - ссылка на билеты в формате pdf (ссылка на вновь купленные билеты включительно с 27.02.2017.
Если билет куплен ранее, то по ссылке билетов не будет).
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 05.05.2017
1. Метод GET_CITIES устарел. Вместо него использовать GET_FILTER.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 18.05.2017
1. Метод GET_ACTION_EXT. Добавлен параметр bookletUrl - ссылка на буклет на конкретное представление.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 08.06.2017
1. Добавлены поля статуса заказа (statusExtStr и statusExtInt) в ответах на запросы CREATE_ORDER, GET_ORDER_INFO, GET_ORDERS, GET_ORDERS_EXT, GET_TICKETS_BY_ORDER.
2. Поле status устарело в методах CREATE_ORDER, GET_ORDER_INFO, GET_ORDERS, GET_ORDERS_EXT, GET_TICKETS_BY_ORDER.
3. Добавлен метод CREATE_USER.
4. Добавлен метод GET_SEAT_LIST.
5. Добавлен метод CREATE_ORDER_EXT.
6. Добавлен метод CANCEL_ORDER.
7. Добавлен метод PAY_ORDER.
8. Добавлено новое поле age (возрастное ограничение) в ответ метода GET_ACTION_EXT.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 06.07.2017
1. Изменено описание метода GET_CITIES.
2. Добавлен метод GET_VENUE_TYPES.
3. Добавлен метод GET_VENUES.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 13.07.2017
1. Изменено описание методов бронирования RESERVATION.
2. Добавлено новое поле barCodeType (тип штрихкода) в ответ метода GET_TICKETS_BY_ORDER.
3. Добавлено новое необязательное поле longReservation в метод CREATE_ORDER_EXT.
4. Добавлено новое поле orderTimeout в ответ метода CREATE_ORDER_EXT.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 22.07.2017
1. Добавлены новые поля (organizerId, organizerName, legalOwner) в ответ метода GET_ACTION_EXT.
2. Добавлен метод GET_TICKETS_BY_DAY.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 09.08.2017
1. Поле userId в запросе GET_ACTION_EXT необязательное.
2. Добавлен раздел "Общая схема использования протокола": команды протокола делятся на сессионные и несессионные.
Список несессионных команд:
1. GET_ACTIONS_V2;
2. GET_ACTION_EXT;
3. GET_CITIES;
4. GET_VENUE_TYPES;
5. GET_VENUES;
6. GET_FILTER;
7. GET_SEAT_LIST;
8. GET_TICKETS_BY_DAY.
Нет необходимости выполнять команду AUTH раньше какой либо из перечисленных команд. Для их выполнения не нужен идентификатор сессии (sessionId).
Для выполнения сессионных команд нужно иметь sessionId. Получить его первоначально нужно с помощью команды AUTH (для билетных систем CREATE_USER). Полученные данные пользователя рекомендуется сохранить и использовать повторно.
Сессия пользователя определяется sessionId и действует бессрочно.
В общем случае, sessionId понадобится перед командой BIND_EMAIL (RESERVATION для билетных систем).
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.08.2017
1. Добавлено новое поле seatId в ответ метода GET_TICKETS_BY_ORDER.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 02.10.2017
1. Добавил описание статусов билета в метод GET_TICKETS_BY_ORDER.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 18.02.2018
1. Добавлены новые поля seatList и cartTimeout в ответ метода RESERVATION.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 01.03.2018
1. Добавлены новые поля cityId и cityPass в ответ метод GET_MECS.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 12.03.2018
1. Добавлены новые поля seatingPlanId и seatingPlanName в ответ метода GET_ACTION_EXT.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 19.08.2018
1. Из всех запросов удалено обязательное поле versionCode. 2. Удален метод SEND_WI_FLY_DATA.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 16.10.2018
1. Везде изменен адрес сервера на api.bil24.pro.
2. В методе GET_TICKETS_BY_ORDER добавлено описание вариантов типов штрих-кодов.
3. В методах GET_CART, GET_MECS, GET_ORDERS_EXT, GET_TICKETS_BY_ACTION_EVENT, GET_TICKETS_BY_ORDER в параметры запроса добавлено новое необязательное поле rawCoordinates. Передача значения true исправляет несовместимости со значением координат мест (sector, row, number) и названием категории categoryName.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 06.12.2018
1. В ответ метода GET_SEAT_LIST добавлено новое поле categoryList.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 12.12.2018
1. Добавлен новый метод для интерфейсов Билетная система GET_ALL_ACTIONS.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.04.2019
1. Добавлен новый метод ADD_PROMO_CODES.
2. Добавлен новый метод GET_PROMO_CODES.
3. Добавлены новые поля categoryPriceId, nominal, discount и discountReason в ответ метода GET_CART.
4. Добавлено новое поле externalOrderId в ответ метода CREATE_ORDER_EXT.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 21.05.2019
1. Добавлен новый метод GET_SCHEMA.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 10.06.2019
1. В ответ метода GET_PROMO_CODES добавлено новое поле minPrice.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.07.2019
1. В ответ метода GET_SEAT_LIST добавлено новое необязательное поле categoryLimitList.
2. В запрос метода CREATE_ORDER_EXT добавлены новые необязательные поля discountPercent и chargePercent.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 13.08.2019
1. В ответ метода GET_CART добавлены новые поля fullNameRequired и phoneRequired.
2. В ответ метода GET_ALL_ACTIONS добавлено новое поле phoneRequired.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 24.09.2019
1. В ответ методов GET_ALL_ACTIONS, GET_ACTION_EXT, GET_TICKETS_BY_ACTION_EVENT, GET_TICKETS_BY_ORDER добавлены новые поля legalOwnerName, legalOwnerInn, legalOwnerPhone.
2. В ответе методов GET_ALL_ACTIONS, GET_ACTION_EXT, GET_TICKETS_BY_ACTION_EVENT, GET_TICKETS_BY_ORDER поле legalOwner стало устаревшим.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 11.06.2020
1. В ответ методов GET_ALL_ACTIONS, GET_ACTION_EXT, GET_SEAT_LIST добавлены новые обязательные поля tariffPlanList и tariffIdMap.
2. В запрос метода RESERVATION добавлено новое необязательное поле tariffMap.
3. В ответ метода RESERVATION добавлено новое необязательное поле tariffPlanId.
4. В ответ методов GET_CART и GET_TICKETS_BY_ORDER добавлены новые необязательные поля tariffPlanId и tariffPlanName.
5. В ответ метода GET_TICKETS_BY_ACTION_EVENT добавлено новое необязательное поле tariffPlanName.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 14.12.2020
1. В ответ методов GET_ALL_ACTIONS и GET_FILTER добавлены новые обязательные поля address, geoLat, geoLon, imageUrl .
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 16.03.2021
1. Добавлен новый метод PRINT_TICKETS.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 23.03.2021
1. В ответ метода GET_CART добавлены новые обязательные поля seatingPlanId, seatingPlanName.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 05.06.2021
1. В ответ метода GET_TICKETS_BY_ACTION_EVENT добавлено новое поле fullName.
2. В ответ метода GET_ACTION_EXT добавлены новые обязательные поля fullNameRequired, phoneRequired.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 10.11.2021
1. В поля, которые необходимо отправлять при каждом запросе добавлено новое необязательное поле locale.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 10.01.2022
1. В ответ методов GET_ALL_ACTIONS, GET_ACTION_EXT, GET_SEAT_LIST, RESERVATION, GET_CART, CREATE_ORDER_EXT, GET_ORDERS, GET_ORDERS_EXT, GET_ACTION_EVENTS_GROUPED_BY_TICKETS, GET_TICKETS_BY_ACTION_EVENT, GET_TICKETS_BY_ORDER, GET_TICKETS_BY_DAY, GET_ORDER_INFO, GET_MECS добавлено новое обязательное поле currency.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 28.04.2022
1. Добавлены новые методы бронирования/разбронирования RESERVATION.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 19.07.2022
1. В ответ методов GET_ALL_ACTIONS, GET_ACTION_EXT, GET_CART, добавлено новое обязательное поле fanIdRequired.
2. В запросы методов CREATE_ORDER, CREATE_ORDER_EXT добавлено новое необязательное поле seatFanIdMap.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 15.09.2022
1. В ответ метода GET_ALL_ACTIONS добавлены новые поля minPrice, maxPrice, firstEventDate, lastEventDate, actionEventTime.
2. В ответ метода GET_ACTIONS_V2, добавлено новое обязательное поле maxSum.
3. Полностью обновлен ответ метода GET_USER_INFO.
4. Добавлены методы GET_COUNTRIES, GET_KINDS, GET_GENRES.
5. В запрос метода GET_CITIES добавлен новый необязательный параметр countryId. В ответ добавлено поле countryId.
6. В запрос метода GET_VENUES добавлен новый необязательный параметр countryId, параметр cityId стал необязательным.
В ответ добавлены поля countryId и cityId.
7. В ответ методов GET_ALL_ACTIONS, GET_ACTIONS_V2, GET_ACTION_EXT, GET_FILTER добавлено новое поле genreList.
8. В ответ методов GET_ALL_ACTIONS, GET_FILTER добавлено новое поле countryList.
9.В запросы методов GET_TICKETS_BY_DAY, GET_ORDERS, GET_ORDERS_EXT, GET_TICKETS_BY_ORDER добавлен новый параметр timeZone.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 09.01.2023
1. В ответ методов GET_ALL_ACTIONS, GET_FILTER добавлено новое поле countryId.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 14.02.2023
1. Из запросов методов CREATE_ORDER, CREATE_ORDER_EXT удалено поле seatFanIdMap.
2. В запрос RESERVATION добавлено новое поле fanId.
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 11.04.2024
1. В запрос метода CREATE_ORDER добавлено новое поле cashback
2. В ответ метода CREATE_ORDER добавлено новое поле externalOrderId
3. В ответ методов GET_ALL_ACTIONS, GET_ACTION_EXT добавлены новые поля externalEventId, ticketRainActionId, sellEndTime
4. В ответ метода GET_SEAT_LIST добавлено новое поле placement
5. В ответ метода GET_ORDERS_EXT добавлено новое поле formUrl
6. В ответ метода GET_TICKETS_BY_ORDER добавлено новое поле ticketRainTicketId
ИЗМЕНЕНИЯ ПРОТОКОЛА ОТ 03.05.2024
1. Добавлен новый метод GET_TR_REFUND_AMOUNT
Изменения протокола от 07.06.2024
1. В ответ методов GET_ALL_ACTIONS, GET_ACTION_EXT добавлено новое поле gatewayId
Изменения протокола от 02.08.2024
1. В запрос метода GET_TR_REFUND_AMOUNT добавлено новое необязательное поле ticketIdSet
2. В запрос метода REFUND_TICKETS добавлено новое обязательное поле ticketIdPriceMap