2.结算接口
## 1.确认式结算接口
### 1.1结算单提交接口
#### 说明:确认式结算接口为商户提供订单前置信息校验,商户可通过前置调用提交接口验证该笔订单是否可结算,同时商户可对提交后校验成功订单做二次审核后,决定是否继续执行资金结算。
#### 调用时序图

#### 接口地址:
/open/api/v1/yns/bill/submit
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|payeeName|收款人姓名|String|是||
|payeeIdCard|收款人身份证号码|String|是||
|payType|账户类型|Integer|否| 0:银行账户1:支付宝账户2:微信零钱账户|
|payeeAccount|收款账号|String|是||
|amount |收款金额|String|是|收款金额必须为数字|
|payeePhone|收款人手机号|String|否|该参数用于用户接收到账提醒短信|
|thirdOrderId|商户订单号|String|是|商户自己生成,不可重复提交|
|wxAppId|微信多渠道appid|String|否|同一商户有多个微信提现APPID使用,需联系技术沟通|
|thirdBizOrderId|第三方业务订单ID|String|否|该参数为商户自己的业务订单号,通过该订单号能够查询该笔金额来源明细|
|mainstayId|主体ID|Integer|是|该参数值可通过《[查询企业合作主体,发票类目等信息](https://easydoc.net/doc/50746518/KauTeARf/4YtlGhtN#nav_0)》查询|
|invoiceCode|发票编码|String|是|该参数值可通过《[查询企业合作主体,发票类目等信息](https://easydoc.net/doc/50746518/KauTeARf/4YtlGhtN#nav_0)》查询|
|remark|备注|String|否|备注字数不可超过32个字符|
|transName|转账备注|String|否|备注字数不可超过20个字符|
|taskNo|关联服务编码|String(32)|否|由商户自行评估该提交结算订单是否需要关联服务|
#### 账户类型说明
|payType|说明|
|-|-|
|0|银行账户|
|1|付宝账户|
|2|微信账户|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义| 数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|billNo| 订单号|String|是||
|billStatus| SSC平台订单状态|Integer|[结算结果状态码](https://easydoc.net/doc/95180784/Ry461Ra3/g5SDIGDl)||
|actualAmount| 结算金额|BigDecimal|是|个人实际到账金额|
|contractTaxAmount|合同税费|BigDecimal|是||
|failReason|失败原因|String|否||
#### SSC平台订单状态状态说明
|billStatus|说明|
|-|-|
|-100|待审核|
|0|提现中|
|1|提现成功|
|-1|提现失败|
### 1.2结算单确认结算接口
#### 管理员审核结算单无误后,通过此接口确认结算。
>d 注意:确认结算时,需保证结算账户余额充足,否则无法进行结算。
#### 接口地址:
/open/api/v1/yns/bill/sureGrant
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|billNo|订单号|String|是|该值由提交订单接口返回|
|settlementCertUrl|结算证明|String|否|url链接,最长640字符|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|billNo|订单号|String|是| ||
|thirdOrderNo|第三方订单号|String| 是|生成订单接口的thirdOrderId字段的值|
|status|结算结果状态|Integer| 是|[结算结果状态码](https://easydoc.net/doc/95180784/Ry461Ra3/g5SDIGDl)|
|failReason|失败原因|String|否| ||
#### 结算结果状态说明
|status|说明|
|-|-|
|1|正在发放|
|-1|发放失败|
### 1.3结算单取消结算接口
#### 结算单确认前,如发现错误可调用此接口取消。
#### 接口地址:
/open/api/v1/yns/bill/cancel
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|billNo|订单号|String|是|该值由提交订单接口返回|
|reason|取消原因|String|否||
#### 接口响应参数data字段解密后的参数说明:
>d该接口返回结果data解密后为boolean。
## 2. 即时结算接口
说明:调用即时结算接口商户将订单信息提交后,SSC校验通过将实时进行资金结算。
#### 调用时序图

#### 接口地址:
/open/api/v1/yns/bill/payment
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|thirdOrderId|商户订单号|String|是|商户自己生成,不可重复提交|
|mainstayId|主体ID|Integer|是|[2.查询企业合作主体,发票类目等信息](https://easydoc.net/doc/34949871/grcmeR1I/mnWkEMuT)|
|invoiceCode|发票编码|String|是|[2.查询企业合作主体,发票类目等信息](https://easydoc.net/doc/34949871/grcmeR1I/mnWkEMuT)|
|payeeName|收款人姓名|String|是||
|payeeIdCard|收款人身份证号码|String|是||
|payType|账户类型|Integer|否| 0:银行账户1:支付宝账户2:微信零钱账户|
|payeeAccount|收款账号|String|是||
|amount |收款金额|String|是|收款金额必须为数字|
|payeePhone|收款人手机号|String|否|该参数用于用户接收到账提醒短信|
|wxAppId|微信多渠道appid|String|否|同一商户有多个微信提现APPID使用,需联系技术沟通|
|thirdBizOrderId|第三方业务订单ID|String|否|该参数为商户自己的业务订单号,通过该订单号能够查询该笔金额来源明细|
|remark|备注|String|否|备注字数不可超过32个字符|
|transName|转账备注|String|否|备注字数不可超过20个字符|
|settlementCertUrl|结算证明|String|否|url链接,最长640字符|
|taskNo|关联服务编码|String(32)|否|由商户自行评估该提交结算订单是否需要关联服务|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义| 数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|billNo|订单号|String|是| ||
|thirdOrderId|商户订单号|String| 是||
|checkStatus|风控校验状态|Integer| 是|-1:校验失败; 1:校验成功;|
|failReason|失败原因|String|否| ||
## 3.结算结果查询接口
#### 商户可在结算单确认后,或无确认结算后调用此接口主动查询结算结果。
需要调用查询接口的情况:
商户后台、网络、服务器等出现异常,商户最终未接收到结算结果通知;
结算单无确认提交接口、结算单确认结算接口 返回状态为“等待发放”或“正在发放”。
#### 接口地址:
/open/api/v1/yns/bill/queryResult
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|thirdOrderNos|需要查询的商户订单号|List<String>|是|最大长度10
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|thirdOrderNo|商户订单号|String|是||
|itemStatus|结果状态|Integer|是|[结算结果状态码](https://easydoc.net/doc/95180784/Ry461Ra3/g5SDIGDl)|
|~~reason~~|~~失败原因~~|~~String~~|~~否~~|~~结算失败才会有该值;失败原因-此字段已废弃为了兼容老的保留~~|
|amount|结算金额|String|是|实际结算的金额|
|paymentTime|结算时间|String|是|实际到账时间,与SSC平台记录时间一致|
|returnMsg|失败原因|String|是||
|source|所属业务线|String|是|2:轻税 3:账管家 4:云纳税|
|taxType|征收方式|String|否| 0:累进制 2:定期定额 3:查账征收|
|realPaymentAmount|总支付金额|String|否|后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额(到账金额)+合作费用|
|cooperateExpensesAmount|合作费用|String|否|后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额*合作费率|
|cooperateExpensesTax|合作费率|String|否||
#### 结算结果状态说明
|itemStatus|说明|
|-|-|
|-4|格式检查失败|
|-3|发放终止(预留值,不会出现)|
|-2|转账退款(预留值,不会出现)|
|-1|发放失败|
|0|等待发放|
|1|正在发放|
|2|发放成功|
>d该结算结果data解密后为List 集合json字符串。
结果示例
[{"thirdOrderNo":"xxx","itemStatus":"xx","reason":"xxxx","amount":"0.01","realPaymentAmount":"0.01","cooperateExpensesAmount":"0.01", "returnMsg":"xxx", "paymentTime":"xxx"},
{"thirdOrderNo":"xxx","itemStatus":"xx","reason":"xxxx","amount":"0.01","realPaymentAmount":"0.01","cooperateExpensesAmount":"0.01", "returnMsg":"xxx", "paymentTime":"xxx"}]
## 4.结算成功异步回调
#### 结算单全部明细处理完成后,SSC将调用该接口“通知”商户结算结果。
>d 该接口需要第三方自行编写提供接口到SSC平台。回调成功必须返回小写字符串"success",否则系统的回调补偿机制将轮询回调。接口编写示例跟[充值回调接口](https://easydoc.net/doc/35028851/Yyp2Sa2X/6FruF2fF#nav_3)说明一致。
#### 请求方式:POST
解密结果示例如下:
```json
{
"itemStatus": "2",
"amount": "12.01",
"realPaymentAmount": "12.01",
"cooperateExpensesAmount": "12.01",
"cooperateExpensesTax": "0.003",
"thirdOrderNo": "pay123",
"paymentTime": "2019-07-05 23:41:45",
"returnMsg": ""
}
```
#### 接口响应参数解密后的参数说明:
|参数名称| 参数含义| 数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|itemStatus| 订单状态| String|是|[结算结果状态码](https://easydoc.net/doc/95180784/Ry461Ra3/g5SDIGDl)|
|amount| 结算金额| String|是|实际结算的金额|
|thirdOrderNo| 结算订单号| String|是||
|paymentTime| 结算时间| String|是|实际到账时间,与SSC平台记录时间一致|
|returnMsg| 描述信息| String|是||
|source|所属业务线|String|是|2:轻税 3:账管家 4:云纳税|
|taxType|征收方式|String|否| 0:累进制 2:定期定额 3:查账征收|
|realPaymentAmount|总支付金额|String|否|后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额(到账金额)+合作费用|
|cooperateExpensesAmount|合作费用|String|否|后置收费模式有值。查询商户是否为后置收费可联系商务。计算方式:提交金额*合作费率|
|cooperateExpensesTax|合作费率|String|否||
#### 订单状态说明
|itemStatus|说明|
|-|-|
|-4|格式检查失败|
|-3|发放终止(预留值,不会出现)|
|-2|转账退款(预留值,不会出现)|
|-1|发放失败|
|0|等待发放|
|1|正在发放|
|2|发放成功|
## 5.电子回单查询接口
#### 此接口在商户或个体户通过商户自由平台主动查询、下载电子回单时使用。
需要调用查询接口的情况:
商户后台、网络、服务器等出现异常,商户最终未接收到电子回单消息;
结算完成的回调消息中,结果状态为“等待发放”或“正在发放”。
>d 注意:电子回单在结算完成之后,需要一定时间生成,如若需要系统生成好回单自动推送,请调用电子回单回调申请接口
#### 接口地址:
/open/api/v1/yns/bill/voucher/query
#### 请求方式:POST
#### 请求参数说明:
>d 注意:请求确保callbackUrl地址能够用外网正常访问
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|thirdOrderNo|商户订单号|String|是|
|callbackUrl|回调地址|String|否|如果电子回单未生成,将会记录回调地址,等电子回单生成后主动推送,调用此地址,重复提交(相同订单号)视为修改回调地址(入参空地址则不修改),一个订单只会回调一次|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|thirdOrderNo|商户订单号|String|是||
|status|电子回单状态|Integer|是|-1-未生成;0-生成中;1-已生成;|
|voucherUrl|电子回单下载地址|String|否|status=1时返回,status=0/-1时,系统生成电子回单后,将主动推送callbackUrl地址|
#### 电子回单状态说明
|status|说明|
|-|-|
|-1|未生成|
|0|生成中|
|1|已生成|
## 6.电子回单回调接口
#### 银行电子回单制作完成后,SSC将调用此接口“通知”商户。电子回单通常为会计保存原始记账凭证、财务核对账实一致用。
#### 请求方式:POST
>d 该接口需要第三方自行编写提供接口到SSC平台。回调成功必须返回小写字符串"success",否则系统的回调补偿机制将轮询回调。接口编写示例跟[充值回调接口](https://easydoc.net/doc/35028851/Yyp2Sa2X/6FruF2fF#nav_3)说明一致。
#### 接口响应参数解密后的参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|thirdOrderNo|商户订单号|String|是||
|status|电子回单状态|Integer|是|固定传1-制作完成;|
|voucherUrl|电子回单下载地址|String|是||