Skip to content

发起分账

更新时间:2026/9/11 20:21:59

接口说明

商户系统通过该接口对分账订单发起分账。原支付订单须在统一下单(或网关预下单)时声明 allocation=true,资金才会被冻结并可发起分账;否则通道将拒绝分账。

接收方列表在请求中直接传入完整明细(极简模式),分账接收方须提前在通道侧完成绑定(平台管理端「通道商户详情」提供绑定入口),发起时只做金额拆分。

请求地址

POST /unipay/alloc

  • 认证:RSA 签名(@PaymentVerify
  • 响应:DaxResult<AllocResult>

请求参数

基础参数同 统一支付 - 基础参数,业务参数:

参数类型必填最大长度描述
bizAllocNostring100商户分账单号(幂等键,同一应用下唯一)
tradeNostring否*100原支付资金交易号
bizOrderNostring否*100原支付商户业务订单号
titlestring100分账标题
descriptionstring500分账描述
receiversobject[]接收方列表(至少一个)
attachstring500商户扩展参数,回调时原样返回
notifyUrlstring200异步通知地址

*tradeNobizOrderNo 至少传一个,优先级:tradeNo > bizOrderNo

receivers 接收方元素

参数类型必填最大长度描述
receiverTypestring32接收方类型(见下方码表)
receiverAccountstring128接收方账号
receiverNamestring64接收方姓名(部分通道/类型必填,如微信商户号类型须填商户全称)
amountnumber分账金额(元,两位小数,最小 0.01,最大 99999999.99)

receiverType 码表

对应后端枚举 AllocReceiverTypeEnum(对外统一使用大写类型码):

类型说明
MERCHANT_ID商户号(微信/抖音)
PERSONAL_OPENID个人 openid(微信/抖音)
PERSONAL_SUB_OPENID子商户应用个人 openid(仅微信服务商接收方绑定使用)
USER_ID支付宝用户 ID(2088 开头)
LOGIN_NAME支付宝登录账号(手机号/邮箱)

请求示例

json
{
  "mchNo": "M200000001",
  "appId": "APP001",
  "reqId": "REQ20241201030",
  "reqTime": "2024-12-01 12:30:00",
  "sign": "Base64签名值",
  "bizAllocNo": "ALOC20241201001",
  "tradeNo": "T2024120112345700001",
  "title": "订单分账",
  "receivers": [
    {
      "receiverType": "USER_ID",
      "receiverAccount": "2088xxxxxxxxxxxx",
      "receiverName": "张三",
      "amount": 30.00
    },
    {
      "receiverType": "USER_ID",
      "receiverAccount": "2088yyyyyyyyyyyy",
      "amount": 70.00
    }
  ],
  "notifyUrl": "https://your-domain.com/notify"
}

响应参数

DaxResult<AllocResult>data 字段结构:

参数类型描述
allocNostring平台分账单号
bizAllocNostring商户分账单号
statusstring分账状态(AllocOrderStatusEnum
errorMsgstring错误信息(失败时返回)

分账状态 AllocOrderStatusEnum

status说明
processing分账中(已受理,等待通道异步推进)
success分账成功(全部接收方成功)
partial部分成功(部分接收方成功,部分失败,单次分账终态)
fail分账失败(全部接收方失败)

响应示例

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "allocNo": "A2024120112345700001",
    "bizAllocNo": "ALOC20241201001",
    "status": "processing"
  },
  "sign": "Base64签名值",
  "resTime": "2024-12-01 12:30:00",
  "reqId": "REQ20241201030"
}

使用建议

  • 下单即声明分账:原支付订单须在 统一支付(或 网关预下单)时传 allocation=true,资金冻结后才可发起分账;未声明分账的订单通道会拒绝分账。
  • 接收方提前绑定:接收方绑定由调用方提前在通道侧完成(管理端「通道商户详情」提供绑定入口),绑定关系按通道商户区分,同通道商户同类型同账号不可重复绑定;发起分账时接收方须已绑定。
  • 金额约束:单接收方分账金额为 0.01 ~ 99999999.99 元(最多两位小数);各接收方金额合计不得超过原订单金额,且须小于原订单剩余可分金额。
  • 单次分账即完结:一次发起即完结,无追加分账;partial(部分成功)为终态,失败接收方需重新发起分账。
  • 异步通知:分账终态确定后平台按 notifyUrl 通知(事件 alloc.success / alloc.fail);也可调用 分账同步 主动拉取通道状态。

官方网站 · 基于 GNU LGPL v3.0 协议开源