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.