多张发票识别 OCR
接口简介
本接口可准确高效识别各类国内,国际发票,并结构化输出各类发票关键字段,支持识别多张发票,可无缝对接财务、工商、保险、企事业单位、政府等多个行业的业务流程,辅助办公人员便捷、快速、准确地采集各类票据的票面信息,高效提升财务管理效率。
注意
- 支持的图片类型: jpg, jpeg, png
- 图片最大支持8M
- 支持识别发票类型的见下方发票类型字段说明
- 支持识别一张图片中包含多张发票的情况
请求语法
POST /invoice/multiple?url=http://xxxxxx/xxx.jpg HTTP/1.1
Host: ap-gate-z0.qiniuapi.com
Authorization: QiniuToken
头部信息
头部名称 | 必填 | 说明 |
---|---|---|
Host | 是 | 固定为 ap-gate-z0.qiniuapi.com |
Authorization | 是 | 该参数应严格按照管理凭证格式进行填充,否则会返回 401 错误码。一个合法的 Authorization 值应类似于:Qiniu QNJi_bYJlmO5LeY08FfoNj9w_r7... |
请求参数
字段 | 是否必填 | 类型 | 说明 |
---|---|---|---|
url | Y | string | 待检测图片的url链接 |
返回参数
放在 HTTP Body 中,采用 Json 格式,具体参数如下:
字段 | 类型 | 说明 |
---|---|---|
result | int | 返回码,请求状态. 1:成功, 0:失败 |
response | json_object | 识别结果详情 |
code | int | 错误码 |
message | string | 错误说明 |
type | int | 发票类型 |
发票类型字段说明
字段枚举 | 描述 |
---|---|
10100 | 增值税专用发票 |
10101 | 增值税普通发票 |
10102 | 增值税电子普通发票 |
10103 | 增值税普通发票(卷票) |
10104 | 机动车销售统一发票 |
10105 | 二手车销售统一发票 |
10505a | 船票 |
10200 | 定额发票 |
10400 | 机打发票 |
10500 | 出租车发票 |
10503 | 火车票 |
10505 | 客运汽车 |
10506 | 航空运输电子客票行程单 |
10507 | 过路费发票 |
10900 | 可报销其他发票 |
20100 | 国际小票 |
20105 | 滴滴出行行程单 |
10902 | 完税证明 |
增值税发票识别结果字段说明
字段枚举 | 描述 |
---|---|
orientation | 发票顺时针旋转方向 |
code | 印刷发票代码 |
number | 印刷发票号码 |
date | 开票日期 |
pretax_amount | 税前金额 |
total | 总金额 |
tax | 税额 |
check_code | 校验码 |
seller | 销售方名称 |
seller_tax_id | 销售方纳税人识别号 |
buyer | 购买方方名称 |
buyer_tax_id | 购买方纳税人识别号 |
company_seal | 是否有公司印章(0:没有;1:有) |
form_type | 发票是第几联 |
form_name | 发票联次 |
kind | 发票消费类型 |
ciphertext | 密码区,四行密码,每行以逗号隔开 |
transit_mark | 通行费标志 |
oil_mark | 成品油标志 |
machine_code | 机器编号 |
travel_tax | 车船税 |
receiptor | 收款人 |
reviewer | 复核 |
issuer | 开票人 |
province | 省 |
city | 市 |
service_name | 服务类型 |
remark | 备注 |
item_names | 品名,每个以逗号隔开 |
agent_mark | 是否代开 |
acquisition_mark | 是否收购 |
block_chain | 区块链标记 |
code_confirm | 机打发票代码 |
number_confirm | 机打发票号码 |
出租车发票识别结果字段说明
字段枚举 | 描述 |
---|---|
code | 发票代码 |
number | 发票号码 |
date | 乘车日期 |
time_geton | 上车时间 |
time_getoff | 下车时间 |
mileage | 里程 |
total | 总金额 |
place | 发票所在地 |
kind | 发票消费类型 |
province | 省 |
city | 市 |
license_plate | 车牌号 |
火车票识别结果字段说明
字段枚举 | 描述 |
---|---|
number | 号码 |
date | 乘车日期 |
time | 乘车时间 |
name | 乘车人姓名 |
station_geton | 上车车站 |
station_getoff | 下车车站 |
train_number | 车次 |
seat | 座位类型 |
total | 总金额 |
kind | 发票消费类型 |
serial_number | 序列号 |
user_id | 身份证号 |
机打发票识别结果字段说明
字段枚举 | 描述 |
---|---|
code | 发票代码 |
number | 号码 |
date | 日期 |
time | 时间 |
check_code | 校验码 |
category | 种类,oil表示是加油票 |
total | 总金额 |
seller | 销售方名称 |
seller_tax_id | 销售方纳税人识别号 |
buyer | 购买方方名称 |
buyer_tax_id | 购买方纳税人识别号 |
kind | 发票消费类型 |
province | 省 |
city | 市 |
company_seal | 是否有公司印章(0:没有;1:有) |
增值税普通发票 卷票识别结果字段说明
字段枚举 | 描述 |
---|---|
code | 发票代码 |
number | 号码 |
date | 日期 |
check_code | 校验码 |
seller | 销售方名称 |
seller_tax_id | 销售方纳税人识别号 |
buyer | 购买方方名称 |
buyer_tax_id | 购买方纳税人识别号 |
category | 种类,oil表示是加油票 |
total | 总金额 |
kind | 发票消费类型 |
province | 省 |
city | 市 |
company_seal | 是否有公司印章(0:没有;1:有) |
service_name | 服务类型 |
item_names | 品名,每个以逗号隔开 |
定额发票识别结果字段说明
字段枚举 | 描述 |
---|---|
code | 发票代码 |
number | 号码 |
total | 总金额 |
kind | 发票消费类型 |
province | 省 |
city | 市 |
company_seal | 是否有公司印章(0:没有;1:有) |
过路费发票识别结果字段说明
字段枚举 | 描述 |
---|---|
code | 发票代码 |
number | 发票号码 |
date | 日期 |
time | 时间 |
entrance | 入口 |
exit | 出口 |
total | 总金额 |
kind | 发票消费类型 |
highway_flag | 高速标志(0:没有;1:有) |
客运汽车发票识别结果字段说明
字段枚举 | 描述 |
---|---|
code | 发票代码 |
number | 发票号码 |
date | 日期 |
time | 时间 |
station_geton | 出发车站 |
station_getoff | 达到车站 |
total | 总金额 |
name | 姓名 |
kind | 发票消费类型 |
user_id | 身份证号 |
航空运输电子客票行程单识别结果字段说明
字段枚举 | 描述 |
---|---|
user_name | 乘机人姓名 |
user_id | 身份证号 |
number | 电子客票号码 |
check_code | 验证码 |
date | 填开日期 |
agentcode | 销售单位代号 |
issue_by | 填开单位 |
fare | 票价 |
tax | 税费 |
fuel_surcharge | 燃油附加费 |
caac_development_fund | 民航发展基金 |
insurance | 保险费 |
total | 总额 |
flights | 航班信息 |
from | 出发站 |
to | 到达站 |
flight_number | 航班号 |
date | 乘机日期 |
time | 乘机时间 |
seat | 座位等级 |
carrier | 承运人 |
class_name | 舱位等级 |
from | 出发站 |
to | 到达站 |
flight_number | 航班号 |
date | 乘机日期 |
time | 乘机时间 |
seat | 座位等级 |
carrier | 承运人 |
class_name | 舱位等级 |
kind | 发票消费类型 |
international_flag | 国内国际标签 |
print_number | 印刷序号 |
二手车销售统一发票识别结果字段说明
字段枚举 | 描述 |
---|---|
code | 发票代码 |
number | 发票号码 |
date | 开票日期 |
total | 总金额 |
seller | 卖方单位/个人 |
seller_id | 卖方单位代码/个人身份证号 |
buyer | 买方单位/个人 |
buyer_id | 买方单位代码/个人身份证号 |
company_name | 二手车市场 |
company_tax_id | 二手车市场纳税人识别号 |
license_plate | 车牌号 |
registration_number | 登记证号 |
car_code | 车架号/车辆识别代码 |
car_model | 厂牌型号 |
kind | 发票消费类型 |
province | 省 |
city | 市 |
机动车销售统一发票识别结果字段说明
字段枚举 | 描述 |
---|---|
code | 发票代码 |
number | 发票号码 |
machine_code | 机打代码 |
machine_number | 机打号码 |
date | 开票日期 |
pretax_amount | 税前金额 |
total | 总金额 |
seller | 销售单位 |
seller_tax_id | 销售单位纳税人识别号 |
buyer | 买方单位/个人 |
buyer_id | 买方单位代码/个人身份证号 |
tax_authorities | 主管税务机关 |
tax_authorities_code | 主管税务机关代码 |
car_code | 车架号/车辆识别代码 |
car_engine_code | 发动机号码 |
car_model | 厂牌型号 |
certificate_number | 合格证号 |
kind | 发票消费类型 |
province | 省 |
city | 市 |
tax | 税额 |
tax_rate | 税率 |
company_seal | 是否有公司印章(0:没有;1:有) |
小票识别结果字段说明
字段枚举 | 描述 |
---|---|
store_name | 店名 |
date | 日期 |
time | 时间 |
subtotal | 税前金额 |
tax | 税费 |
discount | 折扣 |
tips | 小费 |
total | 总金额 |
currency_code | 币种,使用ISO4217CurrencyCodes标准 |
type | 消费类型 |
滴滴出行行程单识别结果字段说明
字段枚举 | 描述 |
---|---|
date | 申请日期 |
date_start | 行程开始时间 |
date_end | 行程结束时间 |
phone | 行程人手机号 |
total | 总计 |
items | 行程信息 |
car_type | 车型 |
time_geton | 上车时间 |
city | 城市 |
station_geton | 起点 |
station_getoff | 终点 |
mileage | 里程(公里) |
total | 金额 |
car_type | 车型 |
time_geton | 上车时间 |
city | 城市 |
station_geton | 起点 |
station_getoff | 终点 |
mileage | 里程(公里) |
total | 金额 |
car_type | 车型 |
time_geton | 上车时间 |
city | 城市 |
station_geton | 起点 |
station_getoff | 终点 |
mileage | 里程(公里) |
total | 金额 |
kind | 发票消费类型 |
完税证明识别结果字段说明
字段枚举 | 描述 |
---|---|
number | 发票号码 |
total | 总金额 |
buyer | 购买方名称 |
buyer_tax_id | 购买方纳税人识别号 |
date | 日期 |
tax_authorities | 主管税务机关 |
船票识别结果字段说明
字段枚举 | 描述 |
---|---|
code | 发票代码 |
number | 发票号码 |
date | 日期 |
time | 时间 |
station_geton | 出发车站 |
station_getoff | 达到车站 |
total | 总金额 |
name | 姓名 |
kind | 发票消费类型 |
province | 省 |
city | 市 |
currency_code | 币种 |
增值税字段说明
字段枚举 | 描述 |
---|---|
check_code_candidates | 校验码备选 |
check_code_last_six | 校验码后六位备选 |
number_order_error | 发票号码备选(如发现可能错号等情况) |
二维码或者条码字段说明
字段枚举 | 描述 |
---|---|
qrcode | 二维码 |
barcode | 条码 |
示例
请求示例
POST /invoice/multiple?url=http://xxxxxx/xxx.jpg HTTP/1.1
Host: ap-gate-z0.qiniuapi.com
Authorization: Qiniu YnxrxOSvGotRZpqkZnMzl_euuoqRzOKUd6zwbRju:r6a-o2UpBg6A4puIMnkCExH8lE8=
返回示例
HTTP/1.1 200 OK
Content-Type: application/json
{
'result': 1,
'response': {
'data': {
'version': '4.8_20180226',
'result': 1,
'timestamp': 1092098766,
'message': 'success',
'sha1': '00a09af73198ab3ea81a6b58ba6a1f5879f47c63',//识别图片唯一标识
'time_cost': '1000',//识别花费的时长,单位毫秒
'identify_results': [
{// 发票 #1
'type': '10101', -- 发票类型
'orientation': 90, -- 发票顺时针旋转方向
'region': [100,100,200,200], // 单张发票区域: 左上点 和 右下点[x1, y1, x2, y2]
'details': { // 发票识别的具体信息, 不同发票类型会不一样
//增值税
'code': '6300161320', -- 印刷发票代码
'number': '15064112', -- 印刷发票号码
'date': '2017年03月28日', -- 开票日期
'pretax_amount': '2648.54', -- 税前金额
'total': '3098.79', -- 总金额
'tax': '450.25', -- 税额
'check_code': '52657910788452871589' -- 校验码
'seller': 'XXXXXX有限公司', -- 销售方名称
'seller_tax_id': '15260000000000000G', -- 销售方纳税人识别号
'buyer': 'XXXXXX有限公司', -- 购买方方名称
'buyer_tax_id': '11684616000000000D', -- 购买方纳税人识别号
'company_seal': '1', -- 是否有公司印章(0:没有; 1: 有)
'form_type': '第二联', -- 发票是第几联
'form_name': '发票联', -- 发票联次
'kind': '餐饮', -- 发票消费类型
'ciphertext': '<42/93+*/+2*+81*851<9,940-<9*>5+2-91,<1+>7*<81>7/8*140,50<\/<62-<1491+6+9', -- 密码区,四行密码,每行以逗号隔开
'transit_mark': '1', -- 通行费标志
'oil_mark': '1', -- 成品油标志
'machine_code': '499924850051', -- 机器编号
'travel_tax': '65.50', -- 车船税
'receiptor': 'xxx', -- 收款人
'reviewer': 'xxx', -- 复核
'issuer': 'xxx', -- 开票人
'province': '浙江省', -- 省
'city': '杭州市', -- 市
'service_name': '餐饮服务', -- 服务类型
'remark': '账期:201702, 号码:185750654', --备注
'item_names': '*餐饮服务*餐饮服务,*酒*白酒', --品名,每个以逗号隔开
'agent_mark': '1', -- 是否代开
'acquisition_mark': '1', -- 是否收购
'block_chain': '1', -- 区块链标记
'code_confirm': '6300161320', -- 机打发票代码
'number_confirm': '15064112', -- 机打发票号码
},
'extra': {
//增值税
'check_code_candidates':['52657910788452871583','52657910788452871588'], -- 校验码备选
'check_code_last_six':['871583','871588'] -- 校验码后六位备选
'number_order_error': ['15064115','15064116'] -- 发票号码备选(如发现可能错号等情况)
//二维码或者条码
'qrcode': ['00000102180000'], -- 二维码
'barcode': ['00000102180000'], -- 条码
}
},
{// 发票 #2
'type': '10102',
'orientation': 90, -- 发票顺时针旋转方向
'region': [400,400,500,500], // 单张发票区域: 左上点 和 右下点[x1, y1, x2, y2]
'details': { // 发票识别的具体信息, 不同发票类型会不一样
//出租车
'code': '133011680478', -- 发票代码
'number': '01670989', -- 发票号码
'date': '2017年08月29日', -- 乘车日期
'time_geton': '12:47', -- 上车时间
'time_getoff': '12:52', -- 下车时间
'mileage': '1.9', -- 里程
'total': '11.00', -- 总金额
'place': '浙江省杭州市', -- 发票所在地
'kind': '交通', -- 发票消费类型
'province': '浙江省', -- 省
'city': '杭州市', -- 市
'license_plate': '浙A88888', -- 车牌号
},
'extra': {
//增值税
'check_code_candidates':['52657910788452871583','52657910788452871588'], -- 校验码备选
'check_code_last_six':['871583','871588'] -- 校验码后六位备选
'number_order_error': ['15064115','15064116'] -- 发票号码备选(如发现可能错号等情况)
//二维码或者条码
'qrcode': ['00000102180000'], -- 二维码
'barcode': ['00000102180000'], -- 条码
}
}
],
'extra': {
//不属于发票的二维码或者条码
'qrcode': ['00000102180000'], -- 二维码
'barcode': ['00000102180000'], -- 条码
}
}
}
}
错误码
code | message | 原因 |
---|---|---|
10000 | Internal error | 内部错误 |
10003 | Invalid parameter | 参数校验错误 |
10006 | Invalid image | 图片资源校验错误 |
10400 | download image file failed | 下载图片失败 |
文档反馈
(如有产品使用问题,请 提交工单)