Todos os IBAN têm dois dígitos de controlo logo a seguir ao código de país, calculados com o MOD-97. Muitos países acrescentam dígitos de controlo próprios dentro do BBAN, o número de conta nacional. Na maioria dos casos, são mais antigos do que o IBAN: os bancos já os usavam para detetar erros de digitação nos números de conta nacionais antes de o IBAN existir, e o IBAN manteve-os quando passou a incluir esses números.
Duas camadas de verificação
Tome como exemplo o IBAN francês FR14 2004 1010 0505 0001 3M02 606. O 14 a seguir a FR são os dígitos de controlo do IBAN. Os dois últimos dígitos, 06, são a clé RIB, o controlo nacional francês. Protegem coisas diferentes:
| Dígitos de controlo do IBAN | Dígitos de controlo nacionais | |
|---|---|---|
| Onde ficam | Posições 3 e 4, em todos os IBAN | Dentro do BBAN, num lugar definido por cada país |
| Método | MOD 97-10 (ISO/IEC 7064), igual em todo o lado | Uma regra nacional, diferente de país para país |
| O que abrangem | O IBAN completo, incluindo o código de país | Normalmente o código do banco, o código da agência e o número de conta |
| Quem os define | A norma ISO 13616 | O banco central ou a associação de bancos do país |
As duas camadas são independentes. Um IBAN pode ter dígitos de controlo MOD-97 corretos e mesmo assim falhar o controlo nacional, por exemplo quando alguém converteu num IBAN um número nacional mal escrito e só depois calculou os dígitos de controlo do IBAN. O contrário também acontece: mude um dígito de um IBAN válido e a verificação MOD-97 falha, mesmo que o controlo nacional continue a passar.
Os principais métodos
Os controlos nacionais parecem todos diferentes, mas a maioria pertence a umas poucas famílias.
Dois dígitos MOD 97 no fim do BBAN
Vários países terminam o BBAN com dois dígitos calculados com o MOD 97-10, o mesmo método dos dígitos de controlo do IBAN, aplicado aos dígitos que estão antes deles. É o caso de Portugal (os dígitos de controlo do NIB), da Eslovénia, da Sérvia, do Montenegro, da Macedónia do Norte, da Bósnia e Herzegovina, do Kosovo e de Timor-Leste.
Chaves RIB
A clé RIB francesa é 97 menos o resto da divisão por 97 de 89 × código do banco + 15 × código da agência + 3 × número de conta. Antes do cálculo, as letras do número de conta passam a dígitos (A e J valem 1, B, K e S valem 2, e assim por diante). A chave torna divisível por 97 o número nacional completo. A França e o Mónaco partilham-na, e a Tunísia e a Mauritânia usam chaves RIB com o mesmo objetivo: o número de conta completo é divisível por 97.
O CIN italiano
A Itália e São Marinho põem uma letra de controlo, o CIN, no início do BBAN. Abrange os 22 caracteres que vêm a seguir: o código do banco ABI, o código da agência CAB e o número de conta. Os caracteres nas posições ímpares são convertidos com uma tabela; os das posições pares mantêm o valor simples (os dígitos valem o próprio número, as letras vão de A = 0 a Z = 25). A soma dividida por 26 deixa um resto de 0 a 25, que se converte numa letra de A a Z.
Os dígitos de controlo espanhóis
Um código de conta espanhol (CCC, Código Cuenta Cliente) tem dois dígitos de controlo entre o código da agência e o número de conta. O primeiro verifica os códigos do banco e da agência, o segundo o número de conta de 10 dígitos. Cada um é uma soma ponderada com os pesos 1, 2, 4, 8, 5, 10, 9, 7, 3, 6: divide-se a soma por 11 e subtrai-se o resto a 11. Um resultado de 11 passa a 0 e um de 10 passa a 1. Veja o formato espanhol.
Somas ponderadas
Muitos países multiplicam cada dígito por um peso, somam os produtos e ficam com o resto da divisão:
- Bélgica: os dois últimos dígitos são os dez primeiros dígitos módulo 97 (97 em vez de 0).
- Noruega: MOD 11 com os pesos 5, 4, 3, 2, 7, 6, 5, 4, 3, 2. Os números de conta que precisariam do valor 10 nunca são emitidos.
- Finlândia: o algoritmo de Luhn, o mesmo dos números de cartão.
- Estónia: o método 7-3-1, com os pesos 7, 3, 1 repetidos a partir da direita.
- Hungria: dois dígitos com os pesos 9, 7, 3, 1, um para o código do banco e da agência e outro para o número de conta.
- Polónia: um dígito no fim do código de banco e agência de 8 dígitos, com os pesos 3, 9, 7, 1.
- Albânia: um dígito depois do código do banco e da agência, com os pesos 9, 7, 3, 1.
- República Checa e Eslováquia: o prefixo da conta e o número de conta têm de dar, cada um, uma soma ponderada divisível por 11.
- Croácia: ISO 7064 MOD 11,10, uma vez para o código do banco e outra para o número de conta.
- Costa Rica: o último dígito do número de conta de cliente, com os pesos 1 a 9 e depois 1 a 7, módulo 11.
- Rússia: a chave de controlo do Banco da Rússia, com os pesos 7, 1, 3, sobre o fim do código bancário BIK e o número de conta.
País a país
A tabela indica todos os países cujo controlo nacional este site calcula, com as posições dos dígitos de controlo no IBAN. Clique num país para abrir o respetivo gerador e o formato completo.
| País | Posições | Método | Dígitos de controlo do IBAN | Fonte |
|---|---|---|---|---|
| Albânia | 12 | Pesos 9, 7, 3, 1 (mod 10) | Dependem da conta | Bank of Albania, Decision No. 26 of 4.5.2022 |
| Bélgica | 15–16 | 10 primeiros dígitos mod 97 | Dependem da conta | Febelfin / National Bank of Belgium |
| Bósnia e Herzegovina | 19–20 | MOD 97-10 |
BA39
|
Centralna banka Bosne i Hercegovine |
| Costa Rica | 22 | Pesos de 1 a 9 (mod 11) | Dependem da conta | Banco Central de Costa Rica, Cuenta Cliente |
| Croácia | 11, 21 | ISO 7064 MOD 11,10 | Dependem da conta | Hrvatska narodna banka, Narodne novine 13/2025 |
| Eslováquia | 14, 24 | MOD 11 ponderado | Dependem da conta | Národná banka Slovenska, opatrenie č. 8/2009 |
| Eslovénia | 18–19 | MOD 97-10 |
SI56
|
Banka Slovenije, Uradni list RS 85/2016 |
| Espanha | 13–14 | Dígitos de controlo (mod 11) | Dependem da conta | Consejo Superior Bancario, Código Cuenta Cliente (AEB/CECA) |
| Estónia | 20 | 7-3-1 (mod 10) | Dependem da conta | Estonian Banking Association (Pangaliit) |
| Finlândia | 18 | Luhn (mod 10) | Dependem da conta | Finance Finland (Finanssiala) |
| França | 26–27 | Clé RIB (mod 97) | FR76 quando o número de conta só tem dígitos | CFONB, RIB standard (Banque de France) |
| Hungria | 12, 28 | Pesos 9, 7, 3, 1 (mod 10) | Dependem da conta | Magyar Nemzeti Bank, 35/2017. (XII. 14.) MNB rendelet |
| Itália | 5 | Letra de controlo CIN (mod 26) | Dependem da conta | ABI, coordinate bancarie (Banca d'Italia) |
| Kosovo | 19–20 | MOD 97-10 |
XK05
|
Central Bank of the Republic of Kosovo (BQK) |
| Macedónia do Norte | 18–19 | MOD 97-10 |
MK07
|
National Bank of the Republic of North Macedonia |
| Mauritânia | 26–27 | Chave RIB (mod 97) |
MR13
|
Banque Centrale de Mauritanie, Instruction 16/GR/2008 |
| Mónaco | 26–27 | Clé RIB (mod 97) | MC58 quando o número de conta só tem dígitos | CFONB, RIB standard (Banque de France) |
| Montenegro | 21–22 | MOD 97-10 |
ME25
|
Centralna banka Crne Gore |
| Noruega | 15 | MOD 11 | Dependem da conta | Bits AS / Finans Norge |
| Polónia | 12 | Pesos 3, 9, 7, 1 (mod 10) | Dependem da conta | Narodowy Bank Polski |
| Portugal | 24–25 | MOD 97-10 |
PT50
|
Banco de Portugal, NIB |
| República Checa | 14, 24 | MOD 11 ponderado | Dependem da conta | Česká národní banka, vyhláška č. 169/2011 Sb. |
| Rússia | 22 | Chave de controlo, pesos 7, 1, 3 | Dependem da conta | Bank of Russia, Procedure No. 515 of 8.9.1997 |
| São Marinho | 5 | Letra de controlo CIN (mod 26) | Dependem da conta | Banca Centrale della Repubblica di San Marino (ABI standard) |
| Sérvia | 21–22 | MOD 97-10 |
RS35
|
Narodna banka Srbije |
| Timor-Leste | 22–23 | MOD 97-10 |
TL38
|
Banco Central de Timor-Leste |
| Tunísia | 23–24 | Chave RIB (mod 97) |
TN59
|
Banque Centrale de Tunisie |
Em alguns outros países, como o Burundi, o Jibuti e São Tomé e Príncipe, os exemplos do registo também sugerem um controlo nacional, mas não encontrámos uma descrição oficial. O gerador deixa esses dígitos aleatórios.
Dígitos de controlo do IBAN fixos
Com dois dígitos MOD 97 no fim ou com uma chave RIB, o BBAN deixa sempre o mesmo resto quando dividido por 97, seja qual for a conta. Como os dígitos de controlo do IBAN dependem apenas desse resto e do código de país, todos os IBAN válidos destes países têm os mesmos dígitos de controlo: todos os IBAN portugueses começam por PT50, todos os sérvios por RS35 e todos os tunisinos por TN59. Os IBAN franceses cujo número de conta só tem dígitos começam todos por FR76. As letras num número de conta francês alteram o resultado, e é por isso que o exemplo do registo acima começa por FR14.
É uma verificação rápida e útil quando lê IBAN destes países: se os dígitos de controlo forem outros, o IBAN está errado.
Um validador deve verificá-los?
O MOD-97 já deteta qualquer erro num único dígito e qualquer troca de dois dígitos vizinhos, por isso os controlos nacionais acrescentam pouco contra erros de digitação. Ajudam noutros casos: um IBAN construído à mão a partir de um número nacional errado, ou um IBAN inventado cujo autor só calculou os dígitos MOD-97.
Antes de os acrescentar ao seu próprio validador:
- Cada país precisa do seu próprio algoritmo, e cada um tem de seguir exatamente a regra oficial. Uma implementação errada rejeita IBAN de clientes reais, o que é pior do que não verificar.
- Teste cada algoritmo com exemplos no formato real, como o exemplo do registo que aparece em cada página de país.
- Use mensagens de erro específicas. "Os dígitos de controlo nacionais não correspondem" ajuda mais um utilizador do que "IBAN inválido".
O nosso validador de IBAN verifica os dígitos de controlo nacionais sempre que a regra é conhecida e avisa quando não é. A biblioteca de código aberto iban-check cobre as verificações estruturais e o MOD-97.
Testar com dígitos de controlo nacionais
O gerador calcula os dígitos de controlo nacionais de todos os países da tabela acima, nos dois modos, realista e totalmente aleatório, por isso os validadores que os verificam aceitam os IBAN gerados. Para um teste negativo, altere um dos dígitos de controlo nacionais e volte a calcular os dígitos de controlo do IBAN: o IBAN passa no MOD-97, mas falha o controlo nacional. Quando os dígitos de controlo do IBAN estão errados, o validador sugere os que servem. O artigo IBAN de teste para programadores e QA trata das outras camadas que um validador verifica.
Fontes
- SWIFT IBAN Registry, versão 102 (junho de 2026): a estrutura do BBAN de cada país e os exemplos usados acima.
- ISO/IEC 7064: os sistemas de caracteres de controlo MOD 97-10 e MOD 11,10.
- Banco Nacional Checo, IBAN: o Decreto n.º 169/2011 Coll., sobre o número de conta checo e o respetivo controlo.
- 35/2017. (XII. 14.) MNB rendelet, anexo 1: o número de conta húngaro e os seus dígitos de controlo.
- As fontes nacionais indicadas na tabela: bancos centrais, associações de bancos e as normas que publicam.