# 获取退款

> 通过转出 ID 查询单笔账单退款，检查当前状态与链上交易哈希并核对完成结果。

`GET /v1/refunds/:withdrawal_id`

:::endpoint
GET /v1/refunds/:withdrawal_id
:::

**API 密钥：** `Payment`

根据 `withdrawal_id`（`wdr_...`）返回单笔账单退款的当前状态。当退款进入 `completed` 后，响应将包含已确认的 `tx_hash` 与 `explorer_url`。

## 响应（200 OK）

```json
{
  "withdrawal_id": "wdr_6Qm2fK8xR4vN7cT1bY9dL5",
  "invoice_id": "inv_7K2M9P4Q8R1X5Z3A0bC2dE",
  "mode": "full",
  "external_order_id": "refund-1042-full",
  "status": "completed",
  "is_final": true,
  "is_test": false,
  "amount": "100.00",
  "fee": "1.00",
  "currency": "USDT",
  "network": "TRC20",
  "destination_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
  "first_sender": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
  "tx_hash": "9f3b8c2a1d0e4f6789abc123def4567890abc123def4567890abc123def45678",
  "explorer_url": "https://tronscan.org/#/transaction/9f3b8c2a1d0e4f6789abc123def4567890abc123def4567890abc123def45678",
  "created_at": 1767225600,
  "completed_at": 1767225932,
  "type": "refund",
  "project_id": "prj_3F9xL2mN8pQ4rT6vW1yZ5b"
}
```

## 退款状态

| 状态 | 说明 | 是否终态 |
|------|------|----------|
| `created` | 退款已创建且余额已冻结，等待签名 | 否 |
| `signed` | 交易已签名并广播至区块链 | 否 |
| `pending_review` | 已广播交易在 TTL 内未确认，等待人工核查处理 | 否 |
| `cancelling` | 管理员已发起链上取消，等待确认哪笔交易最终上链 | 否 |
| `completed` | 退款已在链上确认并送达 `first_sender`（`is_final: true`） | 是 |
| `failed` | 退款在结算前失败或被放弃，冻结资金已退回商户余额 | 是 |
| `cancelled` | 退款在广播前被取消，冻结资金已退回商户余额 | 是 |

## 错误码

使用 Payout（`rk_`）密钥会返回 `403 payment_key_required`。如果 `withdrawal_id` 不存在、属于普通转出而非账单退款，或不属于当前密钥可见的项目，端点将返回 `404 withdrawal_not_found`。详见[错误码](/zh-hans/docs/errors/codes.md)。
