> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waffo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 重新提交退款工单

> 修订并重新提交被拒绝或失败的退款工单

`POST /api/actions/refund-ticket/resubmit-ticket`

**认证：** 商户 API Key（服务端到服务端）。

Resubmit 复用 [创建退款工单](/zh/api-reference/endpoints/refunds/create-refund-ticket) 的请求结构，额外需要 `ticketId` 标识被修订的工单。原始 `paymentId` 绑定在工单上，不可更改。

## 请求体

| 字段                         | 类型     | 必填 | 描述                                                |
| -------------------------- | ------ | -- | ------------------------------------------------- |
| `ticketId`                 | string | 是  | 被修订的退款工单 Short ID，例如 `TKT_3bVzrkD0FJjFdZNLk8Ualx` |
| `reason`                   | string | 是  | 修订后的退款原因                                          |
| `requestedAmount.amount`   | string | 是  | 修订后的退款金额（显示格式，必须 `> 0` 且 `≤ payment.amount`）      |
| `requestedAmount.currency` | string | 是  | ISO 4217 代码，必须与支付货币一致                             |

create 时写入的 `refundTicketMerchantExternalId` 在 resubmit 中**不可变** — 工单创建后不能改。

## 成功响应 (200)

```json theme={"system"}
{
  "data": {
    "ticket": {
      "id": "TKT_3bVzrkD0FJjFdZNLk8Ualx",
      "status": "pending",
      "subjectId": "PAY_6eYCunG3IMmIgcQOnaXdoA",
      "versionNumber": 2,
      "refundTicketMerchantExternalId": "REF-2026-00891"
    }
  }
}
```

工单追加新版本；`versionNumber` 递增。工单重新进入审核队列（customer 发起为 `pending`，merchant 发起为 `processing`）。

## 错误响应

> **重试策略**：4xx 一律不要重试 — 修正请求后重发。5xx 指数退避重试（起步 5s，最多 3 次）。

| 状态码 | `errors[0].message`                                           | 含义                       | 推荐处理                           |
| --- | ------------------------------------------------------------- | ------------------------ | ------------------------------ |
| 400 | `Missing required field: ticketId`                            | 未提供 `ticketId`           | 添加 `ticketId` 后重发              |
| 400 | `Expected format: TKT_xxx, got "..."`                         | `ticketId` Short ID 解码失败 | 修正 `ticketId` 格式后重发            |
| 400 | `Invalid requestedAmount.amount format`                       | 金额字符串无法解析                | 使用显示格式如 `"10.50"`              |
| 401 | `Unauthorized`                                                | API Key 签名无效             | 检查认证请求头                        |
| 403 | `Submitter is not the original ticket owner`                  | 调用者不是工单创建者               | 只有原始提交者可以 resubmit             |
| 404 | `Ticket not found`                                            | 工单不存在或不属于调用者             | 验证 `ticketId`                  |
| 409 | `Ticket status is X, only rejected/failed can be resubmitted` | 工单不在可 resubmit 状态        | 等待 `rejected` / `failed`，或新建工单 |
| 409 | `Requested amount exceeds payment amount`                     | 修订金额超过 `payment.amount`  | 修正金额                           |
| 500 | `Internal server error`                                       | 服务端意外失败                  | 指数退避重试（起步 5s，最多 3 次）           |
