最新更新時(shí)間:2022.08.29 版本說明
當(dāng)交易發(fā)生之后一年內(nèi),由于買家或者賣家的原因需要退款時(shí),賣家可以通過退款接口將支付金額退還給買家,微信支付將在收到退款請求并且驗(yàn)證成功之后,將支付款按原路退還至買家賬號(hào)上。
1、交易時(shí)間超過一年的訂單無法提交退款
2、微信支付退款支持單筆交易分多次退款(不超50次),多次退款需要提交原支付訂單的商戶訂單號(hào)和設(shè)置不同的退款單號(hào)。申請退款總金額不能超過訂單金額。 一筆退款失敗后重新提交,請不要更換退款單號(hào),請使用原商戶退款單號(hào)
3、錯(cuò)誤或無效請求頻率限制:6qps,即每秒鐘異常或錯(cuò)誤的退款申請請求不超過6次
4、每個(gè)支付訂單的部分退款次數(shù)不能超過50次
5、如果同一個(gè)用戶有多筆退款,建議分不同批次進(jìn)行退款,避免并發(fā)退款導(dǎo)致退款失敗
6、申請退款接口的返回僅代表業(yè)務(wù)的受理情況,具體退款是否成功,需要通過退款查詢接口獲取結(jié)果
7、一個(gè)月之前的訂單申請退款頻率限制為:5000/min
8、同一筆訂單多次退款的請求需相隔1分鐘
退款狀態(tài)轉(zhuǎn)變?nèi)缦拢?/p>
適用對象:直連商戶
請求URL:https://api.mch.weixin.qq.com/v3/refund/domestic/refunds
請求方式:POST
接口頻率:150qps
path 指該參數(shù)為路徑參數(shù)
query 指該參數(shù)為URL參數(shù)
body 指該參數(shù)需在請求JSON傳參
參數(shù)名 | 變量 | 類型[長度限制] | 必填 | 描述 |
---|---|---|---|---|
微信支付訂單號(hào) | transaction_id | string[1, 32] | 二選一 | body原支付交易對應(yīng)的微信訂單號(hào) 示例值:1217752501201407033233368018 |
商戶訂單號(hào) | out_trade_no | string[6, 32] | body原支付交易對應(yīng)的商戶訂單號(hào) 示例值:1217752501201407033233368018 |
|
商戶退款單號(hào) | out_refund_no | string[1, 64] | 是 | body商戶系統(tǒng)內(nèi)部的退款單號(hào),商戶系統(tǒng)內(nèi)部唯一,只能是數(shù)字、大小寫字母_-|*@ ,同一退款單號(hào)多次請求只退一筆。 示例值:1217752501201407033233368018 |
退款原因 | reason | string[1, 80] | 否 | body若商戶傳入,會(huì)在下發(fā)給用戶的退款消息中體現(xiàn)退款原因 示例值:商品已售完 |
退款結(jié)果回調(diào)url | notify_url | string[8, 256] | 否 | body異步接收微信支付退款結(jié)果通知的回調(diào)地址,通知url必須為外網(wǎng)可訪問的url,不能攜帶參數(shù)。 如果參數(shù)中傳了notify_url,則商戶平臺(tái)上配置的回調(diào)地址將不會(huì)生效,優(yōu)先回調(diào)當(dāng)前傳的這個(gè)地址。 示例值:https://weixin.qq.com |
退款資金來源 | funds_account | string[1,32] | 否 | body若傳遞此參數(shù)則使用對應(yīng)的資金賬戶退款,否則默認(rèn)使用未結(jié)算資金退款(僅對老資金流商戶適用) 枚舉值: AVAILABLE:可用余額賬戶 示例值:AVAILABLE |
+金額信息 | amount | object | 是 | body訂單金額信息 |
+退款商品 | goods_detail | array | 否 | body指定商品退款需要傳此參數(shù),其他場景無需傳遞 |
{
"transaction_id": "1217752501201407033233368018",
"out_refund_no": "1217752501201407033233368018",
"reason": "商品已售完",
"notify_url": "https://weixin.qq.com",
"funds_account": "AVAILABLE",
"amount": {
"refund": 888,
"from": [
{
"account": "AVAILABLE",
"amount": 444
}
],
"total": 888,
"currency": "CNY"
},
"goods_detail": [
{
"merchant_goods_id": "1217752501201407033233368018",
"wechatpay_goods_id": "1001",
"goods_name": "iPhone6s 16G",
"unit_price": 528800,
"refund_amount": 528800,
"refund_quantity": 1
}
]
}
參數(shù)名 | 變量 | 類型[長度限制] | 必填 | 描述 |
---|---|---|---|---|
微信支付退款單號(hào) | refund_id | string[1, 32] | 是 | 微信支付退款單號(hào) 示例值:50000000382019052709732678859 |
商戶退款單號(hào) | out_refund_no | string[1, 64] | 是 | 商戶系統(tǒng)內(nèi)部的退款單號(hào),商戶系統(tǒng)內(nèi)部唯一,只能是數(shù)字、大小寫字母_-|*@ ,同一退款單號(hào)多次請求只退一筆。 示例值:1217752501201407033233368018 |
微信支付訂單號(hào) | transaction_id | string[1, 32] | 是 | 微信支付交易訂單號(hào) 示例值:1217752501201407033233368018 |
商戶訂單號(hào) | out_trade_no | string[1, 32] | 是 | 原支付交易對應(yīng)的商戶訂單號(hào) 示例值:1217752501201407033233368018 |
退款渠道 | channel | string[1, 16] | 是 | 枚舉值: ORIGINAL:原路退款 BALANCE:退回到余額 OTHER_BALANCE:原賬戶異常退到其他余額賬戶 OTHER_BANKCARD:原銀行卡異常退到其他銀行卡 示例值:ORIGINAL |
退款入賬賬戶 | user_received_account | string[1, 64] | 是 | 取當(dāng)前退款單的退款入賬方,有以下幾種情況: 1)退回銀行卡:{銀行名稱}{卡類型}{卡尾號(hào)} 2)退回支付用戶零錢:支付用戶零錢 3)退還商戶:商戶基本賬戶商戶結(jié)算銀行賬戶 4)退回支付用戶零錢通:支付用戶零錢通 示例值:招商銀行信用卡0403 |
退款成功時(shí)間 | success_time | string[1, 64] | 否 | 退款成功時(shí)間,當(dāng)退款狀態(tài)為退款成功時(shí)有返回。 示例值:2020-12-01T16:18:12+08:00 |
退款創(chuàng)建時(shí)間 | create_time | string[1, 64] | 是 | 退款受理時(shí)間 示例值:2020-12-01T16:18:12+08:00 |
退款狀態(tài) | status | string[1, 32] | 是 | 退款到銀行發(fā)現(xiàn)用戶的卡作廢或者凍結(jié)了,導(dǎo)致原路退款銀行卡失敗,可前往商戶平臺(tái)-交易中心,手動(dòng)處理此筆退款。 枚舉值: SUCCESS:退款成功 CLOSED:退款關(guān)閉 PROCESSING:退款處理中 ABNORMAL:退款異常 示例值:SUCCESS |
資金賬戶 | funds_account | string[1, 32] | 否 | 退款所使用資金對應(yīng)的資金賬戶類型 枚舉值: UNSETTLED : 未結(jié)算資金 AVAILABLE : 可用余額 UNAVAILABLE : 不可用余額 OPERATION : 運(yùn)營戶 BASIC : 基本賬戶(含可用余額和不可用余額) 示例值:UNSETTLED |
+金額信息 | amount | object | 是 | 金額詳細(xì)信息 |
+優(yōu)惠退款信息 | promotion_detail | array | 否 | 優(yōu)惠退款信息 |
{
"refund_id": "50000000382019052709732678859",
"out_refund_no": "1217752501201407033233368018",
"transaction_id": "1217752501201407033233368018",
"out_trade_no": "1217752501201407033233368018",
"channel": "ORIGINAL",
"user_received_account": "招商銀行信用卡0403",
"success_time": "2020-12-01T16:18:12+08:00",
"create_time": "2020-12-01T16:18:12+08:00",
"status": "SUCCESS",
"funds_account": "UNSETTLED",
"amount": {
"total": 100,
"refund": 100,
"from": [
{
"account": "AVAILABLE",
"amount": 444
}
],
"payer_total": 90,
"payer_refund": 90,
"settlement_refund": 100,
"settlement_total": 100,
"discount_refund": 10,
"currency": "CNY"
},
"promotion_detail": [
{
"promotion_id": "109519",
"scope": "SINGLE",
"type": "DISCOUNT",
"amount": 5,
"refund_amount": 100,
"goods_detail": [
{
"merchant_goods_id": "1217752501201407033233368018",
"wechatpay_goods_id": "1001",
"goods_name": "iPhone6s 16G",
"unit_price": 528800,
"refund_amount": 528800,
"refund_quantity": 1
}
]
}
]
}
狀態(tài)碼 | 錯(cuò)誤碼 | 描述 | 解決方案 |
---|---|---|---|
500 | SYSTEM_ERROR | 系統(tǒng)超時(shí) | 請不要更換商戶退款單號(hào),請使用相同參數(shù)再次調(diào)用API。 |
403 | USER_ACCOUNT_ABNORMAL | 退款請求失敗 | 此狀態(tài)代表退款申請失敗,商戶可自行處理退款。 |
403 | NOT_ENOUGH | 余額不足 | 此狀態(tài)代表退款申請失敗,商戶可根據(jù)具體的錯(cuò)誤提示做相應(yīng)的處理。 |
400 | PARAM_ERROR | 參數(shù)錯(cuò)誤 | 請求參數(shù)錯(cuò)誤,請重新檢查再調(diào)用申請退款接口 |
404 | MCH_NOT_EXISTS | MCHID不存在 | 請檢查MCHID是否正確 |
404 | RESOURCE_NOT_EXISTS | 訂單號(hào)不存在 | 請檢查你的訂單號(hào)是否正確且是否已支付,未支付的訂單不能發(fā)起退款 |
401 | SIGN_ERROR | 簽名錯(cuò)誤 | 請檢查簽名參數(shù)和方法是否都符合簽名算法要求 |
429 | FREQUENCY_LIMITED | 頻率限制 | 該筆退款未受理,請降低頻率后重試 |
400 | INVALID_REQUEST | 請求參數(shù)符合參數(shù)格式,但不符合業(yè)務(wù)規(guī)則 | 此狀態(tài)代表退款申請失敗,商戶可根據(jù)具體的錯(cuò)誤提示做相應(yīng)的處理。 |
403 | NO_AUTH | 沒有退款權(quán)限 | 此狀態(tài)代表退款申請失敗,請檢查是否有該筆訂單的退款權(quán)限 |