> ## Documentation Index
> Fetch the complete documentation index at: https://wallet-docs.iexexchanger.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Статические адреса

> Постоянные адреса пополнения: один адрес на клиента, каждая входящая транзакция — отдельный депозит с вебхуками и свипом.

Обычный депозит — одноразовый: адрес живёт до оплаты и закрывается. **Статический адрес** выдаётся
клиенту навсегда (пополнение баланса, «мой кошелёк для депозитов»): платформа следит за ним
постоянно, и **каждая входящая транзакция превращается в отдельный депозит** — с обычными
статусами, вебхуками `deposit.*` и сметанием на hot-кошелёк. Вы получаете ту же модель, что и у
одноразовых депозитов, просто платежей на адресе много.

<Note>
  Для memo-сетей (TON, XRP) статический адрес = общий приёмный адрес + **постоянный memo** клиента.
  Клиент обязан указывать memo при каждом переводе — иначе платёж не будет привязан.
</Note>

## Эндпоинты

| Метод  | Путь                                                | Назначение                                              |
| ------ | --------------------------------------------------- | ------------------------------------------------------- |
| `POST` | `/v1/public/static-addresses`                       | выпустить статический адрес (идемпотентно по `orderId`) |
| `GET`  | `/v1/public/static-addresses`                       | список адресов сайта (page/perPage)                     |
| `GET`  | `/v1/public/static-addresses/by-order-id/{orderId}` | адрес по вашему `orderId`                               |
| `GET`  | `/v1/public/static-addresses/{uuid}`                | адрес по uuid                                           |
| `GET`  | `/v1/public/static-addresses/{uuid}/payments`       | платежи адреса (объекты депозита; `status`, `cursor`)   |
| `POST` | `/v1/public/static-addresses/{uuid}/disable`        | остановить приём (обратимо)                             |
| `POST` | `/v1/public/static-addresses/{uuid}/enable`         | возобновить приём                                       |

Все запросы — с HMAC-подписью (см. [Аутентификация](/authentication)).

## Выпустить адрес

<ParamField body="assetCode" type="string" required>Код актива (`USDT_TRC20`, `TRX`, `USDT_TON`, …).</ParamField>

<ParamField body="orderId" type="string" required>
  Ваш идентификатор владельца адреса (клиент/аккаунт). Уникален в рамках сайта: повторный запрос с тем
  же `orderId` **вернёт тот же адрес**, а не создаст новый. Не может совпадать с `orderId` обычного
  депозита (`409 DUPLICATE_ORDER_ID`).
</ParamField>

<ParamField body="label" type="string">Метка для админки и вебхуков (до 255 символов).</ParamField>
<ParamField body="sweepDestinationWalletUuid" type="string">UUID системного кошелька-получателя свипа (active, та же сеть).</ParamField>
<ParamField body="urlCallback" type="string">1.4.0. Webhook-URL для всех платежей на этот адрес (вместо `callback_url` сайта).</ParamField>

<ResponseExample>
  ```json 201 Created theme={null}
  {
    "ok": true,
    "data": {
      "uuid": "4c0b3d5e-7f8a-4b9c-8d1e-2f3a4b5c6d7e",
      "orderId": "customer-42",
      "label": "Иван, аккаунт #42",
      "assetCode": "USDT_TRC20",
      "network": "TRON",
      "address": "TKh9aBcDeFgHiJkLmNoPqRsTuVwXyZ12c4",
      "memo": null,
      "status": "active",
      "explorerAddressUrl": "https://tronscan.org/#/address/TKh9aBcDeFgHiJkLmNoPqRsTuVwXyZ12c4",
      "paymentsCount": 0,
      "totalReceived": "0",
      "lastPaymentAt": null,
      "createdAt": "2026-09-10T09:00:00.000Z"
    }
  }
  ```
</ResponseExample>

## Как приходят платежи

1. Клиент отправляет любую сумму на адрес (сумма не фиксируется: `expectedAmount` дочернего депозита = `0`,
   «принять любую»).
2. Платформа замечает транзакцию и создаёт **дочерний депозит** с `orderId` вида
   `customer-42#3` (порядковый номер платежа). Дальше — обычный поток: `process → confirm_check → paid`.
3. На `callback_url` сайта приходят стандартные вебхуки `deposit.tx_detected` / `deposit.confirmation` /
   `deposit.finalized`. В объекте `deposit` есть поле `staticAddress: { uuid, orderId, label }` —
   по нему вы узнаёте, чей это баланс пополнять.
4. Средства сметаются на hot-кошелёк по обычным правилам сметания.

Список платежей адреса — `GET /v1/public/static-addresses/{uuid}/payments` (те же объекты, что
`GET /v1/public/deposits/{uuid}`, включая `isFinal`, `amountUsd`, `transaction.fromAddress`).
Каждый платёж доступен и напрямую по своему `uuid` / `orderId` через эндпоинты депозитов.

<Tip>
  Обрабатывайте вебхуки идемпотентно по `deposit.uuid`: у каждого платежа свой uuid, поэтому дубли
  доставки не приведут к двойному зачислению.
</Tip>

## Поля ответа

<ResponseField name="status" type="string">`active` — адрес мониторится; `disabled` — приём остановлен (`disable`).</ResponseField>
<ResponseField name="paymentsCount" type="number">Число платежей (дочерних депозитов), включая незавершённые.</ResponseField>
<ResponseField name="totalReceived" type="string">Сумма финализированных платежей (`paid` / `paid_over` / `wrong_amount`).</ResponseField>
<ResponseField name="lastPaymentAt" type="string | null">Время последней финализации.</ResponseField>

## Ограничения

* Пыль ниже порога актива игнорируется (как у обычных депозитов).
* Оператор может выключить выпуск новых статических адресов настройкой платформы — тогда `POST`
  вернёт `409 NETWORK_DISABLED`; существующие адреса продолжают работать.
* Статический адрес не истекает и не переходит в `expired`; остановить приём можно только через `disable`.
