# 佣金保-标准版

# 一、产品介绍

## 1  概述

本文档为佣金保业务对外开放 API 官方对接规范，旨在为第三方合作平台提供标准化、可落地的接口对接依据，明确接口定义、交互逻辑、参数规范与对接流程，保障第三方平台与佣金保系统实现稳定、高效、安全的业务互通。
1. 对接过程中请严格区分【生产环境】与【测试环境】，遵循对应环境的接口规则与数据要求；
2. 建议对接人员在正式开发前完整通读本文档，熟悉整体对接流程与核心要点，并及时关注文档版本更新，以最新文档内容作为对接依据；
3. 测试参数及开发 Demo 可参考：
   <br>（1）测试参数：https://apidoc.serviceshare.com/#/bosskg_config
   <br>（2）开发Demo：https://gitee.com/bubibi1/bosskg-demo

4. **自由职业者**：提供灵活用工服务的收款方人员（即C端收款人）
5. **服务商**：与贵司签订共享经济合作协议的服务主体公司

### 1.1 接入前准备

测试数据详见开发 Demo，生产环境请先联系平台专属商务经理完成平台账户开通，如已开通平台账户，请按下述提示完成必要配置：
1. 登录商户系统（登录地址请咨询专属客服），进入「企业管理 - 接口设置」页面进行配置；
2. 数据加密密钥：更新（初始化）后获取`AES`算法密钥（ApiKey）；（注：老商户可继续使用`DES`算法，但建议尽快升级为`AES`算法，以提升数据传输的安全性）；
3. 平台公钥：下载平台公钥（服务商证书公钥）；
4. 商户公钥：生成并上传商户公钥：
   <br>（1）商户需按加密算法生成公私钥（可参考开发 Demo，或通过在线工具生成：https://www.bejson.com/enc/rsa/
   <br>（2）系统中仅上传公钥内容，上传时请勿包含公钥开头和结尾的标识字符（重要！），私钥由商户自行留存，切勿泄露。
   <br>!> 注意公钥不要将开头结尾上传！

![IMG_256](/images/IMG_256_1.png)

![IMG_257](/images/IMG_257.png)

![IMG_258](/images/IMG_20260617.png)

5. IP白名单：贵司请求平台时的出口IP，即贵司服务器 IP地址，若未配置或不正确则无法请求，请务必提供准确的IP地址！平台可自行配置5个，超出5个以上请联系专属客服进行配置；
6. 客户ID（商户ID）：调接口之前需先传您在平台的账户ID，即下列接口中的 merId；
7. 充值通知地址：可在系统提前配置后，线下打款充值成功后即可收到通知；
8. 人脸认证到期提醒通知地址：可在系统提前配置后，自由职业者人脸认证即将过期或已过期后即可收到通知；
9. 服务商信息：请与客服或商务确认合作的服务商主体，并从列表中获取服务商ID，您也可以咨询客服获取.

### 1.2 目录对比
| 1.0版本                                  | 2.0版本                  |
|---------------------------------------|------------------------|    
|⽂档概述                                 | 一、产品介绍                 |
|1.1 编写⽬的                           | 1 概述                   |
|1.3 接⼝列表funCode 码                 | 3.1 统一请求地址             |
|2 商户对接须知    					   | 1.2 接入前准备              |                          |
|3 加密算法                            | 2 加密算法                 |
|4 接⼝对接须知                         | 3. 接口对接须知              |
|5 业务接⼝列表                         | 三、业务API接口列表            |
|5.1 ⾃由职业者⽆感签约                     | 5.3 无感签约               |
|5.1.4 异步通知签约结果                | 5.6 签约结果异步回调           |
|5.2 ⾃由职业者签约查询                   | 5.4 签约结果主动查询           |
|5.3 商户批量付款                      | 6.3 商户批量结算             |
|5.3.4 异步通知批量付款结果            | 6.4 商户批量结算异步通知         |
|5.4 商户批量付款查询                  | 6.5 商户批量结算主动查询         |
|5.5 商户账户余额查询                  | 7.1 账户余额查询             |
|5.6 申请开票系列接⼝                   | 8 商户开票管理               |
|5.6.1 查询开票类⽬                     | 8.1查询开票类目              |
|5.6.2 可开票⾦额查询                   | 8.2可开票金额查询             |
|5.6.3 申请开票                        | 8.3申请开票                |
|5.6.4 查询开票结果                    | 8.4查询开票结果              |
|5.7 对账⽂件下载接⼝                     | 9.1 对账文件获取             |
|5.8 ⾃由职业者剩余下发额度查询               | 6.13 ⾃由职业者剩余下发额度查询     |
|5.9 分账接⼝                           | 7.4账户体系分账能力            |
|5.9.1 查询可分账⾦额                    | 7.4.1 查询可分账⾦额          |
|5.9.2 申请分账                        | 7.4.2 申请分账             |
|5.9.3 查询分账结果                    | 7.4.3 分账结果主动查询         |
|5.9.4 分账结果回调                    | 7.4.4 分账结果异步回调         |
|5.10 批次订单上传                     | 6.6 批次订单上传             |
|5.11 商户批次订单查询                 | 6.7 批次订单查询             |
|5.12 电⼦回单查询                      | 6.14 交易回单查询            |
|5.13 ⾃由职业者H5有感签约                | 5.2 自主签约               |
|5.14 任务列表查询                     | 6.12 任务查询              |
|5.15 ⾃由职业者解约                       | 5.10 解约                |
|5.18 查询充值流⽔                      | 7.2 充值记录主动查询           |
|5.19 充值回调                         | 7.3 充值结果异步回调           |
|5.20 撤销转账                         | 6.11.3 撤销转账            |
|5.21 App调起微信⽤户收款               | 6.11.1 App调起微信用户收款     |
|5.22 微信JSAPI调起⽤户确认收款         | 6.11.2 微信JSAPI调起用户确认收款 |
|5.23 ⾃由职业者签约分⻚查询               | 5.5 签约结果分页查询           |
|5.24 连续劳务试算                     | 6.2 连续劳务试算             |
|5.25 ⼈脸识别认证                       | 5.7 人脸识别认证             |
|5.26 同步⼈脸识别记录                  | 5.8 同步人脸识别记录           |
|6.1 响应码                            | 10.响应码                 |


# 二、开发指引(v2.0)

## 2 加密算法

!> 注：Java 语言可直接参考 Demo 中的 CryptoUtils、RSAUtils 工具类；其他语言需严格按以下规则实现，并单独完成算法功能测试。（已对接商户仍支持DESUtil）

### 2.1 AES算法

1. 模式：GCM；
2. 填充方式：无填充。

### 2.2 SHA1WithRSA 算法

1. 密钥位数：1024；
2. 填充方式：PKCS8。

### 2.3 商户加密 & 签名流程（Java 示例）

!> 注：PHP 语言无需将 reqData 明文转为字节数组，Demo 中已对密文做 Base64 编码，无需重复编码。

如下为 Java 流程示例，其他语言可能会略有不同

1. 构造 JSON 格式的业务数据明文（reqData）；
2. 将 reqData 明文按 UTF-8 编码转为字节数组；
3. 使用佣金保 AES 密钥加密字节数组，生成密文；
4. 对密文做 Base64 编码，填入公共请求参数的 reqData 字段（[详见 3.3](/bosskg?id=_33-公共请求参数 ":target=_self")；
5. 使用商户 RSA 私钥对 Base64 编码后的密文签名，签名结果填入公共请求参数的 sign 字段（[详见 3.3](/bosskg?id=_33-公共请求参数 ":target=_self")。

### 2.4 商户验签流程（Java 示例）

注：若返回的 resData 为空，无需执行验签操作。

1. 接收佣金保返回的 resData 密文（AES 加密）和 sign 签名（佣金保 RSA 私钥对 resData 密文签名）；
2. 使用佣金保 RSA 公钥验签（验证 sign 解密结果与 resData 密文一致性），验签通过则确认数据未被篡改且来源合法；
3. 对 resData 密文做 Base64 解码；
4. 使用佣金保 AES 密钥解密解码后的字节数组，得到明文字节数组；
5. 将明文字节数组按 UTF-8 编码转为字符串，进行后续业务处理。

## 3. 接口对接须知(v2.0)

### 3.1 统一请求地址

1. 所有接口通过统一地址请求，通过 FunCode 字段区分接口类型（详见接口编码表）；

