> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/guide/integracii/merchanty-i-api/avtomatizaciya-valyut-s-raznymi-setyami.md).

# Автоматизация валют с разными сетями

Данная инструкция полезна только для случаев, когда вы подключаете Tether, USDCoin.

При работе с криптовалютами один и тот же актив может существовать в разных сетях.

Например, USDT может работать в сетях:

* TRC20;
* ERC20;
* BEP20;
* TON;
* Polygon;
* Solana.

Для клиента это выглядит как одна валюта — USDT. Но для платёжного сервиса это разные сети, разные адреса, разные правила проверки транзакций и разные способы выплаты.

Чтобы система правильно понимала, в какой сети принимать или отправлять средства, используется код сети.

## Что такое код сети

Код сети — это значение, которое система передаёт мерчанту или модулю выплаты.

Например:

```
TRC20
ERC20
BEP20
TON
```

Некоторые платёжные сервисы могут использовать свои названия:

```
TRON
USDTTRC20
usdt-tron
TRX
```

Поэтому код сети нельзя указывать наугад. Его нужно брать из документации платёжного сервиса или уточнять у его поддержки.

## Зачем указывать сеть

Сеть нужна, чтобы платёжный сервис понял, где именно нужно принимать или отправлять средства.

Если сеть указана неправильно, могут возникнуть серьёзные проблемы:

* клиент получит адрес не той сети;
* клиент отправит средства в неправильную сеть;
* система не найдёт транзакцию;
* заявка зависнет в ожидании оплаты;
* выплата уйдёт через неправильную сеть;
* платёжный сервис вернёт ошибку;
* оператору придётся разбирать заявку вручную.

Особенно внимательно настраивайте сети для мультисетевых активов:

* USDT;
* USDC;
* ETH;
* токены в сетях TRC20, ERC20, BEP20, TON, Polygon и других.

***

## Где настраиваются сети

Сети можно указывать в нескольких местах. Это сделано для гибкости: иногда валюта всегда работает в одной сети, а иногда сеть зависит от конкретного направления обмена или платёжного провайдера.

{% stepper %}
{% step %}

### Сеть для приёма средств

Используется для мерчантов, которые принимают оплату от клиента.

Откройте: **«Основное» — «Валюты» — выберите валюту — «Автоматизация» — «Мерчанты»**

<figure><img src="https://1156649716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYuqSN6CIJoIeh8EPb0uE%2Fuploads%2Fgit-blob-531c3106771b60c3bfacbbd4daf4dcc8c3266806%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Здесь можно указать, через какую сеть мерчант должен принимать оплату по выбранной валюте.

Пример:

```
USDT — TRC20
```

Это означает, что при оплате через выбранный мерчант система будет передавать код сети TRC20.
{% endstep %}

{% step %}

### Сеть для выплат

Используется для модулей, которые отправляют средства клиенту.

Откройте:

**«Основное» — «Валюты» — выберите валюту — «Автоматизация» — «Выплаты»**

<figure><img src="https://1156649716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYuqSN6CIJoIeh8EPb0uE%2Fuploads%2Fgit-blob-a8d21c7d26e54631e104295fecc317a5317826f4%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Здесь можно указать, через какую сеть система должна отправлять средства клиенту.

Пример:

```
USDT — ERC20
```

Это означает, что при выплате через выбранный модуль система будет использовать сеть ERC20.
{% endstep %}

{% step %}

### Сеть в правилах мерчантов

Используется, если сеть приёма должна зависеть от конкретного направления обмена.

Откройте: **«Основное» — «Направление обмена» — «Правила мерчантов»**

<figure><img src="https://1156649716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYuqSN6CIJoIeh8EPb0uE%2Fuploads%2Fgit-blob-f68428c718483da96682176de87a1c942a427a1f%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Пример:

<table><thead><tr><th width="251.0703125">Направление</th><th>Сеть приёма</th></tr></thead><tbody><tr><td>BTC — USDT</td><td>TRC20</td></tr><tr><td>ETH — USDT</td><td>ERC20</td></tr><tr><td>RUB — USDT</td><td>BEP20</td></tr></tbody></table>

В этом случае сеть задаётся не просто для валюты USDT, а отдельно для нужного направления.
{% endstep %}

