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.电子回单 ![image.png](https://cos.easydoc.net/74722269/files/kxrlnn00.png) ### 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==|==否==|==后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额*合作费率==|