LOYRA
LOYRA API v1

Первый заказ за несколько минут

Единый 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"
  }
}