文档首页> 文字识别 OCR> API参考> API> 机动车销售发票识别
更新时间:2023-04-07 GMT+08:00
分享

机动车销售发票识别

功能介绍

识别机动车销售发票、二手车销售发票图片中的文字内容,服务能自动分辨两种类型,并将识别的结果以JSON格式返回给用户。该接口的使用限制请参见约束与限制,详细使用指导请参见OCR服务使用简介章节。

图1 机动车销售发票示例图
图2 机动车销售发票示例图
图3 二手车销售发票示例图

如果图片中包含多张卡证票据,请调用智能分类识别服务。

约束与限制

  • 支持识别PNG、JPG、JPEG、BMP、TIFF、PDF格式。
  • 图像各边的像素大小在100到8000px之间。
  • 图像中识别区域有效占比超过80%,保证整张发票及其边缘包含在图像内。
  • 支持图像中发票任意角度的水平旋转。
  • 支持少量扭曲,扭曲后图像中的发票长宽比与实际发票相差不超过10%。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

前提条件

在使用之前,需要您完成服务申请和认证鉴权,具体操作流程请参见开通服务认证鉴权章节。

用户首次使用需要先申请开通。服务只需要开通一次即可,后面使用时无需再次申请。如未开通服务,调用服务时会提示ModelArts.4204报错,请在调用服务前先进入控制台开通服务,并注意开通服务区域与调用服务的区域保持一致。

URI

POST https://{endpoint}/v2/{project_id}/ocr/mvs-invoice

表1 路径参数

参数

是否必选

说明

endpoint

终端节点,即调用API的请求地址。

不同服务不同区域的endpoint不同,您可以从终端节点中获取。

例如,OCR服务在“华北-北京四”区域的“endpoint”“ocr.cn-north-4.myhuaweicloud.com”

project_id

项目ID,您可以从获取项目ID中获取。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

用于获取操作API的权限。获取Token接口响应消息头中X-Subject-Token的值即为Token。

Content-Type

String

发送的实体的MIME类型,参数值为“application/json”。

Enterprise-Project-Id

String

企业项目ID。OCR支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。

获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。

企业项目创建步骤请参见用户指南。

说明:

创建企业项目后,在传参时,有以下三类场景。

  • 携带正确的ID,正常使用OCR服务,账单归到企业ID对应的企业项目中。
  • 携带错误的ID,正常使用OCR服务,账单的企业项目会被分类为“未归集”。
  • 不携带ID,正常使用OCR服务,账单的企业项目会被分类为“未归集”。
表3 请求Body参数

参数

是否必选

参数类型

说明

image

String

该参数与url二选一。

图片的Base64编码,要求Base64编码后大小不超过10MB。

图片最短边不小于100px,最长边不超过8000px。支持JPEG、JPG、PNG、BMP、TIFF、PDF格式。多页PDF仅识别第一页。

图片Base64编码示例如/9j/4AAQSkZJRgABAg...,带有多余前缀会产生The image format is not supported报错。

url

String

该参数与image二选一。图片的url路径,目前支持:

  • 公网http/https url
  • OBS提供的url,使用OBS数据需要进行授权。包括对服务授权、临时授权、匿名公开授权,详情参见配置OBS访问权限
说明:
  • 接口响应时间依赖于图片的下载时间,如果图片下载时间过长,会返回接口调用失败。
  • 请保证被检测图片所在的存储服务稳定可靠,推荐使用OBS服务存储图片数据。
  • url中不能存在中文字符,若存在,中文需要进行utf8编码。

return_text_location

Boolean

如果为True,返回体中会包含text_location对象,内容是各字段的检测框四点坐标。

如果为False或者没有这个key,返回体中不包含text_location对象。

return_confidence

Boolean

如果为True,返回体中包含confidence对象,内容是各字段的置信度。

如果为False或者没有这个key,返回体中不包含confidence对象。

type

String

如果没有type字段则默认返回原机动车销售发票出参。

如果存在type字段但是不属于 auto、new或者used三个枚举值,API返回AIS.0101入参错误。

如果type为auto,API自动判断发票类型,并在返回参数中添加type出参以指明发票类型。

如果type为new,API在检测出的类型为机动车发票时返回原版机动车发票出参并添加type出参(机动车销售统一发票),不一致时报错AIS.0104图像质量差。

如果type为used,API在检测出的类型为二手车时返回二手车发票出参,并添加type出参(二手车销售统一发票),不一致时报错AIS.0104图像质量差。

响应参数

根据识别的结果,可能有不同的HTTP响应状态码(status code)。例如,200表示API调用成功,400表示调用失败,详细的状态码和响应参数说明如下。

状态码: 200

表4 响应Body参数

参数

参数类型

描述

result

MvsInvoiceResult object

识别结果。

调用失败时不返回此字段。

表5 MvsInvoiceResult

参数

参数类型

描述

code

String

发票代码。

number

String

发票号码。

machine_printed_code

String

机打代码。

