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



约束与限制
- 支持识别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
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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)。 企业项目创建步骤请参见用户指南。
说明:
创建企业项目后,在传参时,有以下三类场景。
|
参数 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
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路径,目前支持:
说明:
|
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
参数 |
参数类型 |
描述 |
---|---|---|
result |
MvsInvoiceResult object |
识别结果。 调用失败时不返回此字段。 |
参数 |
参数类型 |
描述 |
---|---|---|
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
参数 |
参数类型 |
说明 |
---|---|---|
error_code |
String |
调用失败时的错误码,具体请参见错误码。 当出现错误码“ModelArts.4204”时,请参考为什么调用API时提示“ModelArts.4204”?章节。 调用成功时不返回此字段。 |
error_msg |
String |
调用失败时返回的错误信息。 调用成功时不返回此字段。 |
请求示例

- 请求示例(方式一:使用图片的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." }
错误码
错误码请参见错误码。