Какие мероприятия доступны
Шлюз отдаёт не все мероприятия Ticket.kg, а только те, которые организатор разрешил продавать через партнёров.
Мероприятие
Мероприятие попадает в API, если:
- оно явно открыто для продажи через Gateway — Ticket.kg включает это для каждого мероприятия по согласованию с организатором. Если нужного мероприятия нет в API, обратитесь к менеджеру;
- оно создано в Ticket.kg, а не импортировано от другого билетного провайдера;
- у него есть хотя бы один сеанс, который сейчас продаётся (только для списка
GET /events); - оно активно (только для списка).
GET /events/{eventID} отдаёт мероприятие, даже если сейчас у него нет сеансов в продаже: в этом случае event_items будет пустым массивом.
Если мероприятие не открыто для Gateway, GET /events/{eventID} вернёт 404 not_found.
Сеанс
Сеанс (event_item) продаётся, если выполнены все условия:
- сеанс активен;
- время окончания продаж (
available_date) ещё не наступило; - сеанс платный;
- схема зала сеанса опубликована;
- сеанс не продаётся через внешнюю билетную систему.
Для создания заказа дополнительно проверяется, что само мероприятие активно.
Только такие сеансы появляются в event_items мероприятия и в GET /events/{eventID}/items. Для остальных /event-items/{id}/seats вернёт 404, а создание заказа — 422 event_item_not_available.
Сортировка
- Мероприятия в списке отсортированы по дате ближайшего продаваемого сеанса.
- Сеансы внутри мероприятия — по дате начала.
- Категории — по ID.
Когда сеанс пропадает
Сеанс может перестать продаваться в любой момент: закончилось время продаж, организатор закрыл продажи, сеанс отменили. Каталог кэшируется до 10 минут, поэтому:
- не считайте наличие сеанса в
GET /eventsгарантией, что его можно купить; - перед бронированием запрашивайте
/event-items/{id}/seats— этот метод всегда актуален; - обрабатывайте
422 event_item_not_availableпри создании заказа: покажите покупателю, что продажи на сеанс закрыты.