对公未清台账核销查询接口
说明
对公未清台账(预付未到票)核销查询接口,用于外部集成系统(如凭证生成系统)按月拉取预付未到票费用行及其核销明细。返回数据采用主从结构:
- 主表(预付费用行):来自
expense_non_receipt_record,关联报销单(corp_type = NO_RECEIPT)和保证金/押金台账(deposit_book)。
- 从表(核销明细
deductions):来自 expense_deduction,覆盖两类核销记录:
- 单据核销(
document):报销单提交时自动生成的核销,deductedFormCode 有值(关联报销单单据号)。
- 手动核销(
manual):财务在对公未清台账页面手动操作的核销,deductedFormCode 为空。
接口限制
- 鉴权方式:entToken(与现有 OpenAPI 接口一致)。
- 入参必须至少传其中一个过滤条件:
- 提单时间区间(
submitTimeStart + submitTimeEnd),或
- 报销单外码列表(
reimburseCodes)。
- 两个条件都不传时直接报错。
- 若传入提单时间区间,
submitTimeEnd - submitTimeStart 最多 31 天,超出会报错。
reimburseCodes 为报销单外码(reimburse_data.reimburse_code,即业务单据号),非内码 reimburse_data_code;列表内元素去重后精确匹配,最多建议不超过 200 个。
pageSize 默认 50、最大 100;超过 100 由服务端自动截断为 100。
- 查询结果按预付单据提单时间倒序排列。
接口地址
/api/openapi/corp-unsettled/verify/items
请求类型
POST
请求参数
参数说明
| 参数名称 |
类型 |
是否必填 |
参数说明 |
| submitTimeStart |
Long |
否 |
预付费用所在单据的提单时间起(毫秒时间戳,对应 reimburse_data.submitted_at)。与 submitTimeEnd 成对传入;若不传时间,则 reimburseCodes 必须非空 |
| submitTimeEnd |
Long |
否 |
预付费用所在单据的提单时间止(毫秒时间戳)。与 submitTimeStart 成对传入;若传入时间区间,submitTimeEnd - submitTimeStart 不得超过 31 天 |
| reimburseCodes |
List<String> |
否 |
预付费用所在报销单外码列表(精确匹配 reimburse_data.reimburse_code,即业务单据号,非内码 reimburse_data_code)。不传则不按单据号过滤;若不传,则提单时间区间必须非空 |
| pageNo |
Integer |
否 |
页码,默认为 1 |
| pageSize |
Integer |
否 |
分页大小,默认为 50,最大为 100 |
至少传一个:submitTimeStart + submitTimeEnd 与 reimburseCodes 至少需要传其中一个条件,否则接口返回参数校验错误。
参数样例
样例一:按提单时间区间查询
{
"submitTimeStart": 1751328000000,
"submitTimeEnd": 1754006399000,
"pageNo": 1,
"pageSize": 50
}
样例二:按报销单外码列表查询
{
"reimburseCodes": ["MK26071501", "MK26071602"],
"pageNo": 1,
"pageSize": 50
}
响应参数
响应参数说明
| 字段名称 |
字段类型 |
字段说明 |
| hasNextPage |
Boolean |
是否有下一页 |
| list |
List<CorpUnsettledVerifyItem> |
预付费用行列表(主从结构) |
预付费用行(CorpUnsettledVerifyItem)
| 字段名称 |
字段类型 |
字段说明 |
| expenseCode |
String |
预付费用行唯一 code |
| submitByCode |
String |
提单人工号(employee_id) |
| reimburseCode |
String |
预付费用所在报销单外码(reimburse_data.reimburse_code,即业务单据号) |
| expenseTypeCode |
String |
费用类型业务编码(bizCode) |
| expenseTypeName |
String |
费用类型名称 |
| formType |
String |
单据类型(单据小类业务编码 bizCode) |
| reimburseName |
String |
事由(单据名称,reimburse_data.reimburse_name) |
| legalEntityCode |
String |
公司抬头业务编码(bizCode) |
| coverDepartmentCode |
String |
承担部门业务编码(bizCode) |
| responsibleUserCode |
String |
责任人工号(employee_id,业务经办人,多个用英文逗号 , 拼接) |
| tradingPartnerCode |
String |
往来单位业务编码(bizCode) |
| nonReceiptAmount |
MonetaryAmount |
未到票金额(原币) |
| deductingAmount |
MonetaryAmount |
核销中金额(PENDING 状态累计;无核销中记录返回 null) |
| returningAmount |
MonetaryAmount |
退回中金额(仅 DEPOSIT/GUARANTEE 子类型有值,普通预付为 null) |
| deductedAmount |
MonetaryAmount |
已核销金额(COMPLETED 状态累计,等价于 receipt_amount) |
| returnedAmount |
MonetaryAmount |
已退回金额(仅 DEPOSIT/GUARANTEE 子类型有值,普通预付为 null) |
| consumeCcy |
String |
消费币种 |
| deductions |
List<CorpUnsettledVerifyDeduction> |
嵌套核销明细列表(按 recordExpenseCode 归属到当前费用行,无记录返回空数组) |
核销明细(CorpUnsettledVerifyDeduction)
| 字段名称 |
字段类型 |
字段说明 |
| deductedAt |
Long |
核销时间(毫秒时间戳) |
| deductedFormCode |
String |
核销单据号(外码 reimburse_data.reimburse_code;deductionType=document 时为到票核销费用所在单据号;manual 时返回空字符串) |
| deductedAmount |
MonetaryAmount |
本次核销金额(原币,币种同主行 consumeCcy) |
| deductedByCode |
String |
核销操作人工号(employee_id;单据核销时为费用提交人;手动核销时为操作人) |
| deductionType |
String |
核销类型:document 单据核销 / manual 手动核销 |
| reasonMsg |
String |
核销原因备注 |
MonetaryAmount(金额对象)
| 字段名称 |
字段类型 |
字段说明 |
| amount |
Number |
金额(已按企业币种精度处理) |
| currency |
String |
币种 code(如 CNY、USD) |
参数样例
含单据核销 + 手动核销的主从响应(含分页)
{
"code": "ACK",
"message": null,
"data": {
"list": [
{
"expenseCode": "NR2606101WXYZ001",
"submitByCode": "E001",
"reimburseCode": "MK26071501",
"expenseTypeCode": "TRAVEL",
"expenseTypeName": "差旅费",
"formType": "REIMBURSE_GENERAL",
"reimburseName": "2026 年 6 月差旅预付",
"legalEntityCode": "SUB001",
"coverDepartmentCode": "DEPT001",
"responsibleUserCode": "E001,E002",
"tradingPartnerCode": "VEN001",
"nonReceiptAmount": { "amount": 5000.00, "currency": "CNY" },
"deductingAmount": { "amount": 800.00, "currency": "CNY" },
"returningAmount": null,
"deductedAmount": { "amount": 1200.00, "currency": "CNY" },
"returnedAmount": null,
"consumeCcy": "CNY",
"deductions": [
{
"deductedAt": 1752912300000,
"deductedFormCode": "MK26071501",
"deductedAmount": { "amount": 1200.00, "currency": "CNY" },
"deductedByCode": "E001",
"deductionType": "document",
"reasonMsg": "报销单核销"
},
{
"deductedAt": 1752998700000,
"deductedFormCode": "",
"deductedAmount": { "amount": 800.00, "currency": "CNY" },
"deductedByCode": "E002",
"deductionType": "manual",
"reasonMsg": "财务手动核销尾差"
}
]
}
],
"hasNextPage": false
},
"requestId": null,
"errorCode": null,
"success": true
}
空结果响应(分页)
{
"code": "ACK",
"message": null,
"data": {
"list": [],
"hasNextPage": false
},
"requestId": null,
"errorCode": null,
"success": true
}
修改记录
2026-07-23 公司抬头字段由 subsidiaryCode 改为 legalEntityCode(取自 account-books.legalEntityCode,经 EntLegalEntityService 翻译为 bizCode)
2026-07-23 金额字段改为 MonetaryAmount 对象格式(含 amount + currency);事由字段由 businessPurpose 改为 reimburseName(取自 reimburse_data.reimburse_name);responsibleUserCode/deductedByCode 工号翻译修正
2026-07-23 响应字段说明与样例更新:code 类字段统一返回 bizCode(业务编码),人员 code 统一返回工号(employee_id);formType 改为单据小类 bizCode 而非 corpType
2026-07-21 入参调整:提单时间区间不再必填,与报销单外码列表(reimburseCodes) 二选一即可;单据号由内码 reimburseDataCode 改为外码 reimburseCodes(支持多个,精确匹配 reimburse_data.reimburse_code);响应字段 reimburseDataCode 改名为 reimburseCode 并使用外码,deductedFormCode 同步使用外码
2026-07-23 响应字段说明与样例更新:code 类字段统一返回 bizCode(业务编码),人员 code 统一返回工号(employee_id);formType 改为单据小类 bizCode 而非 corpType
2026-07-21 重新对外接口:v1 接口 /corp-unsettled/verify/list 未上线即作废;改为 v2 /corp-unsettled/verify/items,返回主从结构(预付费用行 + 嵌套 deductions),入参改为按预付单据提单时间区间 + 单据号查询
2026-07-17 新增对公未清台账核销查询接口文档