A estrutura IBAN é fácil de descrever em três partes: duas letras de país, dois dígitos verificadores e uma sequência final cujo formato cada país decide. Essa divisão explica por que um mesmo padrão internacional convive com números de comprimentos tão diferentes — e por que uma regra fixa de formato, escrita para um país, reprova os demais. Neste texto, mostramos como as partes se organizam, qual é o raciocínio da verificação mod-97 e onde ficam os limites dessa conferência.
Quais são as partes de um IBAN?
O padrão internacional de numeração de contas define a ordem dos elementos, mas deixa uma parte considerável em aberto. A leitura é sempre da esquerda para a direita, e cada trecho tem um papel distinto.
| Parte | O que é | Quem define |
|---|---|---|
| Código de país | Duas letras, no início da sequência | Padrão internacional de códigos de país |
| Dígitos verificadores ISO | Dois algarismos logo após as letras | Regra do próprio padrão de numeração de contas |
| BBAN | Todo o restante da sequência | Cada país fixa comprimento e estrutura interna |
A consequência prática dessa divisão é que só as duas primeiras partes são realmente padronizadas. O tamanho total muda de país para país, e a composição do trecho final muda junto. Por isso, quando alguém pergunta qual é o formato de um IBAN, a única resposta correta começa com outra pergunta: de qual país?
Código de país e os dois dígitos verificadores ISO
As duas letras iniciais situam o número em um país e, com isso, apontam para o conjunto de regras que será aplicado dali para frente. Elas não indicam banco, agência, tipo de conta nem qualquer característica do titular: são um endereço de regras, não um endereço de dinheiro.
Os dois algarismos que vêm em seguida são o coração da conferência internacional. Eles não fazem parte da numeração da conta e não identificam nada além de si mesmos: são calculados a partir de todo o restante da sequência. Se qualquer caractere posterior for alterado, a conta deixa de fechar e a inconsistência aparece na hora.
É por isso que uma alteração de um único caractere no meio da sequência é detectada sem que seja preciso consultar banco nenhum. O trabalho dos dois dígitos é exatamente esse: transformar erro de transcrição em sinal visível.
Por que o BBAN costuma trazer um dígito do próprio país
Vários países embutem, dentro do bloco final, um dígito verificador próprio, calculado por uma regra nacional que nada tem a ver com a regra internacional. O resultado é que a mesma sequência pode estar sujeita a duas contas independentes, com pesos e módulos diferentes.
Isso muda a forma de relatar o resultado. Quando a verificação falha, não basta dizer que o número está errado: é preciso indicar qual das duas camadas não fechou, porque as causas e as correções são diferentes. Falhar no dígito internacional sugere erro em qualquer posição da sequência; falhar no dígito nacional concentra a suspeita dentro do bloco que aquele país regula.
A leitura correta de um resultado, portanto, tem dois níveis: a sequência é aceitável segundo o padrão internacional e, além disso, é coerente segundo a regra nacional do país indicado. As duas respostas podem divergir, e essa divergência é informativa.
Trocar letras por números: a ideia por trás do mod-97
A verificação internacional não trabalha com letras diretamente. Antes de qualquer conta, a sequência é reorganizada segundo a regra do padrão, e cada letra é convertida em algarismos por um mapa fixo. Só então o conjunto é dividido por 97, e o que importa é o resto dessa divisão.
O raciocínio é o mesmo de qualquer dígito verificador: produzir um resultado que dependa de todas as posições, de modo que uma alteração isolada mude o resto. A escolha do 97 não é arbitrária — é um número primo grande o suficiente para que sequências longas tenham muitos restos distintos, o que dá poder de detecção mesmo em números com dezenas de caracteres.
Detalhar a reordenação passo a passo não ajudaria aqui, e há um motivo prático: quem implementa precisa seguir o texto do padrão, não um resumo. O que vale guardar é a forma da ideia — reordenar, converter, dividir, comparar o resto — porque é ela que explica por que a verificação funciona e por que ela não diz nada sobre a existência da conta.
Passar na verificação prova que a conta existe?
Não. A verificação mod-97 confirma apenas que a sequência foi montada de acordo com a regra publicada. Ela não consulta cadastro, não pergunta a banco nenhum e não sabe se aquela conta foi aberta, se está ativa ou se aceita receber transferências.
A distinção entre consistência e existência é a mesma que vale para qualquer outro tipo de número. Uma sequência inventada, com a estrutura correta, pode fechar a conta sem nunca ter existido. Do ponto de vista aritmético, ela é indistinguível de uma conta real, porque a conta só olha para os caracteres.
Confirmar existência exige uma consulta a quem mantém o cadastro — operação de outra natureza, mais lenta, sujeita a limites e que pode falhar. Enquanto essa consulta não acontece, a única afirmação honesta é: o formato corresponde e o dígito verificador se confirma.
Para quem desenvolve: comprimentos diferentes e desvio por país
A armadilha mais comum ao implementar verificação de IBAN é escrever uma regra de formato única. Como o comprimento total e a composição do bloco final variam por país, qualquer regra fixa vai aceitar o que não deveria e, pior, reprovar números legítimos de outros países.
Um caminho que funciona na prática:
- Normalizar a entrada antes de tudo, removendo espaços e hífen e igualando maiúsculas e minúsculas.
- Identificar o país pelas duas letras iniciais e buscar as regras daquele país em uma tabela de dados, não em condicionais espalhadas pelo código.
- Aplicar primeiro a verificação internacional e depois a nacional, guardando o resultado das duas separadamente.
- Tratar país desconhecido como ausência de regra, e não como número inválido.
- Versionar a tabela de regras, para que decisões antigas possam ser reproduzidas quando o formato de um país mudar.
Um detalhe de interface merece atenção: exibir a versão normalizada da sequência conferida. Sem isso, quem digitou o número não consegue saber se o erro estava no valor ou na forma de escrevê-lo.
Nenhuma das sequências usadas para explicar este assunto é uma conta bancária real — são montagens didáticas. Passar na verificação mod-97 não indica que uma conta exista, pertença a alguém ou possa receber transferências.
Próximos passos
Se a dúvida é como o mod-97 se compara a outros módulos, o texto sobre algoritmos de dígito verificador coloca as três famílias lado a lado. Se o seu caso envolve um número que talvez não tenha algoritmo publicado, vale ler sobre números sem dígito verificador. E para conferir uma sequência específica, use a ferramenta de validação de número, que mostra o resultado separado por camada.