> ## Documentation Index
> Fetch the complete documentation index at: https://oblodai.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Статические кошельки

Статический кошелёк — это **постоянный адрес пополнения**. В отличие от инвойса, у него нет
фиксированной суммы и срока: любое поступление сразу падает на баланс мерчанта. Идеально для сценария
«у каждого клиента свой адрес для пополнения счёта».

Справочник объекта — [Объект кошелька](/reference/wallet-object).

***

## Инвойс, платёжная ссылка или статический кошелёк?

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

|                     | Инвойс                                     | [Платёжная ссылка](/guides/payment-links)        | Статический кошелёк                      |
| ------------------- | ------------------------------------------ | ------------------------------------------------ | ---------------------------------------- |
| Метод               | [`/v1/payment`](/reference/payment-create) | [`/v1/payment/link`](/reference/payment-link)    | [`/v1/wallet`](/reference/wallet-create) |
| Сумма               | Задаёте вы.                                | Вы **или покупатель** (`open`/`range`).          | Любая, сколько прислали.                 |
| Срок                | Ограничен.                                 | Бессрочная или с TTL.                            | Бессрочный.                              |
| **Нужен ли бэкенд** | **Да**, на каждый заказ.                   | **Нет** — создали один раз.                      | **Да**, адрес на клиента.                |
| Оплата              | Закрывает конкретный счёт.                 | Каждая оплата — свой платёж.                     | Зачисляется на баланс.                   |
| Комиссия платформы  | Удерживается.                              | Удерживается.                                    | Удерживается (по вашей ставке).          |
| Вебхук              | `invoice.*` (type `payment`).              | `invoice.*` (type `payment`).                    | `wallet.paid` (type `wallet`).           |
| Сценарий            | Разовая покупка в магазине.                | Донаты, продажи без сайта, сайт на конструкторе. | Пополнение баланса, депозиты.            |

Коротко:

* **Знаете сумму и есть бэкенд** → инвойс.
* **Бэкенда нет** (Tilda/Wix, соцсети) **или сумму называет плательщик** (донаты) → [платёжная
  ссылка](/guides/payment-links).
* **Нужен постоянный адрес за клиентом**, а суммы произвольные → статический кошелёк (эта страница).

***

## Персональный адрес для клиента

Тройка `(currency, network, order_id)` идемпотентна. Передайте `order_id` = идентификатор клиента —
и получите его **персональный постоянный адрес**. Повторный вызов с той же тройкой вернёт тот же адрес.

<CodeGroup>
  ```python Python theme={null}
  def deposit_address(client_id: str) -> str:
      w = call("/v1/wallet", {
          "currency": "USDT",
          "network": "tron",
          "order_id": client_id,   # закрепляет адрес за клиентом
      })["result"]
      return w["address"]

  # Один и тот же клиент всегда получит один и тот же адрес
  addr = deposit_address("client-42")
  ```

  ```js Node.js theme={null}
  async function depositAddress(clientId) {
    const w = (await call("/v1/wallet", {
      currency: "USDT",
      network: "tron",
      order_id: clientId,   // закрепляет адрес за клиентом
    })).result;
    return w.address;
  }

  // Один и тот же клиент всегда получит один и тот же адрес
  const addr = await depositAddress("client-42");
  ```
</CodeGroup>

***

## Приём пополнений

Каждое поступление на кошелёк порождает вебхук `wallet.paid`:

```json theme={null}
{
  "type": "wallet",
  "uuid": "0e5b6b9a-…",
  "order_id": "client-42",
  "address": "TXk9...c3Fd",
  "network": "tron",
  "currency": "USDT",
  "payment_amount": "150.00",
  "status": "paid",
  "is_final": true
}
```

Обрабатывайте его так же, как платёжный вебхук: проверьте подпись, дедуплицируйте по `uuid` + `status`.
См. [Настройка вебхуков](/guides/webhooks-setup) и [Объект вебхука](/reference/webhook-object).

<Warning>
  **`payment_amount` — это сумма, пришедшая на адрес (брутто), ДО нашей комиссии.** На ваш баланс
  зачисляется **нетто** — за вычетом комиссии платформы (по умолчанию \~1.5%). Если вы кредитуете
  конечного клиента, начисляйте ему нетто (или заранее заложите комиссию в свою экономику), иначе
  начислите больше, чем реально легло на баланс. Точную удержанную сумму сверяйте по своему балансу
  ([`POST /v1/balance`](/reference/balance)).
</Warning>

***

## Блокировка и возврат

Если нужно перестать принимать на адрес — заблокируйте его:

<CodeGroup>
  ```python Python theme={null}
  call("/v1/wallet/block", {"address": "TXk9...c3Fd"})            # заблокировать
  call("/v1/wallet/block", {"address": "TXk9...c3Fd", "is_force_block": False})  # разблокировать
  ```

  ```js Node.js theme={null}
  await call("/v1/wallet/block", { address: "TXk9...c3Fd" });            // заблокировать
  await call("/v1/wallet/block", { address: "TXk9...c3Fd", is_force_block: false });  // разблокировать
  ```
</CodeGroup>

<Note>
  `is_force_block` по умолчанию `true`. Чтобы **снять** блокировку, явно передайте `false`.
</Note>

Средства, полученные на (обычно заблокированный) кошелёк, можно вывести на один адрес через
[`POST /v1/wallet/blocked-address-refund`](/reference/wallet-blocked-refund) — вернётся чистая
сумма за вычетом газа.

***

## Нюансы

* **Комиссия платформы удерживается и с пополнений на статический кошелёк** — по вашей ставке (по
  умолчанию \~1.5%, та же, что и на инвойсе). На баланс попадает нетто. Поэтому «гонять» продажи через
  статические кошельки ради экономии на комиссии смысла нет: ставка та же. Статические кошельки — для
  пополнений/депозитов (напр. балансы пользователей); для разовых продаж используйте инвойс
  ([`/v1/payment`](/reference/payment-create)) — он даёт сумму, срок и статус конкретного заказа.
* Пара `(currency, network)` должна быть [поддерживаемым методом](/reference/basics-networks).
* Для каждого клиента используйте **уникальный** `order_id` — иначе они будут делить один адрес.

***

## Связанные страницы

<CardGroup cols={2}>
  <Card title="POST /v1/wallet" href="/reference/wallet-create" icon="arrow-right" horizontal />

  <Card title="Объект кошелька" href="/reference/wallet-object" icon="arrow-right" horizontal />

  <Card title="POST /v1/wallet/block" href="/reference/wallet-block" icon="arrow-right" horizontal />

  <Card title="POST /v1/wallet/blocked-address-refund" href="/reference/wallet-blocked-refund" icon="arrow-right" horizontal />

  <Card title="POST /v1/balance" href="/reference/balance" icon="arrow-right" horizontal />

  <Card title="Платёжные ссылки" href="/guides/payment-links" icon="arrow-right" horizontal>
    третий способ принять оплату, без бэкенда.
  </Card>

  <Card title="Приём первого платежа" href="/guides/accept-first-payment" icon="arrow-right" horizontal>
    инвойс.
  </Card>
</CardGroup>
