发票文件导入(含OCR识别)接口

说明

您可以通过调用该接口,来将您系统内的发票文件导入到每刻的报销系统中。接口识别验真后,会生成新费用或绑定到传入的费用中。

注意事项

  1. 若是expenseCode有值,则仅将发票关联至费用,不对费用信息做更新。
  2. 调用此接口前,请确认企业已开通识票(OCR识别)功能,否则调用失败;若开通验真功能(次数足够),则会触发验真校验。
  3. 若导入费用成功,不管存在账本还是被报销单关联,都不允许再次导入相同发票(同一企业环境内会查重)。
  4. 若传了expenseCode,且同一expenseCode多次调用,则会插入传入的发票文件而不是覆盖。
  5. 同一费用导入多张机票时,费用舱位等级(planeCabinLevel)取所有机票中的最高舱位(非首张)。舱位等级顺序(由高到低):FIRST 头等舱 > BUSINESS 商务舱 > SUPER_ECONOMY / LUXURY_ECONOMY 超级经济舱/豪华经济舱 > ECONOMY 经济舱;适用发票类型:航空运输电子客票行程单(国内)、电子发票(航空运输电子客票行程单)。该字段由系统按发票自动带入,不支持人工修改。

接口地址

/api/openapi/invoice/import-invoice-pic

接口限制

限流:2次/秒

请求类型

POST

请求参数

参数说明

字段名称 字段类型 是否必填 字段说明
fileUrl String(100) 否 获取文件内容的地址,与文件 base64 二选一,优先使用文件访问地址。需是http/https,且可被公网访问的地址
fileBase64 String 否 文件的 base64 值,与文件访问地址二选一,优先使用文件访问地址
fileType String 是 文件的类型,仅支持 JPG、PNG、PDF和OFD 四种格式
employeeId String 是 发票和费用最终将写入到此员工账号下
expenseCode String 否 发票将绑定在传入的费用下,此值不为空时,将不生成新的费用。指费用导入接口导入成功后返回的code。
allInvoiceBindToOneExpense boolean 否 如果传入的发票文件包含多张发票,可选择将发票拆到多条费用中,或者不拆分绑定在一条费用下。
若传expenseCode,此参数无效(即绑定该图片识别的所有发票);
若不传expenseCode且此参数设为true,则只新生成一条费用(绑定该图片识别的所有发票);
若不传expenseCode且此参数设为false,则每张发票生成一条费用并绑定对应发票;

参数样例

{
  "fileBase64":"eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJtYXljdXJfand0X2Rldl9p",
  "fileUrl":"https://ng.maycur.com/iamge/filename",
  "fileType":"JPG",
  "employeeId":"MK00001",
  "expenseCode":"FD231231",
  "allInvoiceBindToOneExpense":"true"
}

响应参数

响应参数说明(data)

字段名称 字段类型 是否必填 字段说明
invoiceDataCode String 是 每刻系统内发票唯一编码
expenseCode String 是 传入或新生成的费用的唯一编码
invoiceNumber String 是 发票号码
invoiceCode String 是 发票代码
type String 是 发票类型

InvoiceDto 发票

字段名称 字段类型 是否必填 字段说明
invoiceDataCode String(25) 是 发票code
reimburseCode String(50) 是 单据号
userCode String(50) 是 用户内码
buyerName String 是 购方名称
buyerTaxNumber String 是 购方税号
invoiceCode String 是 发票代码
invoiceNumber String 是 发票号码
issueDate String 是 开票时间
totalPriceAmount String 是 不含税金额
totalTaxAmount String 是 税额
totalPriceAndTax String 是 价税合计
supplierName String 是 销方名称
supplierAddress String 是 销方地址和电话
invoiceTypeDesc String 是 发票类型描述
invoiceTypeEnum String 是 发票类型编码
validateStatus String 是 发票验真状态编码,见下表
validateStatusDesc String 是 发票验真状态描述,见下表
importedAt Long 是 导入时间戳
importedAtYearMonth String 是 导入年月
ticketData String 是 发票一些相关信息
approvedTaxAmount AmountInput 是 税额
approvedDeductionAmount AmountInput 是 抵扣税额
supplierTaxNumber String 是 销方税号
supplierAccount String 是 销方账户(销方开户行+账户)非增值税发票和未验真的发票:该字段内容为空字符串
source string 是 发票来源编码。OPENAPI_IMPORT:接口导入
sourceDesc string 是 发票来源描述。OPENAPI_IMPORT:接口导入
lineItems List< lineItemsDto > 是 货物明细,见下表
buyerAccount String 是 购方账户(购方开户行+账户)非增值税发票和未验真的发票:该字段内容为空字符串
buyerAddressPhone String 是 购方地址和电话
attachmentFiles List< FileInfo > 是 发票对象,见下表
taxRate String 是 税率,发票有明细行时,该字段值为0,具体税率以发票税额明细中的税率为准
companySeal String 是 有无专用章
invoiceRemark String 是 发票备注
invoiceTaxDtoList List< InvoiceTaxDto > 是 发票税额明细,见下表
cancellationMark String 是 发票作废状态
cancellationMarkUpdateTime String 是 发票作废状态更新时间
supplierUnusual String 是 销售方异常状态
supplierUnusualUpdateTime String 是 销售方异常状态更新时间
commonInvoiceType String 否 每刻统一发票编码 发票类型编码
commonInvoiceTypeDesc String 否 每刻统一发票编码描述

