跳到主要内容

护照 OCR

提供移动端与网页版 SDK

无需自行开发摄像头功能——我们免费开源的 eKYC SDK(网页、Flutter、iOS、Android 与 React Native)可自动拍摄证件和面部,并为您调用此 API。在 GitHub 上查看

护照 OCR API 读取任何符合 ICAO 9303 标准的护照的机器可读区(MRZ),返回持有人信息——护照号码、姓名、日期、国籍——以及面部照片和一组验证标志。护照 MRZ 具备自我校验能力:每个关键字段都带有自己的校验位,valid_* 标志会报告每个返回值是否满足对应校验位,因此识别结果可以通过算术方式加以验证,而无需盲目信任。生产服务的响应时间中位数为 0.4 秒,可持续处理每小时 15,000 本护照;在 266 本护照的基准测试中,95.5% 的识别结果的护照号码、出生日期与到期日期全部通过校验位验证,且 100% 的 MRZ 均成功解析。参见准确率

在线演示

上传一张护照资料页照片,或使用下方的样本。

试用 AI 演示

登录或创建免费账户来使用此 AI 服务演示并探索我们强大的 API。

注册即可获得 100 积分 (IC) 免费赠送!

优惠截止至 2025 年 12 月 31 日

Example Images (Click to try)

Example 1
Try Demo

试用 SDK(实时摄像头)

若您不希望上传文件,免费开源的 iApp eKYC Web SDK 可通过您的摄像头自动拍摄护照资料页——它会检测资料页边界、等待清晰稳定的画面、对图像进行透视校正,然后提交至此 API。更多流程请参阅完整的 SDK 实时演示页面

Loading live demo…

快速入门

您需要先在 API 密钥管理 页面获取 API 密钥。将图像以 multipart/form-data 形式发送:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/passport \
-H "apikey: YOUR_API_KEY" \
-F "file=@passport.jpg"
{
"number": "AC1062346",
"valid_number": true,
"surname": "POSHNASWADIWONG",
"names": "MATHANIDA",
"date_of_birth": "10/07/93",
"valid_date_of_birth": true,
"expiration_date": "04/03/25",
"valid_expiration_date": true,
"nationality": "THA",
"valid_composite": true
}

valid_number 是需要据以采取行动的字段:当其为 false 时,返回的号码不可能属于任何真实护照,此时应重新拍摄图像,而不是信任该值。完整的响应结构请参见技术参考

端点与定价

端点输出价格
POST /v3/store/ekyc/passport包含持有人信息、校验位验证标志与面部照片的 JSON每页 0.75 IC

旧版路径 /passport-ocr/passport-ocr/v2/passport-ocr/v2/ocr 仍以相同价格继续支持,并指向同一服务。本地化部署请参见数据安全

性能

以下数据于 2026 年 8 月在生产服务上实测。

指标数值
处理时间中位数每本 0.4 s
持续吞吐量每秒 4.3 本(每小时 15,000 本)
支持的输入格式JPEG、JPG、PNG、WEBP、PDF(每页一条结果)
覆盖范围任何符合 ICAO 9303 标准的机读护照

准确率

护照 MRZ 自带校验位,因此正确性在 266 本护照的基准测试中以算术方式衡量——无需参考转写,也不涉及主观判断:返回的字段要么满足护照上印制的校验位,要么不满足。

指标v2.0.3
MRZ 解析成功100%
护照号码通过验证96.2%
出生日期通过验证99.2%
到期日期通过验证98.1%
个人号码通过验证98.5%
号码、出生日期与到期日期全部通过验证95.5%

2026 年 8 月的版本将完全通过验证的比例从 58.6% 提升至 95.5%——未通过校验位的护照号码不可能是真实号码,此类识别结果的占比已从护照总数的 30% 降至不足 4%。该衡量方式刻意保守:校验位仅为一位十进制数字,约十分之一的错误识别会碰巧通过校验,因此凡以此方式衡量的版本,其真实准确率均略低于上述数字。完整的方法论、引擎与验证逻辑各自贡献的单独测量,以及修复逻辑的安全性说明,均已在白皮书中发布:

