拉卡拉分账通API接口怎么调用?统一下单传入分账规则ID支付成功后自动触发分账流程
先在拉卡拉后台 / API 创建分账规则、拿到唯一 divisionRuleId;调用统一下单接口时传入该字段;支付成功后系统自动冻结资金、按规则执行分账、异步回调结果,全程无需手动调用分账接口,实现自动分账。下面从原理、前置准备、规则创建、统一下单调用、签名、回调、查询 / 回退、避坑,完整可落地拆解。
一、核心逻辑总览
自动分账的本质是「规则预配置 → 下单绑定规则 → 支付触发自动执行」:
- 提前维护分账接收方(企业 / 个人)并完成四要素核验、签约
- 创建分账规则(比例 / 金额、接收方、延迟时机、手续费承担方)→ 返回唯一divisionRuleId(分账规则 ID)
-
调用统一下单
/api/v3/pay/unifiedorder,在请求体中传入divisionRuleId,标记该订单需要自动分账 - 用户支付成功 → 资金进入监管待分账账户(冻结) → 拉卡拉分账引擎自动读取规则、执行拆分、异步推送结果通知
- 核心约束:累计分账金额≤订单总额;订单冻结模式单订单最多 50 次分账;余额模式无限次
二、前置准备(必须先完成,否则无法生效)
- 开通权限:资质审核通过、签署分账协议、开放平台开通分账通权限,拿到appId、商户号 mchId、RSA 公私钥、沙箱 / 生产环境参数
- 接收方进件:调用分账接收方管理接口,把所有分账参与方(商户、渠道、个人)信息录入并完成实名核验、签约,获得接收方 receiverId
- 回调准备:准备一个公网可访问、支持 HTTPS、幂等处理的 notify_url,用于接收支付结果、分账结果异步通知
三、Step1:创建分账规则,获取 divisionRuleId(核心前置)
两种方式创建规则,最终都拿到唯一 ID:
方式 A:商户后台可视化配置(简单)
登录拉卡拉开放平台 / 商户后台 → 分账通 → 分账规则管理 → 新建规则:
- 规则名称、分账类型:比例 / 固定金额 / 阶梯
- 分账接收方列表:绑定已进件的 receiverId、金额 / 比例、结算周期、手续费承担方
- 触发时机:支付后立即分账 / 延迟 T+N 天(核销 / 售后后)
- 保存后自动生成divisionRuleId(字符串,唯一),复制留存
方式 B:API 创建规则(动态 / 批量)
接口地址:
/api/v3/division/rule/create
返回成功后得到:
{"code":"0","msg":"success","data":{"divisionRuleId":"RULE20260612XXXXXX"}}
四、Step2:统一下单接口调用(传入 divisionRuleId,绑定自动分账)
接口基础信息
- 请求地址:沙箱 / 生产:/api/v3/pay/unifiedorder
- 请求方式:POST,Content-Type: application/json
- 签名规范:SHA256withRSA,按官方规范拼接 appId、serialNo、timestamp、nonceStr、body,用私钥签名,放在 Authorization 请求头
核心请求参数(重点看分账相关字段)
- **divisionFlag=1**:开启分账冻结,资金不进商户余额、进入监管冻结账户
- **divisionRuleId**:绑定预配置规则,支付成功后**自动执行、无需再调分账接口**
- 不传ruleId则只能手动调用分账接口;传了ruleId=自动分账
### 完整签名&请求头示例(规范必做)
Authorization: LKLAPI-SHA256withRSA appid="xxx",serial_no="xxx",timestamp="1718123456",nonce_str="123456789012",signature="base64 签名串"
Content-Type: application/jso
## 五、Step3:支付成功 → 自动分账触发流程(无需人工干预)
1. 用户支付成功 → 拉卡拉回调支付结果notifyUrl → 订单状态更新为「支付成功、待分账(冻结)」
2. 系统读取divisionRuleId对应的规则 → 校验接收方、金额合法性
3. 执行分账:按比例/金额拆分冻结资金、分发到各接收方账户;**订单冻结模式单订单最多50次分批分账;余额监管模式无限次
4. 分账完成/失败 → 推异步回调到**divisionNotifyUrl**
## 六、Step4:分账结果回调处理(最关键,防重复、防篡改)
### 回调报文示例
```json
{
"outTradeNo":"平台订单号",
"lklTradeNo":"拉卡拉交易号",
"divisionOrderNo":"分账单号",
"status":"SUCCESS/FAIL",
"totalAmount":"10000",
"divisionAmount":"10000",
"receiverList":[...],
"sign":"签名值"
}
处理三原则(必须做)
- 验签:按官方规则(字典序排序、去除 sign、拼接、拉卡拉公钥 SHA256withRSA 验签),验签失败直接丢弃,防伪造
- 幂等:用outTradeNo/divisionOrderNo做唯一主键,收到回调先查状态,已处理直接返回 success,避免重复分账 / 重复入账
- 应答:处理成功后原样返回字符串 success,否则拉卡拉会重试;超时 / 重试需做好容错
七、辅助接口:查询、回退、撤销(异常 / 售后场景)
-
分账查询:
/api/v3/division/query→ 按交易号 / 分账号查状态、明细、剩余冻结金额 -
分账回退 / 撤销:
/api/v3/division/return→ 售后退款时,按原规则逆向回退资金;仅支持 90 天内、未结算资金
八、沙箱测试 → 上线验证(必做)
- 开放平台切换沙箱环境,用沙箱参数、测试密钥、模拟支付完成下单→支付→自动分账全链路
- 必测用例:正常分账、延迟分账、部分分账、分账失败重试、回调验签、幂等、回退
- 全量通过后,切换生产商户号、生产密钥、正式回调地址,小流量灰度后全量上线
九、核心限制 & 避坑红线(高频踩坑)
- ❌ 规则 ID 错误 / 未创建 → 下单报错、无法自动分账
- ❌ 未开 divisionFlag=1 → 资金直接进商户余额、无法冻结、无法分账、涉嫌二清
- ❌ 回调不验签、不幂等 → 重复分账、资金安全风险
- ❌ 金额超限:累计分账 > 订单总额、单笔接收方 > 50 个、订单冻结模式分账 > 50 次 → 失败
- ⚠️ 冻结有效期:默认90 天,超时未分完自动解冻回主商户账户
一句话总结
1)后台 / API 建规则→拿到divisionRuleId;
2)统一下单传divisionFlag=1+divisionRuleId;
3)支付成功→自动冻结、自动分账、异步回调;
全程不用手动调分账接口,合规、高效、防二清。

