退款入账通知
更新时间:2026.04.171、场景说明
不同与支付结果通知API,退款入账通知表示银行将资金入账给持卡人账户,该通知受银行退款资金入账的处理时效不同而不同,部分银行在退款受理数天后才会发起退款入账通知。本交易设计目标是优化用户体验,退款交易是否清算情况以账单为准。
对后台通知交互时,如果银联收到应答不是成功或超时,银联认为通知失败,银联会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但银联不保证通知最终能成功。注意:同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。
推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
特别提醒:
商户系统对于退款结果通知的内容一定要做签名验证,并校验返回的退款金额是否与商户侧的退款金额一致,防止数据泄漏导致出现"假通知",造成资金损失。
2、接口说明
2.1 通知参数
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
返回状态码 | return_code | 是 | String(16) | SUCCESS | SUCCESS/FAIL。此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
返回信息 | return_msg | 否 | String(128) | 签名失败 | 返回信息,如非空,为错误原因:签名失败;参数格式校验错误 |
商户号 | mch_id | 否 | String(32) | 1900000109 | 微信支付分配的商户号 |
子商户号 | sub_mch_id | 否 | String(32) | 1900000109 | 微信支付分配的子商户号 |
渠道商商户号 | channel_id | 否 | String(32) | 19000001 | 微信支付分配给收单服务商的ID |
随机字符串 | nonce_str | 否 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串,不长于32位 |
签名 | sign | 否 | String(344) | C380BEC2BFD727A4B6845133519F3AD6 | 银联返回的签名 |
签名算法 | sign_type | 否 | String(10) | RSA2 | 本域不出现时,默认为RSA2算法。银联生成签名字符串所使用的签名算法类型,本域值同收单请求银联上送的sign_type。 |
签名证书 | cert_id | 否 | String(128) | - | 签名证书序列号 |
业务结果 | result_code | 否 | String(16) | SUCCESS | SUCCESS/FAIL |
错误代码 | err_code | 否 | String(32) | SYSTEMERROR | 错误返回的信息描述 |
错误代码描述 | err_code_des | 否 | String(128) | 系统错误 | 错误返回的信息描述 |
银联订单号 | transaction_id | 否 | String(32) | 1217752501201407033233368018 | 银联订单号 |
商户订单号 | out_trade_no | 否 | String(32) | 121232121120140703356812322 | 商户系统内部的订单号,商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*且在同一个商户号下唯一。重新发起一笔支付要使用原订单号,避免重复支付。 |
商户退款单号 | out_refund_no | 否 | String(64) | 1217752501201407033233368018 | 商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母,同一退款单号多次请求只退一笔。 |
银联退款单号 | refund_id | 否 | String(32) | 1217752501201407033233368018 | 银联退款单号 |
退款状态 | refund_status | 否 | String(16) | SUCCESS | SUCCESS—退款成功;REFUNDCLOSE—退款关闭;PROCESSING—退款处理中;CHANGE—退款异常,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败。 |
退款资金来源 | refund_account | 否 | String(30) | REFUND_SOURCE_RECHARGE_FUNDS | REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款/基本账户;REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款。 |
退款入账方 | refund_recv_account | 否 | String(64) | 招商银行信用卡0403 | 取当前退款单的退款入账方;1)退回银行卡:{银行名称}{卡类型}{卡尾号};2)退回支付用户零钱:支付用户零钱;3)退还商户:商户基本账户、商户结算银行账户;4)退回支付用户零钱通:支付用户零钱通 |
退款成功时间 | refund_success_time | 否 | String(20) | 2016-07-25 15:26:26 | 退款成功时间,当退款状态为退款成功时有返回。 |
货币种类 | fee_type | 否 | String(8) | CNY | 订单金额货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY |
现金退款金额 | cash_refund_fee | 否 | Int | 100 | 现金退款金额,单位为分,只能为整数 |
标价金额 | total_fee | 否 | Int | 100 | 订单总金额,单位为分 |
申请退款金额 | refund_fee | 否 | Int | 100 | 退款总金额,单位为分,可以做部分退款 |
现金支付金额 | cash_fee | 否 | Int | 100 | 订单现金支付金额 |
现金退款金额 | cash_refund_fee | 否 | Int | 100 | 现金退款金额,单位为分,只能为整数 |
2.2 返回参数
商户处理后同步返回给银联参数:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
返回状态码 | return_code | 是 | String(16) | SUCCESS | SUCCESS 表示商户接收通知成功并校验成功 |
返回信息 | return_msg | 否 | String(128) | OK | 返回信息,如非空,为错误原因:签名失败;参数格式校验错误 |

