API Reference
Тимчасове утримання квитків на 15 хвилин, поки покупець ухвалює рішення.
POST /reservations · дозвіл reservations:write
Резерв утримує місця 15 хвилин, поки покупець вводить дані. Крок необовʼязковий — можна одразу створювати платіж, — але на подіях, де квитки розбирають швидко, він рятує від ситуації «покупець заповнив форму, а місць уже немає».
curl -X POST https://aoa.com.ua/api/v1/reservations \
-H "Authorization: Bearer aoa_live_…" \
-H "Content-Type: application/json" \
-d '{
"eventId": "a1b2c3",
"tickets": [
{ "ticketTypeId": "clx9ticket001", "quantity": 2 }
]
}'| Поле | Тип | Опис |
|---|---|---|
eventId | string | Ідентифікатор події. Обовʼязкове. |
tickets | array | Непорожній масив позицій. Обовʼязкове. |
tickets[].ticketTypeId | string | Тип квитка з ендпоінта ticket-types. |
tickets[].quantity | integer | Ціле від 1 до 20 — на кожен тип окремо. |
{
"data": {
"reservationId": "rsv_Xk3mQp7vR2nT8wL5yB1zC4dA",
"eventId": "a1b2c3",
"expiresAt": "2026-07-30T12:49:56.789Z",
"remaining": {
"clx9ticket001": 61
}
}
}| Поле | Опис |
|---|---|
reservationId | Передайте його в /checkout, щоб перетворити резерв на оплату. |
expiresAt | Коли резерв згорить. Показуйте покупцеві таймер, щоб він розумів обмеження. |
remaining | Залишок після вашого резерву, по кожному типу квитка. |
Резерв або створюється повністю, або не створюється взагалі — часткових резервів не буває. Якщо квитків менше, ніж просите:
{
"error": {
"code": "conflict",
"message": "Залишилось лише 1 квиток"
}
}Візьміть актуальні залишки з /availability і запропонуйте покупцеві меншу кількість. Повторювати той самий запит без змін немає сенсу.
/checkout з цим резервом споживає його.reservationId.Резервуйте тоді, коли треба
Резерв забирає місця в інших покупців. Створюйте його, коли покупець уже обрав квитки й переходить до оплати, а не на етапі перегляду афіші.