Reino Unido: API de OCR de passaportes

Envie a foto de um passaporte (país emissor: Reino Unido) e receba os dados estruturados na mesma resposta HTTP – a zona de leitura mecânica (MRZ) interpretada, os dígitos verificadores ICAO 9303 conferidos e os campos visuais extraídos. Sem SDK para instalar, sem fila para consultar.

Reino Unido: como o passaporte é reconhecido

Um passaporte emitido por este país (Reino Unido) segue a norma ICAO 9303: uma zona de leitura mecânica de duas linhas de 44 caracteres (formato TD3) impressa no pé da página de dados, abaixo da zona de inspeção visual, que é lida por uma pessoa. Os cinco primeiros caracteres dela são P<GBR – o código do documento e, em seguida, o Estado emissor no código ISO 3166-1 alfa-3 GBR. A API lê as duas zonas, confere os dígitos verificadores da MRZ e devolve um único formato de resposta com todas as chaves presentes.

Em uma lista alfa-2, o código deste país é GB; na zona, é GBR: aqui o código mais longo é o mais curto seguido de R. Isso vale para este par, não como regra, então derivar um do outro é um bug esperando o primeiro país em que não se encaixa.

Reino Unido: zonas de leitura mecânica emitidas pelo país

A norma 9303 define três layouts de zona, e a API lê os três. Abaixo está uma titular inventada – ela não é ninguém, e paradeigma é a palavra grega para exemplo – em cada layout, com GBR como Estado emissor. Cada dígito verificador é calculado a partir dos caracteres ao lado dele, e não digitado, então cada zona desta página é válida.

TD3 – Passaporte (país emissor: Reino Unido)

2 linhas de 44. Nacionalidade GBR. O Estado emissor e a nacionalidade são ambos GBR: um passaporte certifica a nacionalidade do Estado que o emitiu.

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

TD2 – Documento de viagem (país emissor: Reino Unido)

2 linhas de 36. Nacionalidade GRC. Emitido por GBR para uma pessoa de nacionalidade GRC, então os dois códigos diferem. Aqui o nome tem 31 caracteres, em vez dos 39 do passaporte.

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

TD1 – Documento de identidade ou autorização de residência (país emissor: Reino Unido)

3 linhas de 30. Nacionalidade GRC. Três linhas de 30, com o nome em uma linha só para ele. O código do documento é ID – a parte 5 da 9303 fixa o primeiro caractere como A, C ou I e deixa o segundo a critério do Estado emissor.

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

Nenhum dígito verificador cobre o Estado emissor: nos três layouts, a aritmética passa pelo número do documento, pelas datas e pelos dados opcionais, nunca pelos três caracteres que dizem quem emitiu o documento. Uma zona cujos dígitos conferem todos não provou que veio deste país (Reino Unido) – quem faz isso é a zona visual e os elementos de segurança do próprio documento.

Os campos que você recebe

Todo passaporte reconhecido deste país (Reino Unido) devolve os mesmos campos estruturados. Um valor que não pôde ser lido é null, nunca uma chave ausente.

  • Sobrenome e nomes
  • Data de nascimento e sexo
  • Número do documento e número pessoal
  • Nacionalidade e Estado emissor (GBR)
  • Datas de emissão e de validade, dias restantes
  • O veredito da MRZ e as linhas das quais foi lida

Faça a chamada

Rode isto no sandbox público – sem cadastro, com reconhecimento real, grátis para um número limitado de documentos e 10 requisições por hora por IP. Troque a chave do sandbox pela sua própria chave de produção para continuar reconhecendo passaportes deste país (Reino Unido).

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')\"}"

Onde isto está documentado

Esta página trata do que é específico deste país (Reino Unido). As quatro páginas abaixo (em inglês) cobrem todo o resto.

  • Reconhecer um passaporte

    A chamada acima com um documento real, em curl, JavaScript e Python, e cada chave da resposta explicada.

  • A MRZ e a zona visual

    Por que um documento imprime os mesmos dados duas vezes, em qual zona confiar quando elas discordam e o que os dígitos verificadores podem e não podem provar.

  • Idiomas e escritas dos campos

    A zona é uma transliteração latina; a zona visual não é. Qual leitura mantém a escrita original e como um identificador de idioma é resolvido.

  • Erros

    Cada código de erro com que a API pode responder, em uma tabela: o que o causa, se uma nova tentativa pode funcionar e se a chamada foi cobrada.

Reino Unido: comece a reconhecer passaportes

Primeira chamada bem-sucedida em menos de 60 segundos, 1¢ por documento, e a imagem do documento nunca é armazenada.

Você paga só pelos documentos que de fato reconhecemos.

Foto borrada, nenhum documento no enquadramento, tipo desconhecido: grátis. Você nunca paga por uma leitura que falhou.