{% step %}

### Сеть в правилах выплат

Используется, если сеть выплаты должна зависеть от конкретного направления обмена.

Откройте: **«Основное» — «Направление обмена» — «Правила выплат»**

<figure><img src="https://1156649716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYuqSN6CIJoIeh8EPb0uE%2Fuploads%2Fgit-blob-72e8536e0089955060c88e96183b810ea6603931%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Пример:

<table><thead><tr><th width="226.25">Направление</th><th>Сеть выплаты</th></tr></thead><tbody><tr><td>BTC — USDT</td><td>TRC20</td></tr><tr><td>ETH — USDT</td><td>ERC20</td></tr><tr><td>RUB — USDT</td><td>BEP20</td></tr></tbody></table>

Если для направления создано правило выплаты с указанной сетью, система будет использовать именно эту сеть.
{% endstep %}

{% step %}

### Сеть в опциях мерчанта или выплаты

Некоторые платёжные модули имеют отдельное поле во вкладке **«Опции».**

Оно может называться так:

* Код сети;
* Код валюты;
* Код валюты/сети;
* Network code.

Эта настройка относится ко всему конкретному мерчанту или модулю выплаты.

Используйте её, если провайдер всегда требует один конкретный код.

Пример:

```
USDTTRC20
```

или:

```
TRC20
```

{% endstep %}
{% endstepper %}

***

## Настройка сети на уровне валюты

Настройка на уровне валюты подходит, если выбранная валюта почти всегда работает в одной сети.

Например:

```
USDT всегда принимается в TRC20
USDT всегда выплачивается в TRC20
```

В таком случае достаточно настроить сеть внутри самой валюты.

{% stepper %}
{% step %}

### Сеть для мерчантов

Откройте: **«Основное» — «Валюты» — выберите валюту — «Автоматизация» — «Мерчанты»**

В блоке настройки мерчантов сначала выберите нужные мерчанты, затем откройте вкладку **«Сети».**

<figure><img src="https://1156649716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYuqSN6CIJoIeh8EPb0uE%2Fuploads%2Fgit-blob-815c6734470e78ed3daee2eed16488f07dee4f7f%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Здесь можно указать:

* сеть по умолчанию;
* индивидуальную сеть для конкретного мерчанта.
  {% endstep %}

{% step %}

### Сеть по умолчанию для мерчантов

Это общий код сети для всех выбранных мерчантов.

Пример:

```
TRC20
```

Если у конкретного мерчанта не указана отдельная сеть, система будет использовать сеть по умолчанию.
{% endstep %}

{% step %}

### Индивидуальная сеть мерчанта

Если один мерчант требует один код, а другой — другой, укажите сеть отдельно для каждого.

Пример:

<table><thead><tr><th width="193.88671875">Мерчант</th><th>Код сети</th></tr></thead><tbody><tr><td>Мерчант 1</td><td>TRC20</td></tr><tr><td>Мерчант 2</td><td>USDTTRC20</td></tr><tr><td>Мерчант 3</td><td>TRON</td></tr></tbody></table>

Индивидуальная настройка имеет приоритет над сетью по умолчанию.
{% endstep %}

{% step %}

### Сеть для выплат

Откройте: **«Основное» — «Валюты» — выберите валюту — «Автоматизация» — «Выплаты»**

<figure><img src="https://1156649716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYuqSN6CIJoIeh8EPb0uE%2Fuploads%2Fgit-blob-fb42fdda1323374c058acee3fbf91a97d2f8ca61%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Здесь работает такая же логика:

* можно указать сеть по умолчанию для выплат;
* можно указать отдельную сеть для конкретного модуля выплаты.

Пример:

<table><thead><tr><th width="221.54296875">Выплата</th><th>Код сети</th></tr></thead><tbody><tr><td>Выплата 1</td><td>TRC20</td></tr><tr><td>Выплата 2</td><td>ERC20</td></tr></tbody></table>
{% endstep %}
{% endstepper %}

***

## Приоритет выбора сети

Если сеть указана в нескольких местах, система выбирает её по приоритету.

{% stepper %}
{% step %}

### Приоритет для приёма средств

При приёме оплаты через мерчант система использует сеть в таком порядке:

