报销单导入接口
说明
该接口用于进行报销单导入,在将单据导入到系统内时,会将单据自动保存到对应的员工下。 目前该接口中,仅支持部分主要字段,如果您所需要导入的字段不在文档内,请联系每刻工作人员。
接口限制
10次/秒/企业
注意事项
- 若导入时,填写formCode,则会校验是否和每刻系统内单据号重复(每刻内单据作废/删除,不会释放原单据号)。
- 若导入报销单stagingFlag(暂存状态)为true,则只校验费用S级字段必填(对私:消费日期、费用金额、费用类型编码;对公:基于对私,增加到票时间、业务场景、是否对公),其他必填字段由提单人手动添加并提交。
- 单据导入成功且为提交状态,将会自动执行该单据所配置的审批流程,如果需要将单据直接完成,可以直接将单据配置为空流程(即没有审批人)。
- 在提单时,会正常触发预算占用、凭证、费控智能审核、自定义校验等校验,与员工手动提单相同。
- 若触发了表单配置的系统校验(如智能审核、单据校验组件、单据提交外部事件),且错误等级为“ERROR”(错误)、“NEED_REASON”(警告但需填写理由),则该单据会暂存至提单人的“我的单据”。
接口地址
/api/openapi/receive/reimburse
请求类型
POST
请求参数
参数说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
formCode | String | 否 | 有值时会使用该值作为单据号 |
reimburseName | String | 是 | 报销单事由 |
formSubTypeBizCode | String | 是 | 表单类型的业务编号 |
submittedUserEmployeeId | String | 是 | 提单人工号 |
legalEntityBizCode | String | 是 | 公司抬头编码 |
coverUserEmployeeId | String | 是 | 承担人工号 |
coverDepartmentBizCode | String | 是 | 承担部门编码 |
requestDepartmentBizCode | String | 否 | 提单人部门编码 |
comments | String | 否 (遵循表单配置) | 备注 |
payeeAccount | PayeeAccount | 否 | 收款信息,表单中收款类型为对公账户(往来单位)时,必传往来单位tradingPartnerBizCode |
collectionSchedule | CollectionTradingType | 否 | 多人收款,如果已填充该字段,则无需填充上方的收款账户字段,若传多人收款,则paymentSceneBizCode参数必填 |
paymentSceneBizCode | String | 否 | 多人收款场景(支付场景)表单业务编码,需要填写多人收款时必填 |
expenseCodes | List<String> | 是 | 费用的每刻内码Code列表,费用需要使用费用导入接口导入,导入后,会返回费用的Code(若stagingFlag为true,则此参数非必填) |
customObject | CustomObject | 否 | 自定义字段 |
tradingPartnerBizCode | String | 否 | 往来单位编码 |
submittedTime | Long | 否 | 提单时间,默认是单据导入时间 |
stagingFlag | boolean | 否 | 暂存标识,默认为false表示不暂存 |
preConsumeCodeList | List<String> | 否 | 报销单关联申请单号 |
contractCode | String | 否 | 报销单关联的合同单号 |
nonCheckContractAgent | bool | 否 | 不需要校验合同责任人,true-不校验,false-校验(默认校验) |
contractPaymentPlans | List<contractPaymentPlan> | 否 | 关联的付款合同含分期,需指定本期发起的期数和金额,格式见contractPaymentPlan说明 |
contractPayRecords | List<contractPayRecords> | 否 | 关联的付款合同含费用明细,可以指定占用支付金额以及到票金额(注:填写的明细行金额需要大于0,不填写的合同明细行默认金额为0) |
reimburseFormDataPlanPayTime | Long | 否 | 报销单计划付款时间 |
acceptCcyCode | String(3) | 否 | 单据收款币种(不传取收款账户的收款币种(此时要求账户的收款币种只有一个)),该币种需要在抬头和收款账户的限制收款币种内 |
travelPartnerInfo | List<TravelPartner> | 否 | 参与人 |
travelRouteList | List<TravelRoute> | 否 | 行程列表 |
associatedForm | List<associatedForm> | 否 | 关联单据组件,关联单据数量需要遵循表单配置,仅限关联每刻内部单据 |
loanFormCodes | List<String> | 否 | 核销借款 |
loanDeductionHistoryList | List<DeductionHistory> | 否 | 自定义核销金额(使用该组件,必须配合loanFormCodes使用,且本组件核销单据号必须在loanFormCodes内)。 需开启“核销借款”组件的“支持手动修改本次核销金额”开关 |
remittanceRemark | String | 否 | 汇款备注 |
invoiceBagCode | String | 否 | 发票袋编号 |
reportPositionBizCode | String | 否 | 职位编码 |
autoFillTradingPartnerByContract | bool | 否 | 根据合同自动填充报销单往来单位,满足(1.报销单关联合同组件未勾选'限制关联往来单位相同的合同单据' 2.未传参tradingPartnerBizCode) |
budgetOccupyTime | Long | 否 | 预算使用月份(时间戳) |
contractPayRecords 参数说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
expenseCode | String | 是 | 合同费用编码 |
payAmount | AmountInput | 是 | 本次支付金额 |
receiveAmount | AmountInput | 是 | 本次到票金额 |
contractPaymentPlan 参数说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
code | String | 是 | 合同付款计划行code |
paymentPlanAmountNow | AmountInput | 是 | 付款计划行本次支付金额 |
associatedForm 参数说明
字段名称 | 字段说明 | 是否必填 | 字段类型 |
---|---|---|---|
formCode | 单据编码 | 是 | String |
formType | 单据类型: PRECONSUME申请单 REIMBURSE报销单 LOAN借款单 CONTRACT合同 REPAYMENT还款单 |
是 | String |
formSubTypeBizCode | 单据类型编码 | 是 | String |
formSubTypeName | 单据类型名称 | 是 | String |
isMine | 是否为我的单据,true:我的, false:他人单据 | 是 | String |
参数样例
{
"formCode": "单据号",
"formSubTypeBizCode": "FT1908191E6CRDA8",
"submittedUserEmployeeId": "190013",
"reimburseName": "报销事由",
"legalEntityBizCode": "LEB001",
"coverUserEmployeeId": "200066",
"coverDepartmentBizCode": "DEPT001",
"expenseCodes": [
"EXP001",
"EXP002"
],
"tradingPartnerBizCode": "011506mk2020-06-20",
"payeeAccount": { //收款账户组件
"bankAcctName": "杭州每刻银行",
"bankAcctNumber": "6217000010001234123",
"paymentType": "BANK",
"accountType": "PERSONAL"
},
"collectionSchedule": [ //收款明细组件(多人收款)
{
"payeeAccount": {
"bankAcctName": "张三",
"bankAcctNumber": "123456789123456789",
"paymentType": "BANK",
"accountType": "PERSONAL",
"bankBranchNo": "105361048025"
},
"collectionTradingPartnerBizCode": "015108m",
"amountRatio": 100,
"amount": {
"amount": 100,
"currency": "CNY"
},
"collectionUserEmployeeId": "190016",
"collectionUserName": "张三",
"collectionUserTargetScope": "EMPLOYEE",
"collectionType": "BANK",
"acceptanceDraftCode": "789562787687234",
"acceptanceIssueDate": "2024-06-20",
"installmentInfo": {
"installmentExpectDate": 1602569779579
}
}
],
"customObject": {
"CF1393": "我是单行文本",
"remarkText": "我是单行文本",
"detail": [
{
"CF1400": "我是单行文本",
"remarkText": "我是单行文本"
}
]
},
"submittedTime": 1566305356934,
"stagingFlag": true,
"preConsumeCodeList": [
"MK211101001"
],
"contractCode": "合同code",
"contractPaymentPlans": [
{
"code": "PPI2305061EKL7NK0",
"paymentPlanAmountNow": {
"amount": "6",
"currency": "CNY"
}
}
],
"acceptCcyCode": "CNY",
"associatedForm": [
{
"formCode": "MK23030069",
"formType": "PRECONSUME",
"formSubTypeBizCode": "FT24739297869438025",
"formSubTypeName": "测试申请单",
"isMine": true
}
],
"budgetOccupyTime": 1566305356934
}
响应参数
响应参数说明
字段 | 字段类型 | 字段说明 |
---|---|---|
code | String | 返回结果 |
message | String | 返回提示 |
data | Json | 返回结果 |
success | boolean | 是否成功 |
参数样例
- 正常响应参数示例
{ "code": "ACK", "message": "操作成功", "data": "formCode", "success": true }
- 每刻校验异常响应参数示例
当每刻系统的智能审核、多维费控、预算校验异常时会返回失败
字段 | 字段类型 | 字段说明 |
---|---|---|
level | String | 异常级别 |
targetClassify | String | 触发校验类型 |
targetKey | String | 触发校验的那条数据的Code主键,校验类型为FORM时,该字段为空 |
ruleClassify | String | 校验触发的类型 |
message | String | 校验信息 |
needReason | boolean | 是否需要理由 |
level 异常等级
可取值 | 用法含义 |
---|---|
WARNING | 警告级别的信息,一般该类级别的信息不会阻止表单提交但需要提交者确认后才能继续提交(此时单据会暂存在提单人的“我的单据”内) |
ERROR | 错误级别的信息,出现此级信息会阻止表单提交(系统内不可见此单据) |
{
"code": "NACK",
"message": "系统校验失败",
"data": [
{
"level": "ERROR",
"targetClassify": "REIMBURSE_EXPENSE",
"targetKey": "CODE01",
"ruleClassify": "BUDGET_MATCH",
"message": "预算组织-打车预算科目 额度870.00 报销10000.00",
"needReason": false
}
],
"success": false
}
修改记录
2023-02-08 新增报销单导入文档
2023-11-09 报销单增加参与人
2024-01-09 报销单导入接口支持行程
2024-03-21 报销单导入接口支持汇款备注
2024-10-08 报销单导入接口-入参,新增"预算使用月份"字段