英国护照 OCR API

发送一张英国护照的照片,同一个 HTTP 响应中就会返回结构化数据 – 解析后的机读区(MRZ)、经过验证的 ICAO 9303 校验位,以及提取出的视读区字段。无需安装 SDK,也无需轮询队列。

如何识别英国护照

英国护照遵循 ICAO 9303 标准:资料页底部印有两行、每行 44 个字符的机读区(格式 TD3),位于供人阅读的视读区下方。它的前五个字符是 P<GBR – 先是证件代码,然后是以 ISO 3166-1 alpha-3 代码表示的签发国 GBR。API 会读取两个区,交叉核对 MRZ 校验位,并返回一种所有键都齐全的统一响应结构。

英国在 alpha-2 列表中是 GB,在机读区中是 GBR:在这里,较长的代码恰好是较短的代码后面加上 R。这只对这一对代码成立,并不是规律,所以从一个推导出另一个,是一个等着第一个不符合的国家出现的 bug。

英国签发的机读区

9303 定义了三种机读区版式,API 三种都能读取。下面是同一位虚构持有人在每种版式中的示例 – 她并不存在,paradeigma 是希腊语中表示示例的词 – 签发国均为 GBR。每个校验位都是根据旁边的字符计算出来的,而不是手工填写的,因此这里的每个机读区都能通过验证。

TD3 – 英国护照

2 行,每行 44 个字符。国籍 GBR 签发国和国籍都是 GBR:护照证明的是签发国本国的国籍。

P<GBRPARADEIGMA<<ELENI<SOFIA<<<<<<<<<<<<<<<<
AM73045184GBR9403084F3203101PN48291630<<<<72

TD2 – 英国签发的旅行证件

2 行,每行 36 个字符。国籍 GRC 由 GBR 签发给一名 GRC 国民,因此两个代码不同。这里的姓名占 31 个字符,而护照上是 39 个。

I<GBRPARADEIGMA<<ELENI<SOFIA<<<<<<<<
TR61850420GRC9403084F2911043<<<<<<<2

TD1 – 英国签发的身份证或居留许可

3 行,每行 30 个字符。国籍 GRC 三行,每行 30 个字符,姓名单独占一行。证件代码为 ID – 9303 第 5 部分规定第一个字符为 A、C 或 I,第二个字符由签发国自行决定。

IDGBRAK472913<4PN48291630<<<<<
9403084F3405204GRC<<<<<<<<<<<9
PARADEIGMA<<ELENI<SOFIA<<<<<<<

没有任何校验位覆盖签发国:在三种版式中,校验计算针对的都是证件号码、日期和可选数据,从不包括表明证件由谁签发的那三个字符。即使一个机读区的校验位全部通过,也不能证明它来自英国 – 这要靠视读区和证件本身的防伪特征来证明。

您会拿回的字段

每一本被识别的英国护照都返回同样的结构化字段。无法读取的值为 null,绝不会缺少键。

  • 姓和名
  • 出生日期和性别
  • 证件号码和个人号码
  • 国籍和签发国(GBR)
  • 签发日期和有效期至,剩余天数
  • MRZ 结论,以及读取所依据的各行原文

发起调用

在公开沙箱上运行这条命令 – 无需注册,真实识别,对有限数量的证件免费,每个 IP 每小时最多 10 次请求。把沙箱密钥换成您自己的正式密钥,即可继续识别英国护照。

curl -X POST https://api.doc.cheap/v1/scans \
  -H "Authorization: Bearer sk_sandbox_public" \
  -H "Content-Type: application/json" \
  -d "{\"image\": \"$(base64 < document.jpg | tr -d '\n')\"}"

相关文档

本页介绍英国特有的内容。其他所有内容都在下面四个页面中(英文)。

  • 识别护照

    用一份真实证件演示上面的调用,提供 curl、JavaScript 和 Python 版本,并逐一讲解响应中的每个键。

  • MRZ 与视读区

    为什么证件要把同样的信息印两遍,两者不一致时该相信哪个区,以及上述校验位能证明什么、不能证明什么。

  • 字段的语言与文字

    机读区是拉丁字母转写,视读区则不是。哪种读取结果保留了原文字,以及语言标识符如何对应到具体语言。

  • 错误

    API 可能返回的每个错误代码,汇总在一张表中:由什么引起、重试能否成功,以及该次调用是否计费。

开始识别英国护照

60 秒内完成首次成功调用,每份证件 1¢,证件图像从不存储。

只为我们真正识别出的证件付费。

照片模糊、画面中没有证件、证件类型未知:全部免费。扫描失败,您永远不用付钱。