A verificação de idade deixou de ser uma caixinha de seleção e virou uma tarefa de engenharia. No Reino Unido, o Online Safety Act exige de alguns serviços verificações de idade "altamente eficazes". Na UE, a Comissão Europeia publicou um modelo para provar que alguém tem mais de 18 anos sem entregar mais nada. Os dois citam os documentos de identidade como um dos caminhos.

Este artigo é para desenvolvedores que receberam o pedido de "adicionar verificação de idade" e querem saber onde entra o escaneamento de um documento. Ele mostra quais métodos as autoridades britânicas e europeias listam, o que o escaneamento de um passaporte ou de uma carteira de identidade prova e o que não prova, como transformar uma data de nascimento em uma resposta de maior ou menor de idade e o que guardar depois. Todas as citações vêm da página da própria autoridade, com link onde aparecem; os originais estão em inglês e as traduções são nossas.

Este é o blog do doc.cheap, uma API de OCR para passaportes e documentos de identidade. Leia a parte sobre o produto com isso em mente.

Reino Unido: a régua é "altamente eficaz"

A obrigação está na seção 12 do Online Safety Act 2023. Para os tipos de conteúdo mais nocivos, o provedor deve "usar verificação de idade ou estimativa de idade (ou ambas) para impedir que crianças de qualquer idade encontrem conteúdo de prioridade primária nocivo para crianças". E a verificação deve ser "de um tipo, e usada de uma forma, que seja altamente eficaz para determinar corretamente se um determinado usuário é ou não uma criança".

A seção 230 define os dois termos. Verificação de idade "significa qualquer medida destinada a verificar a idade exata dos usuários" de um serviço abrangido pela lei. Estimativa de idade "significa qualquer medida destinada a estimar a idade ou a faixa etária dos usuários". E fecha o atalho mais fácil: "Uma medida que exige que o usuário declare a própria idade (sem nada mais) não deve ser considerada verificação de idade nem estimativa de idade".

O Ofcom, órgão supervisor das comunicações do Reino Unido, explica a régua no seu guia sobre verificação de idade altamente eficaz para os serviços da Parte 3 (a versão atualizada é de 24 de abril de 2025). A seção 3 traz "uma lista não exaustiva" de métodos que ele considera capazes de ser altamente eficazes:

Método da lista do Ofcom Onde entra um documento de identidade
Open banking Não
Comparação com documento de identidade com foto Sim, o documento é a prova
Estimativa facial de idade Não
Verificação de idade pela operadora de telefonia móvel Não
Verificação por cartão de crédito Não
Estimativa de idade a partir do e-mail Não
Serviços de identidade digital Muitas vezes, no momento em que a identidade é verificada pela primeira vez

O Ofcom descreve assim a comparação com documento com foto: ela "funciona capturando as informações relevantes de um documento de identidade com foto enviado e comparando-as com uma imagem do usuário tirada no momento do envio do documento, para verificar que se trata da mesma pessoa".

A mesma seção lista o que não serve, incluindo "pedir ao usuário que informe sua data de nascimento sem outras provas que confirmem essa informação". Uma data de nascimento digitada é autodeclaração. Uma data de nascimento lida de um documento é prova, e o restante do guia do Ofcom trata de quão boa essa prova precisa ser.

A UE: um modelo baseado em prova de idade

Do lado europeu, a Comissão lançou a primeira versão de um modelo de verificação de idade em 14 de julho de 2025. Nas palavras dela, o modelo "oferece um método que permite aos usuários provar que têm mais de 18 anos ao acessar conteúdo adulto restrito, como pornografia on-line, sem revelar nenhum outro dado pessoal".

O desenho separa a verificação do uso. A "idade do usuário será verificada pelo emissor com base em dados pessoais detalhados, como a data de nascimento. No entanto, os serviços on-line receberão apenas uma prova de que o usuário tem mais de 18 anos, sem nenhum outro dado pessoal".

Os documentos de identidade entram no primeiro passo. A página de informações da Comissão sobre o modelo lista como fontes de uma prova de idade "as identidades eletrônicas nacionais, passaportes e carteiras de identidade, apps pré-instalados com informação de idade, como apps de banco, ou a ativação presencial por terceiros, como nos correios". E acrescenta que "em outubro de 2025, foi lançada uma segunda versão do modelo com um método baseado em passaporte e carteira de identidade para gerar uma prova de idade".

Ou seja, nos dois lugares um documento é uma entrada aceita. Em nenhum deles a foto de um documento, sozinha, é a verificação inteira.

O que um escaneamento prova e o que não prova

O escaneamento de um documento responde bem a uma pergunta: o que este documento diz? Ele lê a data de nascimento, a data de validade, o tipo de documento e a zona de leitura mecânica (MRZ), e pode dizer se os dígitos verificadores dessa zona batem. Essa é a parte de "capturar as informações relevantes" da descrição do Ofcom.