| Code                                     | 说明                                        |
|------------------------------------------|-------------------------------------------|
| [6010](#sign_contract6010)               | 自由职业者无感签约                                 |
| [6011](#sign_contract_query6011)         | 自由职业者签约查询                                 |
| [6026](#sign_h5_save6026)                | 自由职业者自主签约                                 |
| [6009](#user_face6009)                   | 人脸识别认证                                    |
| [6008](#user_face6008)                   | 同步人脸识别记录                                  |
| [6036](#cancel_sign6036)                 | 自由职业者解约                                   |
| [6044](#sign_contract_paga_query6044)    | 自由职业者签约分页查询                               |
| [6005](#balance_query6005)               | 自由职业者额度查询                                 |
| [6001](#payment6001)                     | 1. 批量付款<br> 2. 服务商批量付款下单<br> 3. 服务商批量付款确认 |
| [6002](#payment_query6002)               | 批量付款查询                                    |
| [6022](#place_payment6022)               | 批次订单上传                                    |
| [6023](#place_payment_query6023)         | 批次订单查询（配合 6022 使用）                        |
| [6043](#wechat_payment_cancel6043)       | 撤销转账                                      |
| [6024](#receipt_query6024)               | 电子回单查询                                    |
| [6004](#check_file6004)                  | 对账文件下载                                    |
| [6006](#trial_calculate6006)             | 连续劳务试算                                    |
| [6003](#acc_open6003)                    | 账户余额查询                                    |
| [6018](#query_charge_recode6018)         | 查询充值流水                                    |
| [6020](#apply_charge6020)                | 申请分账                                      |
| [6019](#query_enable_charge6019)         | 查询可分账金额                                   |
| [6021](#query_charge_result6021)         | 分账结果查询                                    |
| [6012](#mer_invoice_query6012)           | 可开票金额查询                                   |
| [6013](#applay_invoice6013)              | 申请开票                                      |
| [6014](#query_invoice_result6014)        | 查询开票结果                                    |
| [6015](#query_invoice_type6015)          | 查询开票类目                                    |
| [6031](#query_task_list6031)             | 任务列表查询                                    |
| [6053](#apply_task6053)                  | 任务领取                                      |
| [6054](#query_apply_task6054)            | 任务领取结果查询                                  |
| [6048](#provider_all_bill_query6048)     | 企业所有结算单查询                                 |
| [6049](#provider_bill_query6049)         | 企业指定服务商结算单状态查询                            |
| [6055](#provider_bill_upload6055)        | 企业结算单上传                                   |
| [6056](#place_protocol_query6056)        | 企业协议查询接口                                  |
| [6047](#user_tax_paid_report_url6047)    | 个人完税明细查询接口                                |
| [B6001](#b_payment_b6001)                | 品牌客户结算申请                                  |
| [FILE_UPLOAD](#provider_file_upload6200) | 文件上传                                      |
| [6066](#provider_deliver_6066)           | 交付物上传                                     |
| [6067](#provider_deliver_6067)           | 交付物上传查询                                   |

2. 请求地址区分商户类型及环境，对接模式说明：
   <br>（1）普通商户模式：商户直接与佣金保对接（主流模式）；
   <br>（2）服务商模式：商户通过服务商间接与佣金保对接（极少使用）。
3. 性能与连接规则：
   <br>（1）请求超时配置：连接超时 10 秒，读取超时 60 秒；
   <br>（2）接口**限流**：同一商户同一接口默认每秒最多调用 20 次，可在合理范围内调整；
   <br>（3）连接安全：网络连接超过 30 分钟未活动，平台防火墙将强制断开，保障资金安全。


| 商户类型           | 接口地址                                                                    |
| ------------------ | --------------------------------------------------------------------------- |
| 普通商户：测试地址 | http://testgateway.serviceshare.com/testapi/clientapi/clientBusiness/common |
| 普通商户：生产地址 | 线下运营提供        |



### 3.2 HTTP 请求字符集设定

1. 请求方法：POST；
2. 请求：Content-Type:application/json;charset=utf-8；
3. 返回：Accept:application/json。

### 3.3 公共请求参数

注：
1. 所有接口请求报文均使用此公共参数，仅 reqData 字段内容随接口不同变化；
2. 所有字段类型均为字符串（标注 “数字” 表示纯数字格式的字符串，如金额 100 需传 "100"，而非 "100.00"）。


| 字段      | 必填 | 类型     | 长度 | 说明                                                                                     |
| --------- | ---- | -------- | ---- | ---------------------------------------------------------------------------------------- |
| reqId     | 是   | 字符串   | 30   | 请求序号，每次请求保持唯一，表明报文的唯一编号                                           |
| funCode   | 是   | 字符串   | 4    | 接口编码，参见 6.2                                                                       |
| merId     | 是   | 字符串   | 20   | 商户号，我司分配给客户的唯一编号                                                         |
| version   | 是   | 字符串   | 4    | 接口版本号，目前版本为 V1.0（V 是大写！）                                                |
| reqData   | 是   | 字符串   | -    | 对应报文类型所要求的业务数据，详见各个接口请求参数要求                                   |
| ~remark1~ | ~否~ | ~字符串~ | -    | ~备注字段 1，目前用于自由职业者接口上传身份证人像面照片，Byte 数据转 16 进制，生成 String~ |
| ~remark2~ | ~否~ | ~字符串~ | -    | ~备注字段 2，目前用于自由职业者接口上传身份证国徽面照片，Byte 数据转 16 进制，生成 String~ |
| sign      | 是   | 字符串   | -    | 业务数据签名                                                                             |

### 3.4 公共返回参数

!> 注：所有接口的返回报文都为此公共返回参数，区别在于不同业务接口，resData 字段的值是不同的

| 字段    | 必填 | 类型   | 长度 | 说明                                                                                              |
| ------- | ---- | ------ | ---- | ------------------------------------------------------------------------------------------------- |
| reqId   | 是   | 字符串 | 30   | 请求序号，每次请求保持唯一，表明报文的唯一编号                                                    |
| funCode | 是   | 字符串 | 4    | 接口编码                                                                                          |
| merId   | 是   | 字符串 | 20   | 商户号，我司分配给客户的唯一编号                                                                  |
| version | 是   | 字符串 | 4    | 接口版本号，目前版本为 V1.0                                                                       |
| resData | 否   | 字符串 | -    | 回执的业务数据                                                                                    |
| resCode | 是   | 字符串 | 4    | 响应码（[详见 6.1](/bosskg?id=_61-响应码 ":target=_self")）<br>**不能作为业务状态处理的判定依据** |
| resMsg  | 是   | 字符串 | -    | 响应信息                                                                                          |
| sign    | 否   | 字符串 | -    | 业务数据签名结果                                                                                  |



# 三、业务API接口列表(v2.0)

## 4. 业务流程
以下流程图展示了佣金保标准版的核心业务全流程，涵盖 **商户系统**、**佣金保平台**、**自由职业者** 三方在 **签约 → 充值 → 批量付款 → 回单 → 开票** 五大块中的标准交互。

!> **重要业务规则**
> 1. **同步受理，异步处理**：签约（6026）与付款（6001）接口均为**同步接收请求，异步进行处理**。平台同步返回仅代表请求已受理，不表示业务已完成。
> 2. **同步返回不作为业务状态判定依据**：接口返回的 `resCode` 无论是"受理成功"还是"受理失败"，**均不能作为业务单支付/签约状态处理的判定依据**。
> 3. **付款结果判定标准**：付款结果请务必以**异步通知**或**查询接口（6002）**返回的付款状态（`state`）字段的明确状态值为准。
> 4. **付款重发规则**：付款请求发起 **30 分钟**后，若调用查询接口返回 `resCode` 为 **6020**（未查询到订单）、**6032**（该商户批次号不存在）或 **6033**（客户订单号或订单流水号不存在），表明平台未落单，商户可考虑重新请求付款。**重发必须保持原商户批次号和商户订单号不变**，避免重复支付。
> 5. **签约验签特殊规则**：签约接口（6026）若未传 `otherParams` 参数，同步接口成功时 `resData` 为空，**此时无需验签**。
```mermaid
    flowchart LR
subgraph 签约 [🔷 签约 ]
direction TB
A1[商户系统<br/>FunCode：6026 自主签约申请] -->|同步受理| B1[佣金保平台<br/>⚠️ 同步返回仅表请求已受理]
B1 -.->|异步回调| C1[商户系统<br/>接收签约结果通知]
B1 --> D1{未传 otherParams?}
D1 -->|是| E1[resData 为空<br/>无需验签]
D1 -->|否| F1[resData 有值<br/>需正常验签]
G1[自由职业者<br/>FunCode：6009 人脸识别认证] --> H1[佣金保平台<br/>⚠️ 同步返回仅表请求已接收]
H1 --> G1
I1[商户系统<br/>FunCode：6011 签约结果主动查询] --> J1[佣金保平台<br/>返回真实状态<br/>state/faceAuthState]
end

subgraph 充值 [🔷 充值]
direction TB
K1[商户系统<br/>线下充值/转账] --> L1[佣金保平台<br/>充值到账处理]
L1 -.->|充值通知| M1[商户系统<br/>接收充值到账通知]
N2[商户系统<br/>FunCode：6018 充值记录主动查询] --> O2[佣金保平台<br/>返回充值流水明细]
end

subgraph 批量付款 [🔷 批量付款 ]
direction TB
N1[商户系统<br/>FunCode：6001 批量付款申请] -->|同步受理| O1[佣金保平台<br/>⚠️ 同步返回仅表请求已受理]

%% 可选分支：劳务试算
N1 -.->|可选| P1[商户系统<br/>FunCode：6006 连续劳务试算]
P1 -.-> Q1[佣金保平台<br/>返回试算结果税费测算]
Q1 -.-> N1

O1 --> R1[佣金保平台<br/>风控校验 & 劳务试算]
Q1 --> R1[佣金保平台<br/>风控校验 & 劳务试算]
R1 --> S1[佣金保平台<br/>执行打款]
S1 --> T1[自由职业者<br/>银行卡/支付宝/微信收款]
S1 -.->|异步回调| U1[商户系统<br/>接收付款结果通知<br/>以 state 字段为准]
V1[商户系统<br/>FunCode：6002 批量付款结果查询] --> W1[佣金保平台<br/>返回真实付款状态<br/>state 字段为准]
X1{30分钟后查询<br/>resCode 6020/6032/6033?} -->|是| Y1[平台未落单<br/>保持原批次号/订单号重发]
X1 -->|否| Z1[继续等待或按状态处理]
end

subgraph 回单 [🔷 回单 ]
direction TB
AA1[商户系统<br/>FunCode：6024 交易回单查询] --> AB1[佣金保平台<br/>T+2 日生成回单]
AB1 --> AC1[佣金保平台<br/>返回电子回单地址]
AC1 --> AD1[商户系统<br/>下载保存回单<br/>⚠️ 有效期 30 天]
end

subgraph 开票 [🔷 开票 ]
direction TB
AE1[商户系统<br/>FunCode：6015 查询开票类目] --> AF1[佣金保平台<br/>返回开票类目列表]
AF1 --> AG1[商户系统<br/>FunCode：6012 查询可开票金额]
AG1 --> AH1[佣金保平台<br/>返回可开票额度]
AH1 --> AI1[商户系统<br/>FunCode：6013 申请开票]
AI1 --> AJ1[佣金保平台<br/>开票处理]
AJ1 --> AK1[商户系统<br/>FunCode：6014 查询开票结果]
AK1 --> AL1[佣金保平台<br/>返回开票状态]
end

签约 --> 充值 --> 批量付款 --> 回单 --> 开票
```

## 5. 自由职业者签约管理(v2.0)

### 5.1 签约时序图

调用“自主签约”接口进行签约，调用签约查询接口或根据签约异步通知获得签约结果。
```mermaid
sequenceDiagram
    participant M as 🏢 商户系统
    participant Y as 🔷 佣金保平台
    participant F as 👤 自由职业者

    %% Step 1: Initiate signing
    M->>+Y: ① FunCode：6026 自主签约接口<br/>提交用户签约信息
    Note right of Y: 异步处理：<br/>1. OCR识别<br/>2. 身份信息实名核验
    Y-->>-M: 同步返回 H5 签约链接

    %% Step 2: Freelancer signs via H5
    M->>F: ② 推送 H5 签约链接
    F->>+Y: ③ 访问 H5 页面<br/>提交签约 + 人脸识别认证
    Note right of Y: 签约处理中（1-3分钟）

    %% Step 3: Async callback
    Y-->>M: ④ 异步回调签约结果<br/>state: 1(已签约) / 4(签约失败)

    %% Step 4: Active query
    M->>+Y: ⑤ FunCode：6011 签约结果查询<br/>(签约提交后 1-3分钟)
    Y-->>-M: 同步返回签约状态<br/>state: 0(未签约)/1(已签约)/2(签约信息不存在)/3(签约中)/4(签约失败)<br/>faceAuthState: UN_AUTH(未认证)/PROCESS(认证中)/SUCCESS(认证成功)/FAILED(认证失败)/EXPIRED(认证过期)

    %% Step 5: Face re-authentication (every 180 days)
    Note over M,F: 人脸认证有效期180天，到期前通知

    Y-->>M: ⑥ 人脸认证到期提醒回调<br/>faceState: NEAR_EXPIRE(临期30天/5天)/EXPIRED(已过期)

    M->>F: ⑦ 通知补充人脸认证
    F->>+Y: ⑧ FunCode：6009 人脸识别认证<br/>(重新认证)
    Note right of Y: ⚠️ 6009 同步返回仅代表请求已接收，<br/>不能作为人脸认证状态判定依据
    Y-->>-F: 同步返回 H5 认证页面

    Note over M,Y: 人脸认证完成后 1-3 分钟
    M->>+Y: ⑨ FunCode：6011 签约结果查询<br/>或人脸认证状态查询
    Y-->>-M: 同步返回认证状态<br/>faceAuthState: SUCCESS(认证成功)/FAILED(认证失败)/EXPIRED(认证过期)
```
### 5.2 自由职业者自主签约（6026）
<a id="sign_h5_save6026"></a>

#### 5.2.1 接口前置说明

1. 请按要求传入参数，校验通过后此接口会按用户信息返回唯一 url 地址(初始有效期 48 小时；链接首次访问后，有效期自动缩短为 24 小时；链接过期后访问将提示：【访问链接已失效，请重新获取】)，每次传参都会返回不同的 token；
2. 商户可将此 url 地址内嵌到需要自由职业者操作签约的地方，比如点击某按钮时请求接口，拿到URL后自动跳转至该页面；
3. URL地址支持内嵌到小程序、H5页面、App中。

!> 注：小程序内嵌此接口需要下载SDK文件放入到代码中
<br>[微信小程序原生SDK](https://gitee.com/bubibi1/bosskg-demo/tree/master/%E5%B0%8F%E7%A8%8B%E5%BA%8Fsdk/SDK_MiniProgram)
<br>[Uni打包微信小程序SDK](https://gitee.com/bubibi1/bosskg-demo/tree/master/%E5%B0%8F%E7%A8%8B%E5%BA%8Fsdk/SDK_Uni)

仅当通过自有小程序调用活体认证接口时，需执行以下配置，若为APP、H5、PC端等非小程序场景调用，无需配置任何内容，可直接对接。<br/>

1、为确保活体功能正常调用，小程序校验文件通过百度域名校验：<br/>
（1）请在接口联调开始前3个工作日，向我方对接人提供自有小程序对应的域名校验文件（txt格式），**联系平台运营** <br/>
（2）您的小程序中需增加百度的域名配置：**联系平台运营**<br/>
（3）若贵方未提供域名校验文件或小程序中未增加百度域名配置，小程序调用活体认证接口时将返回错误，无法正常使用功能<br/>

2、小程序开发方式说明，需明确是原生小程序开发、uni-app打包小程序开发，根据不同方式需配置文件不同：<br/>
（1）原生小程序：[SDK_MiniProgram.zip](https://gitee.com/bubibi1/bosskg-demo/blob/master/SDK_MiniProgram.zip)  <br/>
（2）uni打包小程序：[SDK_Uni.zip](https://gitee.com/bubibi1/bosskg-demo/blob/master/SDK_Uni.zip)  <br/>

3、原生APP的webview需开启本地存储权限，本地相册权限，摄像头权限
原生 APP WebView 加载 H5 摄像头调用（getUserMedia）配置说明：<br/>
原生 APP 通过 WebView 嵌入 H5 页面，H5 需通过getUserMedia调用摄像头实现活体认证等功能时，需关注以下权限配置与兼容性问题。<br/>
（1）权限相关异常：摄像头权限需经过网页层授权 + 系统层授权两层校验，任一环节未通过，会导致 H5 卡在环境检测中或提示获取相机权限失败，此类情况请确保 H5 页面获得 WebView 网页授权，且 APP 已在系统层面申请相机 / 麦克风权限（iOS 需配置 Info.plist，Android 需配置 AndroidManifest.xml）<br/>
（2）iOS 低版本兼容性异常：iOS 14.3.0 及以下系统的 APP WebView 不支持 WebRTC 全套 API，我们已在百度方案配置中启用不兼容时允许降级，设置降级活体检测方式改为拍摄图片上传。


#### 5.2.2 reqData 参数

| 字段             | 必填 | 类型  | 长度  | 说明                                                                                                                                                                                                                                                                       |
|----------------|----|-----|-----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| userName       | 是  | 字符串 | 25  | 姓名                                                                                                                                                                                                                                                                       |
| cardNo         | 是  | 字符串 | 25  | 收款账号:银行卡号/支付宝账号（手机号或邮箱）/微信 openid                                                                                                                                                                                                                                        |
| idCard         | 是  | 字符串 | 18  | 身份证号:年龄限制一般为16-65周岁                                                                                                                                                                                                                                                      |
| mobile         | 是  | 字符串 | 11  | 手机号:银行预留手机号（四要素会校验手机号真实性、其他目前只校验格式（^(1[2,3,4,5,6,7,8,9][0-9])\d{8}$）                                                                                                                                                                                                     |
| idCardFrontPic | 是  | 字符串 | -   | 身份证人像面照片，Byte 数据转 16 进制，生成 String（图片不要过大<1M）                                                                                                                                                                                                                             |
| idCardBackPic  | 是  | 字符串 | -   | 身份证国徽面照片，Byte 数据转 16 进制，生成 String（图片不要过大<1M）                                                                                                                                                                                                                             |
| paymentType    | 是  | 数字  | 1   | 签约方式<br/> 0：银行卡<br/>1：支付宝<br/>2：微信                                                                                                                                                                                                                                       |
| notifyUrl      | 否  | 字符串 | 255 | 签约成功回调地址，在配置回调地址后，系统会将此参数回传给接口调用方                                                                                                                                                                                                                                        |
| redirectBtnName | 否  | 字符串 | 100 | 返回按钮名称，非必传，如有传，则在签约结果页，返回按钮的名称为该名称                                                                                                                                                                                                                                       |
| redirectUrl    | 否  | 字符串 | 255 | 返回页地址，非必传，如有传，则签约的返回按钮点击后跳转至该地址对应页面，支持Url地址（ https://www.xxx.com?id=123 ）和uni/小程序的跳地址（/pages/index/index?id=123），支持带参跳转                                                                                                                                                  |
| redirectType   | 否  | 字符串 | 20  | redirectUrl 的跳转类型，非必传，默认为REDIRECT_TO，NAVIGATE_BACK会忽略 redirectUrl，Url地址仅支持 NAVIGATE_TO 和 REDIRECT_TO（NAVIGATE_TO=保留当前页面，跳转到应用内的某个页面，REDIRECT_TO=关闭当前页面，跳转到应用内的某个页面，RE_LAUNCH=关闭所有页面，打开到应用内的某个页面，SWITCH_TAB=跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面，NAVIGATE_BACK=关闭当前页面，返回上一页面） |
| otherParam     | 否  | 字符串 | -   | 透传参数                                                                                                                                                                                                                                                                     |
| appid          | 否  | 字符串 | 25  | 如您在<span style="color: red;">**小程序**</span>端调用，该字段为<span style="color: red;">**必传**</span>项，否则无法正常调用人脸识别功能                                                                                                                                                                                                |
#### 5.2.3 resData 参数

| 字段    | 必填 | 类型   | 长度  | 说明                                          |
| ------- | ---- | ------ |-----| --------------------------------------------- |
| resData | 是   | 字符串 | -   | 签约内嵌地址（包含 token 信息跳转时不能丢失） |

<a id="sign_contract6010"></a>

### 5.3 自由职业者无感签约（6010）默认不开通

#### 5.3.1 接口前置说明

1. 自由职业者签约以“商户号+姓名+身份证+手机号+服务商”维度做唯一校验，其中任何一个参数发生变化都需要重新签约；
2. 签约流程为同步接收签约请求，异步处理签约。同步返回结果仅代表系统已成功接收请求，签约结果支持异步回调通知，但强烈建议商户对接主动查询接口，以查询结果为准！
3. 签约方式不需要和结算时的付款方式一致，签约成功后更换银行卡号或其他收款账号不需要重新签约，直接传新的收款账号即可。
4. 此接口如果没有传otherParam参数，将不会返回公共参数resData和sign，这种情况无需校验签名。
5. 无感签约同步人脸数据需商务沟通风控审批
6. 无感签约同步人脸数据审批通过后，请仔细核对人脸参数。参数错误会导致同步失败。
7. <span style="color: red;">前提条件1：本接口需要商务申批，默认不开通，不建议自行对接</span>

#### 5.3.2 reqData 参数

| 字段          | 必填 | 类型  | 长度  | 说明                                                                                            |
|-------------|----|-----|-----|-----------------------------------------------------------------------------------------------|
| name        | 是  | 字符串 | 25  | 姓名                                                                                            |
| cardNo      | 是  | 字符串 | 25  | 收款账号:银行卡号/支付宝账号（手机号或邮箱）/微信 openid                                                             |
| idCard      | 是  | 字符串 | 18  | 身份证号:年龄限制一般为16-65周岁                                                                           |
| mobile      | 是  | 字符串 | 11  | 手机号:银行预留手机号（四要素会校验手机号真实性、其他目前只校验格式（^(1\[2,3,4,5,6,7,8,9\]\[0-9\])\\d\{8\}$）                   |
| paymentType | 是  | 数字  | 1   | 签约方式<br/> 0：银行卡<br/>1：支付宝<br/>2：微信                                                            |
| providerId  | 是  | 数字  | 20  | 服务商 ID（联系客服获取）                                                                                |
| idCardPic1  | 是  | 字符串 | -   | 身份证人像面照片，Byte 数据转 16 进制，生成 String（图片不要过大<1M）                                                  |
| idCardPic2  | 是  | 字符串 | -   | 身份证国徽面照片，Byte 数据转 16 进制，生成 String（图片不要过大<1M）                                                  |
| otherParam  | 否  | 字符串 | -   | 透传参数                                                                                          |
| notifyUrl   | 否  | 字符串 | -   | 签约成功回调地址，在配置回调地址后，系统会将此参数回传给接口调用方                                                             |
| tagList     | 否  | 数组  | -   | 自由职业者技能标签 可选项："其他,平面设计,工业设计,品宣策划,内容制作,设计建模,美容美发,市场推广,产品营销,生活服务,安装维护,系统开发,测试维护,售后支持,文案制作,影视制作" |
| taskId      | 否  | 字符串 | 120 | 任务id，需使用英文逗号拼接，最多5个纯数字任务ID                                                                    |
| thirdId     | 否  | 字符串 | 100 | 人脸认证唯一可追溯编码                                                                                   |
| authTime    | 否  | 字符串 | 255 | 人脸认证完成时间(yyyy-MM-dd HH:mm:ss)                                                                 |
| urls        | 否  | 数组  | 500 | 人脸识别照片/视频 url    图片和视频大小不超过2M  url链接需要包含文件名和后缀，图片支持jpg,png,jpeg  视频支持mp4                      |
| authChannel | 否  | 字符串 | 2   | 认证通道    详情见5.8.2.1                                                                            |
#### 5.3.3 resData 参数

| 字段       | 必填 | 类型   | 长度 | 说明     |
| ---------- | ---- | ------ | ---- | -------- |
| otherParam | 否   | 字符串 | -    | 透传参数 |

<a id="sign_contract_query6011"></a>

### 5.4 签约结果主动查询（6011）

#### 5.4.1 接口前置说明

!> 1. 更换银行卡后，不需要重复签约。

#### 5.4.2 reqData 参数

| 字段       | 必填 | 类型   | 长度 | 说明                      |
| ---------- | ---- | ------ | ---- | ------------------------- |
| name       | 是   | 字符串 | 25   | 姓名                      |
| idCard     | 是   | 字符串 | 18   | 身份证号                  |
| mobile     | 是   | 字符串 | 11   | 银行预留手机号            |
| providerId | 是   | 数字   | 5    | 服务商 ID（联系客服获取） |

#### 5.4.3 resData 参数

| 字段              | 必填   | 类型   | 长度   | 说明                                                                            |
|-----------------|------|------|------| ------------------------------------------------------------------------------- |
| name            | 是    | 字符串  | 25   | 姓名                                                                            |
| cardNo          | 是    | 字符串  | 25   | 银行卡号                                                                        |
| idCard          | 是    | 字符串  | 18   | 身份证号                                                                        |
| mobile          | 是    | 字符串  | 11   | 银行预留手机号                                                                  |
| state           | 是    | 数字   | 1    | 签约状态<br/>0：未签约<br/> 1：已签约<br/> 2：未查询到自由职业者的签约记录<br/> 3：签约中<br/> 4：签约失败<br/> 5：已解约。 |
| otherParam      | 否    | 字符串  | -    | 需要透传的参数，不填则此字段为空                                                |
| providerId      | 是    | 数字   | 5    | 服务商 ID（联系客服获取）                                                       |
| paymentType     | 是    | 数字   | 1    | 签约方式 <br/>0：银行卡<br/>1：支付宝<br/>2：微信                                                              |
| signFinishTime    | 否  | 字符串 | 255 | 签约完成时间(yyyy-MM-dd HH:mm:ss)                                                                 |
| retMsg          | 否    | 字符串  | 25   | 失败原因                                                                        |
| faceAuthState   | 否    | 字符串  | 25   | 人脸认证状态  UN_AUTH:未认证  PROCESS:认证中 SUCCESS: 认证成功   FAILED:认证失败   EXPIRED:认证过期                                                             |
| faceAuthEndTime | 否    | 字符串  | 25   | 人脸认证有效期限(YYYY-MM-DD)                                                                        |

<a id="sign_contract_paga_query6044"></a>

### 5.5 签约结果分页查询（6044）

#### 5.5.1 接口前置说明

!> 1. 按创建时间倒序查询，可根据最后一条offsetId查询下一页数据。

#### 5.5.2 reqData 参数

| 字段       | 必填 | 类型   | 长度 | 说明                      |
| ---------- | ---- | ------ | ---- | ------------------------- |
| providerId | 是   | 数字   | 5    | 服务商 ID（联系客服获取） |
| createTimeBegin       | 是   | 字符串 | 19   | 签约创建时间开始（yyyy-MM-dd HH:mm:ss）             |
| createTimeEnd     | 是   | 字符串 | 19   | 签约创建时间结束（yyyy-MM-dd HH:mm:ss）       |
| state      | 是   | 数字   | 1    | 签约状态 <br/>0：未签约 <br/>1：已签约 <br/>3：签约中 <br/>4：签约失败 <br/>5：已解约。 |
| finishTimeBegin       | 否   | 字符串 | 19   | 签约完成时间开始（yyyy-MM-dd HH:mm:ss）             |
| finishTimeEnd     | 否   | 字符串 | 19   | 签约完成时间结束（yyyy-MM-dd HH:mm:ss）      |
| offsetId     | 否   | 字符串 | 24   | 偏移id       |


#### 5.5.3 resData 参数

!> 返回数据为List。


| 字段          | 必填 | 类型  | 长度 | 说明                                                                             |
|-------------|----|-----|----| ------------------------------------------------------------------------------- |
| name        | 是  | 字符串 | 25 | 姓名                                                                             |
| cardNo      | 是  | 字符串 | 25 | 银行卡号                                                                         |
| idCard      | 是  | 字符串 | 18 | 身份证号                                                                         |
| mobile      | 是  | 字符串 | 11 | 银行预留手机号                                                                   |
| state       | 是  | 数字  | 1  | 签约状态 <br/>0：未签约 <br/>1：已签约 <br/>3：签约中 <br/>4：签约失败 <br/>5：已解约。 |
| providerId  | 是  | 数字  | 5  | 服务商 ID（联系客服获取）                                                        |
| paymentType | 是  | 数字  | 1  | 签约方式 <br/>0：银行卡<br/>1：支付宝<br/>2：微信                                              |
| offsetId    | 是  | 字符串 | 24 | 偏移id       |
| retMsg      | 否  | 字符串 | 25 | 失败原因                                                                         |

### 5.6 签约结果异步回调

!> 注：<br>1. 在签约接口传签约成功回调地址后可收到签约成功和失败的通知（测试环境可通过 demo 中的测试报文模拟）。
<br>2. 签约异步通知 contentType=application/json
<br>3. 异步通知由于网络等原因可能失败，请务必对接签约结果主动查询接口。

#### 5.6.1 resData 参数

| 字段       | 必填 | 类型   | 长度 | 说明                                                                                                                                                                                      |
| ---------- | ---- | ------ | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name       | 是   | 字符串 | 25   | 姓名                                                                                                                                                                                      |
| cardNo     | 是   | 字符串 | 25   | 银行卡号                                                                                                                                                                                  |
| idCard     | 是   | 字符串 | 18   | 身份证号                                                                                                                                                                                  |
| mobile     | 是   | 字符串 | 11   | 银行预留手机号                                                                                                                                                                            |
| state      | 是   | 数字   | 1    | 签约状态 <br/>0：未签约 <br/>1：已签约 <br/>2：未查询到自由职业者的签约记录 <br/>3：签约中 <br/>4：签约失败 <br/>5：已解约<br>**签约接口异步通知只返回签约成功和签约失败状态，部分失败原因同步返回，需根据返回处理** |
| otherParam | 否   | 字符串 | -    | 需要透传的参数，不填则此字段为空                                                                                                                                                          |
| providerId | 是   | 数字   | 5    | 服务商 ID（联系客服获取）                                                                                                                                                                 |
| signFinishTime    | 否  | 字符串 | 255 | 签约完成时间(yyyy-MM-dd HH:mm:ss)                                                                 |
| retMsg     | 否   | 字符串 | 25   | 返回描述                                                                                                                                                                                  |
| faceAuthState     | 否   | 字符串 | 25   | 人脸认证状态<br/>  UN_AUTH:未认证<br/>  PROCESS:认证中 <br/>SUCCESS: 认证成功   <br/>FAILED:认证失败   <br/>EXPIRED:认证过期                                                               |
| faceAuthEndTime     | 否   | 字符串 | 25   | 人脸认证有效期限(YYYY-MM-DD)                                                                         |

#### 5.6.2 异步通知处理

1. 当接收到通知时需要检查业务状态是否已更新，同笔请求切勿重复处理。处理成功以后需要返回 佣金保 **SUCCESS（大写字符串）**。未响应 SUCCESS 或者网络超时，异步通知 2min 一次，共 5 次
2. 处理示例：见 Demo 中 NotifyController

<a id="user_face6009"></a>

### 5.7 人脸识别认证（6009）

#### 5.7.1 人脸识别认证须知
人脸有效期180，人脸过期或者距离过期前30天可以调用6009进行人脸识别认证

仅当通过自有小程序调用活体认证接口时，需执行以下配置，若为APP、H5、PC端等非小程序场景调用，无需配置任何内容，可直接对接。<br/>

1、为确保活体功能正常调用，小程序校验文件通过百度域名校验：<br/>
（1）请在接口联调开始前3个工作日，向我方对接人提供自有小程序对应的域名校验文件（txt格式），请联系平台运营 <br/>
（2）您的小程序中需增加百度的域名配置：**联系运营**获取相关**域名**<br/>
（3）若贵方未提供域名校验文件或小程序中未增加百度域名配置，小程序调用活体认证接口时将返回错误，无法正常使用功能<br/>

2、小程序开发方式说明，需明确是原生小程序开发、uni-app打包小程序开发，根据不同方式需配置文件不同：<br/>
（1）原生小程序：[SDK_MiniProgram.zip](https://gitee.com/bubibi1/bosskg-demo/blob/master/SDK_MiniProgram.zip)  <br/>
（2）uni打包小程序：[SDK_Uni.zip](https://gitee.com/bubibi1/bosskg-demo/blob/master/SDK_Uni.zip)  <br/>

3、原生APP的webview需开启本地存储权限，本地相册权限，摄像头权限
原生 APP WebView 加载 H5 摄像头调用（getUserMedia）配置说明：<br/>
原生 APP 通过 WebView 嵌入 H5 页面，H5 需通过getUserMedia调用摄像头实现活体认证等功能时，需关注以下权限配置与兼容性问题。<br/>
（1）权限相关异常：摄像头权限需经过网页层授权 + 系统层授权两层校验，任一环节未通过，会导致 H5 卡在环境检测中或提示获取相机权限失败，此类情况请确保 H5 页面获得 WebView 网页授权，且 APP 已在系统层面申请相机 / 麦克风权限（iOS 需配置 Info.plist，Android 需配置 AndroidManifest.xml）<br/>
（2）iOS 低版本兼容性异常：iOS 14.3.0 及以下系统的 APP WebView 不支持 WebRTC 全套 API，我们已在百度方案配置中启用不兼容时允许降级，设置降级活体检测方式改为拍摄图片上传。

#### 5.7.2 reqData 参数

| 字段       | 必填 | 类型   | 长度  | 说明                                                                             |
| ---------- | ---- | ------ |-----| -------------------------------------------------------------------------------- |
| name       | 是   | 字符串 | 25  | 姓名                                                                             |
| idCard     | 是   | 字符串 | 18  | 身份证号                                                                         |
| mobile     | 是   | 字符串 | 11  | 银行预留手机号                                                                   |
| redirectUrl      | 否   | 字符串 | 255 | 返回页地址，非必传，如有传，则签约的返回按钮点击后跳转至该地址对应页面，支持Url地址（ https://www.xxx.com?id=123 ）和uni/小程序的跳地址（/pages/index/index?id=123），支持带参跳转  |
| redirectBtnName      | 否   | 字符串 | -   | 返回按钮名称，非必传，如有传，则在签约结果页，返回按钮的名称为该名称  |
| redirectType      | 否   | 字符串 | -   | redirectUrl 的跳转类型，非必传，默认为REDIRECT_TO，NAVIGATE_BACK会忽略 redirectUrl，Url地址仅支持 NAVIGATE_TO 和 REDIRECT_TO（NAVIGATE_TO=保留当前页面，跳转到应用内的某个页面，REDIRECT_TO=关闭当前页面，跳转到应用内的某个页面，RE_LAUNCH=关闭所有页面，打开到应用内的某个页面，SWITCH_TAB=跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面，NAVIGATE_BACK=关闭当前页面，返回上一页面） |
| appid      | 否   | 字符串 | 25  | 如您在**小程序**端调用，该字段为**必传**项，否则无法正常调用人脸识别功能 |

#### 5.7.3 resData 参数

| 字段       | 必填 | 类型   | 长度 | 说明              |
| ---------- | ---- | ------ | ---- |-----------------|
| url       | 是   | 字符串 | - | 固定有效期 24 小时，生成后 24 小时自动失效 |



<a id="user_face6008"></a>

### 5.8 同步人脸识别记录（6008）默认不开通

#### 5.8.1 同步人脸识别记录须知

1. <span style="color: red;">前提条件1：该接口为限制类接口，调用前请先与专属客服确认接口权限是否已开启。</span>
2. 前提条件2：自由职业者需已有签约成功的签约记录，且人脸认证状态未处于有效期内才能调用成功。
3. 如果返回错误码“6323 已存在人脸认证记录”，则代表该自由职业者的人脸认证状态处于有效期内，无需同步。

#### 5.8.2 reqData 参数

| 字段       | 必填 | 类型   | 长度 | 说明                                                                             |
| ---------- | ---- | ------ | ---- | -------------------------------------------------------------------------------- |
| name       | 是   | 字符串 | 25   | 姓名                                                                             |
| idCard     | 是   | 字符串 | 18   | 身份证号                                                                         |
| mobile     | 是   | 字符串 | 11   | 银行预留手机号                                                                   |
| thirdId     | 是   | 字符串 | 50   | 人脸认证唯一可追溯编码                                                                   |
| authTime     | 是   | 字符串 | 11   | 人脸认证完成时间(yyyy-MM-dd HH:mm:ss)                                                  |
| urls     | 是   | 数组 | 11   | 人脸识别照片/视频 url    图片和视频大小不超过2M  url链接需要包含文件名和后缀，图片支持jpg,png,jpeg  视频支持mp4 |
| authChannel     | 是   | 字符串 | 2   | 认证通道    详情见5.8.2.1            |


#### 5.8.2.1 authChannel 参数
| 认证通道ID   | 认证通道名称|
| ----------  | ------ | 
| 01   | 百度云|
| 02   | 阿里云|
| 03   | 腾讯云|
| 04   | 法大大|
| 05   | 支付宝|
| 06   | 火山引擎|
| 07   | 华为云|
| 08   | 商汤科技|
| 09   | 旷世Face++|
| 10   | 京东智联云|
| 11   | 微信支付|
| 12   | 其他活体通道|


#### 5.8.3 resData 参数


| 字段       | 必填 | 类型   | 长度 | 说明                                                                             |
| ---------- | ---- | ------ | ---- | -------------------------------------------------------------------------------- |
| faceAuthEndTime     | 否   | 字符串 | 25   | 人脸认证有效期限(YYYY-MM-DD)        |

### 5.9 人脸认证到期提醒

#### 5.9.1 通知前置说明

1. 商户在商户端配置回调地址方可收到通知，配置方式见「 接入前准备 - 7 」；
2. 接口仅通知人脸认证临期、人脸认证过期人员信息;
3. 异步通知由于网络等各种原因可能延时或失败，请务必对接“签约结果主动查询(6011)”接口。
4. 通知推送节点：人脸认证临期30天、认证临期5天、认证已过期

#### 5.9.2 resData 参数

| 字段               | 必填 | 类型  | 说明                                    |
|------------------|----|-----|---------------------------------------|
| userName         | 是  | 字符串 | 姓名                                    |
| userMobile       | 是  | 字符串 | 手机号                                   |
| idcardNo         | 是  | 字符串 | 身份证号                                  |
| faceStartTime    | 是  | 字符串 | 人脸认证完成时间(YYYY-MM-DD)                  |
| faceEndTime      | 是  | 字符串 | 人脸认证有效时间(YYYY-MM-DD)                  |
| faceState        | 是  | 字符串 | 人脸认证状态：NEAR_EXPIRE:认证临期  EXPIRED:认证过期 |

<a id="cancel_sign6036"></a>

### 5.10 解约（6036）

解约后将导致自由职业者无法正常收到佣金，甚至影响已结算佣金的涉税处理，请慎重操作！

#### 5.10.1 reqData 参数

| 字段           | 必填 | 类型   | 长度  | 说明                                                                                             |
| -------------- | ---- | ------ |-----| ------------------------------------------------------------------------------------------------ |
| userName       | 是   | 字符串 | 25  | 姓名                                                                                             |
| idcardNo         | 是   | 字符串 | 18  | 身份证号                                                                 |
| providerId      | 否   | 数字 | 20   | 服务商 ID （如果不传该字段会将该自由职业者在该客户下的所有服务商的签约信息解约）                              |

#### 5.10.2 resData 参数

| 字段    | 必填 | 类型   | 长度  | 说明                                          |
| ------- | ---- | ------ |-----| --------------------------------------------- |
| state | 是   | 字符串 | -   | 解约状态 1：解约成功 2：解约失败 |
| retMsg | 否   | 字符串 | -   | 返回描述 |

## 6. 商户结算管理(v2.0)

### 6.1 结算时序图

```mermaid
sequenceDiagram
    %% size: small
    participant M as 🏢 商户系统
    participant Y as 🔷 佣金保平台

    %% Optional: Trial calculation
    opt 可选：连续劳务试算
        M->>Y: ⓪ FunCode：6006 连续劳务试算
        Y-->>M: 返回税费测算结果
    end

    %% Step 1: Initiate payment
    M->>+Y: ① FunCode：6001 批量付款申请<br/>提交付款订单
    Note right of Y: 异步处理：<br/>1. 验证商户信息<br/>2. 验证签约&人脸认证<br/>3. 验证任务领取状态<br/>4. 平台风控校验
    Y-->>-M: 同步返回受理结果：⚠️ 同步返回不能作为付款状态处理的判定依据

    %% Step 2: Async processing
    Note over M,Y: 异步处理中（2-5分钟）

    %% Step 3: Async callback
    Y-->>M: ② 付款结果异步通知 state=3 付款成功 state=4 付款失败

    %% Step 4: Active query
    Note over M,Y: 发起付款 2-5 分钟后
    M->>+Y: ③ FunCode：6002 主动查询付款结果
    Y-->>-M: 同步返回查询状态 state: 1(付款中)/3(成功)/4(失败)<br/>6(待用户确认)/7(已取消)
```
<a id="trial_calculate6006"></a>

### 6.2 连续劳务试算（6006）

#### 6.2.1 接口前置说明

1. 在结算前使用该接口查询自由职业者的税费情况，税费是基于当前结算情况进行的测算，试算数据不会落单，不会累计收入，可能与实际结算时有差异。
2. 试算金额单位为分。
3. 自由职业者信息单次上限50条，数据不可重复。

#### 6.2.2 reqData 参数

| 字段       | 必填 | 类型   | 长度 | 说明                      |
| ---------- | ---- | ------ | ---- | ------------------------- |
| providerId | 是   | 数字   | 5    | 服务商 ID（联系客服获取） |
| ifReverse       | 否   | 布尔 | 5   | true 反算，false 正算 默认正算            |
| userList     | 是   | Object对象 | 50   |    自由职业者信息    |

userList 字段

| 字段       | 必填 | 类型   | 长度  | 说明                                                   |
| ---------- | ---- | ------ |-----| ------------------------------------------------------ |
| merOrderId | 否   | 字符串 | 32  | 商户订单号                                             |
| name | 是   | 字符串 | 32  | 姓名                                             |
| idCardNo    | 是   | 字符串   | 18  | 身份证号               |
| amt        | 是   | 数字   | 10   | 试算金额（单位：分）                                         |


resData 参数

!> 返回数据为List。


| 字段           | 必填  | 类型    | 长度   | 说明                        |
|--------------|-----|-------|------|---------------------------|
| merOrderId   | 否   | 字符串   | 32   | 商户订单号                     |
| name         | 是   | 字符串   | 32   | 姓名                        |
| idCardNo     | 是   | 字符串   | 18   | 身份证号                      |
| providerId   | 是   | 数字    | 5    | 服务商ID                     |
| amt          | 是   | 数字    | 10   | 试算金额（单位：分）                |
| orderAmt     | 是   | 数字    | 10   | 支付金额（单位：分）                |
| userFeeRatio | 是   | 数字    | 10   | 个税计税阶梯-预扣率（如3%  返回3）      |
| userFee      | 是   | 数字    | 10   | 应纳个税税额（单位：分）              |
| vaTax        | 是   | 数字    | 10   | 增值税（单位：分）                 |
| vaAddTax     | 是   | 数字    | 10   | 增值税附加（单位：分）               |
| userDueAmt   | 是   | 数字    | 10   | 实际到账金额（单位：分）              |
| status       | 是   | 布尔    | 5    | 试算状态 true 试算成功 false 试算失败 |
| errMsg       | 否   | 字符串   | 128  | 试算失败原因                    |

<a id="payment6001"></a>

### 6.3 商户批量结算（6001）

#### 6.3.1 接口前置说明

1. 佣金保端通过商户号\+商户订单号标识唯一订单。
2. 付款限制：单笔最低限额 10 元，单笔最高限额 10 万元；单人月限额100万元，年限额400万元。
3. 微信付款每人/天限 10 笔，每人单笔限制 2w，单日 2w 限额。
4. 建议采用同批次多笔订单下发方式。需要注意的是：当商户余额不足时，整个批次都会失败，不进行部分结算。
5. 测试环境为了方便测试，订单状态以下发金额分位做自动逻辑， 0 为处理中，奇数失败，偶数成功（例：100 处理中 ，101 失败， 102 成功）。
6. 同步返回结果仅代表系统已接收到通信请求，不能作为交易结果处理；交易结果请以“商户批量结算异步通知”或“商户批量结算主动查询”接口的交易状态为准。
7. 为保障交易结果及时安全，异步通知由于网络等各种原因可能延时或异常，请务必对接“商户批量结算主动查询”接口并以查询的最终交易状态为准。如有退票，退票状态一般是 T+1 或者 T+2 返回，特殊情况可能会在 T+0 返回。我方将第一时间联系您更新最新状态。
8. 结算申请备注参数中不能包含的敏感词：工资、薪酬、提现、薪、补贴、分红、奖金、返现、劳务费、分润、备用金、咨询等。
9. 注意 resCode6000 错误，6000 错误可能是因为超时引起的；
10. 结算申请时手机号参数需与签约时手机号参数保持一致；
11. 微信零钱 ：对接前**请联系客服**确认使用微信老模式还是新模式（新模式需个人手动领取）。<br/>
    老模式对接接口：6.3 商户批量结算（6001）；<br/>
    新模式对接接口：第一步6.3 商户批量结算（6001）、第二步APP对接6.11.1 App调起微信用户收款，小程序、公众号对接6.11.2 微信JSAPI调起用户确认收款；<br/>
    <b>新模式</b><br/>
    流程示意如下，仅绿框内页面为微信官方页面，需按照商家转账规则展示，其余流程均为商户灵活设计。<br/>
    <img src="/images/IMG_20250214.png" width=50% /></br>
#### 6.3.2 reqData 参数

| 字段       | 必填 | 类型  | 长度 | 说明                                                                                                                                               |
| ---------- | ---- |-----| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| merBatchId | 是   | 字符串 | 32   | 商户批次号，唯一，建议格式：yyyymmddHHSS\+8 位随机数，商户维度唯一                                                                                 |
| payItems   | 是   | 数组  | -    | 付款数据，见下面 payItems 属性说明                                                                                                                 |
| taskId     | 是   | 数字  | 20   | 任务对应编码，作为下发的理由（获取方式： **佣金保-任务管理-我的任务-任务ID** ） 。<br>商户可任选一个任务编号，也可根据下发理由匹配 |
| providerId | 是   | 数字  | 20   | 服务商 ID（联系客服获取）                                                                                                                          |

payItems 字段

| 字段        | 必填 | 类型   | 长度  | 说明                                                |
| ----------- | ---- | ------ |-----|---------------------------------------------------|
| merOrderId  | 是   | 字符串 | 32  | 商户订单号，同商户确保唯一不可重复。商户维度唯一                          |
| amt         | 是   | 数字   | 8   | 付款金额（单位：分）纯数字                                     |
| payeeName   | 是   | 字符串 | 50  | 收款人名称                                             |
| payeeAcc    | 是   | 字符串 | 28  | 收款人账号(根据付款方式:银行卡号/支付宝(账号、ID)/微信 openid)           |
| idCard      | 是   | 字符串 | 18  | 身份证号                                              |
| mobile      | 是   | 数字   | 11  | 收款人手机号。 目前只校验格式（^(1[2,3,4,5,6,7,8,9][0-9])\d{8}$） |
| memo        | 否   | 字符串 | 20  | 备注                                                |
| otherParam        | 否   | 字符串 | 200 | 自定义备注                                                |
| paymentType | 是   | 数字   | 1   | 付款方式  <br/>0：银行卡<br/>1：支付宝<br/>2：微信               |
| appId   | 否   | 字符串 | 255 | 微信appId (多个微信,此字段必填)                              |
| notifyUrl   | 否   | 字符串 | 100 | 异步通知地址，商户侧用来接收付款订单的交易结果通知，不填则不会发送异步通知             |

#### 6.3.3 resData 参数

| 字段          | 必填 | 类型        | 长度 | 说明                                        |
| ------------- | ---- | ----------- | ---- | ------------------------------------------- |
| successNum    | 否   | 数字        | 5    | 该批次的订单受理成功笔数                    |
| failureNum    | 否   | 数字        | 5    | 该批次的订单受理失败笔数                    |
| merBatchId    | 否   | 字符串      | 32   | 商户批次号                                  |
| payResultList | 否   | List | -    | 付款返回数据，见下面 payResultList 属性说明 |

payResultList 字段

| 字段       | 必填 | 类型  | 长度  | 说明                                                   |
| ---------- | ---- |-----|-----| ------------------------------------------------------ |
| merOrderId | 否   | 字符串 | 32  | 商户订单号                                             |
| orderNo    | 否   | 数字  | 25  | 平台订单号，全局唯一，供付款查询时使用。               |
| amt        | 否   | 数字  | 8   | 付款金额（单位：分）                                         |
| fee        | 否   | 数字  | 8   | 服务费（单位：分）                                           |
| packageInfo     | 否   | 字符串 | -   | 微信零钱新模式： 跳转微信支付收款页的package信息，APP调起用户确认收款或JSAPI调起用户确认收款需要使用的参数 |
| mchId     | 否   | 字符串 | -   | 微信零钱新模式： 跳转微信支付收款页的mchId信息，APP调起用户确认收款或JSAPI调起用户确认收款需要使用的参数|
| resCode    | 否   | 字符串 | -   | 响应码（订单请求信息的受理状态，非下发订单的交易状态） |
| resMsg     | 否   | 字符串 | -   | 响应信息                                               |

### 6.4 商户批量结算异步通知

#### 6.4.1 通知前置说明
1. 商户在 payItems.notifyUrl 填写异步回调地址方可收到通知；
2. 异步通知付款结果不包含 reqId；
3. 付款终态（成功、失败）才会异步通知，同步调用即返回失败的不会进行通知；
4. 异步通知由于网络等各种原因可能延时或失败，请务必对接“商户批量结算主动查询”接口。

#### 6.4.2 resData 参数

| 字段       | 必填 | 类型  | 长度  | 说明                                                                                                                                   |
| ---------- | ---- |-----|-----| -------------------------------------------------------------------------------------------------------------------------------------- |
| merOrderId | 是   | 字符串 | 32  | 商户订单号，**同一商户维度内不可重复。**<br>**如商户侧本地存在重复，请组合"orderNo"佣金保侧订单流水号，做订单唯一条件的处理依据。** |
| orderNo    | 是   | 数字  | 25  | **平台订单号，唯一不重复，建议付款查询时使用，以确保订单处理的唯一性，防止发生重复处理;如有拆单，应作为订单唯一条件的处理依据。**      |
| state      | 否   | 数字  | 1   | 交易状态：<br/>3：成功<br/>4：失败<br/>7：已取消                                                                                                         |
| amt        | 否   | 数字  | 8   | 付款金额（单位：分）                                                                                    |
| fee        | 否   | 数字   | 8  | 平台管理费（单位：分）                                           |
| userFee        | 否   | 数字   | 8   | 个人服务费（即个税税额，单位：分）                                           |
| vaTax        | 否   | 数字   | 8   | 个人增值税（单位：分）                                           |
| vaAddTax        | 否   | 数字   | 8   | 个人增值税附加（单位：分）                                           |
| userDueAmt         | 否   | 数字   | 8   | 个人实际到账金额（单位：分）                |
| userFeeRatio        | 否   | 数字   | -   | 个人服务费率（即个税税率）                                          |
| resMsg     | 否   | 字符串 | -   | 响应信息|
| createTime | 否   | 字符串 | -   | 创建订单时间 (格式：yyyy-MM-dd HH:mm:ss)                                                                                               |
| endTime    | 否   | 字符串 | -   | 交易完成时间 (格式：yyyy-MM-dd HH:mm:ss)                                                                                               |
| appId   | 否   | 字符串 | 255  | 微信appId |

#### 6.4.3 商户对异步通知结果处理

1. 当接收到通知时需要检查业务状态是否已更新，同笔订单切勿重复处理。
2. 处理成功以后需要返回 佣金保 **SUCCESS（大写字符串）**。未响应 SUCCESS 或者网络超时，异步通知 2min 一次，共 5 次，通知重复时，请务必保证能够正确处理重复的通知。
3. 付款异步通知 contentType=application/json
4. 处理示例：见 Demo 中 NotifyController



<a id="payment_query6002"></a>

### 6.5 商户批量结算主动查询（6002）

#### 6.5.1 接口前置说明须知

1. 不填写 merOrderId，orderNo 则查询此批次中的全部订单；
2. 如果付款 30 分钟内，付款查询 resCode 返回 6020（未查询到订单）或 6032（该商户批次号不存在）或 6033（客户订单号或者订单流水号不存在），请确认佣金保没有落单再重新请求付款，重发一定要保持原商户批次号和商户订单号不变，避免重复支付；
3. resCode 返回 6000（系统内部错误）或 6042（请求频繁请稍后再试）仅视为通信异常，不作为订单的交易状态判定依据。

#### 6.5.2.reqData 参数

| 字段       | 必填 | 类型  | 长度 | 说明                                                                       |
| ---------- |----|-----| ---- | -------------------------------------------------------------------------- |
| merBatchId | 是  | 字符串 | 32   | 商户批次号，唯一不可重复。                                                 |
| queryItems | 否  | 数组  | -    | 查询数据，见下面 queryItems 属性说明，若为空则返回该批次。全部交易结果信息 |

queryItems 字段

| 字段       | 必填 | 类型   | 长度  | 说明                     |
| ---------- | ---- | ------ |-----|------------------------|
| merOrderId | 否   | 字符串 | 32  | 商户订单号                  |
| orderNo    | 否   | 数字   | 25  | **平台订单号**，建议付款查询时优先使用。 |

#### 6.5.3 resData 参数

| 字段       | 必填 | 类型        | 长度 | 说明                                 |
| ---------- | ---- | ----------- | ---- | ------------------------------------ |
| merId      | 否   | 数字        | 20   | 商户号，我司分配给客户的唯一编号     |
| merBatchId | 否   | 字符串      | 32   | 商户批次号                           |
| queryItems | 否   | 数组 | -    | 查询数据，见下面 queryItems 属性说明 |

queryItems 字段

| 字段       | 必填 | 类型  | 长度  | 说明                                                                       |
| ---------- | ---- |-----|-----|--------------------------------------------------------------------------|
| merOrderId | 否   | 字符串 | 32  | 商户订单号，同一商户维度内不可重复 <br>**如商户侧本地存在重复，请组合"orderNo"佣金保侧订单流水号，做订单唯一条件的处理依据。** |
| orderNo    | 否   | 数字   | 25  | **平台订单号，唯一不重复，建议付款查询时使用，以确保订单处理的唯一性，防止发生重复处理;如有拆单，应作为订单唯一条件的处理依据。**      |
| state      | 否   | 数字   | 1   | 交易状态：<br/>1: 付款中<br/>3：成功<br/>4：失败<br/>6：待用户确认<br/>7：已取消                 |
| amt        | 否   | 数字   | 8   | 付款金额（单位：分）                                                               |
| fee        | 否   | 数字   | 8   | 平台管理费（单位：分）                                                              |
| userFee        | 否   | 数字   | 8   | 个人服务费（即个税税额，单位：分）                                                        |
| vaTax        | 否   | 数字   | 8   | 个人增值税（单位：分）                                                              |
| vaAddTax        | 否   | 数字   | 8   | 个人增值税附加（单位：分）                                                            |
| userDueAmt         | 否   | 数字   | 8   | 个人实际到账金额（单位：分）                                                           |
| userFeeRatio        | 否   | 数字   | -   | 个人服务费率（即个税税率）                                                            |
| resMsg     | 否   | 字符串   | -   | 响应信息                                                                     |
| createTime | 否   | 字符串 | -   | 创建订单时间 (格式：yyyy-MM-dd HH:mm:ss)                                          |
| endTime    | 否   | 字符串 | -   | 交易完成时间 (格式：yyyy-MM-dd HH:mm:ss)                                          |
| appId   | 否   | 字符串 | 255  | 微信appId |

<a id="place_payment6022"></a>

### 6.6 批次订单上传（6022）

#### 6.6.1 接口前置说明

场景描述：该接口仅对于客户有双岗审核需求，且下单和付款流程分离的场景使用，客户使用【批次订单上传】接口上传订单到平台后，再登录平台对上传的订单进行下发，下发完成后可以使用【批次订单查询】接口查询订单的付款状态。

#### 6.6.2 reqData 参数

| 字段       | 必填 | 类型  | 长度 | 说明                                                                                                                                            |
| ---------- | ---- |-----| ---- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| merBatchId | 是   | 字符串 | 32   | 商户批次号，唯一，建议格式：yyyymmddHHSS+8 位随机数，商户维度唯一                                                                               |
| payItems   | 是   | 数组  |      | 付款数据，见下面 payItems 属性说明                                                                                                              |
| taskId     | 是   | 数字  | 20   | 任务对应编码，作为下发的理由 **（获取方式：商户平台/项目中心/项目管理/项目管理列表/任务 ID）** <br>商户可任选一个任务编号，也可根据下发理由匹配 |
| providerId | 是   | 数字  | 20   | 服务商 ID（联系客服获取）                                                                                                                       |
| fileName   | 否  | 字符串 | 20   | 文件名称                                            |

payItems 字段

| 字段        | 必填 | 类型   | 长度 | 说明                                               |
| ----------- | ---- | ------ | ---- |--------------------------------------------------|
| merOrderId  | 是   | 字符串 | 32   | 商户订单号，**同批次内确保唯一不可重复**。商户维度唯一                    |
| amt         | 是   | 数字   | 8    | 金额（分）纯数字                                         |
| payeeName   | 是   | 字符串 | 25   | 收款人名称                                            |
| payeeAcc    | 是   | 字符串 | 25   | 收款人账号 (根据付款方式：银行卡号/支付宝 (账号、ID)/微信 openid)        |
| idCard      | 是   | 字符串 | 18   | 身份证号                                             |
| mobile      | 是   | 数字   | 11   | 收款人手机号。目前只校验格式（^(1[2,3,4,5,6,7,8,9][0-9])\d{8}$） |
| memo        | 否   | 字符串 | 20  | 备注                                               |
| paymentType | 是   | 数字   | 1    | 付款方式 <br/>0：银行卡<br/>1：支付宝                                 |
| appId   | 否   | 字符串 | 255  | 微信appId |

#### 6.6.3 resData 参数

| 字段    | 必填 | 类型  | 长度 | 说明               |
| ------- |----| --- | ---- | ---------------- |
| batchNo | 否  | 数字  | 5    | 平台生成的唯一批次号 |
| resCode | 否  | 字符串 | 4    | 响应码              |
| resMsg  | 否  | 字符串 | 18   | 响应信息             |
| fileName| 否  | 字符串 | 20   | 文件名称             |


<a id="place_payment_query6023"></a>

### 6.7 批次订单查询（6023）

#### 6.7.1 接口前置说明

1. 不填写 merOrderId 则查询此批次中的全部订单；
2. 此接口针对商户端：批量付款将付款拆分成上传和支付等场景单独开发；
3. 配合 6022 使用；
4. 该查询接口仅可查询通过“6.6 批次订单上传”接口上传的数据。

#### 6.7.2 reqData 参数

| 字段       | 必填 | 类型  | 长度 | 说明                                                                     |
| ---------- | ---- |-----| ---- | ------------------------------------------------------------------------ |
| merId      | 是   | 数字  | 20   | 商户号，我司分配给客户的唯一编号                                         |
| merBatchId | 是   | 字符串 | 32   | 商户批次号，唯一不可重复。                                               |
| queryItems | 是   | 数组  | -    | 查询数据，见下面 queryItems 属性说明，若为空则返回该批次全部交易结果信息 |

queryItems 字段

| 字段       | 必填 | 类型   | 长度 | 说明                             |
| ---------- | ---- | ------ | ---- | -------------------------------- |
| merOrderId | 否   | 字符串 | 32   | 商户订单号，同一批次内不可重复。 |

#### 6.7.3 resData 参数

| 字段       | 必填 | 类型  | 长度 | 说明                                 |
| ---------- | ---- |-----| ---- | ------------------------------------ |
| merId      | 否   | 数字  | 20   | 商户号，我司分配给客户的唯一编号     |
| merBatchId | 否   | 字符串 | 32   | 商户批次号                           |
| queryItems | 否   | 数组  | -    | 查询数据，见下面 queryItems 属性说明 |

queryItems 字段

| 字段        | 必填 | 类型   | 长度  | 说明                                                                 |
| ----------- | ---- | ------ |-----|--------------------------------------------------------------------|
| merOrderId  | 否   | 字符串 | 32  | 商户订单号，同一批次内不可重复<br>如商户侧本地存在重复，请组合"payItemId"优付侧订单流水号，做订单唯一条件的处理依据。 |
|orderNo | 否 | 数字 | 25  | 平台订单号，唯一不重复，建议付款查询时使用，以确保订单处理的唯一性，防止发生重复处理;如有拆单，应作为订单唯一条件的处理依据。    |
| state       | 否   | 数字   | 1   | 交易状态：<br/>0：待付款<br/>1：处理中<br/>3：成功<br/>4：失败<br>说明：以查询最终结果状态为处理依据（3：成功、4：失败） 、7：已取消  |
| amt         | 否   | 数字   | 8   | 付款金额（单位：分）                                                         |
| fee        | 否   | 数字   | 8   | 平台管理费（单位：分）                                                        |
| userFee        | 否   | 数字   | 8   | 个人服务费（即个税税率，单位：分）                                                  |
| vaTax        | 否   | 数字   | 8   | 个人增值税（单位：分）                                                        |
| vaAddTax        | 否   | 数字   | 8   | 个人增值税附加（单位：分）                                                      |
| userDueAmt         | 否   | 数字   | 8   | 个人实际到账金额（单位：分）                                                     |
| userFeeRatio        | 否   | 数字   | -   | 个人服务费率（即个税税率）                                                      |
| resMsg      | 否   | 数字   |     | 响应信息                                                               |
| createTime  | 否   | 字母   |     | 创建订单时间(格式：yyyy-MM-dd HH:mm:ss)                                     |
| endTime     | 否   | 字母   |     | 交易完成时间(格式：yyyy-MM-dd HH:mm:ss)                                     |
| appId   | 否   | 字符串 | 255  | 微信appId |

<a id="b_payment_b6001"></a>

### 6.8 品牌客户结算申请（B6001）
![IMG_20260702](/images/IMG_20260702.png)
#### 6.8.1 结算申请前须知

1. 佣金保端通过商户号+商户订单号标识唯一订单，商户订单号标识唯一订单不可重复。
2. 付款限制：单笔最低限额 10 元，单笔最高限额 10 万元；单人月限额100万元，年限额400万元。
3. 建议采用同批次多笔订单下发方式，尽量少使用一批次一笔订单方式下发。
4. 付款方式与收款账号：如果传参，即按传参数据落单；如果未传，即按默认值落单，可在同步订单结果时传参更新。
5. 当付款方式为"银行卡"时，会以收款账号+姓名+身份证号做三要素校验，校验不通过则无法正常落单。
6. 结算备注：默认"服务费"，如果自定义备注，请与传给结算通道的备注保持一致（与结算回单保持一致），不能包含的敏感词：工资、薪酬、提现、薪、补贴、分红、奖金、返现、劳务费、分润、备用金、咨询等。

#### 6.8.2 reqData 字段

| 字段 | 必填 | 类型 | 长度 | 说明 |
| ---- | ---- | ---- | ---- | ---- |
| merOrderId | 是 | 字符串 | 32 | 商户订单号，同商户确保唯一不可重复，商户维度唯一。 |
| taskId | 是 | 数字 | 20 | 任务对应编码，作为下发的理由，获取方式：登录企业平台/项目中心/项目管理/项目管理列表/任务 ID 或联系客服获取。 |
| providerId | 是 | 数字 | 20 | 服务商 ID（联系客服获取） |
| payeeName | 是 | 字符串 | 50 | 收款人姓名 |
| idCard | 是 | 字符串 | 18 | 收款人身份证号 |
| mobile | 是 | 数字 | 11 | 收款人手机号，目前只校验格式（^(1[2,3,4,5,6,7,8,9][0-9])\d{8}$） |
| amt | 是 | 数字 | 8 | 付款金额（分），纯数字 |
| paymentType | 否 | 数字 | 1 | 付款方式：0：银行卡、1：支付宝 |
| payeeAcc | 否 | 字符串 | 28 | 收款人账号，根据付款方式：银行卡号 / 支付宝(账号、ID) |
| memo | 否 | 字符串 | 20 | 结算备注，默认服务费。如果自定义备注，请与传给结算通道的备注保持一致（与结算回单保持一致） |

#### 6.8.3 resData 参数

| 字段 | 必填 | 类型 | 长度 | 说明 |
| ---- | ---- | ---- | ---- | ---- |
| merOrderId | 是 | 字符串 | 32 | 商户订单号，做订单唯一条件的处理依据。 |
| state | 否 | 数字 | 1 | 受理状态：1：成功、4：失败 |
| amt | 否 | 数字 | 10 | 付款金额（单位：分） |
| fee | 否 | 数字 | 10 | 交易服务费（单位：分） |
| userFee | 否 | 数字 | 10 | 本单应纳个税（单位：分） |
| userFeeRatio | 否 | 数字 | - | 个税计税阶梯-预扣率（如3% 返回3） |
| vaTax | 否 | 数字 | 10 | 本单增值税（单位：分） |
| vaAddTax | 否 | 数字 | 10 | 本单增值税附加（单位：分） |
| ykVaTax | 否 | 数字 | 10 | 本单应补增值税（单位：分） |
| ykVaAddCityTax | 否 | 数字 | 10 | 本单应补城建税（单位：分） |
| ykVaAddEduTax | 否 | 数字 | 10 | 本单应补教育费附加（单位：分） |
| ykVaAddLocalEduTax | 否 | 数字 | 10 | 本单应补地方教育附加（单位：分） |
| ykVaAddTax | 否 | 数字 | 10 | 本单应补增值税附加总额（单位：分） |
| userDueAmt | 否 | 数字 | 10 | 实际到账金额（单位：分） |
| resMsg | 否 | 字符串 | - | 响应信息 |
| createTime | 否 | 字符串 | - | 创建订单时间 (格式：yyyy-MM-dd HH:mm:ss) |

<a id="b_payment_b6007"></a>

### 6.9 品牌客户结算结果通知（B6007）

#### 6.9.1 接口须知

1. 商户订单号、收款人身份证号、付款金额必传，系统以这三个字段做安全校验。
2. 付款方式与收款人账号：如果传参就更新订单数据，不传则保持结算申请时的数据。
3. 支付结果为成功时，支付通道流水号、支付完成时间必传；支付结果为失败时，支付失败原因必传。
4. 如果可以直接提供电子回单地址更好。

#### 6.9.2 reqData 字段

| 字段 | 必填 | 类型 | 长度 | 说明 |
| ---- | ---- | ---- | ---- | ---- |
| merOrderId | 是 | 字符串 | 32 | 商户订单号，做订单唯一条件的处理依据。 |
| idCard | 是 | 字符串 | 18 | 收款人身份证号 |
| amt | 是 | 数字 | 8 | 付款金额（分）纯数字 |
| paymentType | 是 | 数字 | 1 | 付款方式：0：银行卡，1：支付宝 |
| payeeAcc | 是 | 字符串 | 28 | 收款人账号，根据付款方式：银行卡号 / 支付宝(账号、ID) |
| payState | 是 | 数字 | 1 | 支付结果：3：支付成功、4：支付失败 |
| bankFlowNo | 否 | 字符串 | 32 | 支付通道流水号，支付结果成功时必填 |
| paySuccessTime | 否 | 字符串 | - | 支付完成时间 (格式：yyyy-MM-dd HH:mm:ss)，支付结果成功时必填 |
| receiptUrl | 否 | 字符串 | - | 电子回单地址 |
| resMsg | 否 | 字符串 | 100 | 支付失败原因，支付结果失败时必填 |

#### 6.9.3 resData 参数

| 字段 | 必填 | 类型 | 长度 | 说明 |
| ---- | ---- | ---- | ---- | ---- |
| resCode | 是 | 字符串 | - | 通知结果 "0000" 表示受理成功，其他返回码为失败 |
| retMsg | 否 | 字符串 | - | 返回描述 |

### 6.11 微信支付新模式

#### 6.11.1 App调起微信用户收款

##### 6.11.1.1 接口前置说明
1. 该能力依赖微信Open SDK，需按照指引在微信开放平台申请开通移动应用的微信支付能力，以完成相关初始化配置
2. 商户需通过API接口申请创建付款单，获取到跳转领取页面的package信息才能调起微信用户确认收款页面，详情请参考[发放](#_11-发放接口)
3. Android openSDK（版本>=5.3.1）
4. iOS openSDK（版本>=1.8.4）

##### 6.11.1.2 调起用户收款参数

| 字段             | 必填  | 类型 | 长度 | 说明                       |
|----------------|-----|--| ---- |--------------------------|
| businessType  | 是   | 数字 | 16    | 业务类型固定requestMerchantTransfer  |
| query  | 是   | String | -    | 查询参数  |
<table id = "query" style="margin-left: 5%;display : block; ">
    <tr>
        <td>mchId </td>
        <td>是</td> 
        <td>字符串</td>
        <td>32</td>
        <td>商户号,付款接口会同步返回此字段</td>
      </tr>
    <tr>
        <td>appId</td>
        <td>否</td>
        <td>字符串</td>
        <td>32</td>
        <td>微信开放平台审核通过的移动应用appid</td>
    </tr>
   <tr>
        <td>package </td>
        <td>否</td>
        <td>字符串</td>
        <td>1024</td>
        <td>商家转账付款单跳转收款页package信息,商家转账付款单受理成功时返回给商户</td>
    </tr>
</table>

示例程序

安卓示例
```android

    //代码解释代码改写
    int wxSdkVersion = api.getWXAppSupportAPI();
    if (wxSdkVersion >= Build.OPEN_BUSINESS_VIEW_SDK_iNT) {
      WXOpenBusinessView.Req req = new WXOpenBusinessView.Req();
      req.businessType = "requestMerchantTransfer";
      req.query = "mchId=1230000000&appId=wx8888888888888888&package=affffddafdfafddffda%3D%3D";
      Boolean ret = api.sendReq(req);
    } else {
      /*需提示用户升级微信版本*/
    }
```
ios示例

```swift

//代码解释代码改写
WXOpenBusinessViewReq *req = [WXOpenBusinessViewReq object];
req.businessType = @"requestMerchantTransfer";
req.query = @"mchId=1230000000&appId=wx8888888888888888&package=affffddafdfafddffda%3D%3D";
[WXApi sendReq:req]
```

#### 6.11.2 微信JSAPI调起用户确认收款

##### 6.11.2.1 接口前置说明
1.WeixinJSBridge内置对象在其他浏览器中无效。

2.低版本微信客户端、低版本小程序基础库 均不支持 requestMerchantTransfer 方法，需做好兼容性处理。

##### 6.11.2.2 调起参数

| 字段             | 必填  | 类型 | 长度 | 说明                       |
|----------------|-----|--| ---- |--------------------------|
| mchId   | 是   | string | 32    | 商户号,付款接口会同步返回此字段  |
| appId   | 是   | String |32    | 商户AppID  |
| package    | 是   | String | 1024    | 商家转账付款单跳转收款页package信息,商家转账付款单受理成功时返回给商户  |

示例

小程序
```javascript
if (wx.canIUse('requestMerchantTransfer')) {
    wx.requestMerchantTransfer({
        mchId: 'wx8888888888888888',
        appId: wx.getAccountInfoSync().miniProgram.appId,
        package: 'affffddafdfafddffda==',
        success: (res) => {
            // res.err_msg将在页面展示成功后返回应用时返回ok，并不代表付款成功
            console.log('success:', res);
        },
        fail: (res) => {
            console.log('fail:', res);
        },
    });
} else {
    wx.showModal({
        content: '你的微信版本过低，请更新至最新版本。',
        showCancel: false,
    });
}
```
h5
```javascript
wx.config({
    // 参考：https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
});
wx.ready(function () {
    wx.checkJsApi({
        jsApiList: ['requestMerchantTransfer'],
        success: function (res) {
            if (res.checkResult['requestMerchantTransfer']) {
                WeixinJSBridge.invoke('requestMerchantTransfer', {
                        mchId: '1230000000',
                        appId: 'wx8888888888888888',
                        package: 'affffddafdfafddffda==',
                    },
                    function (res) {
                        if (res.err_msg === 'requestMerchantTransfer:ok') {
                            // res.err_msg将在页面展示成功后返回应用时返回success，并不代表付款成功
                        }
                    }
                );
            } else {
                alert('你的微信版本过低，请更新至最新版本。');
            }
        }
    });
});
```

<a id="wechat_payment_cancel6043"></a>

#### 6.11.3 撤销转账（6043）

##### 6.11.3.1 接口前置说明

1. 此接口为微信零钱新模式专用，商户通过转账接口发起付款后，在用户确认收款之前可以通过该接口撤销付款。该接口返回成功仅表示撤销请求已受理，系统会异步处理退款等操作，以最终查询单据返回状态为准。

2. merBatchId,merOrderId  或 orderNo 二选一必填。

3. 发起此接口的交易前置状态为: 6 待用户确认 。才可调用此接口发起撤销。

##### 6.11.3.2 reqData 参数


| 字段       | 必填 | 类型 | 长度 | 说明                                                   |
| ---------- | ---- | --- | ---- | ------------------------------------------------------ |
| merBatchId | 否   | 字符串 | 32    | 商户批次号  |
| merOrderId | 否   | 字符串 | 32   | 商户订单号                                             |
| orderNo    | 否   | 数字  | 25   | 平台订单号，唯一不重复               |

##### 6.11.3.3 resData 参数

| 字段       | 必填  | 类型  | 长度  | 说明                                                     |
| ---------- |-----|-----|-----|--------------------------------------------------------|
| merBatchId | 否   | 字符串 | 32    | 商户批次号  |
| merOrderId | 是   | 字符串 | 32  | 商户订单号，同一商户维度内不可重复                                      |
| orderNo    | 是   | 数字  | 25  | 平台订单号，唯一不重复                                       |

<a id="query_task_list6031"></a>

### 6.12 任务查询（6031）

#### 6.12.1 reqData 参数

无

#### 6.12.2 resData 参数

| 字段    | 必填 | 类型   | 长度  | 说明                                          |
| ------- | ---- | ------ |-----| --------------------------------------------- |
| taskId | 是   | 数字 | -   | 任务编号 |
| taskName | 是   | 字符串 | -   | 任务名称 |
| taskStatus | 是   | 字符串 | -   | 任务状态  待发布:TO_RELEASE,平台待审核:PLATFORM_REVIEW_WAIT,平台审核拒绝:PLATFORM_REVIEW_REFUSE,服务商待审核:LEVY_REVIEW_WAIT,服务商审核拒绝:LEVY_REVIEW_REFUSE,待开始:TO_START,进行中:TASK_CONDUCT,已关闭:TASK_SHUT,已完成:TASK_END |
| startTime | 是   | 字符串 | -   | 任务开始日期 yyyy-MM-dd |
| endTime | 是   | 字符串 | -   | 任务结束日期 yyyy-MM-dd |


<a id="balance_query6005"></a>
### 6.13 自由职业者剩余下发额度查询（6005）

#### 6.13.1 接口前置说明

!> 1. 只能查询已经成功签约服务商的自由职业者剩余下发额度。

#### 6.13.2 reqData 参数

| 字段       | 必填 | 类型   | 说明                      |
| ---------- | ---- | ------ | ------------------------- |
| providerId | 是   | 数字   | 服务商 ID（联系客服获取） |
| name       | 是   | 字符串 | 姓名                      |
| idCard     | 是   | 字符串 | 身份证号                  |

#### 6.13.3 resData 参数

| 字段       | 必填 | 类型   | 说明                      |
| ---------- | ---- | ------ | ------------------------- |
| providerId | 是   | 数字   | 服务商 ID（联系客服获取） |
| name       | 是   | 字符串 | 姓名                      |
| idCard     | 是   | 字符串 | 身份证号                  |
| balance    | 是   | 数字   | 剩余额度 (单位：分)       |

<a id="receipt_query6024"></a>
### 6.14 交易回单查询（6024）

#### 6.14.1 接口前置说明

1. 正常电子回单 T+2 日可查询（银行卡支持，联动通道不支持）；
2. 如果查询对应订单没有找到电子回单，接口将返回“暂无电子回单”，如有疑问请咨询专属客服；
3. 电子回单地址有效期为 30 天，建议下载保存。

#### 6.14.2 reqData 参数

| 字段       | 必填 | 类型   | 长度 | 说明              |
| ---------- | ---- | ------ | -- |-----------------|
| merBatchId | 否   | 字符串 | 32 | 商户批次号，**唯一不可重复**。 |
| merOrderId | 是   | 字符串 | 32   | 客户订单号，**唯一不可重复**。   |

#### 6.14.3 resData 参数

| 字段        | 必填 | 类型   | 长度 | 说明                             |
| ----------- | ---- | ------ | -- | -------------------------------- |
| merBatchId  | 否   | 字符串 | 32 | 商户批次号                       |
| merOrderId  | 否   | 字符串 | 32   | 客户订单号                       |
| receiptUrl | 否   | 字符串 | 100 | 电子回单地址                     |

<a id="apply_task6053"></a>
### 6.15 任务领取(6053)
#### 6.15.1 接口说明
1.让指定用户领取指定任务
#### 6.15.2 reqData 参数

| 字段       | 必填 | 类型  | 长度  | 说明                    |
| ---------- | ---- |-----|-----|-----------------------|
| name | 是   | 字符串 | 85  | 用户姓名 (去首尾空格)          |
| idCard | 是   | 字符串  | 18  | 用户身份证号                |
| mobile | 是   | 字符串  | 11  | 用户手机号   (去首尾空格)       |
| taskId | 是   | 字符串  | 120 | 任务 ID，字符串传入，但必须为纯数字(非纯数字时，接口返回失败) |

#### 6.15.3 resData 参数

| 字段       | 必填 | 类型      | 说明                                                                                                                                                                                              | 长度  |
| ---------- | ---- |---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----|
| taskId    | 是   | 字符串      | 任务 ID                                                                                                                                                                                           | 120 |
| applyId | 是   | 数字      | 任务领取单 ID                                                                                                                                                                                        | 5   |
| applyStatus | 是   | 字符串     | 领取单状态:<br/>`TASKAPPLY_UNCLAIMED` 待领取<br/> `TASKAPPLY_AUDITED`  待审核<br/> `TASKAPPLY_PASS` 已领取<br/>  `TASKAPPLY_REFUSE`  已拒绝<br/>  `TASKAPPLY_INVALID`  结算单已取消<br/>  `CONFIRMED`  已确认<br/>  `TO_CONFIRMED`  待确认<br/>  `IN_CONFIRMED`  确认中 | 30  |
| claimed | 是   | 布尔 | 是否已命中领取结果：<br/> 1. **claimed=false** 时，通常只返回 `taskId` 和 `claimed`<br/>  2.业务侧判断“**是否领取成功**”时，建议同时看 `claimed` 和 `applyStatus`<br/>                                                                     | 5   |
<a id="query_apply_task6054"></a>
### 6.16 任务领取结果查询(6054)
#### 6.16.1 接口说明
1.查询指定用户在指定任务上的领取结果
#### 6.16.2 reqData 参数

| 字段       | 必填 | 类型  | 长度  | 说明                    |
| ---------- | ---- |-----|-----|-----------------------|
| name | 是   | 字符串 | 85  | 用户姓名 (去首尾空格)          |
| idCard | 是   | 字符串  | 18  | 用户身份证号                |
| mobile | 是   | 字符串  | 11  | 用户手机号   (去首尾空格)       |
| taskId | 是   | 字符串  | 120 | 任务 ID，字符串传入，但必须为纯数字(非纯数字时，接口返回失败) |

#### 6.16.3 resData 参数

| 字段       | 必填 | 类型      | 说明                                                                                                                                                                                              | 长度  |
| ---------- | ---- |---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----|
| taskId    | 是   | 字符串      | 任务 ID                                                                                                                                                                                           | 120 |
| applyId | 是   | 数字      | 任务领取单 ID                                                                                                                                                                                        | 5   |
| applyStatus | 是   | 字符串     | 领取单状态:<br/>`TASKAPPLY_UNCLAIMED` 待领取<br/> `TASKAPPLY_AUDITED`  待审核<br/> `TASKAPPLY_PASS` 已领取<br/>  `TASKAPPLY_REFUSE`  已拒绝<br/>  `TASKAPPLY_INVALID`  结算单已取消<br/>  `CONFIRMED`  已确认<br/>  `TO_CONFIRMED`  待确认<br/>  `IN_CONFIRMED`  确认中 | 30  |
| claimed | 是   | 布尔 | 是否已命中领取结果：<br/> 1. **claimed=false** 时，通常只返回 `taskId` 和 `claimed`<br/>  2.业务侧判断“**是否领取成功**”时，建议同时看 `claimed` 和 `applyStatus`<br/>                                                                     | 5   |
## 7. 商户账户管理(v2.0)

<a id="acc_open6003"></a>

### 7.1 账户余额查询（6003）

#### 7.1.1 接口前置说明

1. 该接口支持商户查询在各服务商预留的余额（非银行卡余额）；
2. 线下打款充值成功后，账户余额更新有 15 分钟左右延迟，请稍后查询。

#### 7.1.2 reqData 参数

| 字段       | 必填 | 类型 | 长度 | 说明                      |
| ---------- | ---- | ---- | ---- | ------------------------- |
| providerId | 是   | 数字 | 5    | 服务商 ID（联系客服获取） |
| paymentType | 否   | 数字   | 1    | 账户类型  0：银行卡，1：支付宝，2：微信                                    |

#### 7.1.3.resData 参数

| 字段       | 必填 | 类型 | 长度 | 说明                     |
| ---------- | ---- | ---- | ---- | ------------------------ |
| balance    | 是   | 数字 |      | 现金账户余额，金额（单位：分） |
| marketingAmt    | 否   | 数字 |      | 营销账户余额（单位：分） |
| providerId | 是   | 数字 | 5    | 服务商 ID                |

<a id="query_charge_recode6018"></a>

### 7.2 充值记录主动查询（6018）

#### 7.2.1 接口前置说明

1. 接口仅返回充值成功的记录，如确定已打款但未查询到记录，请联系专属客服查询；
2. 接口最大查询范围：支持查询一个月内（31 天）的充值记录。

#### 7.2.2 reqData 参数

| 字段       | 必填 | 类型   | 说明                                   |
| ---------- | ---- | ------ | -------------------------------------- |
| providerId | 是   | 数字   | 服务商 ID（联系客服获取）              |
| startDate  | 是   | 字符串 | 充值申请时间（查询起始时间）yyyy-MM-dd |
| endDate    | 是   | 字符串 | 充值申请时间（查询结束时间）yyyy-MM-dd |

#### 7.2.3 resData 参数

| 字段              | 必填 | 类型   | 说明                                                   |
| ----------------- | ---- | ------ | ------------------------------------------------------ |
| providerId        | 是   | 数字   | 服务商 ID                                              |
| providerName        | 是   | 字符串   | 服务商名称                                             |
| enterpriseOrderNo | 是   | 字符串 | 商户订单号                                             |
| orderNo           | 是   | 字符串 | 订单流水号                                             |
| rechargeAmt       | 是   | 数字   | 充值金额 单位（分）（商户实际打款金额）                |
| feeAmt            | 是   | 数字   | 充值手续费金额 单位（分）                              |
| accountingAmt     | 是   | 数字   | 实际到账金额 单位（分）                                          |
| rechargeState     | 是   | 字符串  | 充值状态（PROCESSING=处理中，SUCCESS=成功，FAIL=失败） |
| bankRemark        | 否   | 字符串 | 转账备注                                             |
| receiveBankNo        | 否   | 字符串 | 收款银行账号                                             |
| receiveBankName        | 否   | 字符串 | 收款银行账户名                                             |
| payBankName        | 否   | 字符串 | 付款银行账户名                                             |
| payBankNo        | 否   | 字符串 | 付款银行账号                                             |
| createTime        | 是   | 字符串 | 创建时间                                               |
| updateTime        | 是   | 字符串 | 完成时间                                               |
| errMsg            | 否   | 字符串 | 错误信息                                               |


### 7.3 充值结果异步回调

#### 7.3.1 通知前置说明

1. 商户在商户端配置回调地址方可收到通知，配置方式见「 接入前准备 - 7 」；
2. 接口仅通知充值成功结果，失败不会通知。
3. 异步通知由于网络等各种原因可能延时或失败，请务必对接“充值记录主动查询”接口。

#### 7.3.2 resData 参数

| 字段              | 必填 | 类型  | 说明                                                   |
| ----------------- | ---- |-----| ------------------------------------------------------ |
| providerId        | 是   | 数字  | 服务商 ID                                              |
| providerName        | 是   | 字符串   | 服务商名称                                             |
| enterpriseOrderNo | 是   | 字符串 | 商户订单号                                             |
| orderNo           | 是   | 字符串 | 订单流水号                                             |
| rechargeAmt       | 是   | 数字  | 充值金额 单位（分）（商户实际打款金额）                |
| feeAmt            | 否   | 数字  | 充值手续费金额 单位（分）                              |
| accountingAmt     | 是   | 数字  | 实际到账金额 单位（分）                                          |
| rechargeState     | 是   | 字符串 | 充值状态（PROCESSING=处理中，SUCCESS=成功，FAIL=失败） |
| bankRemark        | 否   | 字符串 | 转账备注                                             |
| receiveBankNo        | 否   | 字符串 | 收款银行账号                                             |
| receiveBankName        | 否   | 字符串 | 收款银行账户名                                             |
| payBankName        | 否   | 字符串 | 付款银行账户名                                             |
| payBankNo        | 否   | 字符串 | 付款银行账号                                             |
| createTime        | 是   | 字符串 | 创建时间                                               |
| updateTime        | 是   | 字符串 | 完成时间                                               |
| errMsg            | 否   | 字符串 | 错误信息                                               |

### 7.4 账户体系分账能力

<a id="query_enable_charge6019"></a>

#### 7.4.1 查询可分账金额（6019）

##### 7.4.1.1 接口前置说明

!> 1. 说明：可充值金额=电子账户余额-已发起充值但尚处于处理中金额

##### 7.4.1.2 reqData 参数

| 字段     | 必填 | 类型   | 说明                                                   |
| -------- | ---- | ------ | ------------------------------------------------------ |
| subAccNo | 是   | 字符串 | 银行电子账户（贵司在平台开通的银行电子账户） |

##### 7.4.1.3 resData 参数

| 字段                 | 必填 | 类型   | 说明                                                   |
| -------------------- | ---- | ------ | ------------------------------------------------------ |
| availableRechargeAmt | 是   | 数字   | 可充值金额（单位：分）                                 |
| subAccAmt            | 是   | 字符串 | 电子账户余额（单位：分）                               |
| subAccNo             | 是   | 字符串 | 银行电子账户（贵司在平台开通的银行电子账户） |

<a id="apply_charge6020"></a>

#### 7.4.2 申请分账（6020）

##### 7.4.2.1 接口前置说明

!> 1. 申请分账接口请求频次限制：同一商户一分钟一次。

##### 7.4.2.2 reqData 参数

| 字段              | 必填 | 类型   | 说明                                                   |
| ----------------- | ---- | ------ | ------------------------------------------------------ |
| providerId        | 是   | 数字   | 服务商 ID                                              |
| subAccNo          | 是   | 字符串 | 银行电子账户（贵司在平台开通的银行电子账户） |
| rechargeAmt       | 是   | 数字   | 充值金额（单位：分）                                   |
| enterpriseOrderNo | 是   | 字符串 | 商户充值订单号                                         |
| notifyUrl         | 否   | 字符串 | 分账结果回调地址（不填则不通知充值结果）               |

##### 7.4.2.3 resData 参数

| 字段              | 必填 | 类型   | 说明                                                   |
| ----------------- | ---- | ------ | ------------------------------------------------------ |
| providerId        | 是   | 数字   | 服务商 ID                                              |
| enterpriseOrderNo | 是   | 字符串 | 商户订单号                                             |
| orderNo           | 是   | 字符串 | 订单流水号                                             |
| rechargeAmt       | 是   | 字符串 | 充值金额（单位：分）（商户实际打款金额）               |
| feeAmt            | 否   | 字符串 | 充值手续费金额（单位：分）                             |
| accountingAmt     | 否   | 数字   | 实际到账充值金额（单位：分）=充值金额 - 手续费         |
| rechargeState     | 否   | 字符串 | 充值状态（PROCESSING=处理中，SUCCESS=成功，FAIL=失败） |
| createTime        | 否   | 字符串 | 创建时间                                               |
| updateTime        | 否   | 字符串 | 完成时间                                               |
| errMsg            | 否   | 字符串 | 错误信息                                               |


<a id="query_charge_result6021"></a>

#### 7.4.3 分账结果主动查询（6021）

##### 7.4.3.1 接口前置说明

!> 1. enterpriseOrderNo 和 orderNo 两个查询条件至少需要填写一个。

##### 7.4.3.2.reqData 参数

| 字段              | 必填 | 类型   | 说明                 |
| ----------------- | ---- | ------ | -------------------- |
| enterpriseOrderNo | 否   | 字符串 | 商户充值订单号       |
| orderNo           | 否   | 字符串 | 平台充值订单号 |

##### 7.4.3.3 resData 参数（rechargeRecordList）

| 字段              | 必填 | 类型   | 说明                                                   |
| ----------------- | ---- | ------ | ------------------------------------------------------ |
| providerId        | 是   | 数字   | 服务商 ID                                              |
| providerName        | 是   | 字符串   | 服务商名称                                             |
| rechargeState     | 是   | 数字   | 充值状态（PROCESSING=处理中，SUCCESS=成功，FAIL=失败） |
| accountingAmt     | 是   | 数字   | 实际到账金额 单位（分）                                          |
| rechargeAmt       | 是   | 数字   | 充值金额 单位（分）                                              |
| feeAmt            | 是   | 数字   | 充值手续费金额（单位：分）                             |
| enterpriseOrderNo | 是   | 字符串 | 商户充值订单号                                         |
| orderNo           | 是   | 字符串 | 平台充值订单号                                   |
| createTime        | 是   | 字符串 | 创建时间                                               |
| updateTime        | 否   | 字符串 | 完成时间                                               |
| errorMsg          | 否   | 字符串 | 错误信息                                               |

#### 7.4.4 分账结果异步回调

##### 7.4.4.1 接口前置说明

1. 商户在申请分账时填写异步回调地址（notifyUrl）方可收到通知；
2. 接口仅通知充值成功结果，失败不会通知；
3. 异步通知由于网络等各种原因可能延时或失败，请务必对接“分账结果主动查询”接口与“充值结果主动查询”接口。

##### 7.4.4.2 resData 参数

| 字段              | 必填 | 类型   | 说明                                      |
| ----------------- | ---- | ------ |-----------------------------------------|
| providerId        | 是   | 数字   | 服务商 ID                                  |
| providerName        | 是   | 字符串   | 服务商名称                                   |
| enterpriseOrderNo | 是   | 字符串 | 商户订单号                                   |
| orderNo           | 是   | 字符串 | 订单流水号                                   |
| rechargeAmt       | 是   | 数字   | 充值金额 单位（分）（商户实际打款金额）                    |
| feeAmt            | 否   | 数字   | 充值手续费金额 单位（分）                           |
| accountingAmt     | 是   | 数字   | 实际到账金额 单位（分）                            |
| rechargeState     | 是   | 数字   | 充值状态（PROCESSING=处理中，SUCCESS=成功，FAIL=失败） |
| bankRemark           | 是   | 字符串 | 转账备注                                    |
| createTime        | 是   | 字符串 | 创建时间                                    |
| updateTime        | 是   | 字符串 | 完成时间                                    |
| errMsg            | 否   | 字符串 | 错误信息                                    |

##### 7.4.4.3 通知前置说明

1. 当接收到通知时需要检查业务状态是否已更新，同笔订单切勿重复处理。
2. 处理成功以后需要返回 佣金保 **SUCCESS（大写字符串）**。未响应 SUCCESS 或者网络超时，异步通知 2min 一次，共 5 次，之后不再通知。
3. 处理示例：见 Demo 中 RechargeNotifyController

<a id="place_protocol_query6056"></a>

### 7.5 企业协议查询接口(6056)

#### 7.5.1 接口前置说明

1. 如传providerId，则只查询该签约方为该服务商的协议

#### 7.5.2 reqData 参数

| 字段       | 必填 | 类型  | 长度 | 说明                                                                     |
| ---------- | ---- |-----| ---- | ------------------------------------------------------------------------ |
| providerId | 否   | 数字 | 5   | 服务商 ID                                               |

#### 7.5.3 resData 参数

| 字段       | 必填 | 类型  | 长度 | 说明                                 |
| ---------- | ---- |-----| ---- | ------------------------------------ |
| protocolInfos | 否   | 数组  | -    | 查询数据，见下面 protocolInfos 属性说明 |

protocolInfos 字段

| 字段       | 必填 | 类型  | 长度 | 说明                                                                     |
| ---------- | ---- |-----| ---- | ------------------------------------------------------------------------ |
| product        | 否   | 字符串   | 8   | 业务线"0"：佣金保"1"：零工无忧"2"：网络红包"3"：麦的好                                           |
| agreementName        | 否   | 字符串   | 8   | 协议名称                                           |
| signParty         | 否   | 字符串   | 8   | 签约方                 |
| signStatus        | 否   | 数字   | -   | 签署状态0：待签署1：签署中2：已签署3：签署失败4、已过期                                           |
| contractUrl        | 否   | 字符串   | -   | 协议文件                                           |
| resMsg      | 否   | 数字   |     | 响应信息                                                                                                              |
| startDate  | 否   | 字符串   |     | 合同起始日期(格式：yyyy-MM-dd)                                                                               |
| dueDate     | 否   | 字符串   |     | 合同到期日期(格式：yyyy-MM-dd)    |

## 8. 商户开票管理(v2.0)

<a id="query_invoice_type6015"></a>

### 8.1 查询开票类目（6015）

#### 8.1.1 reqData 参数

| 字段       | 必填 | 类型 | 说明                      |
| ---------- | ---- | ---- | ------------------------- |
| providerId | 是   | 数字 | 服务商 ID（联系客服获取） |

#### 8.1.2 resData 参数

List 形式：

| 字段          | 必填 | 类型 | 说明                      |
| ------------- | ---- |---| ------------------------- |
| providerId    | 是   | 数字 | 服务商 ID（联系客服获取） |
| invoiceTypeId | 是   | 数字 | 类目 ID                   |
| invoiceName   | 是   | 字符串  | 类目名称                  |


<a id="mer_invoice_query6012"></a>

### 8.2 可开票金额查询（6012）

#### 8.2.1 reqData 参数

| 字段       | 必填 | 类型 | 说明                      |
| ---------- | ---- | ---- | ------------------------- |
| providerId | 是   | 数字 | 服务商 ID（联系客服获取） |

#### 8.2.2 resData 参数

| 字段       | 必填 | 类型 | 长度 | 说明                                                      |
| ---------- | ---- | ---- | ---- | --------------------------------------------------------- |
| providerId | 是   | 数字 | 20   | 服务商 ID |
| availableAmt | 是   | 数字 | -  | 可开票金额 单位（分） |

<a id="applay_invoice6013"></a>

### 8.3 申请开票（6013）

#### 8.3.1 reqData 参数

| 字段          | 必填 | 类型   | 说明                                      |
| ------------- | ---- | ------ | ----------------------------------------- |
| providerId    | 是   | 数字   | 服务商 ID（联系客服获取）                  |
| invoiceTypeId | 是   | 数字   | 发票类目 ID                                 |
| amt           | 是   | 数字   | 申请开票金额（单位：整数分）               |
| invoiceType   | 是   | 字符串 | 发票类型（SPECIAL：专票、PLAIN：普票）     |
| invoiceMemo   | 否   | 字符串 | 申请开票备注                               |
| contact       | 否   | 字符串 | 快递收件人员不填默认是商户系统中录入的信息 |
| mobile        | 否   | 字符串 | 快递电话不填默认是商户系统中录入的信息     |
| postAddress   | 否   | 字符串 | 快递地址不填默认是商户系统中录入的信息     |
| ticketType    | 是   | 字符串 | 发票形式:PAPER(纸票),ELECTRONIC(电票)      |

#### 8.3.2 resData 参数

| 字段           | 必填 | 类型   | 说明                         |
| -------------- | ---- | ------ | ---------------------------- |
| providerId     | 是   | 数字   | 服务商 ID（联系客服获取）    |
| invoiceApplyNo | 是   | 字符串 | 发票申请号                   |
| invoiceTypeId  | 是   | 数字   | 发票类目                     |
| amt            | 是   | 数字   | 申请开票金额（单位：整数分） |
| invoiceMemo    | 否   | 字符串 | 申请开票备注                 |
| contact        | 是   | 字符串 | 快递收件人员默认是系统中录入 |
| mobile         | 是   | 字符串 | 快递电话默认是系统中录入     |
| postAddress    | 是   | 字符串 | 快递地址默认是系统中录入     |


<a id="query_invoice_result6014"></a>

### 8.4 查询开票结果（6014）

#### 8.4.1 reqData 参数

| 字段           | 必填 | 类型   | 说明                                   |
| -------------- | ---- | ------ | -------------------------------------- |
| invoiceApplyNo | 否   | 字符串 | 发票申请号                             |
| providerId     | 否   | 数字   | 服务商 ID（联系客服获取） (与invoiceApplyNo不能同时为空)             |
| startDate      | 否   | 字符串 | 发票申请时间（查询起始时间）yyyy-MM-dd |
| endDate        | 否   | 字符串 | 发票申请时间（查询结束时间）yyyy-MM-dd |

#### 8.4.2 resData 参数

| 字段            | 必填 | 类型   | 说明                                         |
| --------------- | ---- | ------ |--------------------------------------------|
| merId           | 是   | 字符串 | 商户号                                        |
| providerId      | 否   | 数字   | 服务商 ID（联系客服获取）                             |
| invoiceApplyNo       | 是   | 字符串 | 发票申请号                                      |
| createTime      | 是   | 字符串 | 发票申请时间  yyyy-MM-dd HH:mm:ss                |
| invoiceTypeId   | 是   | 数字   | 发票类目                                       |
| amt             | 是   | 字符串 | 发票金额（单位：分）                                 |
| invoiceMemo     | 否   | 字符串 | 申请开票备注                                     |
| state           | 是   | 数字   | 发票状态（0 开票中，1 已开票，2 已拒绝，3 已废弃，4 已寄出，5  已红冲） |
| contact         | 是   | 字符串 | 快递收件人员                                     |
| mobile          | 是   | 字符串 | 快递电话                                       |
| postAddress     | 是   | 字符串 | 快递地址                                       |
| invoiceNum      | 否   | 字符串 | 发票号码                                       |
| invoiceCode     | 否   | 字符串 | 发票代码                                       |
| expressId       | 否   | 字符串 | 快递公司                                       |
| trackNo         | 否   | 字符串 | 快递单号                                       |
| invoiceFileList | 否   | 字符串 | 发票文件列表(可能会存在多个文件，多个文件中间用“,”分隔)             |
| invoiceType | 否   | 字符串 | 发票类型（SPECIAL：专票、PLAIN：普票）                  |
| ticketType | 否   | 字符串 | 发票形式:PAPER(纸票),ELECTRONIC(电票)              |
| billSuccessTime | 否   | 字符串 | 发票完成时间  yyyy-MM-dd HH:mm:ss                |

## 9. 商户对账(v2.0)

<a id="check_file6004"></a>

### 9.1 对账文件获取（6004）

#### 9.1.1 接口前置说明

1. 对账文件仅包含结算成功的订单记录，目前仅支持交易成功半年之内的记录，对账单形式为 excel文件；
2. 对账文件T+1日生成，当天的对账单文件次日凌晨 6 点后可以下载；
3. 对账文件中付款时间定义：通过企业门户付款文件付款的即输入密码的时间；API付款的为订单创建时间；
4. 文件格式样例：

![dzwj.png](/images/dzwj.png)


#### 9.1.2 reqData 参数

| 字段     | 必填 | 类型   | 说明                             |
| -------- | ---- | ------ | -------------------------------- |
| billDate | 是   | 字符串 | 交易成功日期（格式：yyyy-MM-dd） |

#### 9.1.3 resData 参数

| 字段     | 必填 | 类型   | 说明                             |
| -------- | ---- | ------ | -------------------------------- |
| filePath | 否   | 字符串 | 对账文件下载链接地址             |
| billDate | 是   | 字符串 | 交易成功日期（格式：yyyy-MM-dd） |

<a id="user_tax_paid_report_url6047"></a>
### 9.2 个人完税明细查询前须知(6047)
#### 9.2.1 接口前置说明
1.正常每月征期后3个工作日可查询<br>
2.如果查询对应月份和服务商，没有找到完税明细，接口将返回错误码 6111 暂无完税明细<br>
3.完税明细地址有效期为 60 天，建议客户下载保存<br>

#### 9.2.2 reqData 参数

| 字段       | 必填 | 类型   | 长度 | 说明                                                                             |
| ---------- | ---- | ------ | ---- | -------------------------------------------------------------------------------- |
| providerId       | 是   | 数字 | 20   | 服务商ID（联系客服获取）    |
| declarePeriod     | 是   | 字符串 | 6   | 税款所属期，格式举例为“202512”            |



#### 9.2.3 resData 参数



| 字段       | 必填 | 类型   | 长度 | 说明                                                                             |
| ---------- | ---- | ------ | ---- | -------------------------------------------------------------------------------- |
| resData     | 否   | 字符串 | 256   | 完税明细地址        |

## 10 服务商结算单(v2.0)

<a id="provider_all_bill_query6048"></a>

### 10.1 企业所有结算单查询（6048）

#### 10.1.1 接口前置说明
注：月份格式强校验
#### 10.1.2 reqData 参数

| 字段     | 必填 | 类型   | 说明               |
| -------- | ---- | ------ |------------------|
| month | 是   | 字符串 | 结算月份（格式：yyyy-MM） |

#### 10.1.3 resData 参数（**数组**）

| 字段     | 必填 | 类型   | 说明                        |
| -------- | ---- | ------ |---------------------------|
| month | 否   | 字符串 | 结算月份                      |
| providerId | 是   | 字符串 | 服务商ID                     |
| flag | 是   | 字符串 | 是否生成结算单 true 生成 false 未生成 |
| fileUrl | 是   | 字符串 | pdf文件                     |

<a id="provider_bill_upload6055"></a>

### 10.2 企业结算单上传（6055）

#### 10.2.1 接口前置说明

#### 10.2.2 reqData 参数

| 字段     | 必填 | 类型   | 说明                             |
| -------- | ---- | ------ | -------------------------------- |
| month | 是   | 字符串 | 结算月份     （格式：yyyy-MM）                    |
| providerId | 是   | 字符串 | 服务商ID                     |
| fileUrl | 是   | 字符串 | pdf文件                     |

#### 10.2.3 resData 参数

| 字段     | 必填 | 类型   | 说明                             |
| -------- | ---- | ------ | -------------------------------- |
| month | 是   | 字符串 | 结算月份     （格式：yyyy-MM）                    |
| providerId | 是   | 字符串 | 服务商ID                     |
| fileUrl | 是   | 字符串 | pdf文件                     |
<a id="provider_bill_query6049"></a>

### 10.3 企业指定服务商结算单状态查询（6049）

#### 10.3.1 接口前置说明

#### 10.3.2 reqData 参数

| 字段     | 必填 | 类型   | 说明                          |
| -------- | ---- | ------ | ----------------------------- |
| month | 是   | 字符串 | 结算月份 （格式：yyyy-MM） |
| providerId | 是   | 字符串 | 服务商ID                  |

#### 10.3.3 resData 参数

| 字段     | 必填 | 类型  | 说明                                       |
| -------- | ---- |-----|------------------------------------------|
| month | 否   | 字符串 | 结算月份 （格式：yyyy-MM）                        |
| providerId | 是   | 字符串 | 服务商ID                                    |
| status | 是   | 数字  | 4 待签署 <br>5 签署中 <br>6 已签署 <br> 7 签署失败  <br> |


[filename](./deliver.md ':include')

## 12. 响应码

| 代码   | 说明                    | 注释                               |
|------|-----------------------|----------------------------------|
| 0000 | 成功                    | 同步请求响应成功                         |
| 6000 | 当前请求处理未明，请核实          | 返回此错误码，业务已作异步处理,不要当作错误处理,以查询结果为准 |
| 6001 | 参数错误                  | 检查参数是否正确                         |
| 6002 | 无效交易金额                | 订单金额不在允许范围内                      |
| 6003 | 客户信息不存在               | 确认客户信息与当前环境是否相符或者请求的客户id不存在      |
| 6004 | 客户状态未开通               | 客户状态被停用,联系客服确认客户状态               |
| 6005 | 客户秘钥为空                | 密钥为空,检查参数是否正确                    |
| 6006 | 请求数据验签失败              | 私钥错误,或者与在客户门户上传的公钥不匹配            |
| 6007 | 请求数据解密失败              | interkey(deskey)与客户端拿到的deskey不匹配 |
| 6008 | 商户在黑名单不允许交易           | 客户状态被列入黑名单,联系客服确认客户状态            |
| 6009 | 无客户风控信息               | 未配置风控信息,联系客服确认                   |
| 6010 | 无客户账户信息或账户状态无效        | 客户账户状态无效,联系客服确认                  |
| 6011 | 客户请求地址未配置白名单          | 请求的地址未配置白名单,联系客服确认或者检查客户门户配置     |
| 6012 | 客户批次号重复,请确认批次信息       | 客户批次号重复,请确认批次信息.商户维度唯一           |
| 6013 | 付款金额超限                | 付款金额低于配置该结算方式的限额,联系客服确认          |
| 6014 | 信息入库失败                |                                  |
| 6015 | 计算客户手续费出错或客户手续费率不存在   |                                  |
| 6016 | 该用户信息已经做过签约           | 签约信息已经做过签约,请勿重复签约                |
| 6017 | 客户付款方式未配置             | 付款方式未配置,联系客服确认                   |
| 6018 | 客户未开通该权限              | 客户未开通该权限,联系客服确认                  |
| 6019 | 商户余额不足                | 结算的对应服务商余额不足,联系客服确认              |
| 6020 | 未查询到订单                | 订单不存在,确认订单号是否正确                  |
| 6021 | 客户未签约此落地服务公司          | 客户未签约此落地服务公司,或者请求的的服务商Id不存在      |
| 6022 | 签约信息鉴权失败              |                                  |
| 6023 | 对账文件不存在               |                                  |
| 6024 | 姓名不能为空                |                                  |
| 6025 | 身份证号不能为空              |                                  |
| 6026 | 服务商 Id 不能为空           |                                  |
| 6027 | 用户未在该服务商签约            |                                  |
| 6028 | 未查询到对应的平台服务商          |                                  |
| 6029 | 该平台服务商不可用             |                                  |
| 6030 | 客户id不能为空              |                                  |
| 6031 | 客户批次号不能为空             |                                  |
| 6032 | 该客户批次号不存在             |                                  |
| 6033 | 客户订单号或者订单流水号不存在       |                                  |
| 6034 | 付款总笔数和明细不一致           |                                  |
| 6035 | 付款总金额和明细不一致           |                                  |
| 6036 | 批量付款只能选择一个服务商         |                                  |
| 6037 | 该用户签约中                |                                  |
| 6038 | 该客户不支持API接口签约         | 客户C端签约方式：API签约未开通,联系客服进行配置       |
| 6039 | 服务商需要上传身份证正反面图片       |                                  |
| 6040 | 服务商需要上传任务编码           |                                  |
| 6041 | 不存在该任务                | 任务不存在,请确认任务号是否正确,                |
| 6042 | 请求频繁请稍后6再试            | 请求频繁请稍后再试,请求频次过高限制20次/s          |
| 6043 | 三要素认证失败               |
| 6044 | 该客户未签约此服务商            | 客户未签约此落地服务公司,或者请求的的服务商Id不存在      |
| 6045 | 未查询到可开票类目信息           | 开票类目id未配置或者不存在                   |
| 6046 | 未查询到该客户在该服务商开票信息      | 没有查询到该客户在该服务商开票信息                |
| 6047 | 该客户订单需要待风控审核后才能下发     | 订单需要待风控审核后才能下发                   |
| 6048 | 风控审核未通过               | 风控审核未通过,请确认用户信息是否正确              |
| 6049 | 未查询到符合条件的记录           |                                  |
| 6050 | 任务状态有误                | 登陆门户获取任务状态,只有进行中的任务可以获取并使用       |                             |
| 6051 | 客户订单号重复,请确认订单信息       |                                  |
| 6052 | 该客户不支持 API 接口         | 客户合作方式：API接口未开通,联系客服确认           |
| 6053 | 该客户费率未配置              | 客户费率未配置,联系客服确认                   |
| 6054 | 充值订单号重复，请确认充值信息       |
| 6055 | 未查询到可充值金额             |
| 6056 | 充值账号与平台不一致            |
| 6057 | 充值金额大于可充值金额           | 银行子账号充值金额大于可充值金额                 |
| 6058 | 批量付款只能选择一种代付方式        |                                  |
| 6062 | 未查询到签约要素配置            | 签约方式未配置，联系客服确认                   |
| 6063 | 服务商配置未完成，请联系运营        |                                  |
| 6064 | 该企业不支持API,请联系运营       | 企业不支持API,请联系运营进行配置               |
| 6065 | 暂不支持该通道余额查询和分账        |                                  |
| 6067 | 商户公钥格式错误              | 商户公钥格式错误                         |
| 6093 | 未开通一键下发功能，请联系运营       | 企业不支持一键下发功能,请联系运营进行配置            |
| 6100 | 个人需手动确认收款，请在app或小程序发起 |                                  |
| 6101 | 校验签约，任务领取单等信息失败       |                                  |
| 6102 | 请求超时，请重试              |                                  |
| 6103 | 非待确认订单不可撤销            |                                  |
| 6104 | 当前时间不可结算,请稍后重试        |                                  |
| 6105 | 当前时间不可签约,请稍后重试        |                                  |
| 6220 | 暂无电子回单                |                                  |
| 6324 | 抱歉，该手机号已被其他用户注册使用，请更换其他手机号。如有疑问，请联系客服。                      |                                  |

