1. 接口描述
接口请求域名: ocr.tencentcloudapi.com 。
本接口支持 PDF多页(最多30页)、一页中单张、多张、类型票据的混合识别,同时支持单选识别某类票据,已支持票种包括:增值税发票(专票、普票、卷票、区块链发票、通行费发票)、全电发票(专票、普票)、非税发票(通用票据、统一缴纳书)、定额发票、通用机打发票、购车发票(机动车销售发票、二手车发票)、火车票、出租车发票、机票行程单、汽车票、轮船票、过路过桥费发票共14种标准报销发票,支持OFD格式的 增值税电子普通发票、增值税电子专用发票、电子发票(普通发票)、电子发票(增值税专用发票)、电子发票(机票行程单)、电子发票(铁路电子客票)的第一页识别,并支持非上述类型的其他发票的智能识别,点击立即试用。
默认接口请求频率限制:5次/秒。
支持返回的细项目子票种SubType、子票种中文TypeDescription、以及对应所属大类票种Type 的说明如下列表:
SubType 子票种英文 | TypeDescription子票种中文 | Type 所属大类票种 |
---|---|---|
VatSpecialInvoice | 增值税专用发票 | 3 |
VatCommonInvoice | 增值税普通发票 | 3 |
VatElectronicCommonInvoice | 增值税电子普通发票 | 3 |
VatElectronicSpecialInvoice | 增值税电子专用发票 | 3 |
VatElectronicInvoiceBlockchain | 区块链电子发票 | 3 |
VatElectronicInvoiceToll | 增值税电子普通发票(通行费) | 3 |
VatSalesList | 增值税销货清单 | 3 |
VatElectronicSpecialInvoiceFull | 电子发票(专用发票) | 16 |
VatElectronicInvoiceFull | 电子发票(普通发票) | 16 |
ElectronicFlightTicketFull | 电子发票(机票行程单),该子类目前仅支持ofd发票 | 16 |
ElectronicTrainTicketFull | 电子发票(铁路电子客票),该子类目前仅支持ofd发票 | 16 |
MotorVehicleSaleInvoice | 机动车销售统一发票 | 12 |
UsedCarPurchaseInvoice | 二手车销售统一发票 | 12 |
VatInvoiceRoll | 增值税普通发票(卷票) | 11 |
TaxiTicket | 出租车发票 | 0 |
QuotaInvoice | 定额发票 | 1 |
TrainTicket | 火车票 | 2 |
AirTransport | 机票行程单 | 5 |
MachinePrintedInvoice | 通用机打发票 | 8 |
BusInvoice | 汽车票 | 9 |
ShippingInvoice | 轮船票 | 10 |
NonTaxIncomeGeneralBill | 非税收入通用票据 | 15 |
NonTaxIncomeElectronicBill | 非税收入一般缴款书(电子) | 15 |
TollInvoice | 过路过桥费发票 | 13 |
MedicalOutpatientInvoice | 医疗门诊收费票据(电子) | 17 |
MedicalHospitalizedInvoice | 医疗住院收费票据(电子) | 17 |
OtherInvoice | 其他发票 | -1 |
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:RecognizeGeneralInvoice。 |
Version | 是 | String | 公共参数,本接口取值:2018-11-19。 |
Region | 是 | String | 公共参数,详见产品支持的 地域列表,本接口仅支持其中的: ap-beijing, ap-guangzhou, ap-hongkong, ap-shanghai 。 |
ImageBase64 | 否 | String | 图片的 Base64 值。 支持的图片格式:PNG、JPG、JPEG、PDF,暂不支持 GIF 格式。 支持的图片大小:所下载图片经Base64编码后不超过 8M。图片下载时间不超过 3 秒。 支持的图片像素:单边介于20-10000px之间。 图片的 ImageUrl、ImageBase64 必须提供一个,如果都提供,只使用 ImageUrl。 |
ImageUrl | 否 | String | 图片的 Url 地址。 支持的图片格式:PNG、JPG、JPEG、PDF,暂不支持 GIF 格式。 支持的图片大小:所下载图片经 Base64 编码后不超过 8M。图片下载时间不超过 3 秒。 支持的图片像素:单边介于20-10000px之间。 图片存储于腾讯云的 Url 可保障更高的下载速度和稳定性,建议图片存储于腾讯云。 非腾讯云存储的 Url 速度和稳定性可能受一定影响。 示例值:https://xx/a.jpg |
Types.N | 否 | Array of Integer | 需要识别的票据类型列表,为空或不填表示识别全部类型。当传入单个类型时,图片均采用该票类型进行处理。 暂不支持多个参数进行局部控制。 0:出租车发票 1:定额发票 2:火车票 3:增值税发票 5:机票行程单 8:通用机打发票 9:汽车票 10:轮船票 11:增值税发票(卷票 ) 12:购车发票 13:过路过桥费发票 15:非税发票 16:全电发票 17:医疗发票 -1:其他发票 |
EnableOther | 否 | Boolean | 是否开启其他票识别,默认值为true,开启后可支持其他发票的智能识别。 |
EnablePdf | 否 | Boolean | 是否开启PDF识别,默认值为true,开启后可同时支持图片和PDF的识别。 示例值:false |
PdfPageNumber | 否 | Integer | 需要识别的PDF页面的对应页码,传入时仅支持PDF单页识别,当上传文件为PDF且EnablePdf参数值为true时有效,默认值为1。 示例值:1 |
EnableMultiplePage | 否 | Boolean | 是否开启PDF多页识别,默认值为false,开启后可同时支持多页PDF的识别返回,仅支持返回文件前30页。开启后EnablePdf和PdfPageNumber入参不进行控制。 示例值:true |
EnableCutImage | 否 | Boolean | 是否返回切割图片base64,默认值为false。 |
EnableItemPolygon | 否 | Boolean | 是否打开字段坐标返回。默认为false。 |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
MixedInvoiceItems | Array of InvoiceItem | 混贴票据识别结果,具体内容请点击左侧链接。 |
TotalPDFCount | Integer | PDF文件总页码 |
RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 通用票据识别(高级版)
通用票据识别(高级版)识别多张票据
输入示例
POST / HTTP/1.1
Host: ocr.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: RecognizeGeneralInvoice
<公共请求参数>
{
"ImageUrl": "abc",
"EnableMultiplePage": true
}
输出示例
{
"Response": {
"MixedInvoiceItems": [
{
"Code": "OK",
"Type": 3,
"SubType": "VatSpecialInvoice",
"TypeDescription": "增值税发票",
"SubTypeDescription": "增值税专用发票",
"ItemPolygon": [],
"Polygon": {
"LeftBottom": {
"X": 15,
"Y": 884
},
"LeftTop": {
"X": 15,
"Y": 31
},
"RightBottom": {
"X": 1354,
"Y": 884
},
"RightTop": {
"X": 1354,
"Y": 31
}
},
"Angle": 270,
"SingleInvoiceInfos": {
"AirTransport": null,
"BusInvoice": null,
"MachinePrintedInvoice": null,
"MedicalHospitalizedInvoice": null,
"MedicalOutpatientInvoice": null,
"MotorVehicleSaleInvoice": null,
"NonTaxIncomeElectronicBill": null,
"NonTaxIncomeGeneralBill": null,
"OtherInvoice": null,
"QuotaInvoice": null,
"ShippingInvoice": null,
"TaxiTicket": null,
"TollInvoice": null,
"TrainTicket": null,
"UsedCarPurchaseInvoice": null,
"VatCommonInvoice": null,
"VatElectronicCommonInvoice": null,
"VatElectronicInvoiceBlockchain": null,
"VatElectronicInvoiceFull": null,
"VatElectronicInvoiceToll": null,
"VatElectronicSpecialInvoice": null,
"VatElectronicSpecialInvoiceFull": null,
"VatInvoiceRoll": null,
"VatSalesList": null,
"ElectronicTrainTicketFull": null,
"ElectronicFlightTicketFull": null,
"VatSpecialInvoice": {
"AcquisitionMark": 0,
"AgentMark": 0,
"BlockChainMark": 0,
"Buyer": "深圳市腾讯计算机系统有限公司",
"BuyerAddrTel": "深圳市南山区高新区高新南一路飞亚达大厦5-10楼0755-86013388",
"BuyerBankAccount": "招商银行深圳分行振兴支行817282299619961",
"BuyerTaxID": "440300708461136",
"CheckCode": "",
"Ciphertext": "*7-0<84019---5+68315-99->/51,>814<1/7922/<-23/908+>7474+3,78312-072<3<729-+4<6*315-094,->/5>18493/1-60*6-43/90<--78",
"City": "深圳市",
"Code": "4403152130",
"CodeConfirm": "4403152130",
"CompanySealContent": "深圳市游戏科技有限公司,040400,复票专用章,NDN",
"CompanySealMark": 1,
"Date": "2016年04月11日",
"ElectronicFullMark": 0,
"ElectronicFullNumber": "",
"FormName": "发票联",
"FormType": "三",
"Issuer": "张三",
"Kind": "服务",
"MachineCode": "",
"Number": "14998456",
"NumberConfirm": "14998456",
"OilMark": 0,
"PretaxAmount": "778.44",
"Province": "广东省",
"QRCodeMark": 0,
"Receiptor": "李明",
"Remark": "",
"Reviewer": "晓艾",
"Seller": "深圳市游戏科技有限公司",
"SellerAddrTel": "深圳市南山区高新南一道3号赋安科技大楼A座301室0755-86315454",
"SellerBankAccount": "浦发行深圳科技园支行79210154740015474",
"SellerTaxID": "440300094040109",
"ServiceName": "",
"SubTax": "",
"SubTotal": "",
"Tax": "46.71",
"TaxSealContent": "",
"Title": "深圳增值税专用发票",
"Total": "825.15",
"TotalCn": "捌佰贰拾伍圆壹角伍分",
"TransitMark": 0,
"TravelTax": "",
"VatInvoiceItemInfos": [
{
"DateEnd": "",
"DateStart": "",
"LicensePlate": "",
"Name": "技术服务费",
"Price": "",
"Quantity": "",
"SerialNumber": "",
"Specification": "",
"Tax": "46.71",
"TaxRate": "6%",
"Total": "778.44",
"Unit": "",
"VehicleType": ""
}
]
}
},
"Page": 1,
"CutImage": ""
},
{
"Code": "OK",
"Type": 13,
"SubType": "TollInvoice",
"TypeDescription": "过路过桥费发票",
"SubTypeDescription": "过路过桥费发票",
"ItemPolygon": [],
"Polygon": {
"LeftBottom": {
"X": 29,
"Y": 1480
},
"LeftTop": {
"X": 29,
"Y": 900
},
"RightBottom": {
"X": 487,
"Y": 1480
},
"RightTop": {
"X": 487,
"Y": 900
}
},
"Angle": 0.0409967303276062,
"SingleInvoiceInfos": {
"AirTransport": null,
"BusInvoice": null,
"MachinePrintedInvoice": null,
"MedicalHospitalizedInvoice": null,
"MedicalOutpatientInvoice": null,
"MotorVehicleSaleInvoice": null,
"NonTaxIncomeElectronicBill": null,
"NonTaxIncomeGeneralBill": null,
"OtherInvoice": null,
"QuotaInvoice": null,
"ShippingInvoice": null,
"TaxiTicket": null,
"TollInvoice": {
"Code": "144031700221",
"Date": "2018年08月07日",
"Entrance": "前海",
"Exit": "大铲湾",
"HighwayMark": 1,
"Kind": "交通",
"Number": "27357827",
"QRCodeMark": 0,
"Time": "06:14:03",
"Title": "深圳市广深沿江高速公路投资有限公司通用机打发票",
"Total": "5.00"
},
"TrainTicket": null,
"UsedCarPurchaseInvoice": null,
"VatCommonInvoice": null,
"VatElectronicCommonInvoice": null,
"VatElectronicInvoiceBlockchain": null,
"VatElectronicInvoiceFull": null,
"VatElectronicInvoiceToll": null,
"VatElectronicSpecialInvoice": null,
"VatElectronicSpecialInvoiceFull": null,
"VatInvoiceRoll": null,
"VatSalesList": null,
"VatSpecialInvoice": null,
"ElectronicFlightTicketFull": null,
"ElectronicTrainTicketFull": null
},
"Page": 1,
"CutImage": ""
},
{
"Code": "OK",
"Type": 2,
"SubType": "TrainTicket",
"TypeDescription": "火车票",
"SubTypeDescription": "火车票",
"ItemPolygon": [],
"Polygon": {
"LeftBottom": {
"X": 517,
"Y": 1226
},
"LeftTop": {
"X": 517,
"Y": 950
},
"RightBottom": {
"X": 966,
"Y": 1226
},
"RightTop": {
"X": 966,
"Y": 950
}
},
"Angle": 0.24512287974357605,
"SingleInvoiceInfos": {
"AirTransport": null,
"BusInvoice": null,
"MachinePrintedInvoice": null,
"MedicalHospitalizedInvoice": null,
"MedicalOutpatientInvoice": null,
"MotorVehicleSaleInvoice": null,
"NonTaxIncomeElectronicBill": null,
"NonTaxIncomeGeneralBill": null,
"OtherInvoice": null,
"QuotaInvoice": null,
"ShippingInvoice": null,
"TaxiTicket": null,
"TollInvoice": null,
"TrainTicket": {
"AdditionalFare": "",
"DateGetOn": "2018年03月06日",
"GateNumber": "",
"HandlingFee": "",
"Kind": "交通",
"Name": "周周",
"Number": "Z96X089517",
"OriginalFare": "",
"PickUpAddress": "上海自",
"QRCodeMark": 0,
"ReceiptNumber": "",
"ReimburseOnlyMark": 0,
"Seat": "新空调硬座",
"SeatNumber": "02车016号",
"SerialNumber": "30671300960307X089517",
"StationGetOff": "南京",
"StationGetOn": "上海",
"TicketChange": "0",
"TimeGetOn": "18:51",
"Title": "",
"Total": "46.50",
"RefundMark": 0,
"TotalCn": "",
"TrainNumber": "Z196",
"UserID": "3210231991****6666"
},
"UsedCarPurchaseInvoice": null,
"VatCommonInvoice": null,
"VatElectronicCommonInvoice": null,
"VatElectronicInvoiceBlockchain": null,
"VatElectronicInvoiceFull": null,
"VatElectronicInvoiceToll": null,
"VatElectronicSpecialInvoice": null,
"VatElectronicSpecialInvoiceFull": null,
"VatInvoiceRoll": null,
"VatSalesList": null,
"VatSpecialInvoice": null,
"ElectronicTrainTicketFull": null,
"ElectronicFlightTicketFull": null
},
"Page": 1,
"CutImage": ""
}
],
"RequestId": "b845b64b-38db-4862-8f2c-8d8b21be6e0b",
"TotalPDFCount": 1
}
}
5. 开发者资源
腾讯云 API 平台
腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。
API Inspector
用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。
SDK
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
- Tencent Cloud SDK 3.0 for Python: GitHub Gitee
- Tencent Cloud SDK 3.0 for Java: GitHub Gitee
- Tencent Cloud SDK 3.0 for PHP: GitHub Gitee
- Tencent Cloud SDK 3.0 for Go: GitHub Gitee
- Tencent Cloud SDK 3.0 for Node.js: GitHub Gitee
- Tencent Cloud SDK 3.0 for .NET: GitHub Gitee
- Tencent Cloud SDK 3.0 for C++: GitHub Gitee
- Tencent Cloud SDK 3.0 for Ruby: GitHub Gitee
命令行工具
6. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
错误码 | 描述 |
---|---|
FailedOperation.DownLoadError | 文件下载失败。 |
FailedOperation.ImageBlur | 图片模糊。 |
FailedOperation.ImageDecodeFailed | 图片解码失败。 |
FailedOperation.OcrFailed | OCR识别失败。 |
FailedOperation.UnKnowError | 未知错误。 |
FailedOperation.UnOpenError | 服务未开通。 |
InvalidParameterValue.InvalidParameterValueLimit | 参数值错误。 |
LimitExceeded.TooLargeFileError | 文件内容太大。 |
ResourceUnavailable.InArrears | 账号已欠费。 |
ResourceUnavailable.ResourcePackageRunOut | 账号资源包耗尽。 |
ResourcesSoldOut.ChargeStatusException | 计费状态异常。 |