Обновлено: 15.08.2026
Промокоды
Скидочные и партнёрские коды для билетов, абонементов и магазина. Один код можно ограничить по сроку действия, количеству активаций и списку продуктов.
Обзор методов
| Метод | Путь | Описание |
|---|---|---|
GET | /promo-codes | Список промокодов |
POST | /promo-codes/{code}/validate | Проверить код перед оплатой |
POST | /promo-codes | Создать промокод |
DELETE | /promo-codes/{code} | Деактивировать код |
Список промокодов
Эндпоинт
GET /promo-codesАктивные и завершённые промокампании клуба.
Запрос
curl https://api.virazh.io/v1/promo-codes \
-H "Authorization: Bearer sk_test_51H..."Ответ
{
"data": [
{ "code": "FAN2026", "discount_percent": 15, "uses_left": 340 },
{ "code": "SCHOOL10", "discount_percent": 10, "uses_left": 87 }
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | array<PromoCode> | Коды с полями code, discount_percent, uses_left. |
Проверить код перед оплатой
Эндпоинт
POST /promo-codes/{code}/validateПроверяет действительность промокода для конкретного заказа — используйте перед подтверждением покупки, чтобы показать скидку.
Параметры
| Параметр | Где | Тип | Обязателен | Описание |
|---|---|---|---|---|
code | путь | string | да | Промокод в верхнем регистре. |
order_amount | тело | integer | да | Сумма заказа до скидки, в рублях. |
Запрос
curl https://api.virazh.io/v1/promo-codes/FAN2026/validate \
-X POST \
-H "Authorization: Bearer sk_test_51H..." \
-H "Content-Type: application/json" \
-d '{ "order_amount": 1500 }'Ответ
{
"code": "FAN2026",
"valid": true,
"discount_amount": 225
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
valid | boolean | Действителен ли код для данного заказа. |
discount_amount | integer | Размер скидки в рублях. |
Создать промокод
Эндпоинт
POST /promo-codesРегистрирует новый код со скидкой в процентах или фиксированной сумме, сроком действия и опциональным ограничением по продуктам.
Параметры
| Параметр | Где | Тип | Обязателен | Описание |
|---|---|---|---|---|
code | тело | string | да | Уникальный код в верхнем регистре. |
discount_percent | тело | integer | нет | Скидка в процентах — либо это поле, либо discount_amount. |
discount_amount | тело | integer | нет | Фиксированная скидка в рублях. |
max_uses | тело | integer | нет | Максимум активаций. Без ограничения, если не указано. |
expires_at | тело | string (ISO 8601) | нет | Дата окончания действия кода. |
applies_to | тело | array<string> | нет | Ограничение по продуктам: tickets, shop, season-passes. |
Запрос
curl https://api.virazh.io/v1/promo-codes \
-X POST \
-H "Authorization: Bearer sk_test_51H..." \
-H "Content-Type: application/json" \
-d '{
"code": "PLAYOFF15",
"discount_percent": 15,
"max_uses": 500,
"expires_at": "2026-10-01T00:00:00Z",
"applies_to": ["tickets"]
}'Ответ
{
"code": "PLAYOFF15",
"discount_percent": 15,
"uses_left": 500
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
code | string | Код промокода. |
discount_percent | integer | Скидка в процентах, если задана. |
uses_left | integer | Оставшееся количество активаций. |
Деактивировать код
Эндпоинт
DELETE /promo-codes/{code}Отключает промокод досрочно — уже применённые скидки в оплаченных заказах не отменяются.
Параметры
| Параметр | Где | Тип | Обязателен | Описание |
|---|---|---|---|---|
code | путь | string | да | Промокод для деактивации. |
Запрос
curl https://api.virazh.io/v1/promo-codes/PLAYOFF15 \
-X DELETE \
-H "Authorization: Bearer sk_test_51H..."Ответ
{
"code": "PLAYOFF15",
"status": "deactivated"
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
code | string | Промокод. |
status | string | deactivated при успешном отключении. |
Полезно знать
- Всегда вызывайте
/promo-codes/{code}/validateперед показом скидки в интерфейсе — код может закончиться или истечь между загрузкой страницы и оформлением заказа. - Один код применяется к одному заказу целиком; комбинировать два промокода в одной покупке нельзя.
- Партнёрские коды (с префиксом клуба) считают активации отдельно от собственных промокампаний — это отражено в поле
uses_leftкаждого кода.




