对公未清责任人批量转交
接口说明
按原责任人工号、接管人工号和未清类型,将已完成对公单据中的未清记录责任人批量转交给接管人。
该接口适用于员工离职或岗位调整后,由外部系统批量处理预付未到票、保证金未退和到票未支付记录的责任人交接。
调用前需完成 OpenAPI 认证,并在请求 Header 中传入 entCode 和 tokenId。企业需开通对公支付功能。
接口地址
/corp/reimburse/unsettled/responsible/handover
外部网关完整路径:
/api/openapi/corp/reimburse/unsettled/responsible/handover
请求类型
POST JSON
请求参数
| 参数 | 类型 | 必须 | 描述 |
|---|---|---|---|
| originalResponsibleEmployeeId | String | Y | 原责任人工号,可以是在职或离职员工 |
| targetResponsibleEmployeeId | String | Y | 接管人工号,必须是在职员工,且不能与原责任人相同 |
| unsettledType | String | Y | 未清类型,支持 NO_RECEIPT、DEPOSIT_UNREFUNDED、RECEIPT_UNPAID,不区分大小写 |
未清类型
| 值 | 说明 |
|---|---|
| NO_RECEIPT | 预付未到票,只处理预付款类型的未清支付明细 |
| DEPOSIT_UNREFUNDED | 保证金未退,处理保证金和押金类型的未清支付明细 |
| RECEIPT_UNPAID | 到票未支付,处理未结清的费用明细 |
请求示例
{
"originalResponsibleEmployeeId": "E0001",
"targetResponsibleEmployeeId": "E0002",
"unsettledType": "NO_RECEIPT"
}
处理规则
- 每次调用按照服务端批量上限处理单据,默认最多处理 50 张,按照单据流程完成时间从早到晚处理。
- 每次请求只处理一种未清类型。已结清、已删除、无需冲销或不属于所选类型的明细不会处理。
- 原责任人可以是在职或离职员工;接管人必须是在职员工。
- 转交时仅移除原责任人,保留其他责任人,并将接管人加入责任人集合。
- 若单据已转交给接管人且不再包含原责任人,重复调用按成功处理,不重复修改或发送通知。
- 若单据责任人已被其他操作改为同时不包含原责任人和接管人,接口不会覆盖当前责任人,该单据按失败返回。
- 单张单据在独立事务中处理。单张失败不会回滚本批其他单据,失败单号和原因通过
failures返回。 hasMore在仍有超过本批上限的候选单据或本批存在失败时返回true。调用方应保存失败信息,并使用相同参数继续调用;对于持续失败的单据,应先根据失败原因处理后再重试。
返回数据
data 参数
| 参数 | 类型 | 描述 |
|---|---|---|
| totalCount | Integer | 本次实际处理的单据数 |
| successCount | Integer | 本次处理成功的单据数,包含幂等成功的单据 |
| failureCount | Integer | 本次处理失败的单据数 |
| hasMore | Boolean | 是否需要继续处理。存在后续候选单据或本批存在失败时为 true |
| failures | List<CorpUnsettledHandoverFailure> | 本次失败明细,无失败时返回空数组 |
CorpUnsettledHandoverFailure
| 参数 | 类型 | 描述 |
|---|---|---|
| corpReimburseCode | String | 失败对公单号 |
| reason | String | 失败原因,按照请求语言返回国际化文案 |
全部成功示例
{
"code": "ACK",
"message": "对公未清责任人转交处理完成",
"data": {
"totalCount": 50,
"successCount": 50,
"failureCount": 0,
"hasMore": true,
"failures": []
},
"args": null,
"linkDetail": false,
"nonBizError": false
}
部分失败示例
部分单据失败时,接口顶层 code 仍返回 ACK,失败信息记录在 data.failures 中。
{
"code": "ACK",
"message": "对公未清责任人转交处理完成",
"data": {
"totalCount": 3,
"successCount": 2,
"failureCount": 1,
"hasMore": true,
"failures": [
{
"corpReimburseCode": "DG26080003",
"reason": "单据DG26080003的责任人已发生变更,请重试"
}
]
},
"args": null,
"linkDetail": false,
"nonBizError": false
}
请求校验失败示例
请求参数缺失、未清类型不合法、员工不存在、接管人不在职或原责任人与接管人相同时,整批不开始处理并返回 NACK。
{
"code": "NACK",
"message": "原责任人与接管人不能相同",
"data": null,
"args": null,
"linkDetail": false,
"nonBizError": false
}
常见失败原因
| 场景 | 说明 |
|---|---|
| 请求参数缺失 | 原责任人工号、接管人工号和未清类型均为必填参数 |
| 原责任人不存在 | 未找到对应工号的在职或离职员工 |
| 接管人不可用 | 接管人工号不存在或员工不在职 |
| 原责任人与接管人相同 | 两个工号对应同一员工,不能执行转交 |
| 未清类型不合法 | unsettledType 不属于支持的三个枚举值 |
| 单据责任人发生变更 | 单据当前责任人同时不包含原责任人和接管人,接口不会覆盖并发修改结果 |
| 单据不存在或不可处理 | 单据已删除、未完成,或对应未清明细已结清、删除、标记为无需冲销或已不再属于所选类型 |
| 单据处理失败 | 单张单据处理出现未预期异常,可记录单据号后重试或联系每刻支持人员 |
调用建议
同一企业、原责任人、接管人和未清类型建议串行调用:
- 调用接口并保存
failures中的单据号和失败原因。 hasMore为true时,使用相同请求参数继续调用。- 对持续失败的单据,根据失败原因修复数据或确认责任人后再重试。
hasMore为false时,当前未清类型的本轮转交处理完成。
修改记录
2026-08-14 DB-60795 新增对公未清责任人批量转交接口
2026-08-17 DB-60795 调整失败字段命名与批量规则说明