支持包括旅客姓名、身份证号码、电子客票号码、填开日期、填开单位等字段结构化识别输出。
接口说明
本接口适用场景
- 阿里云航空行程单识别,是阿里云官方自研 OCR 文字识别产品,适用于识别航空行程单所包含的乘机人姓名、身份证号、电子客票号码、验证码、填开日期、销售单位代号、承运人、填开单位、票价、税费、燃油附加费等关键信息的场景。
- 阿里云 OCR 产品基于阿里巴巴达摩院强大的 AI 技术及海量数据,历经多年沉淀打磨,具有服务稳定、操作简易、实时性高、能力全面等几大优势。
- 电子发票(航空运输电子客票行程单)暂不支持。
- 本接口图片示例

本接口核心能力
| 分类 | 概述 |
|---|---|
| 图像增强 | 默认支持图像增强,包括图像自动旋转、畸变自动矫正、模糊图片自动增强等能力。 |
| 多类型覆盖 | 支持模糊、光照不均、透视畸变、任意背景等低质量图像识别。 |
| 高精度识别 | 总体识别准确率可达 98%。 |
如何使用本接口
| 步骤 | 概述 |
|---|---|
| 1 | 开通 票据凭证识别 服务。开通服务前后,您可以通过体验馆免费体验本功能识别效果。 |
| 2 | 购买 票据凭证识别资源包。本 API 会赠送免费额度,可使用免费额度测试。您也可以不购买资源包,系统会通过“按量付费”方式按实际调用量自动扣款。 |
| 3 | 可以参照调试页面提供的代码示例完成 API 接入开发。接入完成后,调用 API 获取识别结果。如果使用子账号调用接口,需要阿里云账号(主账号)对 RAM 账号进行授权。创建 RAM 用户的具体操作,请参考:创建 RAM 用户。文字识别服务提供一种系统授权策略,即 AliyunOCRFullAccess。具体授权操作,请参见在用户页面为 RAM 用户授权。 |
重要提示
| 类型 | 概述 |
|---|---|
| 图片格式 |
|
| 图片尺寸 |
|
| 图片大小 |
|
| 相关能力 |
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用前面加 * 表示。
- 对于不支持资源级授权的操作,用
全部资源表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
| 操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
|---|---|---|---|---|
| ocr:RecognizeAirItinerary | *全部资源 * |
| 无 |
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
| Url | string | 否 |
| https://img.alicdn.com/tfs/TB1hBCIcBr0gK0jSZFnXXbRRXXa-1833-785.png |
| body | byte | 否 |
| 图片二进制文件 |
返回参数
返回参数说明
| 字段 | 类型 | 说明 |
|---|---|---|
| data | object | 结构化信息。 |
| sliceRect | list | 检测出的子图坐标信息。 |
| prism_keyValueInfo | list | 结构化信息的坐标信息。 |
| ftype | int | 是否为复印件(1:是,0:否)。 |
| height | int | 算法矫正图片后的高度。 |
| width | int | 算法矫正图片后的宽度。 |
| orgHeight | int | 原图的高度。 |
| orgWidth | int | 原图的宽度。 |
结构化信息(data 字段)
| 字段 | 类型 | 说明 |
|---|---|---|
| agentCode | string | 销售单位代号。 |
| caacDevelopmentFund | string | 民航发展基金。 |
| endorsement | string | 签注。 |
| fare | string | 票价。 |
| flights | list | 航班详单。 |
| fuelSurcharge | string | 燃油附加费。 |
| idCardNumber | string | 有效身份证号码。 |
| insurance | string | 保险费。 |
| internationalFlightSign | string | 国内国际标签。 |
| issueCompany | string | 填开单位。 |
| issueDate | string | 填开日期。 |
| otherTaxes | string | 其他税费。 |
| passengerName | string | 旅客姓名。 |
| pnrCode | string | PNR 码。 |
| promptMessage | string | 提示信息。 |
| serialNumber | string | 印刷序号。 |
| ticketNumber | string | 电子客票号码。 |
| totalAmount | string | 合计。 |
| validationCode | string | 验证码。 |
其他税费信息(flights 字段)
| 字段 | 类型 | 说明 |
|---|---|---|
| departureStation | string | 出发站。 |
| arrivalStation | string | 到达站。 |
| carrier | string | 承运人。 |
| flightNumber | string | 航班号。 |
| cabinClass | string | 舱位等级。 |
| flightDate | string | 乘机日期。 |
| flightTime | string | 乘机时间。 |
| seatClass | string | 座位等级。 |
| validFromDate | string | 客票生效日期。 |
| validToDate | string | 有效截止日期。 |
| freeBaggageAllowance | string | 免费行李。 |
结构化坐标信息(prism_keyValueInfo 字段)
| 字段 | 类型 | 说明 |
|---|---|---|
| key | string | 识别出的字段名称。 |
| keyProb | int | 字段名称置信度。 |
| value | string | 识别出的字段名称对应的值。 |
| valueProb | int | 字段名称对应值的置信度。 |
| valuePos | list | 字段在原图中的四个点坐标(左上、右上、右下、左下)。 |
示例
正常返回示例
JSON格式
{
"RequestId": "43A29C77-405E-4CC0-BC55-EE694AD00655",
"Data": {
"data": {
"internationalFlightSign": "国内(D)",
"serialNumber": 50424498176,
"passengerName": "闻一鸣",
"idCardNumber": 410678199112139840,
"endorsement": "Q/不得签转/变更退票收费",
"fare": 1410,
"caacDevelopmentFund": 50,
"fuelSurcharge": 0,
"totalAmount": 1460,
"ticketNumber": 7813575259334,
"validationCode": 9817,
"promptMessage": "西安始发国际在T3国内在13",
"insurance": 0,
"agentCode": "SIA25608336893",
"issueCompany": "成都携程旅行社有限公司北京分社",
"issueDate": "2019-02-28",
"pnrCode": "JNS20Q",
"otherTaxes": 0,
"flights": [
{
"departureStation": "西安咸阳",
"arrivalStation": "长春",
"carrier": "东航",
"flightNumber": "MU2271",
"cabinClass": "M",
"flightDate": "2019-02-27",
"flightTime": "15:05",
"seatClass": "M",
"validFromDate": "",
"validToDate": "",
"freeBaggageAllowance": "20K"
}
]
},
"height": 785,
"orgHeight": 785,
"orgWidth": 1833,
"prism_keyValueInfo": [
{
"key": "internationalFlightSign",
"keyProb": 100,
"value": "国内(D)",
"valueProb": 100
},
{
"key": "serialNumber",
"keyProb": 100,
"value": 50424498176,
"valuePos": [
{
"x": 1676,
"y": 113
},
{
"x": 1676,
"y": 144
},
{
"x": 1371,
"y": 144
},
{
"x": 1371,
"y": 112
}
],
"valueProb": 100
},
{
"key": "passengerName",
"keyProb": 98,
"value": "闻一鸣",
"valuePos": [
{
"x": 317,
"y": 167
},
{
"x": 317,
"y": 206
},
{
"x": 219,
"y": 206
},
{
"x": 219,
"y": 167
}
],
"valueProb": 98
},
{
"key": "idCardNumber",
"keyProb": 100,
"value": 410678199112139840,
"valuePos": [
{
"x": 878,
"y": 170
},
{
"x": 878,
"y": 200
},
{
"x": 519,
"y": 202
},
{
"x": 518,
"y": 171
}
],
"valueProb": 100
},
{
"key": "endorsement",
"keyProb": 92,
"value": "Q/不得签转/变更退票收费",
"valuePos": [
{
"x": 1581,
"y": 161
},
{
"x": 1582,
"y": 216
},
{
"x": 1114,
"y": 218
},
{
"x": 1114,
"y": 164
}
],
"valueProb": 92
},
{
"key": "fare",
"keyProb": 100,
"value": 1410,
"valuePos": [
{
"x": 526,
"y": 572
},
{
"x": 527,
"y": 545
},
{
"x": 712,
"y": 547
},
{
"x": 712,
"y": 575
}
],
"valueProb": 100
},
{
"key": "caacDevelopmentFund",
"keyProb": 100,
"value": 50,
"valuePos": [
{
"x": 788,
"y": 576
},
{
"x": 789,
"y": 548
},
{
"x": 935,
"y": 550
},
{
"x": 935,
"y": 578
}
],
"valueProb": 100
},
{
"key": "fuelSurcharge",
"keyProb": 100,
"value": 0,
"valuePos": [
{
"x": 1113,
"y": 551
},
{
"x": 1113,
"y": 578
},
{
"x": 989,
"y": 580
},
{
"x": 988,
"y": 553
}
],
"valueProb": 100
},
{
"key": "totalAmount",
"keyProb": 100,
"value": 1460,
"valuePos": [
{
"x": 1555,
"y": 558
},
{
"x": 1555,
"y": 583
},
{
"x": 1415,
"y": 583
},
{
"x": 1415,
"y": 558
}
],
"valueProb": 100
},
{
"key": "ticketNumber",
"keyProb": 98,
"value": 7813575259334,
"valuePos": [
{
"x": 263,
"y": 596
},
{
"x": 263,
"y": 568
},
{
"x": 527,
"y": 573
},
{
"x": 526,
"y": 601
}
],
"valueProb": 98
},
{
"key": "validationCode",
"keyProb": 100,
"value": 9817,
"valuePos": [
{
"x": 667,
"y": 602
},
{
"x": 668,
"y": 577
},
{
"x": 747,
"y": 579
},
{
"x": 747,
"y": 603
}
],
"valueProb": 100
},
{
"key": "promptMessage",
"keyProb": 99,
"value": "西安始发国际在T3国内在13",
"valuePos": [
{
"x": 994,
"y": 641
},
{
"x": 994,
"y": 592
},
{
"x": 1478,
"y": 601
},
{
"x": 1477,
"y": 649
}
],
"valueProb": 99
},
{
"key": "insurance",
"keyProb": 100,
"value": 0,
"valuePos": [
{
"x": 1572,
"y": 614
},
{
"x": 1573,
"y": 590
},
{
"x": 1635,
"y": 591
},
{
"x": 1635,
"y": 616
}
],
"valueProb": 100
},
{
"key": "agentCode",
"keyProb": 100,
"value": "SIA25608336893",
"valuePos": [
{
"x": 263,
"y": 685
},
{
"x": 264,
"y": 631
},
{
"x": 422,
"y": 633
},
{
"x": 421,
"y": 687
}
],
"valueProb": 100
},
{
"key": "issueCompany",
"keyProb": 100,
"value": "成都携程旅行社有限公司北京分社",
"valuePos": [
{
"x": 671,
"y": 700
},
{
"x": 671,
"y": 650
},
{
"x": 1271,
"y": 661
},
{
"x": 1270,
"y": 710
}
],
"valueProb": 100
},
{
"key": "issueDate",
"keyProb": 100,
"value": "2019-02-28",
"valuePos": [
{
"x": 1634,
"y": 648
},
{
"x": 1634,
"y": 674
},
{
"x": 1430,
"y": 677
},
{
"x": 1429,
"y": 650
}
],
"valueProb": 100
},
{
"key": "pnrCode",
"keyProb": 100,
"value": "JNS20Q",
"valuePos": [
{
"x": 335,
"y": 229
},
{
"x": 335,
"y": 258
},
{
"x": 211,
"y": 259
},
{
"x": 210,
"y": 231
}
],
"valueProb": 100
},
{
"key": "otherTaxes",
"keyProb": 100,
"value": 0,
"valueProb": 100
},
{
"key": "flights",
"keyProb": 100,
"value": [
{
"departureStation": "西安咸阳",
"arrivalStation": "长春",
"carrier": "东航",
"flightNumber": "MU2271",
"cabinClass": "M",
"flightDate": "2019-02-27",
"flightTime": "15:05",
"seatClass": "M",
"validFromDate": "",
"validToDate": "",
"freeBaggageAllowance": "20K"
}
],
"valueProb": 100
}
],
"width": 1833
},
"Code": "noPermission",
"Message": "You are not authorized to perform this operation."
}错误码
访问错误中心查看更多错误码。
变更历史
| 变更时间 | 变更内容概要 | 操作 |
|---|---|---|
| 2022-11-25 | API 内部配置变更,不影响调用 | 查看变更详情 |
| 2021-08-17 | OpenAPI 入参发生变更 | 查看变更详情 |
