Ключи и заказы API
Свои ключи, общий TON-баланс и покупки напрямую через Fragment.
Создать ключ
Войдите через Telegram → Кабинет → API-ключи. Назовите ключ и выберите разрешения. Секрет показывается один раз; храните его на сервере своего приложения. Ключ можно отозвать в кабинете. Ключ другого сервиса, включая FragAPI, не требуется.
- balance:read — просмотр баланса
- orders:read — список и состояние своих заказов
- orders:write — котировки и создание заказов
Баланс
curl https://frefrer.nowavpn.pro/api/v1/balance \
-H "Authorization: Bearer YOUR_API_KEY"Ответ содержит wallet: currency, balanceMinor, reservedMinor, availableMinor. Валюта TON; все суммы — целые nanoton. 1 TON = 1 000 000 000 nanoton. Кабинет и API используют один баланс.
Получить цену
curl https://frefrer.nowavpn.pro/api/v1/quote \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product":"stars","recipient":"username","quantity":50}'Stars: от 50 до 100 000. Premium: product="premium", quantity=3, 6 или 12 месяцев. Ответ {quote} содержит id, amountMinor, currency и expiresAt. Точная цена поступает от Fragment; итог включает указанный сервисом сбор. Фиксированный курс не обещается.
Подтвердить заказ
curl https://frefrer.nowavpn.pro/api/v1/orders \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: YOUR_UNIQUE_OPERATION_ID" \
-d '{"quoteId":"QUOTE_ID_FROM_PREVIOUS_RESPONSE"}'Первый запрос возвращает 202 и {order}; деньги резервируются. Повтор с тем же ключом операции и quoteId возвращает тот же заказ. После сетевой ошибки повторите тот же запрос с тем же Idempotency-Key. Другая котировка с уже использованным ключом даёт 409.
Состояния и ошибки
GET /api/v1/products
GET /api/v1/orders
GET /api/v1/orders/ORDER_ID
Authorization: Bearer YOUR_API_KEY- queued / processing — в очереди / обработке; сумма в резерве.
- delivered — транзакция и подтверждение Fragment получены; баланс списан.
- failed — заказ не выполнен; резерв освобождён.
- review — исход требует сверки; резерв сохраняется. Не создавайте повторную покупку.
- 401 invalid_api_key / 403 insufficient_scope / 409 insufficient_funds / 410 quote_expired / 429 rate_limited / 503 purchases_not_configured.
Лимит: 120 запросов в минуту на владельца, включая ключи и кабинет; расчёт цены — 12 в минуту. При 429 учитывайте Retry-After. Сейчас покупка и приём пополнений выключены до проверки аккаунта сервиса на Fragment. Ключи и чтение баланса доступны.