REST · JSON · v2
Обмен криптовалюты через API
Встройте обмен в кошелёк, Telegram-бота или магазин. Клиент отправляет монеты на выданный адрес, выплата уходит на указанный им адрес. Регистрировать клиента у нас не нужно.
- Один ключсекретный ключ
hx_secret_…в заголовкеAuthorization - Одна заявкаодин и тот же объект в ответах, списке и вебхуках
- Без дублейповтор создания с
Idempotency-Keyвернёт ту же заявку
Обмен за четыре запроса
Клиент меняет 250 USDT в сети TRON на биткоин. Переменная SK — ваш секретный ключ.
Найти пару
GET /assetsGET /assetsвозвращает активы и сети.deposit: true— актив можно отправить,payout: true— получить. Список меняется редко, его можно кешировать.curl https://666.exchange/api/v2/assets \ -H "Authorization: Bearer $SK"Узнать цену
POST /quotesPOST /quotesсчитает, сколько получит клиент, и возвращает пределы суммы.quote.idдействует 2 минуты: за это время создайте заявку.curl https://666.exchange/api/v2/quotes \ -H "Authorization: Bearer $SK" \ -H "Content-Type: application/json" \ -d '{ "from": { "asset": "USDT", "network": "TRON" }, "to": { "asset": "BTC", "network": "BITCOIN" }, "amount": "250" }'Создать заявку
POST /ordersPOST /ordersсquoteи адресом выплаты. Покажите клиентуdeposit.addressиfrom.amountили отправьте его на страницуpageUrl.curl https://666.exchange/api/v2/orders \ -H "Authorization: Bearer $SK" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: 0b9c3f4e-2d1a-4c7e-9f0a-7a1d2e3c4b5f" \ -d '{ "quote": "qt_eyJ2IjoxLCJwaWQiOi...mF0ZQ", "payout": { "address": "bc1q9h7garjxw5c3l8wmxq0y8wzg7l3f5n2t4u6v8x" }, "reference": "inv_20931" }'Дождаться выплаты
GET /orders/{id}Мы пришлём вебхук на каждое изменение заявки. Без вебхуков запрашивайте
GET /orders/{id}. Готово, когдаstateравноcompleted.curl https://666.exchange/api/v2/orders/Q7M2-KD4X \ -H "Authorization: Bearer $SK"
Состояния заявки
Поле state в объекте заявки. Основной путь — слева направо.
awaiting_depositждём переводconfirmingнабираются подтвержденияexchangingменяем и отправляемcompletedвыплата отправлена
awaiting_decisionнужно решение: курс изменился, пришла другая сумма или перевод опоздалcontinueобмен по текущему курсуrefundrefunding → refunded
Другие исходы
expiredперевода не былоcancelledзаявка отмененаoperatorнужна поддержкаproblemостановлена из-за сбоя