Como funciona o IBAN e o algoritmo módulo 97
O que é o IBAN
O IBAN (International Bank Account Number) é o identificador internacional de uma conta bancária, criado pela norma ISO 13616 e adoptado pelo European Committee for Banking Standards. Substituiu o antigo NIB (Número de Identificação Bancária) em Portugal a partir de 2014, no contexto da SEPA (Single Euro Payments Area), para uniformizar transferências dentro da zona euro.
Um IBAN identifica sem ambiguidade uma conta em qualquer banco do mundo com poucos caracteres. Tem entre 15 e 34 caracteres alfanuméricos, dependendo do país. Em Portugal tem sempre 25 caracteres: PT50 seguido de 21 dígitos.
Para além de identificar a conta, o IBAN inclui um dígito de controlo módulo 97 que permite detectar erros de digitação antes de a transferência ser processada. Este mecanismo evita transferências para IBANs inválidos e reduz erros humanos.
Estrutura e algoritmo
O IBAN português tem a estrutura:
PT 50 XXXX YYYY ZZZZZZZZZZZ CC
- PT — código ISO 3166-1 do país (2 letras).
- 50 — dígito de controlo do IBAN (2 dígitos, calculado por mod-97).
- XXXX — código do banco (4 dígitos, atribuído pelo Banco de Portugal).
- YYYY — código do balcão / agência (4 dígitos).
- ZZZZZZZZZZZ — número da conta (11 dígitos).
- CC — dígitos de controlo do BBAN (Basic Bank Account Number, 2 dígitos).
O algoritmo de validação módulo 97 funciona assim:
- Mover os 4 primeiros caracteres (
PT50) para o fim →XXXXYYYYZZZZZZZZZZZCCPT50. - Substituir letras por números (A=10, B=11, …, P=25, T=29 →
PT=2529). - Interpretar o resultado como um único número inteiro.
- Calcular
número mod 97. Se o resultado for 1, o IBAN é válido.
Exemplo prático
Testa o IBAN fictício PT50 0035 0000 12345678901 78:
- Mover
PT50para o fim:0035 0000 12345678901 78 PT50. - Substituir letras:
0035000012345678901782529 00(P=25, T=29). - Aplicar mod 97 ao número resultante.
- Se der 1, o IBAN é sintacticamente correcto.
O código de banco 0035 corresponde à Caixa Geral de Depósitos. Outros exemplos: 0033 = Millennium BCP, 0007 = Novo Banco, 0010 = BPI, 0018 = Santander Totta, 0193 = Banco Best.
A validação de IBAN automatiza este cálculo. Como no NIF, o algoritmo verifica apenas a sintaxe — nunca a existência real da conta. Só o SIBS ou o próprio banco confirmam se a conta está activa.
Contexto em Portugal
O SEPA impõe que qualquer transferência dentro da zona euro (incluindo transferências instantâneas SEPA Instant) use IBAN em vez de conta local. Desde 2016, é ilegal cobrar taxa extra por transferência SEPA transfronteiriça face à mesma operação nacional.
O Banco de Portugal publica a lista de códigos de banco em vigor. Cada instituição atribui internamente o balcão e o número de conta. As comissões inter-bancárias em Portugal para transferências SEPA em euros ficam limitadas por regulação (Regulamento (UE) 260/2012).
Desde 2024, com o Regulamento (UE) 2024/886, transferências SEPA instantâneas passaram a ser gratuitas ou ao custo da transferência normal, e obrigatoriamente disponibilizadas por todos os bancos da zona euro até final de 2025. Em 2026, qualquer conta portuguesa deve poder receber e enviar transferências instantâneas em segundos.
Erros comuns
- Confundir IBAN com NIB: o NIB tem 21 dígitos e é o BBAN português (sem
PT50inicial). Ainda aparece em documentos antigos, mas não serve para SEPA. - Aceitar IBAN com espaços em formulários bancários: alguns sistemas rejeitam. Guarda sempre em formato contínuo
PT50003500001234567890178. - Confiar em IBAN gerado por terceiros: burlas comuns em prestação de serviços incluem substituição de IBAN em facturas por e-mail. Confirmar sempre por canal alternativo antes de transferir.
- Assumir que transferência para IBAN errado é reversível: uma vez processada, depende do banco destinatário aceitar o retorno. Pode demorar meses ou ser irreversível.
- Usar IBAN para levantamentos em ATM: o IBAN é para transferências, não para operações no multibanco — para essas, o número curto de 21 dígitos (BBAN) chega, mas caiu em desuso.
Ver também
- Validar NIF — algoritmo módulo 11 para o número fiscal.