Ele não responde às outras perguntas que uma verificação de idade precisa cobrir:

  • A pessoa é o titular? A seção do Ofcom sobre robustez aponta o caminho óbvio: "um usuário menor de idade enviando a imagem de um documento que não lhe pertence". A resposta dele é que "exigir uma foto do usuário no momento do envio do documento, na comparação com documento com foto, ajuda a verificar que o documento pertence a esse usuário".
  • A pessoa está presente? "A detecção de prova de vida dá mais confiança de que um usuário menor de idade não enviou a foto de um adulto, ao garantir que o usuário que passa pelo processo de verificação de idade está presente no momento em que a verificação é feita".
  • O documento é autêntico? "Uma verificação robusta por documento com foto não deve poder ser contornada com facilidade e, por isso, um método por documento com foto deve ser capaz de detectar documentação falsificada ou manipulações que uma criança poderia criar ou obter".

Nada disso é OCR. Ler um documento e verificá-lo são trabalhos diferentes, feitos por ferramentas diferentes, e uma verificação de idade baseada em documentos precisa dos dois. A etapa de leitura entrega dados confiáveis sobre o documento; a comparação facial, a prova de vida e a verificação de autenticidade dizem se você pode confiar no documento e na pessoa.

Da data de nascimento a maior ou menor de idade

Depois que a data de nascimento é lida, a conta da idade é pequena, mas fácil de errar. Subtrair anos não basta: quem nasceu em 20 de novembro de 2008 tem 17 anos em 10 de novembro de 2026, não 18. Compare também o mês e o dia.

from datetime import date


def age_on(birth_iso: str, on: date) -> int:
    """Whole years completed on the day `on`, from a YYYY-MM-DD date of birth."""
    born = date.fromisoformat(birth_iso)
    years = on.year - born.year
    if (on.month, on.day) < (born.month, born.day):
        years -= 1  # o aniversário ainda não chegou neste ano
    return years


def is_over(birth_iso: str, threshold: int, on: date) -> bool:
    return age_on(birth_iso, on) >= threshold


print(age_on("2008-11-20", date(2026, 11, 10)))     # 17
print(is_over("2008-11-20", 18, date(2026, 11, 20)))  # True

Alguns detalhes fazem diferença na prática:

  • Use a data da verificação, em um único fuso horário. O "hoje" do servidor e o "hoje" do usuário podem ser diferentes perto da meia-noite. Escolha um critério e registre a data usada.
  • 29 de fevereiro. Com a comparação acima, quem nasceu em 29 de fevereiro faz aniversário em 1º de março nos anos que não são bissextos. Se a sua jurisdição define de outro jeito, mude essa única ramificação.
  • Uma data ausente não é uma resposta. Se o escaneamento não retornar data de nascimento, o resultado é "não foi possível verificar", nunca "maior de 18".
  • A validade é outra questão. Se um documento vencido é uma prova aceitável é uma decisão da sua política, então leia a data de validade e decida isso de forma explícita.

Guarde a resposta, não o documento

O desenho da Comissão envia aos serviços "apenas uma prova de que o usuário tem mais de 18 anos". A mesma ideia funciona no seu próprio sistema: depois da verificação, o resultado de que você precisa é um booleano e uma data, não a imagem de um passaporte.

A seção de privacidade do Ofcom aponta na mesma direção. Ela lembra aos provedores que "todos os métodos de verificação de idade envolvem o tratamento de dados pessoais e devem seguir uma abordagem de proteção de dados desde a concepção", e lista a minimização de dados e a limitação da conservação entre os princípios a seguir.

Um registro mínimo fica assim:

{
  "user_id": "u_3f9c",
  "check": "age_over_18",
  "result": true,
  "checked_on": "2026-11-10",
  "method": "photo_id_matching"
}

Sem imagem, sem número de documento, sem data de nascimento. Se uma lei exigir que você guarde mais, guarde exatamente isso, em um único armazenamento com a própria data de exclusão.

Onde o doc.cheap se encaixa

O doc.cheap lê passaportes, carteiras de identidade e carteiras de motorista e devolve em JSON o que está impresso. Para uma verificação de idade, os campos úteis são holder.birth_date, uma data ISO YYYY-MM-DD ou null, além de document.expiry_date, document.is_expired e mrz.status, de modo que a data que você passa para age_on vem de uma leitura que você consegue conferir.

É um serviço de leitura, não de verificação. No cenário de apenas reconhecimento, o campo authenticity.overall da resposta vem como not_checked, e a comparação facial e a prova de vida ficam com ferramentas feitas para isso. Ele também não guarda nada que você não peça: retain_hours: 0 com uma chave real não grava nenhuma linha, como explica o guia de retenção do histórico. A imagem em si nunca é armazenada.

Para testar a etapa de leitura antes de desenhar o resto, comece pela API gratuita de OCR de passaportes. Se você está escolhendo um provedor, a comparação de APIs de OCR de passaportes coloca os preços publicados lado a lado.

Este é um resumo técnico, não uma orientação jurídica.

Uma pergunta para você: qual parte da sua verificação de idade deu mais trabalho para acertar – a leitura, a comparação facial ou o registro que você guarda? Conte para a gente nos comentários abaixo.