分账
目录
一、实时分账
对接条件
对接分账需要申请收钱吧直连商户,请联系收钱吧商务同事了解确认。
功能描述
收钱吧移动支付接口已经支持分账能力。在完成交易时立即对订单执行分账。实现实时分账功能需要在支付接口/预下单接口/跳转接口的原有传参基础上传入以下参数信息。
实时分账请求参数
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
profit_sharing | 分账信息 | {} | Y |
profit_sharing:
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
sharing_flag | 分账标识 | string | Y | 0: 不分账 1:分账 |
sharing_type | 分账类型 | string | Y | 1: 按比例分 3: 按金额分 |
model_id | 分账模型编号 | string | Y | m1230000 |
sharing_notify_url | 分账回调地址 | string(256) | N | https://yourdomain |
receivers | 分账收款方 | [] | Y |
receivers:
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
id | 收款方编号 | string | N | id和client_sn二选一,不能同时为空 |
client_sn | 自定义收款方编号 | string | N | id和client_sn二选一,不能同时为空 |
ratio | 分账比例%。最小 0.001%,最大100% | string | 条件必填 | sharing_type为1时必填。例:0.003% |
sharing_amount | 分账金额,单位为分 | string | 条件必填 | sharing_type为3时必填。例:20(即0.2元) |
Pay接口传参样例
{
"terminal_sn": "xxxx",
"total_amount": "11",
"dynamic_id": "xxxx",
"client_sn": "23429341",
"subject": "苹果手机",
"operator": "test",
"profit_sharing": {
"sharing_flag": "1",
"sharing_type": "1", // 按比例分
"model_id": "m1230000",
"sharing_notify_url": "https://yourdomain",
"receivers": [
{
"id": "r10000000",
"ratio": "10%" // 比例
},
{
"id": "r10000000",
"ratio": "20%" // 比例
}
]
}
}
precreate接口传参样例
{
"client_sn": "hgfjjgjhg",
"total_amount": "10",
"payway": "3",
"subject": "本日生鲜",
"operator": "本日生鲜",
"notify_url": "https://xpay-pre.xisland.cn/adminpay/api/xpay/",
"terminal_sn": "100017170009630018",
"profit_sharing": {
"sharing_flag": "1",
"sharing_type": "3", // 按金额分
"model_id": "m1230000",
"sharing_notify_url": "https://yourdomain",
"receivers": [
{
"id": "r1800000005",
"sharing_amount": "1" // 金额
}
]
}
}
分账回调:
当交易订单下的所有分账执行均处理成功或均处理失败后,会给商户发送该回调。商户接收到回调后,请返回 success 内容,返回其他内容当做回调失败。回调失败后,分账回调会进行重试,重新推送分账回调地址。重试间隔时间为1s, 5s, 30s, 600s。
参数 | 参数名称 | 类型 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
sharing_amount | 分账总金额 | String | Y | 本次操作分账总金额,以分为单位 | "1" |
original_amount | 支付金额或退款金额 | String | Y | 订单金额或者退款金额,以分为单位 | "11" |
model_id | 分账模型编号 | String | Y | "m1000000040" | |
type | 分账类型 | String | Y | 本次分账操作类型 | SHARING_PAY :分账 , SHARING_RESTITUTE : 分账回退 |
order_sn | 收钱吧唯一订单号 | String | Y | 收钱吧系统内部唯一订单号 | "7894259257646595" |
client_tsn | 支付流水商户端流水号 | String | Y | 支付时和client_sn相同,退款时为client_sn+ refund_request_no | "xxxx" |
client_sn | 支付流水的id | String | Y | 支付网关支付和退款操作流水号 | "txxxx" |
status | 分账状态 | String | Y | 本次分账操作状态 | SUCCESS 已分账, SHARING_CLOSED 分账失败已关闭 |
sharing_books | 分账明细 数组类型, 可能有多个。 | [] | Y |
sharing_books:
参数 | 参数名称 | 类型 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
receiver_id | 分账接收方编号 | String | Y | "r1000000029" | |
receiver_client_sn | 分账接收方自定义编号 | String | Y | "xxx" | |
account_no | 分账接收方账号 | String | Y | 收钱吧配置的分账账号 | "1493626662" |
amount | 分账金额 | int | Y | 接收方本次分账接收金额,以分为单位 | 1 |
回调参数样例
{
"sharing_amount": "1",
"original_amount": "11",
"model_id": "m1000000040",
"type": "SHARING_PAY",
"order_sn": "7894259257646595",
"client_tsn": "xxxx",
"client_sn": "xxx",
"status": "SUCCESS",
"sharing_books": [
{
"receiver_id": "r1000000029",
"receiver_client_sn": "xxx",
"account_no": "1493626662",
"amount": 1
}
]
}
二、延迟分账
对接条件
对接分账需要申请收钱吧直连商户,请联系收钱吧商务同事了解确认。
功能描述
交易完成后业务上并不能立即执行分账,需到达其设定条件才可以执行分账。此时业务系统主动向收钱吧发起订单分账指令并被收钱吧执行。实现延迟分账功能需要有两部分。一部分是告知该订单需延迟分账以及具体信息,在支付接口/预下单接口/跳转接口的原有传参基础上传分账参数;另一部分是发起执行该订单的分账,接口名称为“延迟分账开始分账”。
1. 延迟分账请求参数
参数与实时分账大致相同,只在profit_sharing字段内多delayed字段,表明是否延迟分账。
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
profit_sharing | 分账信息 | {} | Y |
profit_sharing:
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
sharing_flag | 分账标识 | string | Y | 0: 不分账 1:分账 |
sharing_type | 分账类型 | string | Y | 1: 按比例分 3: 按金额分 |
model_id | 分账模型编号 | string | Y | m1230000 |
sharing_notify_url | 分账回调地址 | string(256) | N | https://yourdomain |
delayed | 延迟分账标志位 | string | Y | 是否延迟分账,延迟分账填写"true"。不传值或其它值不延迟分账 |
receivers | 分账收款方 | [] | Y |
receivers:
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
id | 收款方编号 | string | N | id和client_sn二选一,不能同时为空 |
client_sn | 自定义收款方编号 | string | N | id和client_sn二选一,不能同时为空 |
ratio | 分账比例%。最小 0.001%,最大100% | string | 条件必填 | sharing_type为1时必填。例:0.003% |
sharing_amount | 分账金额,单位为分 | string | 条件必填 | sharing_type为3时必填。例:20(即0.2元) |
接口传参样例
{
"terminal_sn": "xxxx",
"total_amount": "11",
"dynamic_id": "xxxx",
"client_sn": "23429341",
"subject": "苹果手机",
"operator": "test",
"profit_sharing": {
"sharing_flag": "1",
"sharing_type": "1",
"model_id": "m1230000",
"sharing_notify_url": "https://yourdomain",
"delayed": "true", // 延迟分账
"receivers": [
{
"id": "r10000000",
"ratio": "10%"
},
{
"id": "r10000000",
"ratio": "20%"
}
]
}
}
2. 延迟分账开始分账
Path: {api_domain}/profitsharing/delaysharing
Method: POST
请求头和签名均可参考签名机制文档
接口概述
对交易时标记延迟分账的订单执行分账
请求参数
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
terminal_sn | 终端号 | string | Y | 发起交易时使用的终端号,或该终端号同商户下的其它终端号 |
sn | 收钱吧订单号 | string | Y | 交易时收钱吧返回的收钱吧订单号 |
返回参数
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
result_code | 返回码 | string | Y | 200:成功 非200:失败 |
result_message | 错误信息 | string | N | 非200返回码时存在 |
三、退款时指定分账回退
功能描述
退款同时允许商户是否指定分账回退,以及指定回退方、回退金额等信息。实现指定该功能需要在退款接口原有传参的基础上传入以下参数信息。该功能目前仅支持微信直连商户下发生的交易订单退款。
请求参数
参数 | 参数名称 | 类型 | 必填 |
---|---|---|---|
profit_sharing | 分账回退信息 | JSON | Y |
profit_sharing:
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
sharing_flag | 指定分账回退标识 | String(1) | Y | 0:退款时分账部分不回退 1:退款时分账部分可指定回退 |
receivers | 指定退款的分账收款方 | [] | 条件选填 | sharing_flag为1时必填 |
receivers:
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
id | 收款方编号 | String(32) | N | id和client_sn二选一,不能同时为空 |
client_sn | 自定义收款方编号 | String(32) | N | id和client_sn二选一,不能同时为空 |
sharing_amount | 分账回退金额 | String(10) | Y | 单位为分,sharing_flag为1时必填 |
退款接口传参样例
{
"terminal_sn":"xxxx",
"sn":"7894259257646595",
"client_sn":"23429341", // sn和client_sn二选一,参照退款接口填写
"refund_request_no":"011",
"operator":"test-1",
"refund_amount":"11",
"profit_sharing": {
"sharing_flag": "1", // 退款时可分账回退
"receivers": [
{
"id": "r10000000",
"sharing_amount": "1"
}
]
}
}
四、添加分账接收方*
此功能有条件开放,需要时请提前联系您身边的收钱吧同事
Path: {api_domain}/profitsharing/addreceiver
Method: POST
请求头和签名均可参考签名机制文档
请求参数
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
terminal_sn | 终端号 | string | Y | |
model_id | 分账模型id | string | Y | |
name | 接收方名称 | string | Y | |
client_sn | 接收方编号 | string | Y | |
relation_type | 分账关系 | string | Y | 0:服务商,1:门店, 2:员工,3:店主, 4:合作伙伴,5:总部, 6:品牌方,7:分销商, 8:用户,9: 供应商, 10:自定义 |
custom_relation | 自定义分账关系名称 | string | 条件选填 | 分账关系为自定义时上送 |
type | 分账用途 | string | Y | 1:商户自主分账 2:服务费 |
alias | 分账业务名称 | string | Y | 用于账本展示 |
receiver_account_list | 接收方账户信息 | [] | Y |
receiver_account_list:
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
organization | 接收方账户开立机构 | string | Y | 1:支付宝 3:微信 |
no | 接收方账号 | string | Y | 开立机构为支付宝时,填写支付宝账号pid; 微信时,填写微信商户号 |
name | 接收方账户名 | string | Y | 开立机构为支付宝时,填写支付宝账户名; 微信时,填写微信商户名 |
返回参数
参数 | 参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|---|
result_code | 返回码 | string | Y | 200:成功 非200:失败 |
result_message | 错误信息 | string | N | 非200返回码时存在 |