Ключи и заказы API

Свои ключи, общий TON-баланс и покупки напрямую через Fragment.

Создать ключ

Войдите через Telegram → Кабинет → API-ключи. Назовите ключ и выберите разрешения. Секрет показывается один раз; храните его на сервере своего приложения. Ключ можно отозвать в кабинете. Ключ другого сервиса, включая FragAPI, не требуется.

  • balance:read — просмотр баланса
  • orders:read — список и состояние своих заказов
  • orders:write — котировки и создание заказов

Баланс

Shell
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 используют один баланс.

Получить цену

Shell
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; итог включает указанный сервисом сбор. Фиксированный курс не обещается.

Подтвердить заказ

Shell
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.

Состояния и ошибки

HTTP
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. Ключи и чтение баланса доступны.

Ключи и заказы API · FRAGMENTAPI