FileInfo 附件信息

字段名称 字段类型 是否必填 字段说明
code String(25) 是 内部code
mimeType String(50) 是 文件类型:image/png
filename String(25) 是 文件名称
type String 是 文件类型:image/png
downloadUrl String 是 源文件下载地址,有时效性,7天有效期
originalUrl String 是 预览图地址,有时效性,7天有效期
thumUrl String 是 缩略图地址,有时效性,7天有效期
imageUrl String 是 发票图片地址,有时效性,7天有效期(用户上传的原始图片),若上传的文件是pdf,此参数返回“images/pdf.png”)

lineItemsDto 货物明细

字段名称 字段类型 是否必填 字段说明
code String(25) 是 明细编码
invoiceDataCode String(25) 是 发票code
name String(25) 是 货物名称
priceAmount BigDecimal 是 金额
taxRate BigDecimal 是 税率
taxAmount BigDecimal 是 税额
num BigDecimal 是 数量
specificationModel String 是 规格型号
unit String 是 单位
unitPrice BigDecimal 是 单价
taxRateMark String 是 税率标记
taxRateMarkDesc String 是 税率标记描述
expenseCode String 是 费用编码
invoiceType String 是 发票类型

InvoiceTaxDto 发票抵扣

字段名称 字段类型 是否必填 字段说明
taxableDetails String(25) 是 应税明细
taxRate String(25) 是 税率
approvedDeductionAmount AmountInput 是 抵扣税额
approvedTaxAmount AmountInput 是 税额
transferOut String 是 是否转出

validateStatus(验真状态)对应validateStatusDesc(验真状态解释说明)

验真状态 验真状态解释说明
NOT_VALIDATION 未验真
VALIDATED 已验真
VALIDATION_FAILED 验真失败

AmountInput 金额

字段名称 字段类型 是否必填 字段说明
currency String(3) 是 币种
amount BigDecimal 是 金额
customExchangeRate BigDecimal 是 汇率
amountStr String 是 带币种金额

错误码

错误码 描述 解决方案
AUTH0007 员工不存在 请确认传入的员工编号是否存在
EXPENSE_ERR_13 费用不存在,当传入的 expenseCode 不为空时可能返回 请检查费用是否被移除或删除,是否属于传入的员工
EXPENSE_ERR_58 费用关联的报销单为非可编辑状态,即处于流程中或已完成,当传入的 expenseCode 不为空时可能返回 流程中的报销单可选择召回报销单。已完成的报销单,请重新创建再操作
INV20006 传入的文件无法识别 请确认传入的是否为发票文件
INV20002 发票无法保存 请确认是否已导入过发票或发票已报废
INV30109 发票文件超过 8M 将文件压缩至小于 8M
INV30002 发票文件无法访问 请确认发票访问地址无异常可正常访问或文件 base64 值无异常
INV30104 发票文件类型错误 请确认发票文件访问地址下的文件内容为 JPG、PNG、PDF 或 OFD 中的其中一种

响应参数样例

