拉卡拉API支付接口支持退款接口吗?全额退款部分退款怎么调用?
电商和服务平台在对接支付接口时,退款是必不可少的功能。拉卡拉API支付接口支持退款吗?全额退款和部分退款怎么调用?退款有什么限制?本文详细解析拉卡拉API退款接口的功能、调用方式、参数说明、注意事项和常见问题。
拉卡拉API支付接口退款接口,全额退款部分退款调用方式参数说明
1. 一、退款接口概述
1.1 1.1 是否支持退款
支持。拉卡拉API支付接口提供完整的退款功能,包括:
• 全额退款:订单金额全部退回
• 部分退款:订单金额部分退回,支持多次部分退款
• 退款查询:查询退款订单状态
• 异步通知:退款结果异步回调通知
1.2 1.2 退款接口类型
|
接口 |
说明 |
|
统一退款接口 |
支持所有支付方式的退款,推荐使用 |
|
分账退款接口 |
已分账订单的退款,自动触发分账回退 |
|
退款查询接口 |
查询退款订单状态和详情 |
|
退款异步通知 |
退款完成后回调商户系统 |
1.3 1.3 支持的支付方式退款
• 信用卡支付退款
• 微信支付退款(扫码、公众号、小程序、APP)
• 支付宝退款(扫码、生活号、APP)
• 数字人民币退款
• 组合支付退款
• 跨境支付退款
|
拉卡拉API支付接口完整支持退款功能,包括全额退款、部分退款(可多次)、退款查询和异步通知。统一退款接口支持所有支付方式,已分账订单退款自动触发分账回退。退款原路返回,信用卡退信用卡、微信退微信余额/银行卡。 |
2. 二、全额退款
2.1 2.1 全额退款场景
• 订单取消,全部金额退回
• 商品全部退货
• 服务未提供,全额退款
• 支付错误,重新支付
2.2 2.2 全额退款调用参数
|
参数 |
必填 |
说明 |
|
merchant_no |
是 |
商户号 |
|
out_trade_no |
是 |
商户订单号(与trade_no二选一) |
|
trade_no |
是 |
拉卡拉交易号(与out_trade_no二选一) |
|
out_refund_no |
是 |
商户退款单号,唯一 |
|
refund_amount |
是 |
退款金额,全额退款=订单金额,单位分 |
|
refund_reason |
否 |
退款原因 |
|
notify_url |
否 |
退款异步通知地址 |
2.3 2.3 全额退款示例
请求示例(JSON):
{
"merchant_no": "822xxxxxx",
"out_trade_no": "ORDER20260821001",
"out_refund_no": "REFUND20260821001",
"refund_amount": 10000,
"refund_reason": "用户取消订单",
"notify_url": "https://api.example.com/refund/notify"
}
说明:订单金额100元(10000分),全额退款100元。
3. 三、部分退款
3.1 3.1 部分退款场景
• 商品部分退货,退部分金额
• 服务部分提供,退未提供部分
• 差价退款(价格调整)
• 补偿性退款(质量问题部分赔付)
• 分批次退款(多次部分退款)
3.2 3.2 部分退款规则
|
规则 |
说明 |
|
退款金额上限 |
累计退款金额不超过订单总金额 |
|
退款次数 |
支持多次部分退款,直到累计=订单金额 |
|
最小金额 |
单次退款不低于0.01元(1分) |
|
退款单号 |
每次退款使用不同的out_refund_no |
|
分账回退 |
已分账订单部分退款,按比例回退分账资金 |
3.3 3.3 部分退款调用
部分退款调用参数与全额退款基本一致,只需refund_amount小于订单金额:
示例:订单100元,第一次退30元,第二次退20元:
第一次退款:
{
"out_trade_no": "ORDER20260821001",
"out_refund_no": "REFUND20260821001",
"refund_amount": 3000
}
第二次退款:
{
"out_trade_no": "ORDER20260821001",
"out_refund_no": "REFUND20260821002",
"refund_amount": 2000
}
累计退款50元,剩余可退50元。
3.4 3.4 部分退款与分账
• 订单已分账后部分退款,系统按退款比例自动回退各分账方资金
• 示例:订单100元,平台分账10元,商家分账90元;退30元→平台回退3元,商家回退27元
• 如分账资金已结算到接收方,从接收方后续交易中扣除或要求退回
• 冻结分账模式下,退款优先从冻结资金中回退
|
部分退款支持多次,累计不超过订单金额。每次退款使用唯一退款单号。已分账订单部分退款按比例自动回退分账资金。建议商户系统记录每次退款明细,避免超额退款。退款金额单位为分,注意精度转换。 |
4. 四、退款流程与时效
4.1 4.1 退款处理流程
1. 商户调用退款接口,提交退款申请
2. 拉卡拉校验参数和订单状态
3. 校验通过,创建退款订单
4. 向支付渠道(银行/微信/支付宝)发起退款
5. 支付渠道处理退款,资金原路返回
6. 退款完成,更新退款状态
7. 异步通知商户退款结果
8. 商户可主动查询退款状态确认
4.2 4.2 退款到账时效
|
支付方式 |
退款到账时效 |
退回路径 |
|
微信支付 |
1-3个工作日 |
原路退回微信余额/银行卡 |
|
支付宝 |
1-3个工作日 |
原路退回支付宝余额/银行卡 |
|
信用卡 |
3-7个工作日 |
原路退回信用卡 |
|
储蓄卡 |
1-3个工作日 |
原路退回储蓄卡 |
|
数字人民币 |
实时-1个工作日 |
原路退回数字人民币钱包 |
4.3 4.3 退款状态
• REFUND_PROCESSING:退款处理中
• REFUND_SUCCESS:退款成功
• REFUND_FAIL:退款失败
• REFUND_CHANGE:退款异常(需人工处理)
5. 五、退款查询与通知
5.1 5.1 退款查询接口
商户可通过以下方式查询退款状态:
• 按商户退款单号(out_refund_no)查询
• 按拉卡拉退款号(refund_no)查询
• 按商户订单号(out_trade_no)查询该订单所有退款
查询返回:退款单号、退款金额、退款状态、退款时间、失败原因等。
5.2 5.2 异步通知
|
项目 |
说明 |
|
通知时机 |
退款成功或失败时发送 |
|
通知方式 |
POST请求到商户notify_url |
|
通知内容 |
退款单号、订单号、退款金额、退款状态 |
|
签名验证 |
必须验证签名,防止伪造通知 |
|
重试机制 |
未收到success响应会重试(最多N次) |
|
响应要求 |
商户返回success表示接收成功 |
5.3 5.3 最佳实践
• 退款接口调用后,以异步通知为准,不要依赖同步返回
• 同时设置定时任务查询退款状态,防止通知丢失
• 收到通知后必须验证签名
• 幂等处理:同一退款单号多次通知只处理一次
• 退款失败需人工介入,不要自动重试(可能重复退款)
6. 六、退款限制与注意事项
6.1 6.1 退款限制
|
限制项 |
说明 |
|
退款期限 |
通常支付后1年内可退款,超期需联系客服 |
|
累计金额 |
累计退款不超过订单总金额 |
|
已结算订单 |
资金已结算后退款,从商户后续结算中扣除 |
|
分账订单 |
已分账需触发分账回退,分账方资金不足可能退款失败 |
|
跨境退款 |
跨境退款时效较长,可能涉及汇率差异 |
6.2 6.2 常见退款失败原因
• 订单不存在或已全额退款
• 退款金额超过可退金额
• 订单已超过退款期限
• 分账资金不足,无法回退
• 商户账户余额不足(已结算订单退款)
• 支付渠道退款异常(银行卡注销等)
• 签名错误或参数格式错误
6.3 6.3 注意事项
• 幂等设计:退款接口需保证幂等,同一out_refund_no多次调用只退款一次
• 金额精度:金额单位为分,使用整数,避免浮点精度问题
• 退款单号:全局唯一,建议包含日期和序号
• 异步处理:退款是异步过程,同步返回仅表示受理成功
• 对账核对:每日核对退款明细,确保退款金额和状态准确
• 用户告知:退款到账时效因支付方式不同,提前告知用户
|
重要注意:①退款是异步操作,同步返回"受理成功"不代表退款到账,以异步通知或查询为准;②已分账订单退款会触发分账回退,如分账方资金不足可能退款失败,需人工处理;③退款单号必须全局唯一且幂等;④退款失败不要自动重试,避免重复退款,应人工排查原因。 |
7. 七、分账订单退款
7.1 7.1 分账退款流程
1. 商户调用退款接口(指定已分账订单)
2. 系统计算各分账方应回退金额(按比例)
3. 从分账方冻结资金/账户余额中扣回
4. 扣回成功后,向用户发起退款
5. 退款完成,更新分账和退款状态
7.2 7.2 分账回退规则
|
分账状态 |
回退方式 |
|
未结算(冻结中) |
直接从冻结资金中扣回,实时完成 |
|
已结算未提现 |
从分账方账户余额中扣回 |
|
已提现 |
从分账方后续交易中扣除,或要求主动退回 |
|
余额不足 |
退款失败,需人工介入处理 |
7.3 7.3 建议
• 使用冻结分账模式,退款时资金未结算,回退更顺畅
• 设置合理的分账结算周期(如T+7),预留退款窗口
• 高退款率行业建议延长冻结期
• 退款失败时及时联系分账方协商退回
8. 八、常见问题
8.1 Q1:拉卡拉API支付接口支持退款吗?
支持。拉卡拉提供完整的退款API,包括全额退款、部分退款(支持多次)、退款查询和异步通知。统一退款接口支持信用卡、微信、支付宝、数字人民币等所有支付方式。已分账订单退款自动触发分账回退。退款原路返回,到账时效1-7个工作日不等。
8.2 Q2:部分退款怎么调用?可以退多次吗?
部分退款调用统一退款接口,refund_amount填小于订单金额的数值即可。支持多次部分退款,累计退款金额不超过订单总金额。每次退款使用唯一的out_refund_no。示例:订单100元,第一次退30元(refund_amount=3000),第二次退20元(refund_amount=2000),累计50元,剩余可退50元。
8.3 Q3:退款多久到账?
退款到账时效因支付方式而异:微信/支付宝1-3个工作日(原路退回余额或银行卡),信用卡3-7个工作日(退回信用卡),储蓄卡1-3个工作日,数字人民币实时到1个工作日。退款是异步过程,接口同步返回仅表示受理成功,最终以异步通知或查询状态为准。
8.4 Q4:已分账的订单退款怎么处理?
已分账订单退款时,系统按退款比例自动计算各分账方应回退金额并扣回。分账资金未结算(冻结中)直接扣回;已结算未提现从余额扣回;已提现从后续交易扣除或要求退回。如分账方余额不足,退款可能失败需人工处理。建议使用冻结分账模式并设置合理结算周期,预留退款窗口。
8.5 Q5:退款失败怎么办?
退款失败常见原因:超额退款、超退款期限、分账资金不足、商户余额不足、支付渠道异常。退款失败不要自动重试(避免重复退款),应:①调用退款查询接口确认状态;②检查失败原因;③联系拉卡拉技术支持或客服协助处理;④如分账资金不足,联系分账方退回后重新发起。建议商户系统对退款失败订单做人工审核流程。
9. 九、总结
拉卡拉API支付接口完整支持退款功能。全额退款:refund_amount=订单金额,一次性退回。部分退款:refund_amount小于订单金额,支持多次,累计不超过订单总额,每次用唯一退款单号。退款接口参数:商户号、订单号/交易号、退款单号、退款金额(单位分)、退款原因、通知地址。退款流程:调用接口→创建退款单→渠道处理→原路返回→异步通知。到账时效:微信/支付宝1-3天,信用卡3-7天,储蓄卡1-3天。退款状态:处理中/成功/失败/异常。查询与通知:支持按退款单号/订单号查询,异步通知需验签和幂等处理。分账订单退款:按比例自动回退分账资金,冻结中直接扣回,已结算从余额/后续交易扣除,余额不足可能失败。限制:退款期限通常1年,累计不超订单额。注意事项:幂等设计、金额用整数分、异步以通知为准、退款失败不自动重试、每日对账。建议:高退款率行业用冻结分账+延长结算周期。



