# Обмены

Кроссчейн обмен - это обмен одного актива на другой.

Для проведения обмена актива необходимо убедить что эта услуга доступна в выбранных вами сетях. Для этого запросите [список доступных монет](#95445bae-0a11-4a88-8c6c-84323c840424), найдите нужную вам монету, у нее будет список сетей `networks`, убедитесь что у сети актива, который вы хотите обменять флаг `allowCrosschainSwapFrom` раняется `true`, а у сети актива, который хотите получить `allowCrosschainSwapTo` равняется `true`.

Например:\
У вас есть **ETH** в сети **Ethereum**, в списте доступных монет вы должны найти монету **ETH**, далее у нее в списке `networks` найти сеть `ethereum` у нее должно быть `"allowCrosschainSwapFrom": true`

```json
{
  "success": true,
  "response": [
    ...
    {
      "currency": "ETH",
      ...
      "networks": [
        ...
        {
          "name": "ethereum",
          ...
          "allowCrosschainSwapFrom": true,
          ...
        }
        ...
      ]
    },
    ...
  ]
}

```

Вы хотети обменять его в **USDT** в сети **Tron**, в списте доступных монет вы должны найти монету **USDT**, далее у нее в списке `networks` найти сеть `tron` у нее должно быть `"allowCrosschainSwapTo": true`

```json
{
  "success": true,
  "response": [
    ...
    {
      "currency": "USDT",
      ...
      "networks": [
        ...
        {
          "name": "tron",
          ...
          "allowCrosschainSwapTo": true,
          ...
        }
        ...
      ]
    },
    ...
  ]
}

```

Узнайте [допустимый лимит](#8a0a5146-91bc-46f3-9b23-4afe6cbeca07) для суммы операции. Обратите внимание, что суммы лимитов указаны в **USD**, курсы таких стейблкойнов как **USDT**, **BUSD** etc не значительно отличаются от курса **USD**, а если вы хотите обменять другую монету, то вам надо будет получить курс к **USD** чтоб убедиться что ваша сумма удовлетворяет указанным лимитам.

Запросите [превью комиссии](#a620e864-114e-4a45-9a44-3a0522a6d7dc) чтобы получить `token`, его надо будет указать при [запросе создания операции](#b017e259-d4e7-41f7-ad60-d536fac2f14f) как `feeToken`.

Операция не исполняется сразу после запроса, необходимо подождать 1-3 минуты. Вы можете самостоятельно [узнать статус исполнения операции](#1566d2f4-6218-4235-9d15-29c0de888e55), а можете указать URL для получения [вебхука](#webhooks) в поле `webhookUrl` при создании.

Доступные статусы

| **Статус** | **Описание**                 |
| ---------- | ---------------------------- |
| CREATED    | Запрос зарегистрирован       |
| PENDING    | Обрабатывается               |
| ERROR      | Ошибка в процессе исполнения |
| REJECTED   | Запрос отклонен              |
| PROCESSED  | Успех                        |

## Схема взаимодействия с API

{% @mermaid/diagram content="sequenceDiagram
Merchant ->> Onchainpay: Запрос токена комиссии
Onchainpay ->> Merchant: Токен комиссии
Merchant ->> Onchainpay: Создание операции
Onchainpay ->> Merchant: Тело операции

```
Note over Onchainpay: Обработка операции

Onchainpay -->> Merchant: Вебхук с результатом операции" %}
```