{
  "code": "ACK",
  "message": null,
  "data": [
    {
      "invoiceDataCode": "INV123293506094510086",
      "userCode": "UI2012221C97WQDC",
      "expenseCode": "FD123293507650590747",
      "qrCode": "",
      "buyerName": "杭州每刻科技有限公司",
      "buyerTaxNumber": "91330108341927699X",
      "invoiceCode": "033002300611",
      "invoiceNumber": "99007885",
      "issueDate": 1719417600000,
      "totalPriceAmount": 3.67,
      "totalTaxAmount": 0.33,
      "totalPriceAndTax": 4.00,
      "supplierName": "杭州地铁运营有限公司",
      "supplierAddress": "浙江省杭州市上城区九和路466号3幢12层0571-96600",
      "invoiceTypeDesc": "增值税电子普通发票(客运服务)",
      "invoiceTypeEnum": "SHIPMENT_VAT",
      "attachments": [
        {
          "entCode": null,
          "code": "ATT123293506390202413",
          "resourceKey": "maycur001/caeaf520-db1f-47d9-a09b-f37a288efce1.pdf",
          "associatedWith": "invoice",
          "associatedCode": "INV123293506094510086",
          "createdBy": null,
          "createdAt": 1731293325217,
          "filename": "caeaf520-db1f-47d9-a09b-f37a288efce1.pdf",
          "type": "application/pdf",
          "isQrCodePic": false,
          "coordinates": "0,0,2000,1333",
          "orientation": 0.0,
          "mimeType": null,
          "originalUrl": "",
          "thumUrl": "",
          "ratioFixedThumbUrl": null,
          "imageUrl": null,
          "size": null,
          "downloadUrl": "",
          "pageNumber": 0,
          "isOriginalFile": true,
          "pdfDownLoadUrl": null,
          "originalFile": true,
          "qrCodePic": false,
          "validFileName": "caeaf520-db1f-47d9-a09b-f37a288efce1.pdf"
        }
      ],
      "attachmentFiles": null,
      "validateStatus": "VALIDATED",
      "validateStatusDesc": "已验真",
      "remark": "成功",
      "importedAt": 1731293325160,
      "importedAtYearMonth": "202411",
      "hasQrCodePic": false,
      "processing": false,
      "auditLogs": null,
      "invoicePDFUrl": null,
      "invoiceImgUrl": null,
      "invoiceDateStr": null,
      "invoiceStatus": null,
      "invoiceTitleConflict": false,
      "invoiceTitleConflictWithFee": false,
      "mainAttachment": null,
      "correlatedReimburseDataCode": null,
      "correlatedReimburseCode": null,
      "ticketData": {
        "consumeTime": 1719417600000,
        "machineCode": "661103102500",
        "city": "",
        "drawer": "田定河",
        "reviewer": "赵美红",
        "consumeStartDate": 1719417600000,
        "payee": "秦宁",
        "number": "",
        "province": "浙江省",
        "codeConfirm": "",
        "consumeEndDate": 1719417600000,
        "location": "domestic-ZH32-ZH32_1-ZH32_1_01",
        "numberConfirm": "",
        "invoiceSheetType": ""
      },
      "taxDedectCode": "",
      "approvedTaxAmount": {
        "amount": 0.00,
        "currency": "CNY",
        "customExchangeRate": 1,
        "amountStr": "¥0.00"
      },
      "approvedDeductionAmount": {
        "amount": 0.00,
        "currency": "CNY",
        "customExchangeRate": 1,
        "amountStr": "¥0.00"
      },
      "auditDetailJson": null,
      "customTaxFlag": false,
      "identityFlag": true,
      "errorMessage": null,
      "errorCode": null,
      "taxRate": 0,
      "valueAddedTaxRate": null,
      "supplierTaxNumber": "91330102MA7F72672F",
      "modify": false,
      "modifySwitch": false,
      "vouchers": null,
      "wxCardId": "",
      "wxEncryptCode": "",
      "wxOpenId": "",
      "billNum": null,
      "expenseTypeList": null,
      "expenseType": null,
      "employeeId": "",
      "employeeName": "",
      "buyerAddressPhone": "",
      "buyerAccount": "",
      "supplierAccount": "中国建设银行股份有限公司杭州秋涛支行营业部33050110438609666666",
      "reimburseStatus": null,
      "reimburseStatusDesc": null,
      "issueDateDesc": null,
      "source": "OPENAPI_IMPORT",
      "sourceDesc": "OPENAPI_IMPORT",
      "companySeal": true,
      "invoiceTaxDtoList": [],
      "updateRecord": [],
      "invoiceRemark": "",
      "invoiceSheet": 1,
      "agentMark": "",
      "cancellationMark": "NOT_INVALID",
      "cancellationMarkDesc": null,
      "sourceCode": "",
      "invoiceStateCode": null,
      "invoiceStateRemark": null,
      "validationResult": null,
      "complete": true,
      "thirdInvoiceDataCode": "",
      "invoiceDeductionStatus": null,
      "electronicVoucher": null,
      "electronicVoucherFiles": null,
      "verificaitonChannel": "",
      "title": "",
      "dynaFormCode": "MOCK_FORM_CODE_SHIPMENT_VAT",
      "electronic": true,
      "customObject": null,
      "cancellationMarkUpdateTime": null,
      "supplierUnusual": null,
      "supplierUnusualUpdateTime": null,
      "sourceScanner": null,
      "invoiceCodeNumber": "03300230061199007885",
      "notCanVerify": false,
      "checksum": "60258258882690380411",
      "type": "-997",
      "lineItems": [
        {
          "code": "IGI123293506352453681",
          "invoiceDataCode": "INV123293506094510086",
          "name": "*运输服务*地铁票",
          "priceAmount": 3.670000,
          "taxRate": 0.090000,
          "taxAmount": 0.330000,
          "num": 1.0,
          "specificationModel": "",
          "unit": "",
          "unitPrice": 3.669725,
          "taxRateMark": null,
          "taxRateMarkDesc": null,
          "expenseCode": "FD123293507650590747",
          "invoiceType": "-997"
        }
      ],
      "splitted": false
    }
  ],
  "errorCode": null,
  "success": true
}

修改记录

2023-02-08  新增发票文件导入(含OCR识别)接口文档
Copyright © 杭州每刻科技有限公司 www.maycur.com all right reserved,powered by Gitbook该文件修订时间: 2026-09-23 10:19:53

results matching ""

    No results matching ""

    results matching ""

      No results matching ""