发票云(智能特性)
旗舰版标准版智能特性生态版
旗舰版标准版智能特性生态版
  1. 文档信息识别
  • 整体介绍
  • 开发指南
  • 授权
    • token获取
      POST
  • 智能特性
    • 文档信息识别
      • 国际发票识别
        POST
      • 国际发票识别(明细)
        POST
      • 文档信息识别(反馈)
        POST
      • 银行回单识别
        POST
      • 国际发票同步识别(新版)
        POST
    • 三单匹配
      • 三单匹配-normal 正常匹配场景
      • 三单匹配-init 初始化匹配场景
      • 三单匹配-refine 指定候选集合精配场景
      • 三单匹配-同步接口
      • 三单匹配-异步匹配任务提交
      • 三单匹配-异步匹配结果查询
      • 三单匹配-异步数据入库
      • 三单匹配-异步数据入库结果查询
      • 三单匹配-异步标注数据导入
      • 三单匹配-异步标注数据导入结果查询
      • 三单匹配-异步训练接口
      • 三单匹配-异步训练结果查询
      • 三单匹配-异步模型一键部署接口
      • 三单匹配-异步模型一键部署查询接口
    • 统一反馈
      • 三单匹配反馈详细说明
      • 算法服务统一反馈接口
    • 文档分类(区分发票、附件)
      POST
    • 智能赋码税收分类编码识别
      POST
  • 文档中心
    • 外部文件上传接口
      POST
  • 国际发票
  • 数据模型
    • 示例数据模型
      • Pet
      • Category
      • Tag
  1. 文档信息识别

国际发票同步识别(新版)

设计中
POST
/doc-ai/ai/knowledge/nlpService/document/analyze
根据当前 doc-ai 同步识别实现编写。上传文件后同步返回结构化票据信息,支持一份文档返回多张票据。
请求方式:POST /doc-ai/ai/knowledge/nlpService/document/analyze,multipart/form-data。
兼容别名:/doc-ai/ai/knowledge/nlpService/overseaInvoice/extraction;新接入使用规范路径。
鉴权:对外调用通过 Query 参数 access_token 传递授权令牌。默认网关模式由网关校验并注入 client_id 请求头(兼容 client-id);表单 clientId 不能替代网关注入身份。直连校验模式由本服务验证 access_token,若传 clientId/身份请求头,必须与令牌所属客户端一致。client-platform 为兼容请求头,本服务不参与业务判断。
模板:templateId 必须为当前鉴权租户有权访问的数字模板 ID,不存在默认模板;国家以所选 API 的配置为准,countryCode 仅兼容接收并忽略。调用还需具备相应的识别权益。
文件:支持 PDF、PNG、JPG、JPEG、XLSX;默认大小上限 20 MB,实际以部署 MAX_UPLOAD_SIZE_MB 配置为准。文件须非空且有效。fileHash 可省略,省略时对上传原件计算 SHA-256;OCR 缓存命中后仍会执行本次查验和响应组装。
响应:该处理器成功和业务失败均返回 HTTP 200,以字符串 errcode 判断结果。data 是数组,包含 header.basic/billTo/billFrom/bussiness/payment 和 detail 明细。bussiness 是实际契约拼写。除 page 为字符串数组外,票据标量均为字符串,缺失补空字符串;明细缺失补 []。uuid 仅有非空实际值时返回。docPages 为原文档页数,模型仅处理部分页时 errcode 仍可能为 0000,description 会提示截断,应结合 description 判断。
文档类型:other 只保留 docType/page/sourceFileHash,其余字段补空;paymentScreenshot 仅保留 docType/page/sourceFileHash/invoiceDate/currency/totalAmount/remark。开启 FAIL_WHEN_NO_INVOICE_FOUND 时(默认开启),没有有效票据会返回 4009。
错误码(均为字符串):
errcode含义
0000成功
4001客户端不可用,或网关模式缺少注入的客户端身份
4004access_token 缺失或无效(直连模式)
4005access_token 已过期(直连模式)
4006templateId 无效或不存在
4007模板无权访问/已停用/绑定冲突、客户端身份不匹配,或识别权益不可用/不足
4008文件缺失或为空
4009未发现有效发票或收据(由 FAIL_WHEN_NO_INVOICE_FOUND 控制)
5000文件格式/大小/内容校验失败、服务繁忙或识别处理失败
失败响应统一为 data: []、docPages: 0;具体原因见 description。

成功:一张发票(示意数据)#

