/api/directions
Метод: GET
Описание: Запрашивает краткую информацию о направлениях обмена.
Права: ✅ Открыт для всех.
Параметры:
start
- с какого по счету элемента начать выдачу данных. Например, если start = 10, то ответ начнется с 11-го элемента. По умолчанию start = 0.count
- максимальное количество направлений для загрузки за один раз. Например, если count = 50, будет возвращено 50 элементов, начиная с позиции, указанной в start. По умолчанию = 100;status
- статус направления:
active
- только активные;inactive
- только неактивные;status
- все направления;fromId
: id валюты Отдаю. Используется именно id, чтобы однозначно идентифицировать валюту. Если бы мы использовали код валюты, например USDT
, тогда бы мы получили несколько валют: USDT TRC-20
, USDT BEP-20
;toId
: id валюты Получаю.filter
- фильтр по коду валют Отдаю или Получаю.Параметры по умолчанию: поиск по всем валютам, start=0
, count=100
.
Ответ:
{
"type": "success",
"message": null,
"data": {
"items": [
{
"id": 1,
"from": {
"id": 2,
"name": "ВТБ RUB",
"code": "RUB",
"fidelity": 2
},
"to": {
"id": 5,
"name": "ETH",
"code": "ETH",
"fidelity": 6
},
"isActive": false,
"price": 4.7233311756889827e-7
}
],
"total": 1,
"page": 1,
"pageSize": 100
},
"action": null
}
Подробности:
total
- число элементов, которые соответствуют условиям поиска;list
- краткая информация о направлениях:
id
- id направления;from
- валюта Отдаю;to
- валюта Получаю;fidelity
- точность цены, знаков. Например, для USDT это 2 знака, т.к. минимальный объем - 0.01 USDT или 1 цент.isActive
- направление активно и отображается на сайте;price
- цена в quoted-валюте. Для RUB-ETH это ETH. Это значение не округляется, т.к. часто бывают очень маленькие значения и можно получить 0./api/directions
Метод: POST
Описание: Массовое редактирование направлений обмена. Т.к. каждое направление нужно загружать отдельно, то, чтобы снизить количество запросов, был добавлен этот маршрут.
Права: 🔴 админка + isEditDirection
.
Параметры:
ids
- список id направлений, обязательно;isActive
- статус направлений (true/false);profit
- прибыль, %, округляется до 3х знаков после запятой;minSum
- мин.сумма обмена, округляется до числа знаков, которые указаны в свойствах валюты. Это нужно для того, чтобы 0.01 BTC не сохранялось как 0.009999999999...;minSumCurrency
- id валюты мин.суммы обмена;maxSum
- мин.сумма обмена, округляется до числа знаков, которые указаны в свойствах валюты;maxSumCurrency
- id валюты макс.суммы обмена;Ответ:
{
"type": "success",
"message": "Массовое редактирование направлений: Bitcoin -> Tether, Ethereum -> Tether",
"data": null,
"action": null
}
/api/directions
Метод: DELETE
Описание: Удаляет направления обмена.
Права: 🔴 админка + isEditDirection
.
Параметры: ids
- список id направлений для удаления.
Ответ:
{
"type": "success",
"message": "Удалены направления: Bitcoin -> Сбер RUB",
"data": null,
"action": null
}
/api/direction/{id}
Метод: GET
Описание: Запрашивает подробную информацию о направлении обмена.
Права: 🟡 админка.
Параметры:
id
: id направления. Обязательный параметр.Ответ:
{
"type": "success",
"message": null,
"data": {
"id": 1,
"fromId": 2,
"toId": 5,
"isActive": false,
"isExport": true,
"minSum": 15,
"minSumCurrencyId": 6,
"maxSum": 50,
"maxSumCurrencyId": 11,
"profit": 2,
"formulaId": 1,
"statusId": 6
},
"action": null
}
Подробности:
isActive
- направление активно и отображается на главной странице;isExport
- включить экспорт в файл курсов. Если сайт размещен в каталогах, то из этого файла роботы скачивают курсы обмена. Иногда полезно отключить, например если вы тестируете новое направление;minSum
, maxSum
- минимальная и максимальная сумма для обмена;minSumCurrencyId
, maxSumCurrencyId
- id валют, в которых задана мин и макс сумма;profit
- прибыль, %, плюсуется к курсу;formulaId
- id формулы, по которой рассчитывается курс;statusId
- id шаблона статусов заявки./api/user/direction/{id}
Метод: GET
Описание: Запрашивает подробную информацию о направлении. Маршрут для сайта.
Права: ✅ Открыт для всех.
Параметры:
id
: id направления. Обязательный параметр.Ответ:
{
"type": "success",
"message": null,
"data": {
"fromId": 2,
"toId": 10,
"minSumGive": 1681.505333714844,
"maxSumGive": 15597.227200000001,
"minSumGet": 120,
"maxSumGet": 1115.2647975077882,
"statusId": 6,
"popup": "Сайт работает в тестовом режиме.",
"price": 0.08454426869105026,
"giveFields": [
{
"name": "ФИО",
"isRequired": true,
"hint": "Ваши документы?"
}
],
"getFields": []
},
"action": null
}
Подробности:
minSumGive
- мин.сумма для обмена, пересчитана по тек.курсу в валюту Отдаю;maxSumGive
- макс.сумма для обмена, пересчитана по тек.курсу в валюту Отдаю;minSumGet
- мин.сумма для обмена, пересчитана по тек.курсу в валюту Получаю;maxSumGet
- макс.сумма для обмена, пересчитана по тек.курсу в валюту Получаю;statusId
- id шаблона статусов заявки;popup
- всплывающее окно перед созданием заявки (по сути это один из статусов заявки. Добавил это поле, чтобы снизить колич запросов);giveFields
- доп поля для валюты Отдаю (например, ФИО для банковской карты или Memo для некоторых криптовалют);getFields
- доп поля для валюты Получаю./api/direction
Метод: PUT
Описание: Добавляет новое направление обмена
Права: 🔴 админка + isEditDirection
.
Запрос:
{
"isActive": false,
"isExport": false,
"profit": 0,
"minSum": "20",
"maxSum": "100",
"minSumCurrencyId": "10",
"maxSumCurrencyId": "6",
"statusId": 6,
"id": 0,
"fromId": "10",
"toId": "11",
"formulaId": 6
}
Параметры:
fromId
: id валюты Отдаю;toId
: id валюты Получаю.Ответ:
{
"type": "success",
"message": "Добавлено направление DOGE -> Евро",
"data": {
"alerts": "[]"
},
"action": null
}