Первый заказ за несколько минут
Единый API для идентификации клиента, расчёта скидок, резервирования бонусов, оплаты и возврата.
Base URL
https://api.loyra.ru/api/v1
Быстрый старт
Передайте API-ключ в заголовке Authorization: Bearer. Для каждого изменяющего запроса используйте уникальный Idempotency-Key.
POST Создать заказ
POST /api/v1/orders
Authorization: Bearer $LOYRA_API_KEY
Idempotency-Key: order-2026-1042
{
"branch_id": "branch_101",
"customer_id": "customer_501",
"items": [
{"name":"Мужская стрижка","quantity":1,"price":2000},
{"name":"Оформление бороды","quantity":1,"price":800}
]
}Расчёт
Сервер применяет правила в фиксированном порядке: товарные акции → промокод → уровень → бонусы → минимальная сумма → начисление.
POST /orders/{order_id}/calculate
{
"bonuses_to_redeem": 300,
"promo_code": null
}
→ 200 OK
{
"subtotal": 2800,
"discount": 140,
"bonuses_redeemed": 300,
"total": 2360,
"bonuses_to_earn": 118
}Идемпотентность
Повтор запроса с тем же ключом и тем же payload возвращает сохранённый результат. Тот же ключ с другим payload вернёт 409 idempotency_conflict.
Webhooks
События order.completed, order.refunded и membership.level_changed подписываются HMAC SHA‑256. Проверяйте X-Webhook-Signature до обработки.
Ошибки
{
"error": {
"code": "insufficient_bonus_balance",
"message": "Доступно 240 бонусов из запрошенных 300",
"request_id": "req_01J...",
"docs_url": "https://docs.loyra.ru/errors"
}
}