# 查询退款
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南。
接口英文名:getRefund
该接口用于查询B2b退款单信息
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/retail/B2b/getrefund?access_token=ACCESS_TOKEN
# 云调用
- 本接口不支持云调用。
# 第三方调用
本接口支持第三方平台代商家调用。
该接口所属的权限集 id 为:158
服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。
# 2. 请求参数
# 查询参数 Query String Parameters
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| access_token | string | 是 | ACCESS_TOKEN | 接口调用凭证,可使用 access_token、authorizer_access_token |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| mchid | string | 是 | 1230000109 | 微信商户号。长度限制[1,32]。由微信支付生成并下发的商户号。 |
| out_refund_no | string | 是 | 12177525012014070332321235 | 商户退款单号。长度限制[6, 32] 。商户系统内部退款单号,商户系统内部唯一,只能是数字、大小写字母_-*,同一退款单号多次请求只退一笔。 |
| refund_id | string | 否 | r202307281444591411763685 | B2b支付退款单号。长度限制[1,32]。商户退款单号和B2b支付退款单号必填其一 |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 示例 | 说明 |
|---|---|---|---|
| refund_id | string | r202307281444591411763685 | B2b支付退款单号。长度限制[1, 32]。 |
| out_refund_no | string | 12177525012014070332321235 | 商户退款单号。长度限制[6, 32] 是 商户系统内部退款单号,商户系统内部唯一,只能是数字、大小写字母_-*,同一退款单号多次请求只退一笔。 |
| order_id | string | o202307291423123564754773 | B2b支付订单号。长度限制[1,32]。原支付交易对应的B2b支付订单号 |
| out_trade_no | string | 1217752501201407033233368018 | 商户订单号。长度限制[6,32]。原支付交易对应的商户订单号 |
| create_time | string | 2023-07-30 17:04:23 | 退款创建时间。长度限制[1, 32]。退款受理时间,标准北京时间,时区为东八区,格式为yyyy-MM-dd HH:mm:ss。 |
| refund_time | string | 2023-07-30 17:04:28 | 退款成功时间。长度限制[1, 32] 。当退款状态为退款成功时有返回,标准北京时间,时区为东八区,格式为yyyy-MM-dd HH:mm:ss。 |
| refund_status | string | REFUND_SUCC | 退款状态。长度限制[1, 32]。退款单状态,枚举值: REFUND_INIT:退款单初始化 REFUND_PROCESSING:退款处理中 REFUND_SUCC:退款成功 REFUND_FAIL:退款失败 |
| refund_desc | string | 账户资金不足,请待充足后重新发起 | 退款说明。长度限制[1, 256]。 |
| amount | object | - | 金额信息。金额详细信息,仅支持人民币 |
| wxpay_refund_id | string | 1235481444591411763685 | 微信支付退款单号。长度限制[1, 32] |
| reverse_sett_state | number | 0 | 技术服务费回退状态,枚举值: 0:技术服务费未回退 1:技术服务费回退处理中 2:技术服务费回退成功 3:无需回退技术服务费 |
| reverse_sett_finish_time | string | 2023-07-30 17:04:28 | 技术服务费回退完成时间,当技术服务费回退状态为成功时有返回,标准北京时间,时区为东八区,格式为yyyy-MM-dd HH:mm:ss |
| platform_profit_percent | number | 60 | 技术服务费率,万分比(比如 60 指的是 0.60%),当技术服务费回退状态为成功时有返回 |
| reverse_sett_amt | number | - | 回退技术服务费,单位为分,当技术服务费回退状态为成功时有返回 |
| refund_channel_info | object | - | 退款渠道信息,仅支付方式为微信支付且订单退款成功后返回 |
| description | string | 抱枕 | 退款商品描述。 |
| errcode | number | - | 错误码 |
| errmsg | string | ok | 错误信息 |
# Res.amount Object Payload
金额信息。金额详细信息,仅支持人民币
| 参数名 | 类型 | 示例 | 说明 |
|---|---|---|---|
| order_amount order_amount | number | 1300 | 订单总金额,单位为分 |
| refund_amount | number | 100 | 退款金额,单位为分,可以做部分退款 |
| currency | string | CNY | 货币类型,仅支持人民币"CNY" |
# Res.refund_channel_info Object Payload
退款渠道信息,仅支付方式为微信支付且订单退款成功后返回
| 参数名 | 类型 | 示例 | 说明 |
|---|---|---|---|
| channel | string | ORIGINAL | 退款渠道。订单退款渠道,有以下枚举: ORIGINAL: 原路退款 BALANCE: 退回到余额 OTHER_BALANCE: 原账户异常退到其他余额账户 |
| user_received_account | string | 100 | 退款入账账户。当前退款单的退款入账方,取值有以下几种情况: 1)退回银行卡:{银行名称}{卡类型}{卡尾号} 2)退回支付用户零钱:支付用户零钱 3)退还商户:商户基本账户商户结算银行账户 4)退回支付用户零钱通:支付用户零钱通 5)退回支付用户银行电子账户:支付用户银行电子账户 6)退回支付用户零花钱:支付用户零花钱 7)退回用户经营账户:用户经营账户 8)退回支付用户来华零钱包:支付用户来华零钱包 9)退回企业支付商户:企业支付商户 |
| funds_account | string | AVAILABLE | 资金账户。退款所使用资金对应的资金账户类型,有以下枚举: AVAILABLE: 可提现金额账户 UNAVAILABLE: 待结算金额账户 |
# 4. 注意事项
- 一笔订单最多支持部分退款50次。
# 5. 代码示例
请求示例
{
"mchid": "1230000109",
"out_refund_no": "12177525012014070332321235"
}
或
{
"mchid": "1230000109",
"refund_id": "r202307281444591411763685"
}
返回示例
{
"refund_id": "r202307281444591411763685",
"out_refund_no": "12177525012014070332321235",
"order_id": "o202307291423123564754773",
"out_trade_no": "1217752501201407033233368018",
"create_time": "2023-07-30 17:04:23",
"refund_time": "2023-07-30 17:04:28",
"refund_status": "REFUND_SUCC",
"amount": {
"order_amount": 1300,
"refund_amount": 100,
"currency": "CNY"
},
"wxpay_refund_id": "1235481444591411763685",
"reverse_sett_state": 3,
"refund_channel_info": {
"channel": "ORIGINAL",
"user_received_account": "招商银行借记卡0000",
"funds_account": "UNAVAILABLE"
},
"description":"",
"errcode": 0,
"errmsg": OK
}
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| 10604 | 单笔订单的退款频率过高 | 在一分钟内只能发起一次退款,请稍后重试 |
| 61004 | access clientip is not registered requestIP: XXX | 若是第三方平台代调用接口,将IP添加到第三方平台的白名单列表,查看排错指南 |
| 9403200 | 参数为空或不合法。 | 按照文档要求传参,根据返回的具体错误描述检查参数 |
| 9403201 | 数据不存在。订单不存在,请检查入参 | |
| 9403201 | 数据不存在 | 订单不存在,请检查入参 |
| 9403202 | 退款单已受理 | 请调用查询退款接口确认退款请求 |
| 9403203 | 建档未完成,还不能发起支付或退款 | 请完成建档签约流程 |
| 9403205 | 订单无法退款(订单状态不对或超过160天) | 请检查订单状态或订单时间 |
| 9403206 | 退款状态未知,请商户2分钟后主动查询退款状态 | 请2分钟后调用查询退款接口确认退款状态 |
| 9403208 | 该订单正在退款中,请等待退款完成再发起新的退款 | 请等待退款完成再发起新的退款 |
| 9403209 | 不允许结算前退款 | 请等待订单结算后再退款 |
# 7. 适用范围
本接口暂未明确可调用账号类型,或在业务中根据调用传参自行确定是否可调用,请以实际调用情况为准。