对公未清责任人批量转交

接口说明

按原责任人工号、接管人工号和未清类型,将已完成对公单据中的未清记录责任人批量转交给接管人。

该接口适用于员工离职或岗位调整后,由外部系统批量处理预付未到票、保证金未退和到票未支付记录的责任人交接。

调用前需完成 OpenAPI 认证,并在请求 Header 中传入 entCodetokenId。企业需开通对公支付功能。

接口地址

/corp/reimburse/unsettled/responsible/handover

外部网关完整路径:

/api/openapi/corp/reimburse/unsettled/responsible/handover

请求类型

POST JSON

请求参数

参数 类型 必须 描述
originalResponsibleEmployeeId String Y 原责任人工号,可以是在职或离职员工
targetResponsibleEmployeeId String Y 接管人工号,必须是在职员工,且不能与原责任人相同
unsettledType String Y 未清类型,支持 NO_RECEIPTDEPOSIT_UNREFUNDEDRECEIPT_UNPAID,不区分大小写

未清类型

说明
NO_RECEIPT 预付未到票,只处理预付款类型的未清支付明细
DEPOSIT_UNREFUNDED 保证金未退,处理保证金和押金类型的未清支付明细
RECEIPT_UNPAID 到票未支付,处理未结清的费用明细

请求示例

{
  "originalResponsibleEmployeeId": "E0001",
  "targetResponsibleEmployeeId": "E0002",
  "unsettledType": "NO_RECEIPT"
}

处理规则

  1. 每次调用按照服务端批量上限处理单据,默认最多处理 50 张,按照单据流程完成时间从早到晚处理。
  2. 每次请求只处理一种未清类型。已结清、已删除、无需冲销或不属于所选类型的明细不会处理。
  3. 原责任人可以是在职或离职员工;接管人必须是在职员工。
  4. 转交时仅移除原责任人,保留其他责任人,并将接管人加入责任人集合。
  5. 若单据已转交给接管人且不再包含原责任人,重复调用按成功处理,不重复修改或发送通知。
  6. 若单据责任人已被其他操作改为同时不包含原责任人和接管人,接口不会覆盖当前责任人,该单据按失败返回。
  7. 单张单据在独立事务中处理。单张失败不会回滚本批其他单据,失败单号和原因通过 failures 返回。
  8. 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 不属于支持的三个枚举值
单据责任人发生变更 单据当前责任人同时不包含原责任人和接管人,接口不会覆盖并发修改结果
单据不存在或不可处理 单据已删除、未完成,或对应未清明细已结清、删除、标记为无需冲销或已不再属于所选类型
单据处理失败 单张单据处理出现未预期异常,可记录单据号后重试或联系每刻支持人员

调用建议

同一企业、原责任人、接管人和未清类型建议串行调用:

  1. 调用接口并保存 failures 中的单据号和失败原因。
  2. hasMoretrue 时,使用相同请求参数继续调用。
  3. 对持续失败的单据,根据失败原因修复数据或确认责任人后再重试。
  4. hasMorefalse 时,当前未清类型的本轮转交处理完成。

修改记录

2026-08-14  DB-60795 新增对公未清责任人批量转交接口
2026-08-17  DB-60795 调整失败字段命名与批量规则说明

results matching ""

    No results matching ""