Está criando um formulário de pagamento ou escrevendo testes unitários? Talvez você precise de valores com formato de IBAN e checksum válido para testar formatação e validação. Um valor que passa no MOD-97 não é automaticamente uma credencial de teste de um provedor de pagamentos e não é seguro para envio a um sistema de pagamentos real.
Usar IBANs de clientes no desenvolvimento é arriscado:
- Um ambiente de staging configurado incorretamente pode iniciar transferências reais.
- Um IBAN associado a uma pessoa identificável pode ser um dado pessoal segundo a legislação de privacidade aplicável.
- Copiar dados bancários de produção para o desenvolvimento pode violar as políticas de acesso, retenção e dados de teste da sua organização.
IBANs de teste por país
Os valores abaixo são exemplos públicos de formato que passam nas verificações de comprimento e MOD-97. Não há garantia de que correspondam a contas não atribuídas ou que sejam aceitos por um sandbox. Use-os somente em testes isolados do validador, nunca em uma rede de pagamentos.
Europa Ocidental
| País | IBAN | Comprimento |
|---|---|---|
| Alemanha | DE89 3704 0044 0532 0130 00 |
22 |
| França | FR76 3000 6000 0112 3456 7890 189 |
27 |
| Espanha | ES91 2100 0418 4502 0005 1332 |
24 |
| Itália | IT60 X054 2811 1010 0000 0123 456 |
27 |
| Países Baixos | NL91 ABNA 0417 1643 00 |
18 |
| Bélgica | BE68 5390 0754 7034 |
16 |
| Áustria | AT61 1904 3002 3457 3201 |
20 |
| Irlanda | IE29 AIBK 9311 5212 3456 78 |
22 |
Norte da Europa
| País | IBAN | Comprimento |
|---|---|---|
| Reino Unido | GB29 NWBK 6016 1331 9268 19 |
22 |
| Suécia | SE45 5000 0000 0583 9825 7466 |
24 |
| Dinamarca | DK50 0040 0440 1162 43 |
18 |
| Noruega | NO93 8601 1117 947 |
15 |
| Finlândia | FI21 1234 5600 0007 85 |
18 |
Europa Oriental
| País | IBAN | Comprimento |
|---|---|---|
| Polônia | PL61 1090 1014 0000 0712 1981 2874 |
28 |
| República Tcheca | CZ65 0800 0000 1920 0014 5399 |
24 |
| Hungria | HU42 1177 3016 1111 1018 0000 0000 |
28 |
| Romênia | RO49 AAAA 1B31 0075 9384 0000 |
24 |
Precisa de fixtures de formato para países que não aparecem aqui? Use nosso gerador de IBAN aleatórios. Atualmente ele oferece suporte a 42 países, cria até 100 valores por lote na web e exporta os resultados como CSV, JSON ou TXT. Ele não verifica se um código bancário está atualizado, se uma conta existe ou se um sandbox de provedor aceita o valor.
Como os IBANs de teste são gerados
O processo tem quatro etapas:
- Escolher um país — determina o comprimento e o formato do IBAN.
- Preencher a posição do código bancário — siga o padrão de caracteres do país; ao testar uma integração, use um valor fornecido pelo provedor.
- Gerar um número de conta — dígitos aleatórios com o comprimento definido para o país.
- Calcular os dígitos de controle — usando o algoritmo ISO/IEC 7064 MOD97-10.
Para uma explicação detalhada, consulte nosso guia de validação de IBAN.
Testes unitários com IBANs
Sua suíte de testes deve cobrir:
Casos com checksum válido:
DE89370400440532013000✓GB29NWBK60161331926819✓FR7630006000011234567890189✓
Casos inválidos:
- Dígitos de controle incorretos:
DE00370400440532013000✗ - País inválido:
XX89370400440532013000✗ - Comprimento incorreto ✗
- String vazia ✗
Casos extremos:
- IBANs com espaços
- Letras minúsculas
- Formatação mista
IBANs de teste de provedores de pagamento
Os sandboxes de provedores de pagamento costumam reservar valores de conta específicos para cenários de sucesso, recusa, verificação ou pendência. Esses valores e comportamentos são específicos de cada provedor e podem mudar. Copie-os da documentação oficial atual para a API, o país, o método de pagamento e o ambiente de teste exatos que você usa. Um resultado do RandomIBAN ou um exemplo público de formato SWIFT não deve ser apresentado como credencial de sandbox da Stripe, Adyen, Mangopay ou de outro provedor, a menos que o provedor o documente atualmente dessa forma.
Checklist para testar formulários
| Cenário | Resultado esperado |
|---|---|
| IBAN padrão com checksum válido | Aceitar a camada de checksum |
| IBAN com checksum válido e espaços | Aceitar após a limpeza |
| IBAN com checksum válido em minúsculas | Aceitar após a normalização |
| Dígitos de controle incorretos | Recusar com uma mensagem de erro clara |
| Comprimento incorreto para o país | Recusar |
| Código de país inválido | Recusar |
| Campo vazio | Erro de campo obrigatório |
| Texto aleatório | Erro de formato |
Boas práticas
Faça:
- Use fixtures sintéticos de IBANs válidos em formato e checksum.
- Teste vários países, não apenas IBANs alemães.
- Teste casos extremos: os formatos mais curto e mais longo compatíveis com este gerador (Noruega, 15 caracteres; Malta, 31 caracteres).
- Separe os ambientes de teste e produção.
- Documente os IBANs de teste em um dicionário compartilhado de dados de teste.
Não faça:
- Use IBANs reais nos testes, nem mesmo o seu próprio.
- Coloque IBANs de teste diretamente no código de produção.
- Presuma que todos os IBANs têm o mesmo comprimento (a ISO 13616-1 permite até 34 caracteres; este gerador oferece atualmente formatos de 15 a 31 caracteres).
- Ignore os testes específicos de cada país.
- Use IBANs de teste de um provedor de pagamentos com outro provedor.
Testes com várias moedas
| Moeda | País | Exemplo de formato público |
|---|---|---|
| EUR | Alemanha | DE89 3704 0044 0532 0130 00 |
| GBP | Reino Unido | GB29 NWBK 6016 1331 9268 19 |
| CHF | Suíça | CH93 0076 2011 6238 5295 7 |
| SEK | Suécia | SE45 5000 0000 0583 9825 7466 |
| NOK | Noruega | NO93 8601 1117 947 |
| PLN | Polônia | PL61 1090 1014 0000 0712 1981 2874 |
| CZK | República Tcheca | CZ65 0800 0000 1920 0014 5399 |
A moeda é uma dimensão do teste; o IBAN, por si só, não prova nem seleciona a moeda da transação.
A regra prática é usar fixtures sintéticos com acesso controlado para testes locais de formato e os valores designados atualmente pelo provedor para testes de integração no sandbox. Mantenha ambas as categorias fora da produção. Com o gerador de IBAN aleatórios, você pode criar fixtures estruturais novos, respeitando os limites documentados: 42 países compatíveis e até 100 valores gerados na web por lote, com exportação para CSV, JSON e TXT.