发票导入接口
说明
您可以通过调用该接口,来将您系统内的发票信息导入到每刻的报销系统中。您需要按照接口要求,来传递发票信息,之后每刻会自动将发票匹配到对应的费用类型,在指定用户的账户下,自动产生未报销的费用。
注意事项
- 可以只导入发票编码、发票号、发票校验码等关键信息,作为查重条件。
- 示例,仅传invoiceNumber(发票号码),则以此参数查重;
- 示例,仅传invoiceCode(发票代码),则以此参数查重;
- 示例,传invoiceNumber(发票号码)、invoiceCode(发票代码),则以两个参数全部匹配才会查重;
- 单次导入最多为10条数据,如果超过该数据量则会抛出异常信息。
- 本接口采用部分失败模式,一条数据失败不影响其他正确数据,且返参repeatInvoices仅包含异常数据。
- 如果接口传入了费用CODE(expenseCode),那么就不再自动生成费用,而是绑定在传入的费用CODE中。
- 若只有发票url,可以调用发票文件导入(含OCR识别)接口导入发票,并自动OCR识别生成费用。
- 若导入费用(含发票)成功,不管存在账本还是被报销单关联,都不允许再次导入相同发票(同一企业环境内会查重)。
- 同一费用导入多张机票时,费用舱位等级(planeCabinLevel)取所有机票中的最高舱位(非首张)。舱位等级顺序(由高到低):FIRST 头等舱 > BUSINESS 商务舱 > SUPER_ECONOMY / LUXURY_ECONOMY 超级经济舱/豪华经济舱 > ECONOMY 经济舱;适用发票类型:航空运输电子客票行程单(国内)、电子发票(航空运输电子客票行程单)。该字段由系统按发票自动带入,不支持人工修改。
接口地址
/api/openapi/invoice/import
请求类型
POST
请求参数
参数说明
| 字段名称 |
字段类型 |
是否必填 |
字段说明 |
| employeeId |
String(100) |
是 |
员工工号 |
| invoiceList |
List<InvoiceDto> |
是 |
发票列表 |
InvoiceDto 发票对象
| 字段名称 |
字段类型 |
是否必填 |
字段说明 |
| invoiceCode |
String |
否 |
发票代码 |
| expenseCode |
String |
否 |
发票需要关联的费用CODE,传入此参数将不再自动生成费用 |
| invoiceNumber |
String |
否 |
发票号码 |
| checkCode |
String |
否 |
校验码 |
| status |
String |
否 |
验真状态,枚举值: NOT_VALIDATION 未验真 VALIDATED 已验真 VALIDATION_FAILED 验真失败 NOT_SUPPORT_VALIDATION 不支持验真
|
| buyerName |
String |
否 |
购方名称\r 若导入的发票为财政票据(机打)或财政票据(电子),则此字段无需传值,相关数据请填写至 ticketdata 中的【交款人】字段 |
| buyerTaxNumber |
String |
否 |
购方税号 \r 若导入的发票为财政票据(机打)或财政票据(电子),则此字段无需传值,相关数据请填写至 ticketdata 中的【交款人统一社会信用代码】字段 |
| buyerAddressPhone |
String |
否 |
购买方地址电话 |
| invoiceType |
String |
否 |
发票类型编码 |
| items |
String |
否 |
货物明细,见下表 |
| supplierName |
String |
否 |
销方名称 \r 若导入的发票为财政票据(机打)或财政票据(电子),则此字段无需传值,相关数据请填写至 ticketdata 中的【收款单位】字段 |
| supplierAddress |
String |
否 |
销方地址和电话 |
| supplierTaxNumber |
String |
否 |
销方税号 |
| supplierAccount |
String |
否 |
销售方开户行及账号 |
| ticketData |
String |
是 |
发票ticketData信息。电子发票(普通发票)(客运服务)可在 invoiceSpecialItems 中传入出行人、身份证件号、出行日期、出发地、到达地等明细信息 |
| issueDate |
Long |
否 |
开票时间 |
| totalPriceAndTax |
BigDecimal |
否 |
发票含税金额 |
| totalPriceAmount |
BigDecimal |
否 |
不含税金额 |
| totalTaxAmount |
BigDecimal |
否 |
税额 |
| invoicePDFUrl |
String |
否 |
发票pdf地址,需要能够使用get请求直接访问。需是http/https,且可被公网访问的地址 |
| invoiceImgUrl |
String |
否 |
发票图片地址,需要能够使用get请求直接访问。需是http/https,且可被公网访问的地址 |
| commonInvoiceType |
String |
否 |
每刻统一发票编码(与invoiceType同时传入时以invoiceType为准) 发票类型编码 |
| deduction |
Booloon |
否 |
电子发票(通行费发票)专用,代表此发票可否抵扣 |
| invoiceRemark |
String |
否 |
备注[其他信息] |
items 货物明细
| 字段名 |
类型 |
说明 |
必填性 |
| name |
String |
名称 |
否 |
| priceAmount |
BigDecimal |
不含税金额 |
否 |
| taxRate |
BigDecimal |
税率 |
否 |
| taxAmount |
BigDecimal |
税额 |
否 |
| num |
int |
数量,例外情况:电子发票(通行费发票)为 通行日期起 格式为YYYYMMDD |
否 |
| specificationModel |
String |
规格,例外情况:电子发票(通行费发票)为 车牌号 |
否 |
| unit |
String |
单位,例外情况:电子发票(通行费发票)为 车辆类型 |
否 |
| unitPrice |
BigDecimal |
单价,例外情况:电子发票(通行费发票)为 通行日期止 格式为YYYYMMDD |
否 |
参数样例
{
"employeeId": "RE00001",
"invoiceList":[
{
"invoiceCode": "033001700211",
"expenseCode": "FD3215412416543",
"invoiceNumber": "05163151",
"checkCode": "61561293271279245060",
"status": "VALIDATED",
"buyerName": "杭州每刻科技",
"buyerTaxNumber": "15260000000000000G",
"invoiceType": "ELECTRONIC_SHIPMENT_VAT_INVOICE",
"items": [{
"name": "明细名称",
"priceAmount": 200.00,
"taxRate": 0.05,
"taxAmount": 10.00,
"num": 10,
"specificationModel": "每刻-简易版",
"unit": "人",
"unitPrice": 20.00
}],
"supplierName": "杭州每刻科技",
"supplierAddress": "杭州市未来科技城",
"supplierTaxNumber": "15260000000000000G",
"ticketData": {
"subType": "PASSENGER_SERVICE",
"subTypeName": "旅客运输服务",
"invoiceSpecialItems": [
{
"client": "张三",
"clientIdentityType": "201",
"clientIdentityNo": "330102198001011234",
"departureDate": "2026-03-05 00:00:00",
"departureAddress": "物联网街|聚光中心",
"arrivalAddress": "浦沿|江滨花园"
}
]
},
"issueDate": 1580289383747,
"totalPriceAndTax": 200.00,
"totalPriceAmount": 190.00,
"totalTaxAmount": 10.00,
"invoicePDFUrl": "https:xxx.com/files/xxxx.pdf",
"invoiceImgUrl": "https:xxx.com/images/xxxx.jpeg"
}
]
}
响应参数
响应参数说明
| 字段名称 |
字段类型 |
是否必填 |
字段说明 |
| repeatInvoices |
List<InvoiceImportDto> |
是 |
发票导入结果对象 |
InvoiceImportDto 发票导入结果
| 字段名称 |
字段类型 |
是否必填 |
字段说明 |
| message |
String |
是 |
发票异常信息 |
| invoiceCode |
String |
是 |
发票编号 |
| invoiceNumber |
String |
是 |
发票编号 |
响应参数样例
{
"code": "ACK",
"message": "更新成功",
"data": {
"repeatInvoices": [
{
"message": "该发票已被你录入费用",
"invoiceCode": "123001700211",
"invoiceNumber": "26163151"
}
]
}
}
修改记录
2023-02-08 新增发票导入接口文档
2026-07-08 补充电子发票(普通发票)(客运服务)ticketData出行明细说明