# Выплаты Binance

### Установка модуля

Используя параметры ниже, установите модуль выплаты через функционал "**Install plugin**" по инструкции [install-plugin](https://manual.boxexchanger.net/dopolnitelnye-sistemy/install-plugin "mention").

<details>

<summary>Параметры для Install Plugin</summary>

**Plugin type**: <mark style="color:orange;">**`Payout module`**</mark>

**Plugin URL**: <mark style="color:orange;">**`@boxexchanger-plugins/payout-binance`**</mark>

**Directory path**: <mark style="color:orange;">**`binance`**</mark>

**Auth: (Deploy token)**: оставляем пустым

**Package tag**: <mark style="color:orange;">**`latest`**</mark>

</details>

### Настройка API ключей в админ панели

1. Войдите в аккаунт Binance -> перейдите на страницу [**Управление API**](https://www.binance.com/ru-UA/my/settings/api-management)**.**
2. Нажмите "[**Создать API**](#user-content-fn-1)[^1]" -> выберите тип ключа API, к примеру, "**Сгенерированный системой**" -> нажмите "[**Далее**](#user-content-fn-2)[^2]" -> создайте метку для ключа API -> нажмите "[**Далее**](#user-content-fn-3)[^3]" -> пройдите проверку безопасности.&#x20;
3. После генерации ключей, [**скопируйте** ](#user-content-fn-4)[^4]значения **API Key** и **Secret key** в надежное место.
4. В админ панели BoxExchanger перейдите на страницу настроек модуля выплаты Binance. Для этого перейдите на страницу "**Мерчант и API**" - раздел "**PAYOUT SYSTEM**" - настройки ([**значок настроек**](#user-content-fn-5)[^5]) в блоке с модулем "**Binance**".&#x20;
5. В поле "**Withdraw from**" введите подходящую валюту. Подробнее в разделе [#dopolnitelnye-nastroiki-modulya](#dopolnitelnye-nastroiki-modulya "mention").
6. В поле "**API Key**" вставьте, скопированный на шаге 3, **API key -** нажмите "[**Save**](#user-content-fn-6)[^6]".
7. В поле "**API Secret**" вставьте, скопированный на шаге 3, **Secret key** - нажмите "[**Save**](#user-content-fn-7)[^7]". *(после перезагрузки страницы, **API Secret** будет скрыт и перестанет отображаться в админ панели в целях безопасности).*
8. На странице настроек модуля Binance в разделе "**IP SERVER**", [**скопируйте** ](#user-content-fn-8)[^8]IP -> вернитесь на страницу "**Управление API**" в ЛК Binance -> в блоке с созданным API ключом, нажмите "[**Редактировать ограничения**](#user-content-fn-9)[^9]" -> выберите пункт "**Разрешить доступ только к доверенным IP-адресам**" -> вставьте IP, скопированный ранее -> "[**Подтвердить**](#user-content-fn-10)[^10]".
9. В разделе "**Ограничения API**" выберите разрешенные действия, указанные ниже -> нажмите "[**Сохранить**](#user-content-fn-11)[^11]" -> пройдите проверку безопасности.&#x20;

<details>

<summary>Разрешенные действия</summary>

* Разрешить универсальные операции
* Включить спотовую и маржинальную торговлю
* Включить возможность вывода средств

</details>

9. Модуль выплаты Binance настроен.

### Алгоритм работы модуля (Withdraw from USDT)

{% hint style="info" %}
**Формула для расчета суммы ордера**: Сумма, которую должен получить клиент по заявке + сумма за вывод этой валюты + 0.2% (0.1% торговая комиссия и 0.1% погрешности) от суммы двух предыдущих слагаемых - Сумма валюты на спотовом балансе. \
**Пример:**

* Обмен 5 USDT -> 50 TRX
* Модуль выплаты для TRX: Binance
* Комиссия за вывод TRX с Binance: 1 TRX
* Сумма TRX на спотовом балансе: 0 TRX

**Расчет суммы ордера**:  (50 TRX + 1 TRX) + (50 TRX + 1 TRX)\*0.02 - 0 TRX = 51 TRX + 1.02 TRX = 52.02 TRX (ордер будет выставлен на сумму 52.1 из-за округления Binance)
{% endhint %}

1. Запуск модуля выплат Binance, путем перевода заявки в статус "На выплату" (подтверждения выплаты "Allow auto payout", если для направления выключен "Автообмен").
2. Проверка баланса на спотовом счету для валюты, которую должен получить клиент.&#x20;
3. В случае если:

* **Валюты на балансе достаточно** -> скрипт создает заявку на вывод валюты (без учета комиссии за вывод) на адрес кошелька клиента.
* **Валюты на балансе недостаточно** -> скрипт выставляет в паре **Валюта/USDT** market ордер (но не меньше минимальной суммы ордера) на покупку недостающей суммы (*формула для расчета суммы ордера выше*) для валюты на вывод -> заявка на вывод валюты (без учета комиссии за вывод) на адрес кошелька клиента.

<details>

<summary>Пример #1 Недостаточная сумма валюты для вывода на спотовом балансе Binance</summary>

* Обмен 50 USDT -> 500 TRX
* Модуль выплаты для TRX: Binance
* Комиссия за вывод TRX с Binance: 1 TRX
* Сумма TRX на спотовом балансе: 400 TRX

1. Скрипт высчитывает недостающую сумму TRX для вывода: (500 TRX + 1 TRX) - 400 TRX = 101 TRX&#x20;
2. Скрипт выставляет в паре TRX/USDT market ордер на покупку 101 TRX + 0.2% = \~101.2 TRX&#x20;
3. Скрипт создает заявку на вывод 500 TRX, а 1 TRX уходит на комиссии.

</details>

4. Смена статуса заявки на "Завершена" и добавления комментария к заявке с хешем вывода.&#x20;

### Особенности работы модуля

* Средства на Funding балансе не учитываются скриптом.
* Если недостающая сумма для вывода будет меньше минимальной суммы ордера в данной паре (Обычно ≥ эквивалент 5 USDT), то скрипт будет выставлять минимальный market ордер на покупку (эквивалент 5 USDT + 0.2%).

<details>

<summary>Пример #2 Недостающая сумма для вывода меньше минимальной суммы ордера</summary>

* Обмен 50 USDT -> 500 TRX
* Модуль выплаты для TRX: Binance
* Комиссия за вывод TRX с Binance: 1 TRX
* Сумма TRX на спотовом балансе: 490 TRX
* Минимальная сумма ордера в паре TRX/USDT:  ≥ эквивалент 5 USDT

1. Скрипт высчитывает недостающую сумму TRX для вывода: (500 TRX + 1 TRX) - 490 TRX = 11 TRX&#x20;
2. Так как 11 TRX < минимальной суммы ордера в паре -> в паре TRX/USDT выставляется market ордер на покупку на сумму TRX, эквивалентную 5 USDT, к примеру, 50 TRX (сумма может меняться в зависимости от актуального рыночного BID курса в паре TRX/USDT) + 0.2% = \~ 50,1 TRX&#x20;
3. Скрипт создает заявку на вывод 500 TRX, а 1 TRX уходит на комиссии.

</details>

* Сумма ордера округляется в зависимости от пары. К примеру, если недостающая сумма для вывода TRX составляет 45.8623214939582570487 TRX, то ордер будет выставлен на 45.9 TRX.&#x20;
* Комиссия за вывод средств на адрес пользователя Binance возвращается на баланс.&#x20;

### Дополнительные настройки модуля

* [**Withdraw from**](#user-content-fn-12)[^12] **-** в зависимости от выбранного параметра будет зависеть процесс получения валюты для вывода клиенту по заявке. \
  Для настройки введите заглавными буквами одну из предложенных валют -> нажмите "**Save**".

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><strong>DIRECT</strong> - прямой вывод валюты без обмена. К примеру, если необходимо вывести BTC, то у вас на балансе Binance должен быть резерв BTC. Для ETH - резерв ETH на балансе.</p><p><strong>BTC/ETH/USDT</strong> - использование указанной валюты для получения валюты, которую должен получить клиент по заявке. К примеру, клиент должен получить DOGE, для поля "<strong>Withdraw from</strong>" выбрано "<strong>USDT</strong>" - в таком случае у вас на балансе должен быть резерв USDT, за который в паре DOGE/USDT будет куплен нужный объем DOGE. <br>Обычно выбирается "<strong>USDT</strong>".</p></div>
* [**API URL**](#user-content-fn-13)[^13] **-** ссылка на актуальный URL API Binance. Значение указано по умолчанию.&#x20;

[^1]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2FqibzweR4MmaVmD29mxpO%2Fimage.png?alt=media\&token=d8f262fc-9175-4ec9-93fa-267508439484)

[^2]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2FZguquPQ1JmO7vKFoHw4y%2Fimage.png?alt=media\&token=7739c94a-c1ee-4eb4-9ecf-4751236858df)

[^3]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2FaLZHltBGKdrAki44EqTe%2Fimage.png?alt=media\&token=73878079-244a-4968-8cad-c1eaf5d1ae77)

[^4]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2Ffb0ILBwnVwQ9wGRxWWaZ%2Fimage.png?alt=media\&token=4efa9cd8-fda5-4a95-8307-faccf91e05e8)

[^5]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2FlcbuYmiVtDt055Yi5TLA%2Fimage.png?alt=media\&token=7c341542-35f4-407c-801b-b81c82fb6f65)

[^6]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2F4SlQ4oV935VUhX7NHJn6%2Fimage.png?alt=media\&token=57dbc56c-0e5c-4ee8-86de-42123075d8ca)

[^7]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2F4Zfr46CmgtWHgWISWmP3%2Fimage.png?alt=media\&token=67ed2721-cfc5-40ce-9b07-db4763edc9ca)

[^8]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2FGAI3bKkBTcEn0k4j1XJQ%2Fimage.png?alt=media\&token=41c856f3-c1a1-4822-9504-e1032e02ece8)

[^9]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2Fyj4YswY16xWaH5P4dOIC%2Fimage.png?alt=media\&token=625c6da9-9e57-494f-a1c5-3ce711aedc83)

[^10]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2FQ9QquvRQcjKIQkvrGe1K%2Fimage.png?alt=media\&token=9d1e2443-8063-49de-bdea-e3faee0924f1)

[^11]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2FHX6jjlSpubcdw0bhl7mn%2Fimage.png?alt=media\&token=ecedf2d6-489a-49ab-8f45-6320bc618119)

[^12]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2FvTzWI1ovyyG2dzekwMam%2Fimage.png?alt=media\&token=1dfb64fe-d63a-49f5-9c99-b8176b05434b)

[^13]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2F6XvqNTqbQbryzprhkX1w%2Fimage.png?alt=media\&token=59404187-78b6-43ff-8762-a7c5ea5434af)
