费用批量删除接口
说明
该接口用于一次删除多条系统内费用。系统按请求中的费用编码顺序逐条处理,单条费用删除失败不会阻断其他费用。
注意事项
- 单次最多支持删除 50 条费用。
- 每条费用沿用费用删除接口的删除规则。
- 若费用内关联发票,删除费用时会同步删除对应发票,可以通过接口再次导入。
- 费用状态不是未报销状态,则无法删除。
- 第三方费用无法删除(如订单导入费用和滴滴、携程等平台订单流入每刻生成的费用)。
- 费用发生了拆分,则无法删除。
- 请求参数合法时接口返回
ACK,每条费用的处理结果通过 data 中对应元素的 code 判断。
接口地址
/api/openapi/expense/batchDelete
请求类型
POST
请求参数
参数说明
| 字段名称 |
字段类型 |
是否必填 |
字段说明 |
| expenseCodes |
List<String> |
是 |
费用唯一编码列表,不能为空,单次最多 50 条,列表元素不能为空 |
参数样例
{
"expenseCodes": [
"FD232131",
"FD232132"
]
}
响应参数
响应参数说明
| 字段名称 |
字段类型 |
是否必填 |
字段说明 |
| code |
String |
是 |
接口状态码。请求参数合法并完成逐条处理时返回 ACK;请求参数非法时返回 NACK |
| errorCode |
String |
否 |
code 为 NACK 时返回的参数错误码 |
| message |
String |
否 |
响应说明 |
| data |
List<ExpenseDeleteResult> |
否 |
逐条删除结果列表,顺序与请求参数一致;请求参数非法时为空 |
ExpenseDeleteResult 数据结构
| 字段名称 |
字段类型 |
是否必填 |
字段说明 |
| expenseCode |
String |
是 |
费用编码 |
| code |
String |
是 |
处理结果,ACK 表示成功,NACK 表示失败 |
| errorCode |
String |
否 |
删除失败的错误码,成功时为 null |
| errorMessage |
String |
否 |
删除失败的原因,成功时为 null |
错误码
| 错误码 |
描述 |
解决方案 |
| ARG0001 |
expenseCodes 为空、包含空值或超过 50 条 |
检查请求参数后重新调用 |
| EXPENSE_ERR_58 |
非“未报销”费用无法被删除 |
将费用与单据解绑 |
| EXPENSE_ERR_0016 |
第三方费用无法被删除 |
联系系统管理员手动进行删除 |
| EXPENSE_ERR_55 |
拆分费用无法删除 |
拆分费用请在每刻系统内操作删除 |
| TECH0003 |
费用不存在 |
请确认费用编码是否存在 |
全部成功响应样例
{
"code": "ACK",
"data": [
{
"expenseCode": "FD232131",
"code": "ACK",
"errorCode": null,
"errorMessage": null
},
{
"expenseCode": "FD232132",
"code": "ACK",
"errorCode": null,
"errorMessage": null
}
],
"success": true
}
部分失败响应样例
{
"code": "ACK",
"data": [
{
"expenseCode": "FD232131",
"code": "ACK",
"errorCode": null,
"errorMessage": null
},
{
"expenseCode": "FD232132",
"code": "NACK",
"errorCode": "EXPENSE_ERR_58",
"errorMessage": "非'未报销'费用无法删除"
}
],
"success": true
}
请求参数错误响应样例
{
"code": "NACK",
"message": "expenseCodes 单次最多支持50条",
"data": null,
"errorCode": "ARG0001",
"success": false
}
修改记录
2026-06-09 调整批量删除响应数据结构说明
2026-06-08 新增费用批量删除接口