下载基准测试白皮书 (PDF)

数据安全与合规

  • 本服务符合 GDPR 与 PDPA 要求。
  • 上传的图像仅在内存中处理,响应返回后不予保留。
  • 提供完全自包含的本地化部署方案,护照数据不会离开您的基础设施。详情请联系我们

技术参考

请求

使用 POST 方法,以 multipart/form-data 形式提交并携带 apikey 请求头。

参数是否必需描述
file护照图像或 PDF(JPG、JPEG、PNG、WEBP、PDF)。PDF 每页返回一条结果,各含 pageinfo
fields以逗号分隔的字段子集,指定需要返回的字段;省略时返回全部字段
options以逗号分隔。segmentation 可校正方向严重偏差的图像(耗时约为原来的 2 倍);no_thresh 跳过对 MRZ 裁剪区域的预处理

响应

返回 200 与一个扁平的 JSON 对象。

持有人信息

字段描述
number护照号码
surname姓氏,按 MRZ 中的印制形式
names名字
date_of_birthDD/MM/YY
expiration_dateDD/MM/YY
sexMF,未注明时为 <
nationalityISO 3166-1 alpha-3
country签发国家,ISO 3166-1 alpha-3
personal_number可选的个人号码;许多护照上为空
typeMRZ 中印刷的文档类型(普通护照为 P<
mrz_typeMRZ 版式(护照为 TD3
face面部照片,Base64 JPEG

验证 — 每个字段是否与其校验位一致,以及印制的校验位本身。

字段描述
valid_number护照号码与其校验位一致
valid_date_of_birth出生日期与其校验位一致
valid_expiration_date到期日期与其校验位一致
valid_personal_number个人号码与其校验位一致
valid_compositeMRZ 整体与其复合校验位一致
valid_score校验位通过的百分比(0100
check_number, check_date_of_birth, check_expiration_date, check_personal_number, check_composite印制的校验位

诊断信息

字段描述
raw_textMRZ 的两行文本,每行 44 个字符
methodMRZ 区带的定位方式
inference处理时间(秒)
file_name, message, status_code正常情况下为 Success / 200

当无法定位 MRZ 时,请求仍会返回 200,并附带 Error Message 字段;options=segmentation 通常可解决方向严重偏差的图像。

响应代码

状态码含义
200成功(包括未找到 MRZ 的情况,在响应正文中报告)
415不支持的文件类型
461未附带文件
462请求表单中不含 file

代码示例

curl -X POST https://api.iapp.co.th/v3/store/ekyc/passport \
-H "apikey: YOUR_API_KEY" \
-F "file=@passport.jpg"

限制

  • 仅读取机器可读区;MRZ 之外的视读区文本不予提取。
  • date_of_birthexpiration_date 中的两位数年份是 MRZ 标准本身的特性,该标准不编码世纪信息。
  • 方向严重偏差或倾斜的拍摄图像可能需要 options=segmentation,处理时间约增加一倍。

更新日志

版本日期变更
v2.0.5-202608252026-08-25公共 endpoint 现由统一的护照服务提供。日期以 DD/MM/YY 返回——这是该服务自 2023 年以来向集成方返回的格式;曾解析临时 YYMMDD 格式的调用方需要更新。新增 typemrz_typemethodvalid_score(校验位通过百分比)字段。持续吞吐量提升至每小时 15,000 本。
v2.0.3-202608252026-08-25升级识别能力并新增 MRZ 结构化验证。在 266 本护照的基准测试中,完全通过校验位验证的识别结果(号码、出生日期与到期日期同时通过)从 58.6% 提升至 95.5%,且所有 MRZ 均可解析。处理时间中位数从 0.26 s 降至 0.2 s。文档中记载的 valid_date_of_birthvalid_expiration_date 字段现已实际返回。提供完全自包含的本地化部署。
v2.02023 年 2 月MRZ 提取,含面部图像与校验位标志。