Base URL: https://api.foxreload.com · Sandbox: https://api-sandbox.foxreload.com
Аутентификация
Каждый запрос передаёт `Authorization: Bearer YOUR_API_KEY`. Ключ выдаётся в `Dashboard → Settings → API Keys` и виден один раз. HTTPS обязательно.
curl https://api.foxreload.com/v1/catalog \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"Основные эндпоинты
| Method | Path | Description |
|---|---|---|
| GET | /v1/catalog | List SKUs with pricing and stock. |
| GET | /v1/catalog/{sku_id} | Detail for one SKU. |
| POST | /v1/orders | Create an order. Idempotency-Key recommended. |
| GET | /v1/orders/{order_id} | Order state and delivery payload when ready. |
| POST | /v1/orders/{order_id}/replacement | Request a replacement for a failed code (60-day window). |
| GET | /v1/balance | Current wholesale balance per currency. |
| GET | /v1/orders | Paginated history with filter and date range. |
| POST | /v1/webhooks | Register / rotate a webhook endpoint. |
Webhooks
События `order.created`, `order.delivered`, `order.failed`, `order.refunded` отправляются POST-запросом на ваш endpoint. Подпись HMAC-SHA256 в заголовке `X-FoxReload-Signature`. Подробнее в библиотечной статье.
POST https://your-shop.com/webhooks/foxreload
Headers:
X-FoxReload-Signature: t=...,v1=hex(hmac_sha256(secret, raw_body))
Content-Type: application/json
Body:
{
"event": "order.delivered",
"order_id": "ord_abc123",
"sku_id": "psn-tr-100",
"wholesale_cost_usd": "8.45",
"delivered_at": "2026-05-18T14:32:11Z",
"delivery_data": { "code": "XXXX-YYYY-ZZZZ", "type": "redeem_code" }
}Rate limits
Standard tier: 100 req/min на API-ключ. Enterprise: 1 000 req/min. Превышение → `HTTP 429` с заголовком `Retry-After`. Рекомендуем exponential backoff (30s, 60s, 120s).
Полная OpenAPI 3.1 спецификация
/api/openapi.json · OpenAPI 3.1 / JSON. Compatible with swagger-ui, redoc, insomnia, postman.