machine_printed_number

String

机打号码。

issue_date

String

开票日期。

machine_number

String

机器编号。

buyer_name

String

购买方的名称、二手车买方单位/个人。

buyer_organization_number

String

购买方身份证号码/组织机构代码。

buyer_id

String

购买方纳税人识别号、二手车买方单位代码/身份证号。

buyer_address

String

二手车买方单位/个人住址,当请求参数"type"设置为"auto"或"used"时才返回。

buyer_phone

String

二手车买方单位/个人电话,当请求参数"type"设置为"auto"或"used"时才返回。

seller_name

String

销货单位名称、二手车卖方单位/个人。

seller_phone

String

销售方电话、二手车卖方电话。

seller_id

String

销售方纳税人识别号、二手车卖方单位代码/身份证号。

seller_account

String

销售方账号。

seller_address

String

销售方地址、二手车卖方单位/个人地址。

licence_plate_number

String

二手车车牌照号,当请求参数"type"设置为"auto"或"used"时才返回。

registration_number

String

二手车登记证号,当请求参数"type"设置为"auto"或"used"时才返回。

dept_motor_vehicles

String

二手车转入地车管所名称,当请求参数"type"设置为"auto"或"used"时才返回。

seller_bank

String

销售方开户行。

vehicle_type

String

车辆类型。

brand_model

String

厂牌型号。

manufacturing_location

String

产地。

quality_certificate

String

合格证号。

import_certificate

String

进口证明书号。

inspection_number

String

商检单号。

engine_number

String

发动机号码。

vehicle_identification_number

String

车辆识别代号/车架号码。

tonnage

String

吨位。

seating_capacity

String

限乘人数。

tax_authority

String

主管税务机关。

tax_authority_code

String

主管税务机关代码。

tax_payment_receipt

String

完税凭证号码。

tax_rate

String

增值税税率或征收率。

tax

String

增值税税额。

tax_exclusive_price

String

不含税价。

total

String

价税合计、二手车车价合计(小写)。

total_chinese

String

价税合计大写、二手车车价合计(大写)。

fiscal_code

String

税控码。

auction_org_name

String

二手车经营拍卖单位名称,当请求参数"type"设置为"auto"或"used"时才返回。

auction_org_address

String

二手车经营拍卖单位地址,当请求参数"type"设置为"auto"或"used"时才返回。

auction_org_id

String

二手车经营拍卖单位纳税人识别号,当请求参数"type"设置为"auto"或"used"时才返回。

auction_org_bank_account

String

二手车经营拍卖单位银行和账号,当请求参数"type"设置为"auto"或"used"时才返回。

auction_org_phone

String

二手车经营拍卖单位电话,当请求参数"type"设置为"auto"或"used"时才返回。

used_vehicle_market_name

String

二手车市场名称,当请求参数"type"设置为"auto"或"used"时才返回。

used_vehicle_market_id

String

二手车市场纳税人识别号,当请求参数"type"设置为"auto"或"used"时才返回。

used_vehicle_market_address

String

二手车市场地址,当请求参数"type"设置为"auto"或"used"时才返回。

used_vehicle_market_bank_account

String

二手车市场银行和账号,当请求参数"type"设置为"auto"或"used"时才返回。

used_vehicle_market_phone

String

二手车市场电话,当请求参数"type"设置为"auto"或"used"时才返回。

remark

String

备注。

drawer_name

String

开票人。

type

String

枚举值,机动车销售统一发票或者二手车销售统一发票。 当入参中包含type时返回。

text_location

Object

检测框对象,内部为字段-框坐标对。如 code:[[x0, y0],[x1,y1],[x2,y2],[x3,y3]], 点的顺序是左上角、右上角、右下角、左下角。如果原图找不到字段,返回空列表。

confidence

Object

字段文字内容置信度,内容为字段-字符置信度对,如code:0.9999。这个数值为字段中每个字符置信度,格式为fp32,保留四位。若字段不存在则返回0.0。

状态码: 400

表6 响应Body参数

参数

参数类型

说明

error_code

String

调用失败时的错误码,具体请参见错误码

当出现错误码“ModelArts.4204”时,请参考为什么调用API时提示“ModelArts.4204”?章节。

调用成功时不返回此字段。

error_msg

String

调用失败时返回的错误信息。

调用成功时不返回此字段。

