АГЕНТСКИЙ 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

АВТОРИЗАЦИЯ (command = AUTH)

Описание: авторизация пользователя. Для интерфейсов Билетный агент и Билетная система вместо данного метода необходимо использовать метод 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 строка Обязательное название организатора
legalOwner строка Обязательное название устроителя
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 строка Обязательное название организатора
legalOwner строка Обязательное название устроителя
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 сессии пользователя
email строка Необязательное почта, на которую надо отправить
билеты после успешной оплаты
(ТОЛЬКО ДЛЯ КАССЫ и ПРИГЛАСИТЕЛЬНЫХ)
phone строка Необязательное номер телефона покупателя
fullName строка Необязательное Полное имя покупателя,
которое отобразится на билете
successUrl строка Обязательное редирект на successUrl после успешной оплаты
failUrl строка Обязательное редирект на failUrl после НЕуспешной оплаты
discount число cur Необязательное скидка в %
(ТОЛЬКО ДЛЯ КАСС И ПРИГЛАСИТЕЛЬНЫХ)
serviceCharge число cur Необязательное сервисный сбор в %
(ТОЛЬКО ДЛЯ КАСС)
cashback ассоциативный массив Необязательное key - id сеанса
value - число cur, размер кэшбэка в процентах
(ТОЛЬКО ДЛЯ СПЕЦИАЛЬНЫХ ИНТЕРФЕЙСОВ)

Состав полей ответа:

Поле Тип Обязательность Описание
formUrl строка Обязательное ссылка для оплаты
orderId число Ulong Обязательное id заказа
externalOrderId массив Обязательное список строковых идентификаторов заказа во внешних БС
paid поле устарело true - заказ сразу оплачен
status число Обязательное статус заказа
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 - долговременное бронирование
email строка Необязательное почта покупателя (информационное поле)
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 строка Обязательное сообщение пользователю от банка
status число Обязательное статус заказа
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 массив Обязательное список билетов
status число Обязательное статус заказа
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)

Поля запроса:

Поле Тип Обязательность Описание
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)
legalOwner строка Обязательное название устроителя
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 Обязательное количество билетов
status число Обязательное статус заказа
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)
legalOwner строка Обязательное название устроителя
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)
seatInReserve число Uint Обязательное Количество забронированных мест
orderInWait число Uint Обязательное Количество незавершенных заказов

Пример запроса:
{
 "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 сессии пользователя
email строка Обязательное почтовый адрес
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)

Описание: Метод помечает билет/заказ пользователя как удаленный, чтобы на интерфейсах в дальнейшем их не подгружать.

Поля запроса:

Поле Тип Обязательность Описание
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
status число Обязательное статус заказа
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 сессии пользователя

Состав полей ответа:

Поле Тип Обязательность Описание
email строка Обязательное почта пользователя
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, либо unixTime пришедшей новости, либо serverUnixTime. Локальное время устройства не использовать!

Если 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 сессии пользователя
email строка Обязательное email

Пример запроса:
{
 "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 строка Обязательное прикрепленный 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