API продажи билетов
Публичные адреса виджета: мероприятие, промокод, заказ, статус, возврат, календарь
Всё, что делает виджет, доступно как обычные HTTP-запросы без ключа — так продажу можно встроить в своё приложение или бота. Адреса относительно https://woove.ru, ответы JSON, ошибки — {error} с кодом 4xx.
| Адрес | Что делает |
|---|---|
GET /api/tickets/<адрес> | Мероприятие для покупателя: title, starts_at, place, seating, scheme, taken, types[] (id, price, left, persons, soon), series[], age_limit, brand, refund, status, selling |
POST /api/tickets/<адрес>/promo | {code, items} → {discount} или {error}; ничего не резервирует |
POST /api/tickets/<адрес>/order | {items, name, email, phone, consent:{privacy,pd,offer}, promo, source, utm, back} → {url, code} (ссылка на кассу) или {paid:true, code} при нулевой сумме |
GET /api/tickets/order/<код> | {status: hold|paid|expired|cancelled|refunded, amount, tickets[{secret, seat, type_title}], ics} |
POST /api/tickets/refund | {secret} — возврат билета по правилам организатора → {ok, amount, pct, manual} |
GET /ticket/<secret>.pdf | PDF билета; GET /ticket/<secret>.ics — файл для календаря; GET /t/<secret> — страница проверки |
Позиции заказа
Без рассадки: {type_id, qty}. Со схемой зала: {type_id, seat_key, seat} на каждое место, где seat_key — сектор:ряд:место из схемы, seat — подпись для билета. Лимиты на заказ и на категорию проверяются сервером: ответ 400 с текстом.
Источник и партнёры
source (или ?ref= в адресе страницы, где стоит виджет) и объект utm записываются в заказ и видны организатору в «Цифрах». Партнёру достаточно ссылки вида https://site.ru/bilety?ref=partner.
Заказ держит места столько минут, сколько задал организатор (по умолчанию 15). После оплаты статус меняется без вебхука — сервер сам опрашивает кассу; опрашивайте
/api/tickets/order/<код> раз в 2–3 секунды, как делает виджет.
Читайте дальше
Помогла статья?