Gerador e Validador de IBAN: o único checksum internacional deste site
O IBAN (International Bank Account Number) é o único identificador deste site que segue um padrão internacional ao invés de uma regra brasileira — a norma ISO 13616, que por sua vez usa o algoritmo de checksum ISO/IEC 7064, variante MOD 97-10. É também o único documento aqui cuja estrutura muda de comprimento e composição dependendo do país: um IBAN alemão tem 22 caracteres, um português tem 25, um maltês tem 31 — cada país define seu próprio BBAN (Basic Bank Account Number, a parte específica daquele sistema bancário nacional) dentro do envelope comum de "código do país + 2 dígitos verificadores + BBAN".
A matemática do MOD 97-10
O cálculo do dígito verificador de um IBAN segue três passos bem definidos pela ISO 7064:
-
Rearranja-se a string: os 4 primeiros caracteres (código do país +
dígitos verificadores) são movidos para o final da
sequência, com os dígitos verificadores temporariamente substituídos
por
00durante o cálculo de geração. -
Cada letra é convertida para um número de dois dígitos: A=10, B=11,
..., Z=35 (o valor é o código da letra no alfabeto, A=1, mais 9 —
exatamente o cálculo
código ASCII da letra - 55). Dígitos permanecem como estão. -
Calcula-se o resto da divisão dessa string numérica gigante por 97 —
um número que, para IBANs mais longos, ultrapassa a capacidade de um
inteiro de 64 bits, por isso o cálculo é feito incrementalmente
(processando a string em blocos e aplicando o módulo progressivamente,
em vez de tentar representar o número inteiro de uma vez). O dígito
verificador final é
98 - resto, sempre com 2 dígitos (zero à esquerda se necessário).
Para validar um IBAN existente, o processo se inverte:
move-se os 4 primeiros caracteres (agora com os dígitos verificadores
reais, não 00) para o final, converte-se letras em números
da mesma forma, e o IBAN é válido se o resto da divisão por 97 for
exatamente 1 — essa é a propriedade matemática central
do MOD 97-10: um IBAN correto sempre produz resto 1 quando processado
dessa forma específica.
Por que o BBAN muda de país para país
O IBAN não substitui o sistema bancário nacional de cada país — ele o envelopa. O BBAN de um IBAN alemão codifica código do banco e número da conta no formato específico do sistema bancário alemão; o de um IBAN português, no formato do sistema português; e assim por diante. Isso significa que validar apenas o checksum MOD 97-10 confirma a integridade matemática do IBAN, mas não confirma que o BBAN embutido corresponde a um banco e conta reais dentro daquele país — essa camada de validação, quando necessária, depende de uma base de códigos bancários nacionais, análoga à consulta de banco que este site também oferece para o sistema brasileiro.
Uso em testes de sistemas financeiros internacionais
Sistemas de pagamento internacional, plataformas de e-commerce que vendem para a União Europeia, e integrações com gateways como Stripe ou Adyen validam formato de IBAN antes de processar uma transferência SEPA. Testar essa camada de validação de formulário — incluindo detecção de país inválido, comprimento incorreto para o país informado, ou checksum quebrado — não exige uma conta bancária europeia real: só um IBAN estruturalmente correto (ou deliberadamente incorreto, pra testar a rejeição), que é exatamente o que gerador e validador desta página produzem, ambos executados inteiramente no navegador.