Вывод с обменом
Вывод с обменом (withdraw-with-exchange)
Функционал представляет собой новый тип операции и позволяет клиентам PAY выводить активы со счета PAY с конвертацией в другую валюту.
Пример User Story
Как клиент Pay, я хочу вывести 0.1 BTC на внешний кошелек, но чтобы списание произошло с моего счёта в USDT. Для корректного выполнения операции расчет выполняется в обратном порядке: начиная с расчёта всех комиссий, затем выполняется конвертация и вывод.
Основные шаги реализации:
Расчет сетевой брокерской комиссии: К указанной пользователем сумме прибавляется сетевая брокерская комиссия за вывод. Эта комиссия зависит от текущих условий сети и может быть фиксированной или динамической.
Добавление сервисной комиссии: К полученной сумме добавляется сервисная комиссия Pay за предоставление услуги по выводу средств, процент от суммы вывода определяется тарифом.
Конвертация в целевую валюту: После расчета комиссий выполняется конвертация итоговой суммы.
Заявка на вывод с конвертацией. Процесс включает два этапа: Обмен -> Вывод. Например, при выводе USDT в BTC: 1. USDT (fromAssetCode) с баланса мерчанта конвертируются в BTC 2. BTC (toCurrencyCode) выводятся на указанный адрес (recipient) в сети Bitcoin.
Важно:Сумма вывода (amount) указывается в toCurrencyCode.
Совет: Для оценки суммы currencyInCode можно воспользоваться методом "orders/estimate-in".
Сумма выхода
10
Валюта получения (с сетью)
USDTMATIC
Реципиент (адрес)
0x0000000000000000000000000000000000000000
Мемо тег (для XRP, TON и т.д.)
80576
Callback url для отправки хуков
https://api.myip.com
Комментарий к переводу. Опциональное поле
Оплата сервера за 07.2023
Ассет из которого конвертируется
BTC
POST /api/v1/integration/orders/withdraw-with-exchange HTTP/1.1
Host:
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 239
{
"amount": 10,
"toCurrencyCode": "USDTMATIC",
"recipient": "0x0000000000000000000000000000000000000000",
"requisitesMemoTag": "80576",
"callbackUrl": "https://api.myip.com",
"comment": "Оплата сервера за 07.2023",
"fromAssetCode": "BTC"
}
{
"message": "ok",
"data": {
"id": 1,
"uid": "3422b448-2460-4fd2-9183-8000de6f8343",
"createdAt": "2025-07-01T01:58:59.914Z",
"updatedAt": "2025-07-01T01:58:59.914Z",
"deletedAt": "2025-07-01T01:58:59.914Z",
"serviceCommission": "0.565",
"netCommission": "0.565",
"comment": "Комментарий",
"publicComment": "Публичный комментарий",
"merchantUid": "3422b448-2460-4fd2-9183-8000de6f8343",
"merchantName": "Тестовый мерчант",
"merchantId": 6547,
"type": "invoice",
"status": "created",
"invoiceCurrencyCode": "BTC",
"currencyInCode": "USDTERC20",
"currencyOutCode": "USDT",
"invoiceAmount": "10.2334",
"amountInExpected": "43.11",
"amountInFact": "44",
"amountOutExpected": "43.11,",
"amountOutFact": "44",
"hedgeRate": "44",
"isDone": false,
"apiMode": "ui",
"risk": "24",
"requisites": "0xD72901047ffd7Ad0f581016E6B8cF563E02E44bB",
"requisitesIn": "0xD72901047ffd7Ad0f581016E6B8cF563E02E44bB",
"requisitesOut": "0xD72901047ffd7Ad0f581016E6B8cF563E02E44bB",
"requisitesMemoTag": "80576",
"requisitesMemoTagIn": "80576",
"requisitesMemoTagOut": "80576",
"billingTag": "example@mail.com",
"requisitesQrCode": "https://example.com/img-name.png",
"assetInCode": "BTC",
"assetOutCode": "USDT",
"networkInCode": "ETH",
"networkOutCode": "NEAR",
"balanceAfter": "44",
"callbackUrl": "https://example/myCallback",
"invoicePublicUrl": "https://example/myInvoice",
"txId": "afda7a230080dee2119ce5d0a4a83980071eef6e5b14f1dc9ec7e510e63983fd",
"expirationTime": "2025-07-01T01:58:59.914Z",
"isImPayed": false,
"isBayerPaysService": false,
"serviceFeeCurrencyCode": "USDT",
"netFeeCurrencyCode": "USDT",
"requisitesInUrl": "https://example.com/requisites",
"orderCurrencyType": "crypto",
"paymentMethod": "sbp",
"providerCode": "123123123123",
"providerAliasCode": "text",
"providerName": "text",
"paymentTiming": "onTime",
"amountValidity": "valid"
},
"count": 1
}
Last updated