Menu

Comprimento do número de identidade por país

O comprimento do número de identidade por país varia de poucos a mais de uma dezena de caracteres, e o formato pode ter mudado com o tempo. Veja como lidar com isso.

Publicado em

  • documento
  • validação
  • internacional

O comprimento do número de identidade por país não segue um padrão comum, e essa é a primeira coisa que um formulário internacional descobre da pior maneira. Há países que usam apenas algarismos, outros que misturam letras e números, alguns que embutem a data de nascimento no próprio número e outros que acrescentam um ou dois dígitos de controle no fim. Neste texto, mostramos por que a variação existe, o que ela faz com um cadastro mal projetado e como organizar a conferência sem tentar cobrir o mundo com uma regra só.

Por que os formatos divergem tanto

Um número de identidade é um identificador administrativo, criado pelo país para resolver um problema local: registrar contribuintes, eleitores, residentes ou cidadãos. Como cada país resolveu esse problema na sua própria época, com a sua própria tecnologia e as suas próprias leis, o resultado é uma coleção de formatos que só têm em comum o fato de serem únicos dentro do território.

Três decisões explicam quase toda a variação:

  • O alfabeto permitido. Alguns países usam só algarismos, porque o número é digitado em teclados numéricos e lido por máquinas. Outros aceitam letras, o que amplia muito a quantidade de combinações possíveis.
  • A informação embutida. Certos formatos carregam data de nascimento ou um código de região dentro dos próprios caracteres. Outros não carregam nada e funcionam como um número de série puro.
  • O dígito de controle. Muitos sistemas calculam um ou dois caracteres finais a partir dos anteriores. A conta é aritmética simples, e o resultado serve para detectar erros de digitação e trocas de algarismos vizinhos.

Um detalhe importante: a existência de um dígito de controle não diz nada sobre o número pertencer a alguém. Ele apenas indica que os caracteres anteriores foram combinados de acordo com a regra do sistema. Não é um selo de autenticidade e não substitui nenhuma consulta ao órgão emissor.

Um mesmo país pode ter mais de um formato?

Formatos mudam. Um país pode substituir o documento antigo por um novo, ampliar a quantidade de caracteres para acomodar mais gente, trocar o alfabeto permitido ou acrescentar um dígito de controle a um sistema que não tinha nenhum. Quando isso acontece, os dois formatos costumam conviver por anos: documentos antigos continuam válidos para quem já os tem, e documentos novos passam a ser emitidos na estrutura nova.

Para um sistema isso significa que a regra de validação não basta: ela precisa de uma data de referência e de um caminho para valores antigos. A prática mais comum é aceitar a união dos formatos conhecidos, e não apenas o mais recente, porque recusar um documento legítimo é um defeito mais grave do que aceitar um número inventado que ninguém vai usar para nada.

O que um comprimento fixo quebra na prática

Um formulário que declara que o documento tem exatamente um número fixo de algarismos parece rigoroso e é frágil. Os efeitos aparecem em sequência:

Situação O que acontece com um limite fixo
Documento de outro país, mais curto O campo exige caracteres que não existem e o formulário trava
Documento com letras A digitação é recusada antes de chegar ao servidor
Formato novo, mais longo O valor é truncado silenciosamente
Valor com separadores A máscara de entrada rejeita a forma como a pessoa conhece o número
Valores só com zeros à esquerda Os zeros desaparecem na conversão e o valor muda de sentido

O truncamento é o pior dos casos, porque não gera erro visível. O dado entra, o cadastro parece correto e a falha só aparece quando alguém tenta usar o número em outro sistema. E o problema com zeros à esquerda é igualmente silencioso: se o valor for guardado como número, os zeros da frente se perdem e o identificador deixa de ser o mesmo.

Como testar documentos de vários países?

A maneira mais prática é montar uma matriz com três ou quatro países que representem os extremos: um só com algarismos e curto, um com letras misturadas, um com dígito de controle e um com informação embutida. Para cada país, o caso de teste precisa de um valor bem formado, um valor com erro de digitação e um valor de comprimento diferente do esperado.

Valores bem formados são fáceis de conseguir sem tocar em dado de pessoa alguma. O gerador de identidade desta página produz documentos no formato do país escolhido, junto com nome, nascimento, endereço e telefone coerentes. Se o cenário é brasileiro, a página de dados do Brasil mostra os conjuntos disponíveis para aquele país.

Um cuidado que vale repetir em todo conjunto de teste: os registros gerados servem apenas para testes e não podem ser usados para se passar por outra pessoa. Nenhum deles é aceito por verificação de identidade, abertura de conta ou qualquer processo que exija alguém de verdade.

Para quem desenvolve: modelando o campo

A decisão mais importante não é a regra de validação, e sim o tipo do campo. Um número de documento é texto, sempre, mesmo quando contém apenas algarismos. Guardá-lo como número convida ao truncamento de zeros, dificulta a preservação de separadores e inviabiliza os formatos com letras.

Sobre essa base, três pontos resolvem a maior parte dos casos:

  • Comprimento como faixa, não como valor fixo. Defina um mínimo e um máximo generosos e trate os extremos como aviso, não como erro fatal.
  • Seleção de regra pelo país emissor. O formato depende do país, então a validação precisa de um campo de país confiável e de um caminho separado para cada formato conhecido.
  • Ramo de reserva para formato desconhecido. Para países que você não mapeou, aceite uma faixa larga de caracteres e registre o país para revisão posterior. Recusar o que não se conhece fecha a porta para usuários legítimos.

Sobre o dígito de controle, uma recomendação de ordem: valide comprimento e alfabeto primeiro, e só depois a conta aritmética. Assim, um valor curto demais gera a mensagem certa, em vez de uma falha obscura na conta. E deixe a conta documentada em um único lugar: quando a regra muda, você precisa mudá-la uma vez só.

Próximos passos

Liste hoje quais países o seu produto realmente atende e escreva uma regra por país em vez de uma regra genérica. Gere os valores de exemplo no gerador de identidade e mantenha, para cada formato, um caso bem formado e um caso de erro. Se você precisa cobrir também a data de nascimento, o texto sobre casos de borda de data de nascimento trata das armadilhas que aparecem quando o calendário entra na conta.

Continue lendo

Artigos sobre Gerador de dados de identidade e testes online