> ## 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.

# POST /v1/split/config/get · /set

Настройка **окна удержания** (`refund_hold_hours`) — на сколько часов откладывается расчёт по
[сплит‑правилам](/reference/split-rule).

**Базовый URL:** `https://api.oblodai.com` · **Аутентификация:** обязательна.

<Note>
  Примеры используют хелпер `call()` и переменные `$SECRET`/`$PUBLIC_ID` — их определение см. в
  [Как подписать запрос](/guides/signing-requests). Проще не писать подпись руками, а взять
  [SDK](/sdk/overview).
</Note>

***

## Зачем откладывать расчёт

Это главное, что нужно понять про сплиты.

**Возврат списывает с вас ВСЮ сумму, которую заплатил покупатель.** Не «вашу долю» — всю. Покупатель
заплатил \$100, вы возвращаете \$100.

Теперь представьте, что доли партнёрам разошлись сразу:

1. Покупатель платит **\$100**.
2. Сплит‑правила мгновенно отправляют **\$30** партнёрам на их адреса в блокчейне.
3. У вас на балансе остаётся **\$70**.
4. Покупатель просит возврат. Вернуть надо **\$100**, а есть **\$70**. **\$30 уже в блокчейне, и достать
   их оттуда невозможно.**

Чтобы такого не было, доли партнёрам уходят **не сразу**, а спустя `refund_hold_hours` после того, как
платёж зачтён. Пока окно не закрылось, деньги лежат у вас, и любой возврат берётся из них. База сплита
пересчитывается на момент фактической отправки как **«пришло минус возвращено»**: возврат внутри окна
уменьшает долю партнёра или обнуляет её совсем.

Ставьте окно не меньше, чем реальный срок, за который у вас случаются возвраты (например 48–72 часа).

**`refund_hold_hours` — это не бюрократическая задержка, а окно, в течение которого деньги ещё можно
вернуть покупателю.**

***

## Что происходит при возврате

| Когда пришёл возврат                               | Что с долей партнёра                                                                       |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| **Внутри окна, возврат полный**                    | Доля **отменяется целиком** — партнёру не уходит ничего.                                   |
| **Внутри окна, возврат частичный**                 | Доля **пересчитывается вниз**: база сплита = «пришло минус возвращено».                    |
| **После окна, партнёр внутренний** (`merchant_id`) | Доля **отзывается обратно** (claw‑back), пропорционально сумме возврата.                   |
| **После окна, партнёр внешний** (`address`)        | **Вернуть нельзя.** Деньги в блокчейне. Возврат покупателю вы покрываете из своих средств. |

Отсюда два вывода:

* **Внутренние сплиты безопасны всегда** — платформа сама заберёт долю у партнёра, даже если окно уже
  прошло.
* **Внешние сплиты защищены только окном.** Как только оно истекло и транзакция ушла в сеть, откатить
  её невозможно — ни вам, ни нам, ни партнёру.

<Warning>
  **`refund_hold_hours: 0` + внешний сплит = возврат за ваш счёт.** Доли уйдут почти сразу, и если
  покупатель попросит возврат, вернуть его долю будет **физически невозможно** — разницу придётся
  покрывать из собственных средств. Ставьте `0`, только если возвратов у вас не бывает в принципе или
  все ваши сплиты внутренние.
</Warning>

***

## POST /v1/split/config/get

Параметров нет — пошлите `{}`.

### Пример запроса

<CodeGroup>
  ```bash cURL theme={null}
  BODY='{}'
  TS=$(date +%s)
  SIG=$(printf '%s\n%s\n%s\n%s' "$TS" 'POST' '/v1/split/config/get' "$BODY" \
    | openssl dgst -sha256 -hmac "$SECRET" -hex | sed 's/^.* //')
  curl -s https://api.oblodai.com/v1/split/config/get \
    -X POST -H 'Content-Type: application/json' \
    -H "X-Public-Id: $PUBLIC_ID" -H "X-Timestamp: $TS" -H "X-Signature: $SIG" \
    -d "$BODY"
  ```

  ```python Python theme={null}
  call("/v1/split/config/get", {})
  ```

  ```js Node.js theme={null}
  await call("/v1/split/config/get", {});
  ```
</CodeGroup>

### Пример ответа

```json theme={null}
{ "state": 0, "result": { "refund_hold_hours": 48 } }
```

***

## POST /v1/split/config/set

### Параметры запроса

<ParamField body="refund_hold_hours" type="int64" required>
  На сколько часов откладывать расчёт по сплитам. Диапазон **0–2160** (до 90 суток). `0` — отправлять доли сразу, **риск невозможности возврата берёте на себя**.
</ParamField>

### Пример запроса

<CodeGroup>
  ```bash cURL theme={null}
  BODY='{"refund_hold_hours":48}'
  TS=$(date +%s)
  SIG=$(printf '%s\n%s\n%s\n%s' "$TS" 'POST' '/v1/split/config/set' "$BODY" \
    | openssl dgst -sha256 -hmac "$SECRET" -hex | sed 's/^.* //')
  curl -s https://api.oblodai.com/v1/split/config/set \
    -X POST -H 'Content-Type: application/json' \
    -H "X-Public-Id: $PUBLIC_ID" -H "X-Timestamp: $TS" -H "X-Signature: $SIG" \
    -d "$BODY"
  ```

  ```python Python theme={null}
  call("/v1/split/config/set", {"refund_hold_hours": 48})
  ```

  ```js Node.js theme={null}
  await call("/v1/split/config/set", { refund_hold_hours: 48 });
  ```
</CodeGroup>

### Пример ответа

```json theme={null}
{ "state": 0, "result": { "refund_hold_hours": 48 } }
```

***

## Коды ошибок

| Код                    | Значение                                  |
| ---------------------- | ----------------------------------------- |
| `400 request.bad_json` | Тело не парсится.                         |
| `400 split.bad_hold`   | `refund_hold_hours` вне диапазона 0–2160. |
| `503 split.disabled`   | Сплит‑платежи недоступны на этом шлюзе.   |
| `401 auth.*`           | Ошибки аутентификации.                    |

***

## Нюансы

* **Окно влияет и на другие исходящие маршруты** проекта — [автовывод](/reference/auto-withdraw) и
  авто‑конвертацию [VRCS](/reference/vrcs): они тоже откладываются, и по той же причине.
* **Изменение окна действует на будущие платежи.** Доли, уже поставленные в очередь на отправку, свой
  срок отсчитывают по старому значению.
* **Настройка общая на проект**, а не на правило: единое окно для всех сплитов.

***

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

<CardGroup cols={2}>
  <Card title="POST /v1/split/rule · /rule/list · /rule/delete" href="/reference/split-rule" icon="arrow-right" horizontal>
    сами правила распределения.
  </Card>

  <Card title="POST /v1/payment/refund" href="/reference/payment-refund" icon="arrow-right" horizontal>
    возврат и его влияние на доли.
  </Card>

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

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