# Симуляция оплаты инвойса

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

`POST /v1/sandbox/invoices/:invoice_id/simulate-payment`

:::endpoint
POST /v1/sandbox/invoices/:invoice_id/simulate-payment
:::

**API-ключ:** `Payment` · **Окружение:** только тестовое

Симулирует подтверждённую оплату без движения реальных средств. Инвойс должен принадлежать авторизованному мерчанту и тестовому окружению. Ключ рабочего режима отклоняется.

## Тело запроса

Обязательное поле `stage` принимает ровно одно значение:

- `paid` — оплатить оставшуюся сумму;
- `overpaid` — оплатить остаток со случайной положительной переплатой;
- `underpay` — оплатить случайную положительную часть остатка. Если разрешены несколько платежей, вызовы можно повторять, а платежи складываются; иначе инвойс закрывается со статусом `underpaid`;
- `cancel` — отменить инвойс, если его состояние ещё допускает отмену.
- `paid_late` — оплатить полную ожидаемую сумму после срока. Инвойс без денег (`awaiting_payment`) закроется как `expired`, частично оплаченный (`underpaid_waiting`) — как `underpaid`, а уже закрытый как `expired` или `underpaid` свой статус сохранит. В `payment.paid` остаётся только то, что пришло до срока, — как в рабочем режиме, где платёж после срока зачисляется на баланс отдельно от инвойса. Инвойс получает отметку поздней оплаты, и вебхук приходит один — `invoice.paid_late`.

Для `underpay` запрос отклоняется без изменения инвойса, если из-за точности токена или допуска нельзя выбрать положительную частичную сумму ниже порога автоматического подтверждения. Вебхук статуса отправляется только при изменении статуса.

```json
{
  "stage": "paid"
}
```

Все суммы сервер вычисляет сам, по данным инвойса. Клиент их не рассчитывает.

## Ответ (200 OK)

Возвращает обновлённый ресурс инвойса и создаёт те же события жизненного цикла и вебхуки, что соответствующий реальный результат. Поля ответа описаны в разделе [Получение инвойса](/ru/docs/invoices/get.md).
