发起异常退款
更新时间:2025.03.20提交退款申请后,查询退款或退款结果通知确认状态为退款异常,可调用此接口发起异常退款处理。支持退款至用户银行账户。
退款至用户时,仅支持以下银行的借记卡:招行、交通银行、农行、建行、工商、中行、平安、浦发、中信、光大、民生、兴业、广发、邮储、宁波银行。
请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次
接口说明
支持商户:【平台商户】
请求方式:【POST】/v3/ecommerce/refunds/{refund_id}/apply-abnormal-refund
请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点
【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看
请求参数
Header HTTP头参数
Authorization 必填 string
请参考签名认证生成认证信息
Accept 必填 string
请设置为application/json
Content-Type 必填 string
请设置为application/json
Wechatpay-Serial 必填 string
【微信支付公钥ID】或【微信支付平台证书序列号】请求参数中的敏感字段,需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引
path 路径参数
refund_id 必填 string(32)
【微信退款单号】退款单的主键,唯一定义此资源的标识
body 包体参数
individual_auth_id 必填 string(32)
【商品单个人收款方受理授权ID】 原支付交易对应的个人收款方受理授权ID。
out_refund_no 必填 string(64)
【商户退款单号】商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@ ,同一退款单号多次请求只退一笔。
type 必填 string
【异常退款处理方式】 可选:退款至用户银行账户USER_BANK_CARD
个人收款只支持退款至用户银行账户。
可选取值::
USER_BANK_CARD
: 退款到用户银行卡
bank_type 选填 string(16)
【开户银行】银行类型,采用字符串类型的银行标识,值列表详见银行类型。仅支持招行、交通银行、农行、建行、工商、中行、平安、浦发、中信、光大、民生、兴业、广发、邮储、宁波银行的借记卡
若退款至用户此字段必填。
bank_account 选填 string(1024)
【收款银行卡号】用户的银行卡账号,该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引
real_name 选填 string(1024)
【收款用户姓名】收款用户姓名,该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引
请求示例
POST
应答参数
|
refund_id 必填 string(32)
【微信支付退款订单号】 微信支付退款订单订单号
out_refund_no 必填 string(64)
【商户退款单号】商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@ ,同一退款单号多次请求只退一笔。
transaction_id 必填 string(32)
【微信支付订单号】微信支付交易订单号
out_trade_no 必填 string(32)
【商户原交易订单号】 返回的原交易订单号
channel 选填 string(16)
【退款渠道】 ORIGINAL—原路退款
BALANCE—退回到余额
OTHER_BALANCE—原账户异常退到其他余额账户
OTHER_BANKCARD—原银行卡异常退到其他银行卡
user_received_account 选填 string(64)
【退款入账账户】取当前退款单的退款入账方,有以下几种情况:
1)退回银行卡:{银行名称}{卡类型}{卡尾号}
2)退回支付用户零钱:支付用户零钱
3)退还商户:商户基本账户商户结算银行账户
4)退回支付用户零钱通:支付用户零钱通
5)退回支付用户银行电子账户:支付用户银行电子账户
6)退回支付用户零花钱:支付用户零花钱
7)退回用户经营账户:用户经营账户
8)退回支付用户来华零钱包:支付用户来华零钱包
9)退回企业支付商户:企业支付商户
success_time 选填 string(64)
【退款成功时间】退款成功时间,退款状态status为SUCCESS(退款成功)时,返回该字段。遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日13点29分35秒。
create_time 必填 string(64)
【退款创建时间】退款受理时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日13点29分35秒。
status 必填 string(16)
【退款状态】 退款状态:
SUCCESS—退款成功
CLOSED—退款关闭。
PROCESSING—退款处理中
ABNORMAL—退款异常,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可使用发起异常退款API处理此笔退款
amount 必填 RefundAmount
【退款金额】 退款金额信息
属性 | |
promotion_detail 选填 array[PromotionDetail]
【营销详情】 优惠退款信息
属性 | |
funds_account 选填 string
【资金账户】 UNSETTLED : 未结算资金
AVAILABLE : 可用余额
UNAVAILABLE : 不可用余额
OPERATION : 运营户
BASIC : 基本账户(含可用余额和不可用余额)
ECNY_BASIC : 数字人民币基本账户
应答示例
200 OK
错误码
公共错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
400 | PARAM_ERROR | 参数错误 | 请根据错误提示正确传入参数 |
400 | INVALID_REQUEST | HTTP 请求不符合微信支付 APIv3 接口规则 | 请参阅 接口规则 |
401 | SIGN_ERROR | 验证不通过 | 请参阅 签名常见问题 |
500 | SYSTEM_ERROR | 系统异常,请稍后重试 | 请稍后重试 |
业务错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
400 | INVALID_REQUEST | 请求参数符合参数格式,但不符合业务规则 | 此状态代表本次请求的退款申请失败,请根据具体的错误提示做相应处理。 |
401 | SIGN_ERROR | 签名错误 | 请检查签名参数和方法是否都符合签名算法要求 |
403 | NO_AUTH | 没有退款权限 | 此状态代表退款申请失败,请检查是否有退这笔订单的权限 |
404 | RESOURCE_NOT_EXISTS | 退款单不存在 | 请检查退款单号是否有误 |
429 | FREQUENCY_LIMITED | 频率限制 | 该笔退款未受理,请降低频率后重试 |
500 | SYSTEM_ERROR | 系统超时等 | 请不要更换商户退款单号,请使用相同参数再次调用API。 |