请求示例

  • “endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点

    例如,机动车销售发票识别服务部署在“华北-北京四”区域的“endpoint”“ocr.cn-north-4.myhuaweicloud.com”“ocr.cn-north-4.myhuaweicloud.cn”,请求URL为“https://ocr.cn-north-4.myhuaweicloud.com/v2/{project_id}/ocr/mvs-invoice”“project_id”为项目ID,获取方法请参见获取项目ID

  • 如何获取Token请参见认证鉴权
  • 请求示例(方式一:使用图片的Base64编码)
    POST https://{endpoint}/v2/{project_id}/ocr/mvs-invoice 
        
     Request Header:   
     Content-Type: application/json   
     X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...      
     Request Body:
    
    
    
    {
      "image" : "/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAA...",
      "type" : "auto"
    }
  • 请求示例(方式二:使用图片URL)
    POST https://{endpoint}/v2/{project_id}/ocr/mvs-invoice
        
     Request Header:   
     Content-Type: application/json   
     X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...      
     Request Body:
     {
         "url":"https://BucketName.obs.xxxx.com/ObjectName"
      }
  • Python3语言请求代码示例(其他语言参照下列示例编写或使用OCR SDK)
    # encoding:utf-8
    
    import requests
    import base64
    
    url = "https://{endpoint}/v2/{project_id}/ocr/mvs-invoice"
    token = "用户获取得到的实际token值"
    headers = {'Content-Type': 'application/json', 'X-Auth-Token': token}
    
    imagepath = r'./data/mvs-invoice-demo.png'  # 读取本地图片
    with open(imagepath, "rb") as bin_data:
        image_data = bin_data.read()
    image_base64 = base64.b64encode(image_data).decode("utf-8")  # 使用图片的Base64编码
    payload = {"image": image_base64}
    response = requests.post(url, headers=headers, json=payload)
    print(response.text)

响应示例

状态码:200

成功响应示例1

{
  "result" : {
    "code" : "144031624150",
    "number" : "00446874",
    "machine_printed_code" : "144031624150",
    "machine_printed_number" : "00446874",
    "issue_date" : "2017-07-19",
    "machine_number" : "49991450XXXX",
    "buyer_name" : "深圳市宝安区XXX",
    "buyer_organization_number" : "XXX",
    "buyer_id" : "XXX",
    "seller_name" : "深圳市XXX服务有限公司",
    "seller_phone" : "0755-XXX",
    "seller_id" : "XXX",
    "seller_account" : "XXX",
    "seller_address" : "深圳市宝安区松岗街道办XXX",
    "seller_bank" : "建设银行深圳XX支行",
    "vehicle_type" : "多用途乘用车",
    "brand_model" : "东风日产牌/XXX",
    "manufacturing_location" : "大连市",
    "quality_certificate" : "XXX",
    "import_certificate" : "",
    "inspection_number" : "",
    "engine_number" : "XXX",
    "vehicle_identification_number" : "XXX",
    "tonnage" : "",
    "seating_capacity" : "5",
    "tax_authority" : "深圳市宝安区国家税务局XXX税务分局",
    "tax_authority_code" : "144030614",
    "tax_payment_receipt" : "",
    "tax_rate" : "17%",
    "tax" : "¥21475.21",
    "tax_exclusive_price" : "¥126324.79",
    "total" : "¥147800.00",
    "total_chinese" : "壹拾肆万柒仟捌佰圆整",
    "fiscal_code" : ""
  }
}

成功响应示例2

{
  "result" : {
    "used_vehicle_market_name" : "动车交易有限公司",
    "auction_org_bank_account" : "10468888888830",
    "seller_phone" : "13988888888",
    "buyer_id" : "AB37836SDWGDUOHDOEHD3",
    "machine_printed_number" : "00888858",
    "auction_org_id" : "AB37836SDWGDUOHDOEHD3",
    "auction_org_name" : "某拍卖行",
    "buyer_name" : "汽车贸易有限公司",
    "used_vehicle_market_id" : "91DEDD3782733DJ6R",
    "used_vehicle_market_phone" : "07588888888",
    "code" : "044008888817",
    "machine_number" : "4888888182",
    "used_vehicle_market_address" : "佛山市",
    "seller_address" : "广东省佛山市",
    "auction_org_address" : "广东省佛山市",
    "brand_model" : "吉利莫车型",
    "licence_plate_number" : "粤A88888",
    "seller_id" : "AB37836SDWGDUOHDOEHD3",
    "machine_printed_code" : "10468888888830",
    "registration_number" : "1234EHWEGG8888830",
    "buyer_phone" : "13988888888",
    "vehicle_type" : "小型轿车",
    "drawer_name" : "张三",
    "total" : "¥20000.00",
    "total_chinese" : "贰万圆整",
    "issue_date" : "1987-12-27",
    "seller_name" : "李四",
    "vehicle_identification_number" : "L6T7804826379E3GG875",
    "auction_org_phone" : "13988888888",
    "used_vehicle_market_bank_account" : "中国农业银行",
    "buyer_address" : "佛山市",
    "dept_motor_vehicles" : "广东省佛山市车管所",
    "remark" : "免税开具",
    "number" : "003753534",
    "fiscal_code" : "017807816386738245",
    "type" : "二手车销售统一发票"
  } 
}

状态码:400

失败响应示例

{
    "error_code": "AIS.0103",
    "error_msg": "The image size does not meet the requirements."
}

状态码

状态码

描述

200

成功响应。

400

失败响应。

状态码请参见状态码

错误码

错误码请参见错误码

分享:

    相关文档

    相关产品