# Получение вывода

> Получайте вывод по идентификатору, проверяйте его состояние и ссылку на транзакцию и сверяйте завершение по подписанному вебхуку.

`GET /v1/withdrawals/:withdrawal_id`

:::endpoint
GET /v1/withdrawals/:withdrawal_id
:::

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

Возвращает текущее состояние вывода. Поля `tx_hash` и `explorer_url` заполняются, как только в блокчейне появляется отслеживаемая транзакция, — это происходит раньше `completed`. Признак завершения — `status` и `is_final`, а не наличие хеша.

## Ответ (200 OK)

```json
{
  "withdrawal_id": "wdr_2M8K6Q4P9X1Z7A3B",
  "external_order_id": "payout-001",
  "status": "completed",
  "is_final": true,
  "is_test": false,
  "amount": "100.00",
  "fee": "1.00",
  "currency": "USDT",
  "network": "TRC20",
  "destination_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
  "tx_hash": "9f3b8c2a1d0e4f6789abc123def4567890abc123def4567890abc123def45678",
  "explorer_url": "https://tronscan.org/#/transaction/9f3b8c2a1d0e4f6789abc123def4567890abc123def4567890abc123def45678",
  "created_at": 1739289600,
  "completed_at": 1739289932
}
```

## Статусы вывода

| Статус | Описание | Терминальный |
|--------|----------|--------------|
| `created` | Вывод создан и ещё не ушёл в сеть | Нет |
| `signed` | Транзакция подписана и отправлена в блокчейн | Нет |
| `cancelling` | Вывод отменяется; чем это кончится, скажет следующий статус | Нет |
| `completed` | Транзакция подтверждена в блокчейне, средства доставлены | Да |
| `failed` | Вывод не ушёл. Средства вернулись на баланс | Да |
| `cancelled` | Мерчант отменил вывод, он не ушёл. Средства вернулись на баланс | Да |
| `pending_review` | Транзакция ещё не подтверждена в сети, сумма остаётся в резерве. В дашборде этот статус показан как «Не подтверждён» | Нет |

### Как это читать в коде

Финальных статусов три — `completed`, `failed` и `cancelled`. В каждом ответе и каждом вебхуке есть поле `is_final`: ветвитесь по нему, а не по списку имён, который вам придётся поддерживать самим.

Отменить вывод можно, только пока он в `created`. Дальше запрос на отмену отклоняется — см. [Отмену вывода](/ru/docs/withdrawals/cancel.md). Причину, по которой вывод не ушёл, API не возвращает: у `failed` есть статус, но нет поля с объяснением.

В песочнице вывод переводится из `created` в `completed` вызовом `POST /v1/sandbox/withdrawals/{id}/simulate-completion` — без подписания и без блокчейна.

## Ошибки

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