7.6 申请退款
请求方式:
POST请求地址:
/orders/{clientOrderRef}/refunds
仅当最新订单的 allowedActions 包含 requestRefund 时才能调用。该接口申请退还订单当前全部可退金额,第三方不填写退款金额。
{
"clientRefundRef": "RF-20260728-0001",
"reason": "商品无法使用"
}请求字段:
字段 | 位置 | JSON 类型 | 必填 | 含义 |
|---|---|---|---|---|
| Path | string | 是 | 要退款的第三方订单号 |
| Body | string | 是 | 第三方退款编号,在当前订单内唯一;1 至 64 个字符,只能使用字母、数字、短横线和下划线;网络重试必须继续使用原编号 |
| Body | string | 是 | 申请退款的原因,1 至 255 个字符 |
返回示例:
{
"code": 0,
"message": "success",
"data": {
"clientRefundRef": "RF-20260728-0001",
"refundRef": "RF202607290001",
"clientOrderRef": "PO-20260728-0001",
"refundAmount": 100.00,
"reason": "商品无法使用",
"createdAt": 1785216100,
"updatedAt": 1785216100
},
"requestId": "req_01K0EXAMPLE"
}返回字段:
字段 | JSON 类型 | 必填 | 含义 |
|---|---|---|---|
| integer | 是 | 固定为 |
| string | 是 | 本次请求的处理说明 |
| object | 是 | 本次退款申请资料 |
| string | 是 | 第三方退款编号 |
| string | 是 | 平台退款编号 |
| string | 是 | 退款所属的第三方订单号 |
| number | 是 | 本次申请退款金额,单位为人民币元,最多保留两位小数 |
| string | 是 | 第三方提交的退款原因 |
| integer | 是 | 退款申请创建时间,10 位 Unix 秒级时间戳 |
| integer | 是 | 退款申请最后更新时间,10 位 Unix 秒级时间戳 |
| string | 是 | 本次请求编号,排查问题时提供给平台 |
使用规则:
clientRefundRef由第三方生成,在当前订单内不能重复;长度为 1 至 64 个字符,只能使用字母、数字、短横线和下划线。请求体不接受
refundAmount;平台按订单当时的全部可退金额创建待人工处理申请。相同
clientRefundRef、订单和原因返回原退款申请,不重复发起;相同引用但内容不同返回IDEMPOTENCY_CONFLICT。HTTP 2xx 只表示退款申请已经提交,或者返回了之前的同一申请;不会直接改变订单状态或完成退款。
退款申请提交后等待商户处理;接口成功不代表退款已经完成。
实际退款金额、累计退款金额和退款后的订单状态会通过
order.changed推送。没有收到推送时,可以查询订单详情。同一退款同时改变订单状态时不会再重复发送
order.changed。