Também disponível em: English · Español · Français · العربية
Validador de IBAN
Verifique os dígitos de controlo de um IBAN, veja o que o resto do número implica e descubra exactamente que erro passa despercebido.
O que é um validador de IBAN
O IBAN é o formato internacional do número de conta bancária: duas letras do país, dois dígitos de controlo e depois aquilo que cada país usa internamente. O interessante são os dígitos de controlo, calculados a partir de todos os outros caracteres. Se um só for mal escrito, as contas deixam de bater certo, e o erro é apanhado antes de a transferência seguir para qualquer lado.
Um validador de IBAN faz essa aritmética. Passa os quatro primeiros caracteres para o fim, substitui cada letra por um número em que o A é 10 e o Z é 35, lê tudo como um único inteiro enorme e tira o resto módulo 97. Um IBAN válido deixa resto 1. É este o algoritmo todo, está especificado como ISO 7064 MOD 97-10, e não precisa de base de dados nenhuma.
Vale a pena parar neste último ponto, porque é ele que decide o que esta página pode prometer com honestidade. Verificar os dígitos de controlo é aritmética pura e acerta sempre. Tudo o resto, como a que país pertence um código ou que comprimento deve ter aí um IBAN, vem de um registo publicado que muda com o tempo. A ferramenta mantém as duas coisas separadas e diz-lhe qual é qual.
Como usar
- Cole um IBAN, com espaços ou sem eles. Os espaços e os hífenes são ignorados e aceita-se minúscula, portanto um IBAN copiado de uma factura em grupos de quatro serve tal e qual. Não há nada para seleccionar nem país para escolher antes: o país lê-se nas duas primeiras letras.
- Leia o veredicto. O painel diz se os dígitos de controlo estão certos. Quando não estão, mostra os dois que os restantes caracteres implicam, o que costuma apontar logo para o que correu mal. Por baixo ficam o país, o comprimento e o comprimento que o registo dá para esse país.
- Veja a linha do comprimento, não só o veredicto. Os dígitos de controlo e o comprimento apanham erros diferentes, e a linha do comprimento é a única coisa que apanha o erro descrito mais abaixo. Se o código do país não estiver no instantâneo, a ferramenta di-lo em vez de dar o IBAN por inválido.
O que apanha, contado e não repetido
O que se costuma dizer é que o módulo 97 apanha praticamente tudo. Em vez de o repetir, medimos. Pegando em IBAN válidos de todos os comprimentos legais e estragando-os um erro de cada vez, foram testados 229 779 erros que mantêm o mesmo comprimento: qualquer carácter substituído por outro do mesmo tipo, e qualquer par trocado a qualquer distância, e não só vizinhos. Não escapou nenhum.
Convém pôr isto ao lado dos dois esquemas módulo 10 que este sítio já mediu da mesma maneira. O algoritmo de Luhn, que protege cartões bancários e IMEI, deixa passar 2,20% das trocas de vizinhos, sempre o mesmo par: o 0 e o 9. O ISBN-13 deixa passar 10,21%, com cinco pares diferentes. O módulo 97 não deixa passar nenhum, e ao contrário dos outros dois a sua garantia não se limita a caracteres contíguos.
A razão é aritmética e não sorte. Cada posição do número leva um peso, e esses pesos são as potências de 10 módulo 97. Como 10 é raiz primitiva módulo 97, essas potências percorrem 96 valores distintos antes de se repetirem, portanto num IBAN real não há duas posições a partilhar peso. E como 97 é primo e maior do que a diferença entre quaisquer dois caracteres, qualquer alteração mexe no resto. São precisas as duas coisas: nenhuma chega sozinha.
Há mesmo um horizonte, e é exacto. Dois caracteres separados por exactamente 96 posições de dígito partilham peso, e trocá-los é genuinamente invisível, o que verificámos directamente. Mas o IBAN mais longo que a norma permite tem 34 caracteres e, mesmo que fossem todos letras, expandiria para apenas 66 dígitos. O esquema tem um ponto cego a que o IBAN é curto demais para chegar.
A única coisa que não consegue ver
Os erros que mudam o comprimento são outra história, e aí a garantia não se aguenta. Perder ou acrescentar um carácter escapa cerca de uma vez em 97, que é exactamente o que um módulo de 97 prevê e o que medimos: 0,98%. É o ruído de fundo de qualquer soma de controlo, e não se desce daí sem mais dígitos de controlo.
Um caso, porém, não é questão de sorte nenhuma. Um zero à esquerda é completamente invisível para a aritmética, porque pôr um zero à frente de um número não muda o seu valor. Acrescentar ou tirar um no início do número de conta deixou o IBAN a passar 616 vezes em 616 na nossa varredura: não uma em 97, mas todas. Muitos países emitem números de conta que começam por zero, portanto isto não é uma hipótese.
É precisamente por isso que a ferramenta verifica o comprimento. Os dígitos de controlo e o comprimento não são duas maneiras de fazer o mesmo: o comprimento é a única coisa entre si e o único erro que a aritmética é estruturalmente incapaz de notar. Quando o número que cola começa por zero, a ferramenta di-lo e manda-o para a linha do comprimento.
E é também por isso que o comprimento nunca se sobrepõe ao veredicto. Os comprimentos por país vêm do registo ISO 13616, cuja autoridade de registo é a SWIFT, e o instantâneo aqui é a Release 99 de Dezembro de 2024, com 89 códigos de país. Compará-la com uma cópia do registo de uma década antes dá 30 países acrescentados e nenhum retirado, o que soa a uma tabela que quando muito fica incompleta. Mas um comprimento também mudou: a Costa Rica passou de 21 caracteres para 22 em 2017. Uma ferramenta que rejeitasse um IBAN porque a sua própria tabela discorda teria dado por inválida toda a conta costa-riquenha nova enquanto não fosse actualizada. Portanto aqui quem decide é a soma de controlo, e a tabela só lhe acrescenta uma observação.
Limites honestos
Muitos países embutem os seus próprios dígitos de controlo dentro do número de conta, por baixo dos do IBAN. Portugal tem dois no NIB; os da Bélgica são eles próprios um módulo 97 sobre os dez primeiros dígitos da conta, coisa que verificámos num IBAN belga publicado; Espanha, França, Itália, Noruega e os Países Baixos usam cada um outra coisa. Esta ferramenta não verifica nenhum deles, portanto um IBAN pode passar aqui e continuar mal formado para o seu próprio país. Só uma verificação feita para esse país o pode dizer.
Um IBAN válido também não diz nada sobre se a conta existe. Significa que os caracteres são coerentes entre si, ou seja, que quem os escreveu provavelmente não errou. Não significa que a conta tenha chegado a ser aberta, que pertença a alguém em concreto ou que possa receber dinheiro, e nenhuma aritmética feita sobre o próprio número estabelece nada disso. Só o banco que guarda os registos sabe, e qualquer página que afirme verificar uma conta sem falar com um está a fazer exactamente o que esta faz.
Aqui também não se identifica o banco. Os caracteres a seguir ao código do país codificam de facto uma instituição e muitas vezes um balcão, mas resolvê-los exige um directório que não é totalmente público e que muda à medida que os bancos se fundem e se separam, e uma cópia desactualizada estaria confiantemente errada. A ferramenta relata o que consegue deduzir e fica por aí.
Mais uma coisa, útil se andar a comparar ferramentas: mais de uma dezena de códigos de duas letras que outros validadores listam não são países IBAN. Åland usa o formato da Finlândia sob FI, e onze territórios franceses ultramarinos usam o de França sob FR, portanto nenhum banco emite contas começadas por esses códigos, ainda que a aritmética as aceitasse de bom grado. Outros 22 países, entre eles Marrocos, Argélia, Irão e Senegal, têm formatos em uso real que não estão no registo ISO; esses são identificados em vez de escondidos ou aceites em silêncio.
Porque é grátis
Porque é um resto. Não há servidor pelo meio nem nada para descarregar: a verificação inteira corre no seu navegador, e nada do que cola é enviado, registado ou guardado em lado nenhum. Numa página onde as pessoas colam números de conta bancária isso importa mais do que o habitual, e é por isso que a aritmética foi escolhida de modo a não precisar de consulta nenhuma.
Portanto não há conta, nem registo, nem nada guardado atrás de um. O motor e as 209 verificações que o comprovam estão no repositório ao lado da página, incluindo as varreduras por trás de cada número citado acima.