{
  "info": {
    "name": "iEXWallet Public API",
    "description": "Сгенерировано из openapi-public.json (1). Заполните переменные baseUrl / apiId / apiSecret — подпись HMAC считается pre-request скриптом коллекции.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://wallet.example.com",
      "type": "string"
    },
    {
      "key": "apiId",
      "value": "",
      "type": "string"
    },
    {
      "key": "apiSecret",
      "value": "",
      "type": "secret"
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "// iEXWallet Public API — HMAC-подпись запроса (см. docs → Аутентификация)",
          "const ts = Math.floor(Date.now() / 1000).toString();",
          "let raw = '';",
          "if (pm.request.body && pm.request.body.mode === 'raw' && pm.request.body.raw) {",
          "  raw = pm.variables.replaceIn(pm.request.body.raw);",
          "}",
          "const secret = pm.variables.get('apiSecret') || '';",
          "const sig = CryptoJS.HmacSHA256(ts + '.' + raw, secret).toString(CryptoJS.enc.Hex);",
          "pm.request.headers.upsert({ key: 'X-Api-Id', value: pm.variables.get('apiId') || '' });",
          "pm.request.headers.upsert({ key: 'X-Timestamp', value: ts });",
          "pm.request.headers.upsert({ key: 'X-Signature', value: sig });",
          "if (raw) pm.request.headers.upsert({ key: 'Content-Type', value: 'application/json' });"
        ]
      }
    }
  ],
  "item": [
    {
      "name": "public · aml",
      "item": [
        {
          "name": "Список валют, доступных для AML-скрина",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/aml/currencies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "aml",
                "currencies"
              ]
            },
            "description": "Список валют, доступных для AML-скрина\n\nВалюты, которые можно передать в POST /v1/public/aml/checks (allowlist подключённого AML-провайдера). Пустой список = провайдер ещё не синхронизировал валюты (скрин всё равно возможен, но неподдерживаемое вернётся как skipped)."
          },
          "response": []
        },
        {
          "name": "Запустить AML-скрин адреса или транзакции",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/aml/checks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "aml",
                "checks"
              ]
            },
            "description": "Запустить AML-скрин адреса или транзакции\n\nСкринит адрес (по умолчанию) или транзакцию через подключённого AML-провайдера и возвращает риск-скор/уровень. Результат может быть `pending` — тогда опрашивайте GET /v1/public/aml/checks/{uuid}. Идемпотентно по X-Idempotency-Key (повтор не тратит лишнюю квоту провайдера).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"network\": \"TRON\",\n  \"address\": \"TXYZ...abcd\",\n  \"assetCode\": \"USDT_TRC20\",\n  \"txHash\": \"0xabc…\",\n  \"checkMethod\": \"address\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Получить результат AML-проверки",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/aml/checks/:uuid",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "aml",
                "checks",
                ":uuid"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Получить результат AML-проверки\n\nОпрашивает результат по uuid. Если ещё pending — дёргает провайдера и реконсилит статус."
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · assets",
      "item": [
        {
          "name": "List supported currencies",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/assets",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "assets"
              ]
            },
            "description": "List supported currencies\n\nВозвращает список активных валют, которые обменник может использовать для депозитов и выплат. Только публичные поля (код, тикер, сеть, стандарт токена, decimals, флаги deposit/payout, адрес контракта, минимальные суммы)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · balances",
      "item": [
        {
          "name": "Балансы по активам: total / reserved / available / pending + USD",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/balances",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "balances"
              ]
            },
            "description": "Балансы по активам: total / reserved / available / pending + USD\n\nАгрегированные средства hot-кошельков по каждому активу. `available` = on-chain баланс минус выплаты, принятые, но ещё не отправленные (reserved) — то, чем можно оплатить новую выплату. `pendingOutgoing` — отправлено и ждёт подтверждений; `pendingIncoming` — депозиты с замеченной tx до финализации. USD — по курсу на момент ответа. Поля `available`/`updatedAt` совместимы с 1.3.x."
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · conversions",
      "item": [
        {
          "name": "Живая котировка конвертации (preview)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/conversions/quote",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "conversions",
                "quote"
              ]
            },
            "description": "Живая котировка конвертации (preview)\n\nВозвращает ожидаемый выход, minReceived, курс и slippage для пары source→target. Не создаёт заявку. `executable=false` = провайдер отдал preview-курс без on-chain исполнения (не настроен DEX-backend).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourceAssetCode\": \"ETH\",\n  \"targetAssetCode\": \"USDT_ERC20\",\n  \"network\": \"ETHEREUM\",\n  \"amountIn\": \"1.5\",\n  \"maxSlippageBps\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Создать конвертацию",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/conversions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "conversions"
              ]
            },
            "description": "Создать конвертацию\n\nСоздаёт заявку на своп накопленного актива в стейбл. Исполняется асинхронно — опрашивайте GET /v1/public/conversions/{uuid}. Идемпотентно по X-Idempotency-Key.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourceAssetCode\": \"ETH\",\n  \"targetAssetCode\": \"USDT_ERC20\",\n  \"network\": \"ETHEREUM\",\n  \"amountIn\": \"1.5\",\n  \"maxSlippageBps\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Статус конвертации",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/conversions/:uuid",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "conversions",
                ":uuid"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Статус конвертации"
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · deposits",
      "item": [
        {
          "name": "Create new deposit request",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/deposits",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "deposits"
              ]
            },
            "description": "Create new deposit request\n\nСоздаёт депозит и возвращает адрес (+ memo для memo-based сетей) для оплаты. Идемпотентно по (site, order_id, asset) и опц. X-Idempotency-Key.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"orderId\": \"order_42_abc\",\n  \"assetCode\": \"USDT_TRC20\",\n  \"expectedAmount\": \"100.50\",\n  \"comment\": \"User #42 deposit\",\n  \"lifetime\": 3600,\n  \"accuracyPaymentPercent\": 1,\n  \"allowTopUp\": true,\n  \"urlCallback\": \"https://shop.example.com/webhooks/wallet\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List deposits (paginated, scoped to caller siteId)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/deposits",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "deposits"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Номер страницы (с 1).",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": "20",
                  "description": "Размер страницы (макс 100).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "",
                  "description": "Фильтр по статусу (одно значение или несколько через запятую). Напр. \"paid\" или \"paid,paid_over\".",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "1.4.0: курсор из `meta.nextCursor` предыдущего ответа. При наличии `page` игнорируется — выдача идёт keyset-методом (стабильна при появлении новых записей). Первую страницу по курсору запрашивайте без параметра — `meta.nextCursor` появится в ответе.",
                  "disabled": true
                }
              ]
            },
            "description": "List deposits (paginated, scoped to caller siteId)\n\nИстория депозитов сайта. Пагинация page/perPage, опц. фильтр ?status=paid или ?status=paid,paid_over. 1.4.0: keyset-пагинация — передайте `cursor` из meta.nextCursor (первый запрос: `cursor=` пустой)."
          },
          "response": []
        },
        {
          "name": "Refresh deposit (force on-chain recheck)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/deposits/:uuid/refresh",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "deposits",
                ":uuid",
                "refresh"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Refresh deposit (force on-chain recheck)\n\n1.4.0: принудительная перепроверка адреса депозита в сети — когда клиент говорит «я оплатил», а tx ещё не замечена. Просроченный депозит (expired) с найденной входящей tx оживляется. Не чаще раза в 30 с на депозит (429 RATE_LIMITED). Возвращает актуальное состояние депозита."
          },
          "response": []
        },
        {
          "name": "Get deposit by uuid (scoped to caller siteId)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/deposits/:uuid",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "deposits",
                ":uuid"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": "UUID депозита из ответа на создание."
                }
              ]
            },
            "description": "Get deposit by uuid (scoped to caller siteId)\n\nВозвращает депозит + on-chain данные incoming-tx (object `transaction`, null если tx ещё нет)."
          },
          "response": []
        },
        {
          "name": "Get AML data for deposit by uuid",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/deposits/:uuid/aml",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "deposits",
                ":uuid",
                "aml"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": "UUID депозита из ответа на создание."
                }
              ]
            },
            "description": "Get AML data for deposit by uuid\n\nAML-скрин source-of-funds (адрес отправителя входящей tx) по депозиту. amlStatus=not_checked если AML выключен / tx ещё не замечена / сеть не поддерживается провайдером."
          },
          "response": []
        },
        {
          "name": "Get deposit by your order_id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/deposits/by-order-id/:orderId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "deposits",
                "by-order-id",
                ":orderId"
              ],
              "variable": [
                {
                  "key": "orderId",
                  "value": "",
                  "description": "Ваш order_id, переданный при создании."
                }
              ]
            },
            "description": "Get deposit by your order_id\n\nПоиск по вашему order_id (label). Возвращает депозит + on-chain данные incoming-tx."
          },
          "response": []
        },
        {
          "name": "Get AML data for deposit by your order_id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/deposits/by-order-id/:orderId/aml",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "deposits",
                "by-order-id",
                ":orderId",
                "aml"
              ],
              "variable": [
                {
                  "key": "orderId",
                  "value": "",
                  "description": "Ваш order_id, переданный при создании."
                }
              ]
            },
            "description": "Get AML data for deposit by your order_id\n\nAML-скрин source-of-funds депозита по вашему order_id (label)."
          },
          "response": []
        },
        {
          "name": "Refund deposit to sender (1.4.0)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/deposits/:uuid/refund",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "deposits",
                ":uuid",
                "refund"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Refund deposit to sender (1.4.0)\n\nСоздаёт выплату-возврат (`source=refund`) на адрес отправителя входящей транзакции (или на `toAddress`). Депозит переходит в `refund_process`; по исходу выплаты — `refund_paid` (webhook `deposit.refunded`) или `refund_fail` (`deposit.refund_failed`). Разрешено из статусов paid / paid_over / wrong_amount / refund_fail. По настройке платформы выплата-возврат ждёт одобрения оператора (`pending_approval`). Повторный вызов при живой выплате-возврате → 409 REFUND_IN_PROGRESS. Требует scope deposit_and_payout.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"toAddress\": \"TXYZ…\",\n  \"toMemo\": \"\",\n  \"amount\": \"95.5\",\n  \"reason\": \"client cancelled the order\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · fees",
      "item": [
        {
          "name": "Прайс-лист: комиссия обменника + сетевые комиссии по приоритетам (1.4.0)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/fees",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "fees"
              ],
              "query": [
                {
                  "key": "assetCode",
                  "value": "USDT_TRC20",
                  "description": "Только один актив.",
                  "disabled": true
                }
              ]
            },
            "description": "Прайс-лист: комиссия обменника + сетевые комиссии по приоритетам (1.4.0)\n\nПо каждому активному активу: процент комиссии обменника (депозит/выплата), оценка сетевой комиссии выплаты economy/recommended/high в нативной монете сети с USD-эквивалентом, минимумы, требуемые подтверждения. Кэшируется 60 с (`ttlSeconds`). Ошибка оценки сети не роняет ответ — `networkFee.error`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · invoices",
      "item": [
        {
          "name": "Create invoice (payment link) — for exchanger CMS",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/invoices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "invoices"
              ]
            },
            "description": "Create invoice (payment link) — for exchanger CMS\n\nСоздаёт счёт для вызывающего сайта и возвращает ссылку оплаты (payPath / payUrl + token). При оплате вебхуки депозита уйдут на callback_url сайта (или на `urlCallback` счёта) с вашим order_id. 1.4.0: `urlReturn` (кнопка «вернуться»), `urlSuccess` (авто-редирект после оплаты с ?order_id&invoice&status), `urlCallback`, `theme` (light|dark|auto), `locale` (ru|en).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"assetCode\": \"\",\n  \"amount\": \"100.50\",\n  \"amountUsd\": \"50.00\",\n  \"ttlMinutes\": 0,\n  \"orderId\": \"\",\n  \"title\": \"\",\n  \"description\": \"\",\n  \"sweepDestinationWalletUuid\": \"\",\n  \"urlReturn\": \"https://shop.example/cart\",\n  \"urlSuccess\": \"https://shop.example/thanks\",\n  \"urlCallback\": \"https://shop.example/hooks/wallet\",\n  \"theme\": \"light\",\n  \"locale\": \"ru\",\n  \"accuracyPaymentPercent\": 0,\n  \"allowTopUp\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List invoices of your site (1.4.0)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/invoices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "invoices"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Номер страницы (с 1).",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": "20",
                  "description": "Размер страницы (макс 100).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "",
                  "description": "Фильтр по статусу (одно значение или несколько через запятую). Напр. \"paid\" или \"paid,paid_over\".",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "1.4.0: курсор из `meta.nextCursor` предыдущего ответа. При наличии `page` игнорируется — выдача идёт keyset-методом (стабильна при появлении новых записей). Первую страницу по курсору запрашивайте без параметра — `meta.nextCursor` появится в ответе.",
                  "disabled": true
                }
              ]
            },
            "description": "List invoices of your site (1.4.0)\n\nСчета сайта, новые сверху. Пагинация page/perPage. `status` — фильтр по состоянию (pending,paid,…)."
          },
          "response": []
        },
        {
          "name": "Get invoice by your order_id (1.4.0)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/invoices/by-order-id/:orderId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "invoices",
                "by-order-id",
                ":orderId"
              ],
              "variable": [
                {
                  "key": "orderId",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Get invoice by your order_id (1.4.0)"
          },
          "response": []
        },
        {
          "name": "Disable invoice payment link (1.4.0)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/invoices/:uuid/disable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "invoices",
                ":uuid",
                "disable"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Disable invoice payment link (1.4.0)\n\nОтключает публичную ссылку счёта (страница → 410). Депозит продолжает мониториться до expiresAt: если клиент уже отправил средства, оплата всё равно будет учтена и вебхук придёт."
          },
          "response": []
        },
        {
          "name": "Get invoice payment page by public token",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/invoices/:token",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "invoices",
                ":token"
              ],
              "variable": [
                {
                  "key": "token",
                  "value": "",
                  "description": "Публичный токен из ссылки счёта."
                }
              ]
            },
            "description": "Get invoice payment page by public token\n\nДанные платёжной страницы: адрес, актив, сумма, срок (отсчёт), статус оплаты, бренд, редиректы, тема/язык. 410 Gone если ссылка отключена (прошёл срок + 1 день)."
          },
          "response": []
        },
        {
          "name": "Poll invoice payment status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/invoices/:token/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "invoices",
                ":token",
                "status"
              ],
              "variable": [
                {
                  "key": "token",
                  "value": "",
                  "description": "Публичный токен из ссылки счёта."
                }
              ]
            },
            "description": "Poll invoice payment status\n\nЛёгкий статус для live-обновления страницы (поллинг каждые ~3с). 410 если ссылка отключена."
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · limits",
      "item": [
        {
          "name": "Действующие ограничения для вашего сайта (1.4.0)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/limits",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "limits"
              ]
            },
            "description": "Действующие ограничения для вашего сайта (1.4.0)\n\nRate-limit запросов, максимум строк bulk-выплат, границы `lifetime` депозита и дефолтные окна по сетям, минимумы по активам, лимиты выплат (per-request / daily / weekly / velocity) с текущим использованием окон."
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · networks",
      "item": [
        {
          "name": "List supported networks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/networks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "networks"
              ]
            },
            "description": "List supported networks\n\nВозвращает список включённых сетей с метаданными: код, название, архетип, нативный тикер, флаг enabled, число подтверждений по умолчанию."
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · payouts",
      "item": [
        {
          "name": "Create payout request",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/payouts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "payouts"
              ]
            },
            "description": "Create payout request\n\nСоздаёт выплату на указанный адрес. Идемпотентно по (site, order_id) и опц. X-Idempotency-Key. Может потребовать ручного одобрения (requiresApproval=true).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"orderId\": \"\",\n  \"assetCode\": \"USDT_TRC20\",\n  \"destinationAddress\": \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\",\n  \"destinationMemo\": \"WP-XXXXXXXX\",\n  \"amount\": \"50.00\",\n  \"priority\": \"economy\",\n  \"urlCallback\": \"https://shop.example.com/webhooks/wallet\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List payouts (paginated, scoped to caller siteId)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/payouts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "payouts"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Номер страницы (с 1).",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": "20",
                  "description": "Размер страницы (макс 100).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "",
                  "description": "Фильтр по статусу (одно значение или несколько через запятую). Напр. \"paid\" или \"paid,paid_over\".",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "1.4.0: курсор из `meta.nextCursor` предыдущего ответа. При наличии `page` игнорируется — выдача идёт keyset-методом (стабильна при появлении новых записей). Первую страницу по курсору запрашивайте без параметра — `meta.nextCursor` появится в ответе.",
                  "disabled": true
                }
              ]
            },
            "description": "List payouts (paginated, scoped to caller siteId)\n\nИстория выплат сайта. Пагинация page/perPage, опц. фильтр ?status=confirmed или ?status=queued,broadcasted. 1.4.0: keyset-пагинация — передайте `cursor` из meta.nextCursor (первый запрос: `cursor=` пустой)."
          },
          "response": []
        },
        {
          "name": "Create payouts in bulk (1.4.0)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/payouts/bulk",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "payouts",
                "bulk"
              ]
            },
            "description": "Create payouts in bulk (1.4.0)\n\nМассовое создание выплат — до 100 строк за запрос. Каждая строка обрабатывается НЕЗАВИСИМО: ошибка одной не отменяет остальные (результат построчно в `items`). Идемпотентность — по orderId каждой строки (X-Idempotency-Key на весь пакет не применяется). Требует scope deposit_and_payout.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"items\": [\n    {\n      \"orderId\": \"\",\n      \"assetCode\": \"USDT_TRC20\",\n      \"destinationAddress\": \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\",\n      \"destinationMemo\": \"WP-XXXXXXXX\",\n      \"amount\": \"50.00\",\n      \"priority\": \"economy\",\n      \"urlCallback\": \"https://shop.example.com/webhooks/wallet\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Calculate payout breakdown (1.4.0, без создания)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/payouts/calculate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "payouts",
                "calculate"
              ]
            },
            "description": "Calculate payout breakdown (1.4.0, без создания)\n\nРаскладка выплаты ДО создания: комиссия обменника, сетевая комиссия по приоритету, сколько получит адресат, сколько спишется, USD-оценки, проверки (минимум, лимиты сайта, достаточность hot-баланса). Ничего не создаёт и не резервирует.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"assetCode\": \"USDT_TRC20\",\n  \"destinationAddress\": \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\",\n  \"amount\": \"50.00\",\n  \"priority\": \"economy\",\n  \"isSubtract\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Estimate network fee for payout (без создания)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/payouts/fee-estimate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "payouts",
                "fee-estimate"
              ]
            },
            "description": "Estimate network fee for payout (без создания)",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"assetCode\": \"\",\n  \"destinationAddress\": \"\",\n  \"amount\": \"\",\n  \"priority\": \"economy\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get payout by uuid (scoped to caller siteId)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/payouts/:uuid",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "payouts",
                ":uuid"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": "UUID выплаты из ответа на создание."
                }
              ]
            },
            "description": "Get payout by uuid (scoped to caller siteId)\n\nВозвращает выплату + on-chain данные исходящей tx (txHash, confirmations, explorerTxUrl, timestamps)."
          },
          "response": []
        },
        {
          "name": "Get payout by your order_id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/payouts/by-order-id/:orderId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "payouts",
                "by-order-id",
                ":orderId"
              ],
              "variable": [
                {
                  "key": "orderId",
                  "value": "",
                  "description": "Ваш order_id, переданный при создании."
                }
              ]
            },
            "description": "Get payout by your order_id\n\nПоиск по вашему order_id (label). Возвращает выплату + on-chain данные исходящей tx."
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · sandbox",
      "item": [
        {
          "name": "Simulate an incoming transaction (sandbox site only, 1.4.0)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/sandbox/deposits/:uuid/pay",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "sandbox",
                "deposits",
                ":uuid",
                "pay"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Simulate an incoming transaction (sandbox site only, 1.4.0)\n\nЭмулирует входящую транзакцию на адрес депозита: депозит проходит штатный путь process → finalize → sweep (без сети), вебхуки deposit.* приходят настоящие с полем `sandbox: true`. Сумма по умолчанию — ожидаемая; больше/меньше — paid_over / wrong_amount (и доплата, если включена). `confirmations` меньше порога — депозит остаётся в process, финализация придёт через ~30 с. Работает и для статических адресов (каждый вызов — отдельный платёж). Только для сайта с включённой песочницей (403 SANDBOX_ONLY).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": \"100\",\n  \"fromAddress\": \"TSandboxSender\",\n  \"confirmations\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Simulate a payout outcome (sandbox site only, 1.4.0)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/sandbox/payouts/:uuid/complete",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "sandbox",
                "payouts",
                ":uuid",
                "complete"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Simulate a payout outcome (sandbox site only, 1.4.0)\n\nЗадаёт исход выплаты песочницы: `confirmed` (queued → signing → broadcasted → confirmed, синтетический txhash) или `failed`. Вебхуки payout.confirmed / payout.failed приходят настоящие. Выплата должна быть в `queued` (pending_approval — сначала одобрить в админке; лимиты и одобрение работают и в песочнице).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"outcome\": \"confirmed\",\n  \"reason\": \"insufficient energy\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · static addresses",
      "item": [
        {
          "name": "Create static (reusable) deposit address (1.4.0)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/static-addresses",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "static-addresses"
              ]
            },
            "description": "Create static (reusable) deposit address (1.4.0)\n\nПостоянный адрес пополнения для клиента/аккаунта: каждая входящая транзакция создаёт отдельный депозит (со своими статусами, вебхуками `deposit.*` с полем `staticAddress` и свипом). Идемпотентно по `orderId`: повтор возвращает тот же адрес. Для memo-based сетей (TON/XRP) — общий адрес + постоянный memo.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"assetCode\": \"USDT_TRC20\",\n  \"orderId\": \"customer-42\",\n  \"label\": \"Иван, аккаунт #42\",\n  \"sweepDestinationWalletUuid\": \"\",\n  \"urlCallback\": \"https://shop.example.com/webhooks/wallet\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List static addresses of your site",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/static-addresses",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "static-addresses"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Номер страницы (с 1).",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": "20",
                  "description": "Размер страницы (макс 100).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "",
                  "description": "Фильтр по статусу (одно значение или несколько через запятую). Напр. \"paid\" или \"paid,paid_over\".",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "1.4.0: курсор из `meta.nextCursor` предыдущего ответа. При наличии `page` игнорируется — выдача идёт keyset-методом (стабильна при появлении новых записей). Первую страницу по курсору запрашивайте без параметра — `meta.nextCursor` появится в ответе.",
                  "disabled": true
                }
              ]
            },
            "description": "List static addresses of your site"
          },
          "response": []
        },
        {
          "name": "Get static address by your orderId",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/static-addresses/by-order-id/:orderId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "static-addresses",
                "by-order-id",
                ":orderId"
              ],
              "variable": [
                {
                  "key": "orderId",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Get static address by your orderId"
          },
          "response": []
        },
        {
          "name": "Get static address",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/static-addresses/:uuid",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "static-addresses",
                ":uuid"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Get static address"
          },
          "response": []
        },
        {
          "name": "List payments (child deposits) of a static address",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/static-addresses/:uuid/payments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "static-addresses",
                ":uuid",
                "payments"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Номер страницы (с 1).",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": "20",
                  "description": "Размер страницы (макс 100).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "",
                  "description": "Фильтр по статусу (одно значение или несколько через запятую). Напр. \"paid\" или \"paid,paid_over\".",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "1.4.0: курсор из `meta.nextCursor` предыдущего ответа. При наличии `page` игнорируется — выдача идёт keyset-методом (стабильна при появлении новых записей). Первую страницу по курсору запрашивайте без параметра — `meta.nextCursor` появится в ответе.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "List payments (child deposits) of a static address\n\nКаждый платёж — обычный объект депозита (как GET /v1/public/deposits/{uuid}); page/perPage, status, cursor."
          },
          "response": []
        },
        {
          "name": "Stop accepting payments on a static address",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/static-addresses/:uuid/disable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "static-addresses",
                ":uuid",
                "disable"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Stop accepting payments on a static address\n\nАдрес больше не мониторится; уже замеченные платежи дойдут до конца. Обратимо (enable)."
          },
          "response": []
        },
        {
          "name": "Resume accepting payments on a static address",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/static-addresses/:uuid/enable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "static-addresses",
                ":uuid",
                "enable"
              ],
              "variable": [
                {
                  "key": "uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Resume accepting payments on a static address"
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · transactions",
      "item": [
        {
          "name": "Очередь незавершённых операций сайта (1.4.0)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/transactions/queue",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "transactions",
                "queue"
              ],
              "query": [
                {
                  "key": "kind",
                  "value": "all",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "50",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "Курсор из `nextCursor` предыдущего ответа.",
                  "disabled": true
                }
              ]
            },
            "description": "Очередь незавершённых операций сайта (1.4.0)\n\nДепозиты в ожидании оплаты/подтверждений и выплаты до confirmed — одним списком, новые сверху. Keyset-пагинация: передавайте `cursor` из `nextCursor` (без пропусков и дублей при появлении новых записей). `kind` — только депозиты / только выплаты / всё."
          },
          "response": []
        }
      ]
    },
    {
      "name": "public · webhooks",
      "item": [
        {
          "name": "Отправить тестовый webhook на ваш callback_url",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/webhooks/test",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "webhooks",
                "test"
              ]
            },
            "description": "Отправить тестовый webhook на ваш callback_url\n\nСтавит в очередь один (без ретраев) подписанный тестовый webhook на настроенный для сайта callback_url. Заголовки и подпись — как у боевых webhook'ов (X-Signature = HMAC-SHA256 по телу). Проверьте, что ваш endpoint принял его и валидировал подпись."
          },
          "response": []
        },
        {
          "name": "Переотправить webhook по X-Event-Id",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/webhooks/resend/:eventId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "webhooks",
                "resend",
                ":eventId"
              ],
              "variable": [
                {
                  "key": "eventId",
                  "value": "",
                  "description": "X-Event-Id из заголовка webhook'а."
                }
              ]
            },
            "description": "Переотправить webhook по X-Event-Id\n\nСтавит в очередь повторную доставку ранее сгенерированного webhook'а (по его X-Event-Id). Тело и URL берутся из лога доставки; подпись пересчитывается. Скоупится по вашему сайту."
          },
          "response": []
        },
        {
          "name": "Исходящие IP-адреса платформы для вебхуков",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/webhooks/egress-ips",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "webhooks",
                "egress-ips"
              ]
            },
            "description": "Исходящие IP-адреса платформы для вебхуков\n\nДобавьте эти адреса в allow-list вашего сервера: с них приходят webhook-запросы. Список задаёт оператор платформы."
          },
          "response": []
        },
        {
          "name": "Каталог webhook-событий и текущая подписка сайта",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/public/webhooks/events",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "public",
                "webhooks",
                "events"
              ]
            },
            "description": "Каталог webhook-событий и текущая подписка сайта\n\nВсе возможные типы событий с описанием и признаком финальности; `subscribed` — какие включены для вашего сайта (настраивает оператор в панели)."
          },
          "response": []
        }
      ]
    }
  ]
}
