Эндпоинт прямой продажи

Эндпоинт прямой продажи помечает места проданными одним атомарным вызовом, без шага блокировки, который требуется в стандартном сценарии продажи. Используйте его для неинтерактивных сценариев, таких как продажи из бэк-офиса, комплиментарные билеты и импорт из внешних POS-систем.

Когда какой использовать

  • Сессии бронирования — интерактивная оплата, управляемая из браузера. Страница открывает сессию, удерживает и освобождает места по кликам покупателя, а ваш сервер подтверждает после оплаты.
  • Стандартный сценарий продажи — интерактивная оплата, при которой ваш сервер удерживает места через lock во время оплаты и продаёт их через sale после подтверждения, храня корзину покупателя на своей стороне.
  • Прямая продажа — неинтерактивные сценарии, в которых нет клиента, удерживающего места: продажи из бэк-офиса, комплиментарные билеты, ручной импорт. Один вызов, без состояния удержания.

Эндпоинт

POST /api/private/v2.0/booking/directsale?eventId={eventId}
Parameter In Required Описание
eventId query yes UUID события, содержащего продаваемые места.

Тело запроса

Структура запроса совпадает со стандартным эндпоинтом продажи: список мест и/или записей входных зон, а также необязательные id сессии и тип удержания.

{
  "sessionId": "abc123",
  "seats": [{ "id": 42 }, { "id": 43 }],
  "groupOfSeats": [{ "id": 7, "capacity": 4 }],
  "holdType": "DIRECT"
}

Поле holdType необязательно и носит информационный характер только в строке аудита — прямая продажа не проходит через состояние удержания.

Ответ

Status Body Значение
200 true Все места и входная вместимость переведены в SOLD.
200 false Хотя бы одно место не в состоянии ACTIVE или хотя бы одна входная вместимость ниже запрошенного объёма. Без изменений.
402 Организация вызывающего отключена для booking.
403 У вызывающего нет доступа к событию.

Операция атомарна в пределах запроса — частичное применение отклоняется. Если хотя бы одно место не проходит, весь запрос отклоняется.

Пример

curl -X POST \
  "https://api.example.com/api/private/v2.0/booking/directsale?eventId=8d4f0f3a-2b8e-4d2a-9c8e-1d3a2b8e4d2a" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
        "sessionId": "abc123",
        "seats": [{"id": 42}, {"id": 43}]
      }'
# 200
# true

Ограничения

  • Места должны быть в состоянии ACTIVE. Места в состоянии LOCKED, SOLD или BLOCKED отклоняются (ответ false, без изменения состояния).
  • Входная вместимость списывается непосредственно из активного счётчика, без промежуточного заблокированного резерва.
  • Каждый успешный переход записывает запись аудита, показывающую, что исходным состоянием было ACTIVE, поэтому аналитика и потребители ниже по потоку видят переход корректно.
  • Стандартный эндпоинт продажи и его семантика не меняются. Прямая продажа подключается по выбору.

Авторизация

Применяется та же проверка доступа, что и для стандартного эндпоинта продажи. Организация вызывающего должна иметь доступ к событию, и организация должна быть включена для booking.

См. также

  • API Reference — интерактивный обозреватель API и полный справочник.

Введите название функции, настройки, эндпоинта или метода SDK.