2.结算接口
## 结算要求限制
◆ 每笔金额上限为5w元,超过5w超出风控范围,将会直接返回失败,不可继续走确认结算。
◆ 银行卡,姓名,身份证不符,直接放回失败,三要素不匹配。
◆ 每个人每个月不得超过97000元,超出则直接返回结算失败。
## 1.提交订单接口
>d 备注:该接口所生成订单超过五天未确认结算,系统会默认清除
#### 接口地址:
/open/api/v1/bill/submitBill
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|是否必填|参数备注|
|-|-|-|-|
|payeeName|收款人姓名|是||
|payeeAccount|收款账户|是||
|payeeIdCard|收款人身份证号码|是||
|amount |收款金额|是||
|thirdOrderId|商户订单号|是|商户自己生成,不可重复提交|
|wxAppId|微信appId|否|特殊情况需传入此参数|
|payeePhone|收款人手机号|否|该参数用于用户接收到款短信|
|payeeBankName|收款账户开户银行|否||
|payeeBankNo|收款账户开户银行联行号|否||
|thirdBizOrderId|第三方业务订单ID|否|该参数为商户自己的业务订单号,通过该订单号能够查询该笔金额来源明细|
|payType|支付类型|是|支付类型该参数值填写支付类型对应数字即可 0:银行卡
|batchNo|批次号|否|由第三方自己控制哪些订单为同一个批次号,开票的时候可根据批次号开票|
|transName|转账备注|否|备注字数不可超过20个字符|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义| 数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|billId| SSC平台订单号| int|是||
|thirdOrderNo| 商户提交时的订单号|String| 是||
|transNo|交易号|String| 是||
|checkStatus| 检测状态 |String|是|-1:检测失败 1:检测成功|
|reason| 失败原因|String| 是||
## 2.确认结算接口
#### 接口地址:
/open/api/v1/bill/sureGrant
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|是否必填|参数备注|
|-|-|-|-|
|billId|订单ID|是|该值由提交订单接口返回|
|mainstayId|主体ID|是|该参数由 [查询商户可开票列表,以及所拥有的主体接口](doc:AcWriNWG) 可获的|
|invoiceCode|发票编号|是|该参数由 [查询商户可开票列表,以及所拥有的主体接口](doc:AcWriNWG) 可获的|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|thirdOrderNo| 第三方订单号|String| 是|生成订单接口的thirdOrderId字段的值|
|transNo|交易单号|String|是|支付平台交易单号|
|status| 结算结果状态|String| 是|详情请参考[结算结果状态码](doc:nD2opxYu)|
|returnMsg| 返回信息|String|是| ||
## 3.结算结果查询接口
#### 接口地址:
/open/api/v1/bill/queryResult
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|是否必填|参数备注|
|-|-|-|-|
|无参数名称|需要查询的商户订单号|是|例如:[商户订单号1,商户订单号2]|
>d 该接口参数无需参数名称只需将商户订单号拼接处json数组即可
示例:String data = [\"orderNo1\",\"orderNo2\"... ,\"orderNo10\"];
一次性最多查询10条记录
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|thirdOrderNo| 结算订单号|String| 是||
|itemStatus| 订单状态|Integer| 是|0等待结算 1正在结算 2结算成功 -1结算失败 -2转账退款 -3结算终止 -4 格式检查失败|
|amount| 结算的金额|String| 是|实际结算的金额|
|paymentTime| 结算时间|String| 否|结算成功返回|
|reason| 失败原因|String| 是||
|remark|拓展字段|String|否|商户备注字段|
|==realPaymentAmount==|==总支付金额==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额(到账金额)+合作费用==|
|==cooperateExpensesAmount==|==合作费用==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额*合作费率==|
|==cooperateExpensesTax==|合作费用|String|否||
>d该结算结果data解密后为List 集合json字符串。
结果示例:
```json
[
{
"transNo": "xxxxx",
"itemStatus": 2,
"amount": "12.01",
"thirdOrderNo": "xxxxx",
"paymentTime": "2019-07-05 23:41:45",
"reason": "",
"errorCode": "",
"remark": "",
"realPaymentAmount": "0.01",
"cooperateExpensesAmount": "0.01"
},
...
]
```
## 4.电子回单

### 4.1.获取电子回单接口
#### 接口地址:
/open/api/v1/bill/queryVoucherUrl
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|thirdOrderId|第三方订单ID|String|是||
|callbackUrl|回调地址|String|否|如果电子回单未生成,将会记录回调地址,等电子回单生成后主动推送,调用此地址,重复提交(相同订单号)视为修改回调地址(入参空地址则不修改),一个订单只会回调一次|
#### 接口响应参数data字段解密后的参数说明:
>d 该接口解密后的data字段即为电子回单的url
结果示例
“https://xxxxxx”
如果 data字段为空则代表未取得回单
### 4.2.电子回单回调接口
#### 请求方式:POST
#### 请求参数说明:
>d 请在正常接收到回调请求后返回小写字符串"success",否则系统的回调补偿机制将轮询回调
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|thirdOrderNo|商户订单号|String|是||
|status|电子回单状态|Integer|是|固定传1-制作完成;|
|voucherUrl|电子回单下载地址|String|是||
## 5.取消订单接口
#### 接口地址:
/open/api/v1/bill/cancel
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|是否必填|参数备注|
|-|-|-|-|
|billId|平台返回的订单ID|是||
|reason|取消原因(30字)|否||
#### 接口响应参数data字段解密后的参数说明:
>d 该接口响应参数中无响应data字段 ,success 等于true代表取消成功,false 代表失败 errorMessage中有错误信息反馈
## 6.结算结果异步回调(特定商户使用)
>d 该接口需要第三方自行编写提供接口到SSC平台回调成功必须返回success不然会重复回调
#### 请求方式:POST
解密结果示例如下:
```json
{
"status": "",
"amount": "",
"thirdOrderNo": "",
"reason": "",
"refundInfo": { //退款信息 如无退款的情况,以下字段均为空字符串
"refundTransNo": "",
"toBankCard": "",
"refundAmount": "",
"refundTime": ""
}
}
```
|参数名称| 参数含义| 是否必有| 参数备注|
|-|-|-|-|
|status| 结算结果状态| 是|详情请看[结算结果状态码](doc:qRAWaDf8)|
|amount| 打款金额| 是|给用户打款的金额|
|thirdOrderNo| 订单号| 是|该订单号由第三方创建订单的时候填写的|
|reason| 失败原因| 是||
|refundInfo| 退款信息| 是|但支付成功时,该对象下面的字段都为""|
|refundTransNo| 退款单号| 是||
|toBankCard| 退款到的银行卡| 是|在平台开户时提供的对公账户账户|
|refundAmount| 退款金额| 是|实际退款的金额|
|refundTime| 退款时间| 是|时间戳精确到毫秒|
## 7.打款回调接口(第三方走自己打款渠道成功后回调同步订单状态)
#### 接口地址:
/open/api/v1/bill/payCallBack
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|是否必填|参数备注|
|-|-|-|-|
|thirdOrderId|第三方订单|是|生成订单的时候提交过来的订单号|
|status|打款状态|是|详情请参考[打款状态码](doc:qRAWaDf8)|
|message|打款返回信息|否|字数不可超过120个字符|
#### 接口响应参数data字段解密后的参数说明:
>d 该接口无需解密返回如下json字符串。
结果示例
{"resopnseType":0,"errorCode":"","errorMessage":"","status":0,"data":null,"ext":null,"extMessage":null,"success":true}
如果 success等于true代表调用接口成功,如果success等于false则代表调用失败
## 8.退款结果异步回调
>d 该接口需要第三方自行编写提供接口到SSC平台回调成功必须返回success不然会重复回调
#### 请求方式:POST
解密结果示例如下:
```json
{"refundTransNo":"","status":1,"refundAmount":""}
```
|参数名称| 参数含义| 是否必有| 参数备注|
|-|-|-|-|
|refundTransNo| 退款单号| 是|如果是结算退款则该单号即为结算订单的thirdOrderNo|
|status| 退款状态| 是|详情请看[退款状态码](doc:qRAWaDf8)|
|refundAmount| 退款金额| 是|实际退款的金额|
## 9.提交支付宝订单定制接口
#### 接口地址:
/open/api/v1/bill/zfbCommission/submitBill
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|是否必填|参数备注|
|-|-|-|-|
|payeeName|收款人姓名|是||
|payeeAccount|收款账户|是||
|payeeIdCard|收款人身份证号码|是||
|amount |收款金额|是||
|thirdOrderId|商户订单号|是|商户自己生成,不可重复提交|
|batchNo|批次号|是|商户自己生成|
|payeePhone|收款人手机号|否|该参数用于用户接收到款短信|
|payeeBankName|收款账户开户银行|否||
|payeeBankNo|收款账户开户银行联行号|否||
|thirdBizOrderId|第三方业务订单ID|否|该参数为商户自己的业务订单号,通过该订单号能够查询该笔金额来源明细|
|invoiceCode|发票编号|是||
|mainstayId|主体ID|是||
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|billId| 结算平台订单号|int| 是||
|thirdOrderNo| 商户提交时的订单号|String| 是||
|checkStatus| 检测状态 |int|是| |-1:检测失败 1:检测成功|
|reason| 失败原因|String| 是||
## 10.结算结果异步回调
>d 该接口需要第三方自行编写提供接口到SSC平台回调成功必须返回success不然会重复回调
#### 请求方式:POST
解密结果示例如下:
```json
{
"callbackType": "payResult",
"itemStatus": "2",
"amount": "12.01",
"transNo": "xxxxx",
"thirdOrderNo": "xxxxx",
"paymentTime": "2019-07-05 23:41:45",
"reason": "",
"errorCode": "",
"remark": "",
"realPaymentAmount": "0.01",
"cooperateExpensesAmount": "0.01"
}
```
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|itemStatus| 订单状态|String| 是|1正在结算 2结算成功 -1结算失败 |
|amount| 结算的金额|String| 是|实际结算的金额|
|thirdOrderNo| 结算订单号|String| 是||
|paymentTime| 结算时间|String| 是||
|reason| 失败原因|String| 是||
|remark|拓展字段|String|否|商户备注字段|
|==realPaymentAmount==|==总支付金额==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额(到账金额)+合作费用==|
|==cooperateExpensesAmount==|==合作费用==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额*合作费率==|
## 11.导入用户订单证据链
#### 接口地址:
/open/api/v1/bill/uploadBillCertificate
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|idCard|身份证号|String|是|例:410422199405051167|
|realName|真实姓名|String|是|例:张三|
|fileUrl|导入文件url|String|是||
#### 接口响应参数data字段解密后map中的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
#### 接口响应参数data字段解密后的参数说明:
>d 该接口无需解密返回如下json字符串。
结果示例
{"resopnseType":0,"errorCode":"","errorMessage":"","status":0,"data":null,"ext":null,"extMessage":null,"success":true}
如果 success等于true代表导入成功,如果success等于false则代表导入失败
## 12.批量提交订单接口(包含回调)
>d 备注:该接口所生成订单超过五天未确认结算,系统会默认清除
#### 接口地址:
/open/api/v1/bill/batchSubmitBill
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数类型|参数含义|是否必填|参数备注|
|-|-|-|-|-|
|thirdBillNo|String|三方订单号|是|商户自己生成,需保证唯一|
|payType|Integer|支付类型|是| 0:银行卡;1:支付宝;2:微信
|payeeInfos|List<PayeeInfo>|收款人信息列表|是|收款人最多100个|
##### PayeeInfo:
|参数名称|参数类型|参数含义|是否必填|参数备注|
|-|-|-|-|-|
|thirdOrderNo|String|三方明细编号|是|该参数为商户自己的业务订单号,通过该订单号能够查询该笔金额来源明细|
|payeeName|String|收款人姓名|是||
|payeeIdCard|String|收款人身份证号码|是||
|payeeAccount|String|收款账户|是||
|amount|BigDecimal|金额|是||
|payeePhone|String|收款人手机号|否|该参数用于用户接收到款短信|
|transName|String|转账附言|否|字数不可超过20个字符|
|remark|String|备注|否|字数不可超过20个字符|
#### 接口响应参数data字段解密后的参数说明:
|参数名称|参数类型|参数含义|是否必有|参数备注|
|-|-|-|-|-|-|
|billNo|String|平台批量订单号|是|
|thirdBillNo|String|三方订单号|是|商户自己生成的订单号|
>d 回调:当所有明细单校验完成将触发回调,商户需提供 billCheckResultUrl 回调地址,以下是回调的返回值
|参数名称|参数类型|参数含义|是否必有|参数备注|
|-|-|-|-|-|-|
|billNo|String|平台批量订单号|是|
|thirdBillNo|String|三方订单号|是|商户自己生成的订单号|
|status|Integer|平台批量订单状态|是|[订单结果状态码](doc:qRAWaDf8);当状态为1等待结算时方可进行[33.确认批量订单接口]()的调用;当状态为3订单完成时,说明详情单全部校验失败,订单流程完成|
|failItemList|List<FailItem>|明细集合|否|明细校验失败将返回|
##### FailItem:
|参数名称|参数类型|参数含义|是否必有|参数备注|
|-|-|-|-|-|-|
|billNo|String|平台批量订单号|是|
|thirdBillNo|String|三方订单号|是|商户自己生成的订单号|
|thirdOrderNo|String|三方明细单号|是|商户自己生成的明细单号|
|amount|BigDecimal|金额|是||
|itemStatus|Integer|结算明细状态|是|[结算明细结果状态码](doc:qRAWaDf8)|
|reason|String|失败原因|否|状态为失败时才会有原因
|remark|String|备注|否||
|==realPaymentAmount==|==总支付金额==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额(到账金额)+合作费用==|
|==cooperateExpensesAmount==|==合作费用==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额*合作费率==|
## 13.确认批量订单接口(包含回调)
#### 接口地址:
/open/api/v1/bill/batchSureGrant
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数类型|参数含义|是否必填|参数备注|
|-|-|-|-|-|
|thirdBillNo|String|三方订单号|是|商户自己生成的订单号|
|mainstayId|Integer|主体|是|
|invoiceCode|String|发票编码|是||
#### 接口响应参数data字段解密后的参数说明:
|参数名称|参数类型|参数含义|是否必有|参数备注|
|-|-|-|-|-|-|
|billNo|String|平台批量订单号|是|
|thirdBillNo|String|三方订单号|是|商户自己生成的订单号|
>d 回调:当明细单结算完成将触发回调,商户需提供 payResultUrl 回调地址,以下是回调的返回值
|参数名称|参数类型|参数含义|是否必有|参数备注|
|-|-|-|-|-|-|
|billNo|String|平台批量订单号|是|
|thirdBillNo|String|三方订单号|是|商户自己生成的订单号|
|thirdOrderNo|String|三方明细单号|是|商户自己生成的明细单号|
|amount|BigDecimal|金额|是||
|itemStatus|Integer|结算明细状态|是|-1结算失败、2结算成功 [结算明细结果状态码](doc:qRAWaDf8)|
|reason|String|失败原因|否|状态为结算失败时才会有原因
|paymentTime|String|结算时间|否|结算成功才有值,例:2021-06-01 17:50:12|
|==realPaymentAmount==|==总支付金额==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额(到账金额)+合作费用==|
|==cooperateExpensesAmount==|==合作费用==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额*合作费率==|
## 14.结算订单查询接口
>d 注:2秒钟内,不允许重复查询同一订单
#### 接口地址:
/open/api/v1/bill/queryBill
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数类型|参数含义|是否必有|参数备注|
|-|-|-|-|-|-|
|thirdBillNo|String|三方订单号|是|商户自己生成的订单号|
#### 接口响应参数data字段解密后的参数说明:
|参数名称|参数类型|参数含义|是否必有|参数备注|
|-|-|-|-|-|-|
|billNo|String|平台批量订单号|是|
|thirdBillNo|String|三方订单号|是|商户自己生成的订单号|
|status|Integer|平台批量订单状态|是|[订单结果状态码](doc:qRAWaDf8)|
## 15.结算订单明细查询接口
>d 注:2秒钟内,不允许重复查询同一明细订单
#### 接口地址:
/open/api/v1/bill/queryItem
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数类型|参数含义|是否必有|参数备注|
|-|-|-|-|-|-|
|thirdOrderNo|String|三方明细单号|否|商户自己生成的明细单号|
#### 接口响应参数data字段解密后的参数说明:
|参数名称|参数类型|参数含义|是否必有|参数备注|
|-|-|-|-|-|-|
|billNo|String|平台批量订单号|是|
|thirdBillNo|String|三方订单号|是|商户自己生成的订单号|
|thirdOrderNo|String|三方明细单号|是|商户自己生成的明细单号|
|amount|BigDecimal|金额|是||
|itemStatus|Integer|结算明细状态|是|[结算明细结果状态码](doc:qRAWaDf8)|
|reason|String|失败原因|否|状态为失败时才会有原因
|remark|String|备注|否||
|paymentTime|String|结算时间|否|结算成功才有值,例:2021-06-01 17:50:12|
|==realPaymentAmount==|==总支付金额==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额(到账金额)+合作费用==|
|==cooperateExpensesAmount==|==合作费用==|==String==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额*合作费率==|