# Отмена вывода

> Отменяйте ожидающий вывод до начала подписи транзакции, учитывайте допустимые состояния операции и обрабатывайте обновлённый ответ API.

`POST /v1/withdrawals/:withdrawal_id/cancel`

:::endpoint
POST /v1/withdrawals/:withdrawal_id/cancel
:::

**API-ключ:** `Payout`

Отменить вывод можно, пока не началось его исполнение. Окно закрывается в тот момент, когда Paymos берёт вывод в работу, — а это происходит ещё в статусе `created`, до всякого подписания. Поэтому сам по себе статус `created` не гарантирует, что отмена пройдёт: если исполнение уже началось, вызов вернёт `409`. Повторная отмена уже отменённого вывода ничего не меняет: возвращается `200` с тем же выводом, а не ошибка.

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

Поле `reason` обязательно, максимум 500 символов. Paymos сохраняет причину в самом выводе и пишет её в журнал аудита. Обратно она не возвращается: ни в ответе на отмену, ни в вебхуке `withdrawal.cancelled` — там приходит статус, а не текст причины.

```json
{
  "reason": "Customer requested cancellation"
}
```

## Ответ (200 OK)

```json
{
  "withdrawal_id": "wdr_2M8K6Q4P9X1Z7A3B",
  "external_order_id": "payout-001",
  "status": "cancelled",
  "is_final": true,
  "is_test": true,
  "amount": "100.00",
  "currency": "USDT",
  "network": "TRC20",
  "destination_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
  "created_at": 1739289600,
  "cancelled_at": 1739289660
}
```

## Ошибки

Payment-ключ (`pk_`) получает `403 payout_key_required` — но только на правильно составленном запросе: тело разбирают раньше, чем проверяют тип ключа, поэтому запрос без `reason` или со сломанным JSON сначала получит `400`. См. [Коды ошибок](/ru/docs/errors/codes.md) — полный каталог. URI в поле `type` каждой ошибки ведёт сразу на нужную строку.
