当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,企业微信将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家账户上。
1. 交易时间超过一年的订单无法提交退款。
2. 企业微信退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金额不能超过订单金额。 一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号。
3. 请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次,单笔订单请求频率限制:1qpm,即单笔订单每分钟申请退款请求次数不超过1次。
4. 每个支付订单的部分退款次数不能超过50次。
5. 申请退款接口的返回仅代表业务的受理情况,具体退款是否成功,需要通过退款查询接口获取结果。
请求方式: POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/miniapppay/refund?access_token=ACCESS_TOKEN
请求包体:
{
"mchid": "1900000109",
"appid": "wx8888888888888888",
"out_trade_no": "1217752501201407033233368018",
"out_refund_no": "1217752501201407033233368018",
"reason": "商品已售完",
"funds_account":"AVAILABLE",
"amount": {
"refund": 888,
"total": 888,
"currency": "CNY"
}
}
参数说明:
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
商户号 | mchid | string[1,32] | 是 | 企业微信分配商户号。 示例值: 1900000109 |
商户APPID | appid | string[1,32] | 是 | 小程序appid。 示例值:wx8888888888888888 |
商户订单号 | out_trade_no | string[6,32] | 是 | 原支付交易对应的商户订单号。 示例值:1217752501201407033233368018 |
商户退款单号 | out_refund_no | string[1,64] | 是 | 商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@,同一退款单号多次请求只退一笔。 示例值:1217752501201407033233368018 |
退款原因 | reason | string[1,80] | 否 | 若商户传入,会在下发给用户的退款消息中体现退款原因。 注意:若订单退款金额≤1元,且属于部分退款,则不会在退款消息中体现退款原因 示例值:商品已售完 |
订单金额 | amount | object | 是 | 订单金额信息,详见Amount。 |
资金账户 | funds_account | string[1,32] | 否 | 若订单处于待分账状态,填写该字段后,退款时直接从二级商户余额中退款。 AVAILABLE:可用余额 |
Amount说明:
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
退款金额 | refund | int | 是 | 退款金额,币种的最小单位,只能为整数,不能超过原订单支付金额。 示例值:888 |
原订单金额 | total | int | 是 | 原支付交易的订单总金额,币种的最小单位,只能为整数。 示例值:888 |
退款币种 | currency | string[1,18] | 是 | 符合ISO 4217标准的三位字母代码,目前只支持人民币:CNY。 示例值:CNY |
返回结果:
{
"out_refund_no": "1217752501201407033233368018",
"amount": {
"refund": 888,
"currency": "CNY"
},
"errcode": 0,
"errmsg": "ok"
}
参数说明:
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
商户退款单号 | out_refund_no | string[1,64] | 否 | 商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔。 示例值:1217752501201407033233368018 |
订单金额 | amount | object | 否 | 订单金额信息,详见Amount。 |
优惠退款详情 | promotion_detail | array | 否 | 优惠退款功能信息,discount_refund>0时,返回该字段,详见 PromotionDetail |
Amount说明:
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
退款金额 | refund | int | 是 | 退款金额,币种的最小单位,只能为整数,不能超过原订单支付金额。 示例值:888 |
用户退款金额 | payer_refund | int | 是 | 退给用户的金额,不包含所有优惠券金额 |
优惠退款金额 | discount_refund | int | 是 | 优惠券的退款金额,原支付单的优惠按比例退款。 示例值:888 |
退款币种 | currency | string[1,18] | 否 | 符合ISO 4217标准的三位字母代码,目前只支持人民币:CNY 。 示例值:CNY |
PromotionDetail说明:
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
券ID | promotion_id | string[1,32] | 否 | 券或者立减优惠id。 |
优惠范围 | scope | string[1,32] | 否 | 枚举值: GLOBAL:全场代金券 SINGLE:单品优惠 |
优惠类型 | type | string[1,32] | 否 | 枚举值: COUPON:充值型代金券,商户需要预先充值营销经费 DISCOUNT:免充值型优惠券,商户不需要预先充值营销经费 |
优惠券面额 | amount | int | 否 | 用户享受优惠的金额(优惠券面额=微信出资金额+商家出资金额+其他出资方金额 )。 |
优惠退款金额 | refund_amount | int | 否 | 代金券退款金额<=退款金额,退款金额-代金券或立减优惠退款金额为现金,说明详见《代金券或立减优惠》 。 |