API RExchange
Методы каталога, курсов, резервов и заявок. Обмен поддерживает BTC и USDT TRC20. TRX используется для комиссии сети TRON; банковские направления не подключены.
Примеры используют стандартный прокси сайта /api. Базовый адрес зависит от установки. Каталог и гостевые заявки доступны без API-ключа. Для привязки заявки к аккаунту нужна пользовательская сессия. Выдача интеграционных API-ключей и исходящие вебхуки не реализованы.
Котировки /v1/rates справочные: наличие монеты в рыночном ответе не означает поддержку обмена. Для расчёта используйте rate из /v1/pairs; null означает недоступный курс.
Методы API
- GET/v1/currencies
Включённые валюты, сети и идентификаторы
- GET/v1/pairs
Направления, лимиты и курс с учётом комиссии и спреда
- GET/v1/rates
Рыночные котировки Rapira в USDT, без комиссии обмена
- GET/v1/reserves
Доступные резервы; null, если свежих данных нет
- POST/v1/orders
Создание заявки на обмен
- GET/v1/orders/:id
Реквизиты, суммы и статус заявки
const response = await fetch('/api/v1/pairs');
if (!response.ok) throw new Error('Pairs unavailable');
const pairs = await response.json();const response = await fetch('/api/v1/orders', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Idempotency-Key': savedRequestKey
},
body: JSON.stringify({
fromCurrencyId,
toCurrencyId,
fromAmount,
recipientAddress
})
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.message);
const order = result;Поля заявки
fromCurrencyId и toCurrencyId берутся из /v1/currencies и должны соответствовать доступному направлению /v1/pairs. fromAmount передаётся десятичной строкой, recipientAddress — адресом в сети получения. email необязателен. Итоговые суммы из ответа имеют приоритет над предварительным расчётом.
Повтор запроса
До отправки создайте savedRequestKey через crypto.randomUUID() и сохраните вместе с телом заявки. При сетевом сбое повторяйте тот же запрос с тем же Idempotency-Key. Не меняйте тело или ключ, пока результат первой попытки не выяснен: новый ключ может создать вторую заявку.
Ответ и статус
Ответ содержит id, status, depositAddress, environment, fromAmountExact, toAmountExact и rateExact. Точные суммы возвращаются строками; expiresAt — время в миллисекундах Unix. Статус проверяется через GET /v1/orders/:id. Ссылка и id открывают реквизиты заявки, храните их приватно.
Доступность обмена
Сервер проверяет направление, лимиты, адрес, актуальность курса и резерв. При недоступности обмена заявка не создаётся. Ошибка возвращается в error.code и error.message. Перед переводом проверьте environment: testnet не принимает реальные средства. На создание заявки действует лимит 5 запросов в минуту с одного IP.