<table><thead><tr><th width="166.9375">Приоритет</th><th>Откуда берётся сеть</th></tr></thead><tbody><tr><td>1</td><td>Правило мерчанта направления</td></tr><tr><td>2</td><td>Опции самого мерчанта</td></tr><tr><td>3</td><td>Индивидуальная сеть мерчанта в валюте</td></tr><tr><td>4</td><td>Сеть по умолчанию для мерчантов в валюте</td></tr><tr><td>5</td><td>Код валюты, если отдельная сеть не указана</td></tr></tbody></table>

Самый высокий приоритет имеет правило направления.
{% endstep %}

{% step %}

### Приоритет для выплат

При отправке средств клиенту система использует сеть в таком порядке:

<table><thead><tr><th width="171.3359375">Приоритет</th><th>Откуда берётся сеть</th></tr></thead><tbody><tr><td>1</td><td>Правило выплаты направления</td></tr><tr><td>2</td><td>Опции самой выплаты</td></tr><tr><td>3</td><td>Индивидуальная сеть выплаты в валюте</td></tr><tr><td>4</td><td>Сеть по умолчанию для выплат в валюте</td></tr><tr><td>5</td><td>Код валюты, если отдельная сеть не указана</td></tr></tbody></table>
{% endstep %}
{% endstepper %}

***

## Когда использовать разные способы настройки

{% stepper %}
{% step %}

### Настройка в валюте

Используйте, если валюта работает в одной сети.

Пример:

```
USDT только TRC20
```

Это самый простой вариант.
{% endstep %}

{% step %}

### Правила направлений

Используйте, если сеть зависит от направления обмена.

Пример:

```
BTC — USDT TRC20
ETH — USDT ERC20
RUB — USDT BEP20
```

Такой вариант нужен, когда одной общей настройки валюты недостаточно
{% endstep %}

{% step %}

### Опции мерчанта или выплаты

Используйте, если конкретный провайдер требует особый код сети или валюты.

Пример:

```
TRC20
USDTTRC20
usdt-tron
```

Эта настройка удобна, когда код зависит не от направления, а от требований самого API.
{% endstep %}
{% endstepper %}

***

## Примеры настройки

{% stepper %}
{% step %}

### USDT работает только в TRC20

Задача: принимать и выплачивать USDT только через TRC20.

Настройка:

1. Откройте валюту USDT.
2. Перейдите в «Автоматизация» — «Мерчанты».
3. Выберите нужные мерчанты.
4. Во вкладке «Сети» укажите:

```
TRC20
```

5. Перейдите в «Автоматизация» — «Выплаты».
6. Выберите нужные выплаты.
7. Во вкладке «Сети» также укажите:

```
TRC20
```

Такой вариант подходит, если весь USDT в проекте работает только в одной сети.
{% endstep %}

{% step %}

### Разные сети по направлениям

Задача: в одном направлении клиент получает USDT TRC20, а в другом — USDT ERC20.

Настройка:

1. Откройте «Основное» — «Направление обмена» — «Правила выплат».
2. Создайте правило для первого направления.
3. Выберите нужный модуль выплаты.
4. В поле «Сеть» укажите:

```
TRC20
```

5. Создайте правило для второго направления.
6. В поле «Сеть» укажите:

```
ERC20
```

Теперь система будет выбирать сеть по конкретному направлению.
{% endstep %}

{% step %}

### Разные провайдеры требуют разные коды

Задача: два провайдера работают с USDT TRC20, но требуют разные значения.

Пример:

<table><thead><tr><th width="241.85546875">Провайдер</th><th>Ожидаемый код</th></tr></thead><tbody><tr><td>Провайдер 1</td><td>TRC20</td></tr><tr><td>Провайдер 2</td><td>USDTTRC20</td></tr></tbody></table>

Настройка:

1. Откройте валюту USDT.
2. Перейдите в **«Автоматизация» — «Мерчанты» или «Выплаты».**
3. Выберите оба модуля.
4. Во вкладке «Сети» укажите индивидуальный код для каждого.
   {% endstep %}
   {% endstepper %}

***

## Что проверить перед запуском

Перед использованием на реальных заявках проверьте:

* правильно ли выбран мерчант или модуль выплаты;
* включён ли выбранный модуль;
* указана ли сеть там, где она обязательна;
* соответствует ли код сети требованиям провайдера;
* не перепутаны ли сети приёма и выплаты;
* нет ли конфликтов между настройкой валюты и правилом направления;
* выполнена ли тестовая заявка на небольшую сумму.

## Частые ошибки

<details>

<summary>Сеть указана не там</summary>

Например, настроили сеть для выплаты, но забыли указать сеть для мерчанта. В результате приём оплаты может работать неправильно.

</details>

<details>

<summary>Используется неправильный код</summary>

Например, администратор указал:

```
Tron
```

а провайдер ожидает:

```
TRC20
```

Всегда используйте код из документации конкретного провайдера.

</details>

<details>

<summary>Одна валюта используется в разных сетях, но настроена только в валюте</summary>

Если USDT используется в TRC20 и ERC20, общей настройки на уровне валюты может быть недостаточно.

В таком случае используйте правила направлений.

</details>

<details>

<summary>Сеть задана в опциях модуля и забыта</summary>

Если в опциях мерчанта или выплаты указан код сети, он может влиять на все направления, где используется этот модуль.

Если нужно разное поведение по направлениям, используйте правила направлений.

</details>

## Рекомендации

Если валюта работает только в одной сети, задайте сеть на уровне валюты.

Если сеть зависит от направления, используйте правила мерчантов или правила выплат.

Если провайдер требует особый формат кода, укажите его в опциях конкретного модуля.

Для всех мультисетевых активов обязательно выполняйте тестовую заявку перед запуском на реальные суммы.

## Рекомендуемые значения для названий сетей

{% tabs %}
{% tab title="WestWallet" %}

* **Tether TRC-20 —** USDTTRC
* **Tether BEP-20 —** USDTBEP
* **USD Coin TRC-20 —** USDCTRC

*А для остальных случае, оставьте поле "Название сети" пустым*

<figure><img src="https://1156649716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYuqSN6CIJoIeh8EPb0uE%2Fuploads%2Fgit-blob-9269c90eda7cc4965d01ca80052dea48f1d44969%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="WhiteBit" %}

* **Tether TRC20 —** TRC20
* **Tether ERC20 —** ERC20
* **Tether SOL —** SOL
* **Tether EOS —** EOS
* **USDCoin TRC20 —** TRC20
* **USDCoin ERC20 —** ERC20
* **USDCoin SOL —** SOL

Если в этом списке нет валюту, сеть которую хотите использовать [перейдите по ссылке](https://whitebit.com/api/v4/public/assets) и найдите валюту.

<figure><img src="https://1156649716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYuqSN6CIJoIeh8EPb0uE%2Fuploads%2Fgit-blob-57a4b8cca58ac08859a5d8f46f76bb363156686e%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Rapira" %}

* **BTC-Bitcoin** — Bitcoin
* **ETH-ERC20** — Ethereum
* **TRX-TRC20** — Tron
* **USDT-TRC20** — Tether TRC20 (сеть Tron)
* **USDT-ERC20** — Tether ERC20 (сеть Ethereum)
* **USDT-BEP20** — Tether BEP20 (сеть Binance Smart Chain)
* **USDC-TRC20** — USDCoin TRC20 (сеть Tron)
* **USDC-ERC20** — USDCoin ERC20 (сеть Ethereum)
* **USDC-BEP20** — USDCoin BEP20 (сеть Binance Smart Chain)
* **BTC-BEP20** — Bitcoin BEP20 (сеть Binance Smart Chain)
* **BNB-BEP20** — Binance Coin
* **LTC-Litecoin** — Litecoin
* **DAI-ERC20** — DAI (сеть Ethereum)
* **DAI-BEP20** — DAI (сеть Binance Smart Chain)
  {% endtab %}

{% tab title="Heleket" %}
<https://doc.heleket.com/ru/other/reference>
{% endtab %}
{% endtabs %}

***

## Коротко

Код сети помогает системе понять, через какую blockchain-сеть принимать или отправлять средства.

Для простых случаев сеть можно настроить на уровне валюты. Для сложных направлений используйте правила мерчантов и выплат. Если провайдер требует собственный формат кода, укажите его в опциях конкретного модуля.