{
  "errcode": "0000",
  "description": "Success",
  "data": [
    {
      "header": {
        "basic": {
          "sourceFileHash": "example-file-hash",
          "docType": "invoice",
          "nameOfInvoice": "",
          "invoiceType": "",
          "invoiceNumber": "INV-2026-001",
          "invoiceCode": "",
          "invoiceDate": "2026-10-23",
          "totalNetAmount": "100.00",
          "totalAmount": "106.00",
          "totalTaxAmount": "6.00",
          "currency": "MYR",
          "page": [
            "1"
          ],
          "remark": ""
        },
        "billTo": {
          "billToName": "Example Buyer",
          "billToComposite": "",
          "billToCity": "",
          "billToStateOrProvince": "",
          "billToCountry": "",
          "billToCountryCode": "",
          "billToFax": "",
          "billToPostalCode": "",
          "billToTelephone": "",
          "billToTaxIdentificationNumber": "",
          "billToRecipient": "",
          "billToBankAccount": "",
          "billToBankOfAccount": "",
          "billToEmail": ""
        },
        "billFrom": {
          "billFromName": "Example Supplier",
          "billFromComposite": "",
          "billFromCity": "",
          "billFromStateOrProvince": "",
          "billFromCountry": "",
          "billFromCountryCode": "",
          "billFromFax": "",
          "billFromPostalCode": "",
          "billFromTelephone": "",
          "billFromTaxIdentificationNumber": "",
          "billFromBusinessRegistrationNumber": "",
          "billFromBankAccount": "",
          "billFromBankOfAccount": "",
          "billFromEmail": ""
        },
        "bussiness": {
          "purchaseOrderNumber": "",
          "contractNumber": "",
          "startDate": "",
          "endDate": "",
          "salesOrderNumber": "",
          "deliveryOrderNumber": ""
        },
        "payment": {
          "paymentMethod": "",
          "paymentStatus": "",
          "paymentTerms": "",
          "dueDate": "",
          "paymentCurrency": "",
          "exchangeRate": "",
          "paidAmount": ""
        }
      },
      "detail": {
        "detailOfGoodsOrServices": [
          {
            "articleID": "",
            "articleName": "Service",
            "description": "",
            "quantity": "1",
            "unitOfMeasure": "",
            "unitPrice": "100.00",
            "netAmount": "100.00",
            "taxRate": "6",
            "tax": "6.00",
            "grossAmount": "106.00",
            "orderNumber": "",
            "salesOrderNumber": "",
            "deliveryOrderNumber": "",
            "purchaseOrderNumber": ""
          }
        ],
        "detailOfTaxSummary": [
          {
            "taxCategory": "SST",
            "taxRate": "6",
            "netTaxableAmount": "100.00",
            "tax": "6.00"
          }
        ],
        "originalInvoiceReferences": []
      }
    }
  ],
  "traceId": "example-trace-id",
  "docPages": 1
}

失败:未上传文件#

{
  "errcode": "4008",
  "description": "file is required",
  "data": [],
  "traceId": "example-trace-id",
  "docPages": 0
}

请求参数

Query 参数

Header 参数

Body 参数multipart/form-data必填

请求示例代码

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --globoff '/doc-ai/ai/knowledge/nlpService/document/analyze?access_token={{access_token}}' \
--header 'client-platform: common' \
--header 'client_id;' \
--form 'file=@""' \
--form 'templateId="{{templateId}}"' \
--form 'fileHash=""' \
--form 'clientId=""' \
--form 'taxNo=""' \
--form 'countryCode=""'

返回响应

🟢200识别结果(成功与业务失败)
application/json
Bodyapplication/json

示例
{
    "errcode": "0000",
    "description": "Success",
    "data": [
        {
            "header": {
                "basic": {
                    "sourceFileHash": "example-file-hash",
                    "docType": "invoice",
                    "nameOfInvoice": "",
                    "invoiceType": "",
                    "invoiceNumber": "INV-2026-001",
                    "invoiceCode": "",
                    "invoiceDate": "2026-10-23",
                    "totalNetAmount": "100.00",
                    "totalAmount": "106.00",
                    "totalTaxAmount": "6.00",
                    "currency": "MYR",
                    "page": [
                        "1"
                    ],
                    "remark": ""
                },
                "billTo": {
                    "billToName": "Example Buyer",
                    "billToComposite": "",
                    "billToCity": "",
                    "billToStateOrProvince": "",
                    "billToCountry": "",
                    "billToCountryCode": "",
                    "billToFax": "",
                    "billToPostalCode": "",
                    "billToTelephone": "",
                    "billToTaxIdentificationNumber": "",
                    "billToRecipient": "",
                    "billToBankAccount": "",
                    "billToBankOfAccount": "",
                    "billToEmail": ""
                },
                "billFrom": {
                    "billFromName": "Example Supplier",
                    "billFromComposite": "",
                    "billFromCity": "",
                    "billFromStateOrProvince": "",
                    "billFromCountry": "",
                    "billFromCountryCode": "",
                    "billFromFax": "",
                    "billFromPostalCode": "",
                    "billFromTelephone": "",
                    "billFromTaxIdentificationNumber": "",
                    "billFromBusinessRegistrationNumber": "",
                    "billFromBankAccount": "",
                    "billFromBankOfAccount": "",
                    "billFromEmail": ""
                },
                "bussiness": {
                    "purchaseOrderNumber": "",
                    "contractNumber": "",
                    "startDate": "",
                    "endDate": "",
                    "salesOrderNumber": "",
                    "deliveryOrderNumber": ""
                },
                "payment": {
                    "paymentMethod": "",
                    "paymentStatus": "",
                    "paymentTerms": "",
                    "dueDate": "",
                    "paymentCurrency": "",
                    "exchangeRate": "",
                    "paidAmount": ""
                }
            },
            "detail": {
                "detailOfGoodsOrServices": [
                    {
                        "articleID": "",
                        "articleName": "Service",
                        "description": "",
                        "quantity": "1",
                        "unitOfMeasure": "",
                        "unitPrice": "100.00",
                        "netAmount": "100.00",
                        "taxRate": "6",
                        "tax": "6.00",
                        "grossAmount": "106.00",
                        "orderNumber": "",
                        "salesOrderNumber": "",
                        "deliveryOrderNumber": "",
                        "purchaseOrderNumber": ""
                    }
                ],
                "detailOfTaxSummary": [
                    {
                        "taxCategory": "SST",
                        "taxRate": "6",
                        "netTaxableAmount": "100.00",
                        "tax": "6.00"
                    }
                ],
                "originalInvoiceReferences": []
            }
        }
    ],
    "traceId": "example-trace-id",
    "docPages": 1
}
修改于 2026-10-23 07:37:14
上一页
银行回单识别
下一页
三单匹配-normal 正常匹配场景
Built with